Wydajny podział zasobów
- jak komputery współdzielą sieć, gdy chcą jednocześnie
wymieniać komunikaty?
- multipleksacja
(multiplexing)- współdzielenie zasobu systemowego
przez wielu użytkowników
- rozważmy prostą sieć jak na rysunku
- załóżmy, że komputer na górze (lewa strona) porozumiewa
sie z komputerem na górze (prawa strona),itd.
- w powyższej sytuacji trzy przepływy danych są poddane
multipleksacji na jednym łączu fizycznym przez
komutator1 a następnie poddane demultipleksji przez
komutator2
- istnieje kilka metod multipleksacji przepływów na jednym
łączu fizycznym

rys. multipleksacja wielu logicznych przepływów na jednym łaczu fizycznym
- w sieciach telefonicznych stosowana jest
synchroniczna multipleksacja z podziałem czasu
(synchronous-time division multiplexing-
STDM)
- ideą STDM jest podział czasu na
kwanty o jednakowym rozmiarze i danie szansy każdemu przepływowi
na przesłanie danych przez łącza w
trybie karuzelowym (round-robin);
- multipleksacja z podziałem czestotliwosci
(frequency-division multiplexing- FDM)
- nadawanie każdego przepływu na łączu fizycznym z różną
częstotliwością (np. w telewizji kablowej)
- istotne wady STDM i
FDM
- jeżeli jeden z przepływów nie ma już danych, to
współdzielone łącze fizyczne (kwant czasu, częstotliwość)
pozostaje niewykorzystane
- dlatego stosuje sie multipleksację
statystyczną(statistical multiplexing)
- podobnnie jak w STDM łącze
fizyczne jest współdzielone w czasie
- dane z pierwszego przepływu są przesyłane przez łącze,
potem dane z drugiego...
- inaczej jednak niż w STDM, dane z każdego przepływu są
przesyłane na żądanie,
a nie we wcześniej określonej szczelinie czasowej
- jeżeli np. tylko jeden przepływ ma dane do przesłania,
to zaczyna je przesyłać bez czekania na swój kwant
- nie ma mechanizmu gwarantującego, że wszystkie przepływy
otrzymają szanse przesłania komunikatów
- aby zwiekszyć taką szanse ogranicza sie transmisję
konkretnego przepływu definiując górną granice
rozmiaru bloku danych

rys.komutator dokonujący multipleksacji pakietów od wielu
nadawców w jedno współdzielone łącze
- ten ograniczony blok danych nazywany jest
pakietem ; komunikat aplikacji
musi być podzielony na pakiety nadawane oddzielnie
- komputer odbiorczy ponownie połączy je w jeden
komunikat
- jak sprawiedliwie przydzielać pojemność łącza
różnym przepływom? To może być
mechanizm karuzelowy, a jescze lepiej wg.
algorytmu FIFO
(first-in-first-out)
- pierwszy przyszedł-pierwszy poszedł
- konieczność buforowania pakietów ; możliwość
ich utraty w sytuacji
przeciążenia
(congestion) sieci
Funkcjonalność
- celem sieci komputerowej jest nie tylko dostawa pakietów,
ale przede wszystkim dostarczanie środków komunikacji
między procesami aplikacji rozproszonych na komputerach
- aby dwa programy aplikacyjne mogły sie porozumiewać, musi
zaistnieć wiele skomplikowanych zdarzeń, wykraczających
poza proste nadanie komunikatów
- zdarzenia te odpowiadają określonym funkcjom, które musi
zrealizować projektant sieci
- szereg aplikacji wymaga tych samych usług;
jak więc wydzielić ten właściwy zbiór usług?

