Sieci Komputerowe Mechanizmy kontroli błędów w sieciach dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl
Zagadnienia Zasady kontroli błędów w sieciach Bity parzystości Wykrywanie błędów za pomocą sum kontrolnych Metoda CRC (Cykliczna Kontrola Nadmiarowości) Procedura: SRER, (ang.) Selective Repeat Error Recovery 2
Kontrola błędów w sieciach Pakiety przesyłane w sieci mogą: dotrzeć do odbiorcy uszkodzone dotrzeć zniekształcone lub powielone zostać zgubione (lub porzucone). Stosowane mechanizmy obsługi błędów: kontrola integralności przesyłanych danych dodawanie bitów parzystości wyliczanie sum kontrolnych mechanizmy informowania o poprawności odbioru danych. 3
Bity parzystości Jednym ze sposobów kontroli błędów jest kontrola parzystość przesyłanego znaku. Dla kaŝdego znaku nadawca wylicza bit parzystości i dołącza go do przesyłanego znaku. Po odebraniu znaku, odbiorca, wylicza parzystość znaku i porównuje go z bitem parzystości wyliczonym przez nadawcę. JeŜeli wartości bitów parzystości nie są równe odbiorca zgłasza błąd. Algorytm wyliczania parzystości znaku. Nadawca dodaje do 7 bitowego znaku: bit o wartości 1, gdy liczba 1 w znaku jest nieparzysta bit o wartość 0, gdy liczba 1 w znaku jest parzysta. Liczba jedynek w 8-bitowym ciągu, łącznie z bitem parzystości, musi być parzysta. Przykład: dla znaku (7 bitów) 0 1 0 1 0 1 0 bit parzystości = 1, przesłany ciąg bitów to 1 0 1 0 1 0 1 0 dla znaku 0 1 0 1 0 1 1 bit parzystości = 0, przesłany ciąg bitów to 0 0 1 0 1 0 1 1 4
Bity parzystości W metodzie kontrolującej parzystość bitów nie moŝna wykryć błędów gdy nastąpi 'przekłamanie' parzystej liczby bitów. Przykład: Gdy wysłany znak 1 0 1 0 1 0 1 0, zostanie odebrany jako 1 0 1 0 1 0 0 1, to odbiorca nie zgłosi błędu. 5
Wykrywanie błędów za pomocą sum kontrolnych Sumy kontrolne zazwyczaj wyliczane są jako 16- lub 32-bitowe liczby. Aby wyliczyć sumę kontrolna dla ciągu znaków lub całego pakietu danych nadawca: traktuje parę znaków jak 16-bitowa liczbę zamienia znaki na liczby w kodzie ASCII zapisuje liczby w układzie 16-tkowym i dodaje je do siebie. Wyliczona liczba jest suma kontrolna. JeŜeli wartość sumy kontrolnej jest liczba większa niŝ 16 bitów (32 bity) to liczona jest wartość modulo. Przykład: Suma kontrolna dla ciągu znaków: xocd x w kodzie ascii to 120 w układzie szesnastkowym = 78 o w kodzie ascii to 111 w układzie szesnastkowym = 6F c w kodzie ascii to 99 w układzie szesnastkowym = 63 d w kodzie ascii to 100 w układzie szesnastkowym = 64 Ciągu znaków: Wartość sumy kontrolnej: 786F + 6364 = xocd DBD3 6
Metoda CRC, Cykliczna Kontrola Nadmiarowości Metoda CRC, (ang.) Cyclic Redundancy Check jest najczęściej stosowaną metodą wykrywania błędów. Standard ISO 3309. Algorytm CRC składa się z bramek XOR i przesuwających się rejestrów. Bramka XOR: XOR(0,0)=0, XOR(1,1)=0, XOR(0,1)=1, XOR(1,0)=1. Przesuwające się rejestry to tablice o odpowiedniej dla danego algorytmu długości. Przykład układu rejestrów 4-7-5 CRC-16. Uklad rejestrow 4-7-5 bity wejsciowe 7
Metoda CRC-16 Przesuwające się rejestry typu 4-7-5, to połączone bramkami XOR trzy tablice 4, 7, 5 elementowe. Przepływ bitów w algorytmie CRC: (a,b,c)<-wyjście<-[][][][]<-xor( a, w3) <- w3 <-[][][][][][][] <- XOR( b, w2) <- w2 <- [][][][][] <- XOR( c, w1) <- Wejście(w1) Wejście - to strumień bitów dla którego liczona jest wartość CRC. W funkcji XOR(, ) wartości argumentów: w1 pochodzi z Wejścia w2, w3 pochodzą z przesunięcia w rejestrach a, b, c pochodzą z Wyjścia. Gdy rejestry są wypełnione bitami ciąg bitów w rejestrach jest wartością CRC dla danego ciągu bitów. Wielomian odpowiadający układowi rejestrów 4-7-5 oznaczany jest jako: P(x) = x 16 +x 12 +x 5 + 1. 8
Wielomiany CRC Najczęściej wykorzystywane wielomiany przy obliczaniu wartości CRC. Wielomian uŝywany przez protokół HDLC: CRC-16 = x 16 + x 15 + x 2 + 1 Standard CCITT: CRC-CCITT = x 16 + x 12 + x 5 + 1 Wielomian uŝywany w standardzie Ethernet: CRC-32 =x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x+1 9
Skuteczność metody CRC Metoda CRC-16 moŝna wykryć: wszystkie pojedyncze błędy w transmisji (błędy w 1 bicie) wszystkie podwójne błędy wszystkie błędy w nieparzystej ilości bitów wszystkie błędy w bloku do 16 bitów. Metoda CRC wykrywa 99.9984 % pozostałych błędów w transmisji. Pole CRC jest jedynym polem w nagłówku ramki w którym odwrócona jest kolejność bitów. MSB (most significant bit) jest wysyłany jako pierwszy. 10
Rodzaje błędów w transmisji Najbardziej typowe błędy w transmisji: osłabienie siły transmitowanego sygnału, (ang.) attenuation nieliniowy zanik sygnału, (ang.) distortion zakłócenia sygnałami generowanymi przez urządzenia transmisyjne, sygnały tła, (ang.) noise powielanie sygnałów, (ang.) regeneration. 11