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

Podobne dokumenty