SieciKomp-06b-KontrolaBledow [tryb zgodności]
Transkrypt
SieciKomp-06b-KontrolaBledow [tryb zgodności]
Sieci Komputerowe Mechanizmy kontroli błędów w sieciach dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole [email protected] 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) przesłany ciąg bitów to dla znaku 0 1 0 1 0 1 0 bit parzystości = 1, 10101010 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: xocd Wartość sumy kontrolnej: 786F + 6364 = 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 ⊗ ⊗ ⊗ bity wejsciowe CRC-16. Uklad rejestrow 4-7-5 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) = x16 +x12 +x5 + 1. 8 Wielomiany CRC Najczęściej wykorzystywane wielomiany przy obliczaniu wartości CRC. Wielomian uŜywany przez protokół HDLC: CRC-16 = x16 + x15 + x2 + 1 Standard CCITT: CRC-CCITT = x16 + x12 + x5 + 1 Wielomian uŜywany w standardzie Ethernet: CRC-32 =x32 + x26 + x23 + x22 + x16 + x12 + x11+ x10 + x8 + x7 + x5 + x4 + x2 + 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