Wykład 3: Zasady Działania Protokołów Telekomunikacyjnych Sieci Wielousługowe: lato 2008 Wykład 3: Zasady Działania Protokołów Telekomunikacyjnych Prof. dr hab. Inż. Wojciech Burakowski Instytut Telekomuniacji PW Zespół Technik Sieciowych Pokój 335 tnt.tele,pw,.edu.pl
Plan wykładu 1 2 3 4 Protokoły telekomunikacyjne Podstawowe systemy i mechanizmy dla przekazu informacji 3 Weryfikacja działania protokołu 4 Ocena efektywności działania protokołu
1 Protokoły telekomunikacyjne
Protokoły telekomunikacyjne (1) Cele protokołu telekomunikacyjnego: przekazanie danych pomiędzy dwoma lub więcej punktami protokoły są na wielu poziomach (warstwach) Transport - terminal Sieć-węzeł Łącze danych Sieć telekomunikacyjna
Protokoły telekomunikacyjne (2) transport nagłówek dane nagłówek nagłówek dane sieć łącze danych nagłówek nagłówek nagłówek dane kod Nagłówek: dla przekazywania informacji sterujących, rozróżnienia ramek itd.. Zasadniczy problem: jakie mechanizmy muszą być zaimplementowane w protokołach aby można było przesłać informację bez błędu pomimo tego, iż przesyłane informacje mogą zaniknąć, mogą być opóźnione albo mogą być obarczone błędem
2 Podstawowe systemy i mechanizmy dla przekazu informacji
System ze sprzężeniem zwrotnym decyzji (1) Kanał transmisyjny Nadajnik Odbiornik 3 7 Pamięć 1 2 Decyzja o poprawności odbioru 5 4 6 8 źródło ujście 1: Nadajnik pobiera wiadomość do wysłania 2. Nadajnik zapisuje wiadomość w pamięci 3. Nadajnik wysyła wiadomość do odbiornika 4: Odbiornik przekazuje odebraną wiadomość do układu decyzyjnego Układ decyzyjny: decyduje czy odebrana wiadomość jest poprawna 5. Układ decyzyjny przesyła decyzję do Odbiornika 6. Odbiornik przesyła informacje do ujścia informacji 7. Odbiornik przesyła decyzje do Nadajnika 8: Nadajnik wymazuje wiadomość z pamięci
System ze sprzężeniem zwrotnym decyzji (2) Kanał transmisyjny Konieczny kanał dwukierunkowy od Nadajnika do Odbiornika i od Odbiornika do Nadajnika Może być kanał dupleksowy lub naprzemienny Przy dwukierunkowej transmisji danych, kanał docelowy dla jednego kierunku jest kanałem powrotnym dla drugiego kierunku Możliwość utraty przekazywanej wiadomości Błędy transmisyjne Przeciążenia w sieci (jeżeli rozważamy protokoły warstw wyższych, np.. Wartwy sieciowej lub transportowej) Opóźnienia w pętli sprzężenia zwrotnego, RTT (Round Trip Time) Czas propagacji, Tprop Czas przetwarzania wiadomości w węzłach, Tprz Skończona szybkość kanału transmisyjnego, Ttr1 – kanał docelowy, Tr2 – kanał powrotny RTT = długość wiadomości x Tr1 + długość wiadomości potwierdzającej x Ttr2 + Tprop + Tprz Uwagi: (1) Jeżeli rozważamy transmisję między dwoma sąsiednimi stacjami wówczas mamy jedno łącze transmisyjne, np.. Dla lącza danych (2) Jeżeli rozważamy przekaz „od końca do końca” (np.. warstwa transportowa), wówczas kanał transmisyjny przechodzi przez całą sieć Węzeł sieci (1) (2) Kanał docelowy Nadajnik Odbiornik Kanał docelowy Kanał powrotny Nadajnik Odbiornik Kanał powrotny
System ze sprzężeniem zwrotnym decyzji (3) Modele błędów w kanale Kanał o błędach niezależnych Zdefiniowany przez podanie prawdopodobieństwa przekłamania pojedynczego bitu (BER – Bit Error Rate) Jeśli n oznacza długość wiadomości i p oznacza prawdopodobieństwo przekłamania jednego bitu, wówczas prawdopodobieństwo przesłania wiadomości (sukces) bez błędu wynosi: sukces = (1-p)^n Kanał o błędach zależnych Błędy występują seryjnie Przyczyny błedów w kanał radiowych – zanik sygnału, interferencje Przyczyny błedów przy przesyłaniu przez sieć - przeciążenia w sieciach Modelowanie kanału o błędach seryjnych – np..przez modele Markowa Prawdopodobieństwa przejść pomiędzy stanami Stan 1: BER = x Stan 2: BER = y Stan 1 Stan 2
System ze sprzężeniem zwrotnym decyzji (4) Podejmowanie decyzji o poprawnym odbiorze (1) Odbierana wiadomość musi być: Wiadomością oczekiwaną (1) Numer odbieranej wiadomości musi być zgodny z numerem wiadomości oczekiwanej (2) Wiadomość odbierana musi być poprawna, tzn, nie może zawierać błędów transmisyjnych Wiadomośc odebrana Wiadomośc oczekiwana Numer sekwencyjny Pozostałe dane Numer oczekiwany Numer sekwencyjny = Numer oczekiwany
System ze sprzężeniem zwrotnym decyzji (5) Podejmowanie decyzji o poprawnym odbiorze (2) Odbierany blok musi być poprawny, tzn, nie może zawierać błędów transmisyjnych rozwiązanie:zastosowanie kodów nadmiarowych Możliwe formaty przesyłanych bloków Nagłówek Dane Pole kodowe Nagłówek Pole kodowe nagłówka Dane Pole kodowe danych Nagłówek Pole kodowe nagłówka Dane Cel kodowania Pole kodowane: K bitów Pole kodowe: R bitów K – liczba bitów informacyjnych, R – liczba bitów nadmiarowych, (N=R+K) – liczba przesyłanych bitów Prawidłowym ciągiem odebranym jest jedynie ciąg kodowy (!) 2^K – liczba różnych ciągów kodowych, 2^N – liczba możliwych odbieranych ciągów danych
System ze sprzężeniem zwrotnym decyzji (6) Podejmowanie decyzji o poprawnym odbiorze (3) – kody nadmiarowe Kodowanie liniowe: bity w polu kodowym są wynikiem dodawania modulo2 wybranych bitów informacyjnych Przykład: kod (6,4) - K= 4, R=2, N=6 Pole kodowane S1 S2 S3 S4 Ciąg przed kodowaniem C1 = S1+S2+S3; C2=S3 +S4 Przykładowe równania Pole kodowe S1 S2 S3 S4 C1=S1+S2+S3 C2 =S3+S4 Ciąg wysyłany Operację kodowania realizujemy w nadajniku W odbiorniku – sprawdzamy poprawność kodowania
System ze sprzężeniem zwrotnym decyzji (7) Podejmowanie decyzji o poprawnym odbiorze (3) – kody nadmiarowe Najczęściej stosowane kody: (1) kod Hamminga (7,4) (2) kody cykliczne (3) kody parzystości Wykorzystanie własności kodów: (1) korzystanie jedynie z własności detekcyjnych (2) korzystanie z własności detekcyjnych i korekcyjnych (3) korzystanie z własności wyłącznie korekcyjnych
System ze sprzężeniem zwrotnym decyzji (8) Typy protokołów: (1) stop_and_wait (2) go_back_n (3) selektywne powtarzanie Stop_and_wait: Nowy blok (np. Dane 2) możemy wysłać dopiero po poprawnym odbiorze bloku poprzedzającego (np.. Dane 1), tj. po otrzymaniu potwierdzenia odbioru Dane 2 Dane 1 Nadajnik Odbiornik 3 7 Pamięć 1 2 Decyzja o poprawności odbioru 5 4 6 8 źródło ujście Dane 2 są wysyłane po odbiorze Danych 1, itd...
System ze sprzężeniem zwrotnym decyzji (8) Dane 1 Dane 2 Dane 3 RTT czas Jeżeli RTT duże (np. w łączach satelitarnych ok.. 250 msek) – małe wykorzystanie łącza Jeżeli RTT (np. msek) małe – można ten protokół stosować
System ze sprzężeniem zwrotnym decyzji (8) Go_back_N: Kolejny blok (dane), powiedzmy (k+N)-ty możemy wysłać dopiero po otrzymaniu potwierdzenia o poprawnym przesłaniu bloku N-tego Dane (k+N) Dane (K+N-1) Dane (K+N-2) Nadajnik Odbiornik 3 7 Pamięć 1 2 Decyzja o poprawności odbioru 5 4 6 8 źródło ujście Potwierdzenie dla Danych (k) W pętli sprzężenia zwrotnego może być N niepotwierdzonych bloków
System ze sprzężeniem zwrotnym decyzji (9) Przykład: N =3 (bez błędu) Dane 1 Dane 2 Dane 3 RTT Dane 4 Dane 5 Dane 6 Nie rozważane jako przesłane Przykład: N =3 (błąd przekazu bloku 2 – Dane2) Time-out – ok.. 3 RTT błąd Dane 4 Dane 3 Dane 2 Dane 4 Dane 3 Dane 2 Dane 1 RTT RTT
System ze sprzężeniem zwrotnym decyzji (10) Podsumowanie Dla Go_Back_N konieczna numeracja bloków do M (M>=N), numery 0, 1,2,..., (M-1)– tzw numeracja modulo M Jeżeli mamy nuumerację modulo M – wówczas maksymalna liczba niepotwierdzonych bloków jest (M-1) ! Możemy określić tzw. szerokość okna dla wysyłania bloków– W (maksymalna liczba niepotwierdzonych bloków), W<= (M-1) System Go_back_N działa w następujący sposób: w przypadku, gdy nie ma błędów, dąży do ciągłej transmisji bloków (w zależności od RTT, szerokości okna W, parametrów łączy transmisyjnych itd.) W przypadku błędu, system działa jak system STOP_and_Wait Większośś protokołów działa w oparciu o system Go_back_N
System ze sprzężeniem zwrotnym decyzji (11) Selektywne powtarzanie: Powtarzamy tylko te bloki, które nie zostały przesłane poprawnie Rozważane jako przesłane Przykład: N =3 (błąd przekazu bloku 2) błąd Dane 5 Dane 2 Dane 4 Dane 3 Dane 2 Dane 1 RTT Konieczność buforowania danych w Odbiorniku RTT RTT Schemat rozważany w przypadkach, kiedy droga transmisyjna jest długa – łącze satelitarne, lub połączenie przechodzi przez wiele węzłów - protokół transportowy
System ze sprzężeniem zwrotnym informacji (1) Kanał transmisyjny 7 1 3 9 źródło Nadajnik Odbiornik ujście 5 4 2 6 8 Pamięć Decyzja o poprawności odbioru Pamięć 1: nadajnik pobiera wiadomość do wysłania 2. Nadajnik zapisuje wiadomość w pamięci 3. Nadajnik wysyła blok do odbiornika System używany, kiedy kanał powrotny jest lepszej jakości niż kanał docelowy 4: odbiornik zapamiętuje blok 5. Odbiornik przesyła ten blok z powrotem do Nadajnika 6. Nadajnik po odebraniu bloku sprawdza, czy odebrany blok jest taki sam jak nadany - Układ decyzyjny 7. Nadajnik wysyła potwierdzenie do Odbiornika 8 i 9:Odbiornik pobiera z pamięci wiadomość i przesyła do ujścia
System z otwartą pętlą sprzężenia zwrotnego (1) Kanał transmisyjny źródło Nadajnik Odbiornik ujście Kody korekcyjne, np. kody splotowe Wykorzystanie systemu: kiedy RTT jest za duże, łącza satelitarne konieczność stosowania kodów korekcyjnych
3 Weryfikacja działania protokołu
Weryfikacja działania protokołu (1) Weryfikacja – sprawdzenie, czy dany protokół działa zgodnie z założeniami: czy przekazuje informacje czy nie wchodzi w stan „zakleszczenia”, czyli dwie strony czekają na odbiór jakiejś wiadomości jak reaguje protokół na wystąpienie strat przesyłanych wiadomości Czy protokół nie wchodzi w tzw. stany „pochłaniające” Problem: wiele stanów protokołu Metody weryfikacji: metoda automatów o skończonej liczbie stanów Sieci Petri
Weryfikacja działania protokołu (2) Przykład: Protokół Stop_and_Wait Opis stanu (X,Y,Z) X : numer ramki wysyłanej przez nadajnik, X=0 lub 1 Y: numer ramki oczekiwanej przez odbiornik, Y=0 lub 1 Z: stan kanału, Z=0,1,A lub pusty (-) (0- wysłana ramka 0, 1-wysłana ramka 1, A wysłana ramka ACK, – nic nie ma w kanale – np. strata albo zanik) 0,0,0 0,1,A 1,1,1 1,0,A 0,0,- 0,1,- 0,1,0 1,1,- 1,0,1 1,0,- 6 7 2 4 1 3 5 8 Przej?cie Kto wykonu j e Akceptacja ramki Ramka wysy?ana Do warstwy sieci - (ramka stracona) 1 O A TAK 2 N 3 4 5 NIE 6 O 1 A NIE 7 N (timeout) - 8 N (timeout) 1 -
4 Ocena efektywności działania protokołu
Efektywność działania protokołu (1) Ocena efektywności działania ( performances) każdego protokołu jest ważnym elementem projektowania protokołu Ocena taka pozwala określić zakres stosowalności danego protokołu oraz ustalić wartości parametrów protokołu (np. szerokość okna, wielkość przesyłanych bloków danych) Metody oceny działania protokołu: Metody symulacyjne (np.. ns-2, OPNET, własne oprogramowania) Metody analityczne – bardzo pożądane, nie zawsze możliwe (zwłaszcza przy skomplikowanym działaniu protokołu) Metody testowania w sieci pilotowej Dla każdego protokołu potrzebujemy określić zestaw parametrów określających efektywność działania protokołu
Efektywność działania protokołu (2) Przykład parametrów dla protokołów typu punkt-punkt: Maksymalna szybkość przekazu danych Czas przekazu danych Czynniki zmniejszające szybkość przekazu: Skończony czas przetwarzania i czas propagacji Mechanizmy protokołu (np.. szerokość okna) Konieczność retransmisji Maksymalna szybkość przekazu danych Zakres działania protokołu kolejka Łącze C bit/s źródło źródło Dane przesłane bez błędu Stały napływ danych do wysłania, cały czas mam coś do wysłania Efektywna szybkość przekazu danych (bit/s) < C (!)
Efektywność działania protokołu (3) Przykład parametrów dla protokołów typu punkt-punkt: Maksymalna szybkość przekazu danych Czas przekazu danych Czas przekazu danych: Od chwiliprzekazania do protokołu do chwili poprawnego odbioru Czynniki nmające wpły na czas przekazu : Skończony czas przetwarzania i czas propagacji Mechanizmy protokołu (np.. szerokość okna) Retransmisje Zakres działania protokołu Dane napływają ze średnią intensywnością nie przekraczającą pojemności łącza kolejka Łącze C bit/s źródło źródło Dane przesłane bez błędu Czas przekazu bloku danych, całego zbioru itp.. (wartość średnia, wartość maksymalna, kwantyl)