(Wykl5)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
1. 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);
2. 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
3. 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 kwantnie 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?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
IDENTYFIKACJA WSPÓLNYCH WZORCÓW KOMUNIKACJI
rozpatrzmy typowe aplikacje sieciowe, z punktu widzenia wymagań związanych z projektowaniem abstrakcyjnych kanałów
1. 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
2.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
3.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
4 .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
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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 bsłużyć największą liczbę aplikacji
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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óżnienieefektywność sieci mierzymy na podstawie dwóch wielkości pasma (bandwith) zwanego również przepustowością (throughput), oraz opóżnienia (latency, delay)
1. 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
2.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)