rys.procesy porozumiewające się przez abstrakcyjny kanał
- intuicyjnie możemy patrzeć na sieć jak na dostawcę kanałów
logicznych, przez które procesy z poziomu aplikacji mogą
sie porozumiewać
- każdy kanał dostarcza zbiory usług wymaganych prez aplikację
- wyzwanie projektanta: jakie funkcje kanał powinien dostarczać
progrmowi aplikacyjnemu
- czy można tolerować zagubienie niektórych komunikatów?
- czy komunikaty muszą docierać w tej samej kolejności?
- czy musi być zapewniona prywatność przesyłanych
komunikatów?
Identyfikacja wspólnych wzorców komunikacji
- rozpatrzmy typowe aplikacje sieciowe, z punktu widzenia wymagań
związanych z projektowaniem abstrakcyjnych kanałów
- FTP
-jedna z najwcześniejszych aplikacji
- można tu wyróżnić składnik komunikacyjnego zdalnego
dostępu do plikuu: para procesów, z których jeden
żąda odczytu pliku albo zapisu do pliku
(klient),a drugi to
notuje(serwer)
- czytanie z pliku pociąga za sobą nadanie przez
klienta małego komunikatu do serwera i nadanie przez
przez serwer dużego komunikatu zawierejącego dane
z pliku
- zapis działa również w odwrotny sposób:klient nadaje
duży komunikat (dane do zapisu w serwerze), a serwer
odpowiada małym komunikatem potwierdzjącym zapis na
dysku
- .
najnowsza klasa aplikacji:
program biblioteki cyfrowej
(digital library)
- wyszukiwany jest w bibliotece cyfrowej określony
rodzaj danych: niewielki plik tekstowy, duży obraz
cyfrowy, obiekt multimedialny
- wzorzec komunikacji jest jednak podany w
1
- .
następna klasa aplikacji:
odtwarzanie zapisu wideo przez
sieć w aplikacji wideo na żądanie
- potencjalna opcja: cały plik wideo jest pobierany
z komputera zdalnego za pomocą aplikacji dostępu
do pliku, a następnie odtworzony na komputerze
lokalnym; konieczność otrzymania całego pliku przed
rozpoczęciem odtwarzania (opóżnienie!)
- inna opcja: nadawca i odbiorca są odpowiednio żródłem
i ujściem ramek wideo, przesyłanych jako komunikaty
i po odbiorze wyświetlonych
- generalnie w tej aplikacji nie ma żadnych poważnych
ograniczeń czasowych(np. opóżnienie
10s jest satysfakcjonujące)
- ramki przesyłane są w jednym tylko kierunku
- wideo samo w sobie nie jest aplikacją- to
raczej typ danych wykorzystywanych jako część
aplikacji wideo na żądanie, albo w aplikacji
telekonferencyjnej takiej jak
NV
- .
aplikacja telekonferencyjna
typu
NV (wideo na żywo)
- ta aplikacja ma ścisłe ograniczenia czasowe
:interakcja między użytkownikami musi zachodzić
we właściwym czasie
- gdy np. osoba wykonuje po jednej stronie
jakiś gest, to odpowiadający obraz wideo
musi być wyświetlony po drugiej stronie
jak najszybciej; opóżnienie czyni taki
system bezużyteczny
- w wideo na żywo, ramki przepłwają zwykle w
obu kierunkach
Podsumowanie
- na podstawie tych reprezentatywnych aplikacji
można mówić o potzrebie dwóch typów kanałów:
żądanie/odpowiedż
oraz strumień komunikatów
- kanał typu żądanie/odpowiedż
(przesyłanie plików, cyfrowa biblioteka)
- będzie gwarantował, że każdy komunikat
nadany przez jedną strone zostanie odebrany
przez drugą stronę i będzie to tylko jedna
kopia komunikatu
- być może będzie również chronił prywtność
i spójność danych
- kanał typu strumień komunikatów
(wideo na żadanie, telekonferencje)
- musi być sparametryzowany w celu obsługi
ruchu jednokierunkowego albo dwukierunkowego
oraz w celu wspomagania opóżnień różnych
wielkości
- nie musi gwarantować dostarczenia wszystkich
komunikatów
- ramki muszą docierać w tej samej kolejnosci,
w której zostały nadane
- kanał może wymagać wspomagania rozgłaszania
grupowego
- projektanci dążą do najmniejszej liczby typów kanałów
abstrakcyjnych zdolnych obsłużyć największą liczbę
aplikacji
Niezawodność
- niezawodna dostawa komunikatów jest jedną z
najważniejszych funkcji, jakie sieć powinna zapewnić
- sieć komputerowa nie działa jednak w doskonałym
świecie
- istnieją trzy klasy uszkodzeń:
- błedy bitów
(bit errors)
mogą się pojawić gdy pakiet jest przesyłany
przez łącze fizyczne
(1 -
0 lub
(0 -
1)
- częściej niż uszkodzenia pojedyńczych
bitów następuje
błąd seryjny
(burst error) uszkodzenie
kilku kolejnych bitów
- powody:uderzenie pioruna, skoki
napięcia
- błędy bitów są żądkie: jeden bit z
108
lub 107
w kablu miedzianym,lub jeden z
1012
lub 1014
bitów w światłowodzie
- istnieją techniki wykrywania i
poprawiania błędów; w poważnych
wypadkach pakiet trzeba przesłać
powtórnie
- utrata całego pakietu
- np. w przypadku nienaprawialnego
błędu pakiet musi być odrzucony
- lub z powodu oprogramowania(np.
w komutatorze przekazującym pakiet
z jednego łącza do drugiego)
- z powodu przeciążenia sieci- brak
miejsca w buforze na zapamiętanie pakietów
(problem: czy pakiet został stracony
czy tylko jest opóżniony)
- uzkoszenie na poziomie węzła i łącza
- przecięcie łącza lub awaria komputera
przyłączonego do danego łącza
- uszkodzenia mogą być naprawione,
ale mają radykalny wpływ na sieć
w dłuższym okresie czasu
- możliwe jest np.
obejście uszkodzonego węzła w sieci
z komutacją pakietów
- problemy:
rozróżnienie czy komputer jest uszkodzony
czy tylko działa wolniej;czy łącze
jest całkowicie przecięte czy tylko
poważnie uszkodzone.
Efektywność
- sieć jest wykorzystywana do wymiany
danych przez prowadzone na wielu
komputerach obliczenia rozproszone
- skuteczność tych obliczeń często zależy
bezpośrednio od wydajności, z jaką sieć
dostarcza dane
Szerokość pasma i opóżnienie
- efektywność sieci mierzymy na podstawie
dwóch wielkości
-
pasma
(bandwith)
zwanego również
przepustowością
(throughput), oraz
- opóżnienia
(latency,
delay)
szerokość pasma sieci
- określa się przez liczbę bitów, które mogą
być przesłane przez sieć w pewnym czasie
(łącza cyfrowe)
- np. przepustowość
10 milionów bitów na sekundę
(Mb/s) oznacza,
że jest ona zdolna dostarczyć 10 milionów
bitów w ciągu każdej sekundy
- niekiedy wygodniej wyobrażać sobie szerokość
pasma za pomocą ilości
czasu potrzebnego do przesłania każdego bitu
danych
- dla sieci o szerokośći pasma
10 Mb/s czas ten wynosi
0.1 mikrosekundy
- w przypadku kanału analowego (np. głosowe
łącze telefoniczne) łącze wspomaga sygnały
w zakresie od 300 do
3300 Hz, a szerokosc
pasma wynosi 3300Hz - 300
Hz = 3000Hz

rys. można przyjąć że bity przesyłane w danej szerokości pasma mają
określoną szerokość (a) bity nadawane w szerokości pasma 1 Mb/s
(każdy bit o szerokości 1 mikrosekundy);(b)bity nadawane oszerokości
pasma 2 Mb/s (każdy bit o szerokości 0.5 mikrosekundy)
- w przypadku pojedyńczego łącza fizyczngo
szerokość pasma to liczba bitów przesyłanych
w 1 sekundzie
- o pojedyńczym bicie możemy myśleć jako o
impulsie pewnej szerokości
- im technika nadawania i odbioru jest lepsza,
tym każdy bit może być węższy,a szerokość
pasma większa
- opóżnienie
- jest to czas w którym pojedyńczy bit przemieszcza
sie z jednego końca sieci na drugi może mieć
czas oczekiwania równy
24 mikrosekundy (4800 km szerokości USA)
- w wielu sytuacjach ważniejsza jest wiedza o
czasie przesłania bitu z jednego końca na drugi
i z powrotem; takie opóżnienie to
czas podróży w obie strony
(round-trip-time, RTT )
- całkowite opóżnienie w łączu można zdefiniować:
opóżnienie =
opóżnienie propagacji +
czas transmisji +
czas kolejkowania
opóżnienie propagacji =
odległość /
prękość światła
- prędkość światła
w
- próżni: 3.0*108 m/s
- kablu miedzianym: 2.3*108 m/s
- Swiatłowodzie: 2.0*108 m/s
- czas transmisji =
rozmiar /
szerokość pasma
- odległość
- długość kabla
- prędkość światła
- efektywna prędkość światła w tym kablu
- rozmiar
- rozmiar pakietu
- szerokość pasma sieci będzie się stale poprawiać,
opóżnienie programu jest jednak ograniczone
przez prędkość światła
- kombinacja szerokości pasma i opóżnienia
definiuje charakterystykę efektywności danego
łącza; ich znaczenie zależy jednak od aplikacji
- dla pewnych zastosowań opóżninie dominuje nad
szerokością pasma, np. klient nadający jednobajtowy
komunikat do serwera i odbierający jednobajtowy
komunikat jest ograniczony opóżnieniem
- załóżmy, że dla jakiejś aplikacji do przygotowania
odpowiedzi nie są wymagane żadne poważne obliczenia
- aplikacja korzystająca z kanału
przechodzącego przez całe USA, z czasem
RTT równym
100 ms ,
zachowa się odmiennie od aplikacji korzystającej
z kanału przechodzącego przez jeden pokój
z RTT =
1ms
- czy kanał ma szerokość pasma
1Mb/s
czy 100 Mb/s
jest w tym przypadku mało istotne
(czasy transmisji odpowiednio
8 i 0,08 mikrosekund ;
)
- rozważmy dla porównania program biblioteki cyfrowej,
który odbiera żądanie przysłania obrazu o rozmiarze
25MB (megabajtów)
- szerokość pasma kanału ma tu dominujący
wpływ
- np. jeżeli kanał ma szerokość pasma
10Mb/s to przesłanie
obrazu zajmie 20 sekund
, co powoduje, że jest nieistotne
czy opóżnienie propagacji kanału wynosi
1ms czy
100ms; będzie
to odpowiadało czasom odpowiedzi
20.001s lub
20.1s
- rysunek pokazuje (skala logarytmiczna) jak opóźnienie lub szerokość
pasma może wpływać (zdominować) efektywność w rożnych okolicznościach
- obiekt jednobajtowy (naciśnięcie klawisza)
- obiekt o rozmiarze 2 kB (e-mail)
- obiekt o rozmiarze 1 MB (obraz cyfrowy)
-
Iloczyn
opóźnienie * szerokość pasma
- o kanale między parą procesów możemy myśleć jako o pustej rurze, gdzie
opóźnienie odpowiada długości rury, a
szerokość pasma odpowiada średnicy rury.
- iloczyn opóźnienie *
szerokość pasma czyli objętość rury - określa liczbę bitów,
którą może ona pomieścić
- np. transkontynentalny kanał z opóźnieniem
w jednym kierunku równym 50 ms i
szerokością pasma równa
45 Mb/s jest zdolny pomieścić
50 * 10-3s * 45 * 106 bitów/s =
2.25 * 106 bitów czyli około
280 kB danych
- znajomość tego iloczynu jest ważna podczas konstruowania sieci o
wysokiej efektywności
- określa on liczbę bitów, które nadajnik musi wysłać, zanim pierwszy
bit dotrze do odbiornika
- jezeli nadajnik oczekuje na jakikolwiek sygnał od odbiornika, że bity
zaczęły napływać, a kolejne opóźnienie zajmuje propagacja sygnału z
powrotem do nadajnika (myślimy o RTT),
wtedy nadajnik może wysłać dane aż do podwojonej wartości tego
iloczynu, zanim usłyszy od odbiornika, że wszystko jest w porządku
- w większości przypadków interesujemy się czasem podróży w obie strony
(RTT), który odnosimy do iloczynu
opóźnienie *
szerokość pasma , bez wyraźnego określenia, czy iloczyn jest
mnożony przez dwa ( czy to opźnienie w jedna czy w dwie strony -
będzie wynikało z kontekstu)