SIECI1.pdf

(262 KB) Pobierz
mmmm
SIECI LAN ­ Pakiety, ramki, bł ę dy
PAKIETY
Pakiet, to blok danych, np. 1000 bajtów [B]. W sieciach komputerowych przyjmuje się 
jako zasadę, że dane przesyła się małymi porcjami, w przeciwieństwie do innych sieci, 
gdzie jeszcze występuje przesyłanie ciągłe.
Są dwa powody pakietyzacji:
1. Równoprawny dostęp do medium wszystkich użytkowników
2. Szybka transmisja dzięki ponawianiu tylko nielicznych błędnych pakietów
Ad 1. Dostęp jest losowany, np. co 1 mikrosekunda. W dłuższym okresie czasu wszyscy 
uzyskują więc jednakowy odcinek czasu do pracy, tym mniejszy, im jest ich więcej.
Ad 2. Poprawia się tylko nieliczne pakiety, w których są błędy. Dzięki temu efektywny 
czas transmisji jest krótszy, niż w przypadku transmisji ciągłej, kiedy jeden błąd wymaga 
ponownego przesłania całego materiału, niekiedy nawet wielokrotnego. 
MULTIPLEKSACJA
Sieć, dzięki pakietom umożliwia dostęp wielu nadawcom do wspólnego łącza w drodze 
tzw. multipleksacji i demultipleksacji, czyli wydzielania kolejno krótkich przedziałów 
czasu dla poszczególnych użytkowników ­ rysunek.
1
2
MULTIPLEKSER
.
N
FLAGA
NAGŁÓWEK
DANE
CRC
Rys.1. Multiplekser i ramka
RAMKI
Ramka, to oznakowany pakiet w konkretnej technice sieciowej. Zawiera m.in. flagę, czyli 
porcję  bitów   synchronizacji   101010...,   nagłówek   obejmujący   m.in.   adresy   nadawcy   i 
odbiorcy, właściwy blok danych (payload) oraz na końcu blok kontroli błędów, tzw. CRC.
STUFFING
  W transmisji ciągłej, np. RS­232, stosuje się znaki początku i końca poszczególnych 
bajtów   (start­stop).   Nie   stosuje   się  jednak   standardowych   znaków   początku   i   końca 
transmisji. Nadawcy mogą się umówić, że znakami takimi będą soh i eot, co oznacza 
start of header oraz end of transmission. Jesliby jednak podobne zgrupowanie znaków 
wystąpiło w przesyłanym tekście, mogłoby to zakłócić transmisję. Aby zapobiec takiemu 
164065579.001.png
zdarzeniu   stosuje   się  stuffing,   czyli   rozpychanie   bajtów.   Polega   ono   na   dodaniu 
specjalnego znaku, np. esc (escape). Gdy wśród danych wystąpi którykolwiek z trzech 
znaków soh, eot lub esc, komputer nadawcy wstawia znak esc i zastępuje soh lub eot 
także przez esc wraz z innym znakiem, np. jeśli mamy:
dane     esc dane soh dane eot...
to po korekcji otrzymujemy: esc z dane esc x dane esc y ...
BŁĘDY 
Błędy w transmisji binarnej polegają na przypadkowej zamianie 1 w 0 lub odwrotnie. 
Źródłem błędów są wszechobecne szumy oraz zakłócenia powodowane przez innych 
użytkowników   sieci   lub   przez  źródła   elektryczne   zewnętrzne,   jak   samochody, 
mikrofalówki   itp.   Poważniejsze   błędy   mogą  polegać  na   gubieniu   całych   pakietów 
wskutek przekłamań w sterowaniu lub nawet przyjmowaniu szumów za informacje.
WYKRYWANIE BŁĘDÓW
Znane są co najmniej trzy metody wykrywania
­ bity parzystości
­ suma kontrolna
­ kod cykliczny CRC
Darujemy sobie opis dwu pierwszych metod, jako co raz rzadziej stosowanych.
Metoda CRC (cyclic redundancy check) składa się z następujących czynności:
1. Wszystkie komputery w danej sieci mają przyporządkowany wielomian kodowy, 
np. P(x)=1+x 5 +x 12 +x 16 ; odpowiada mu liczba: 1000100000010001
2. Nadawca dokonuje podziału zawartości pakietu przez wielomian P(x) i resztę   z 
podziału wprowadza do końcowego pola ramki jako CRC (zwykle 4B lub 8B)
3. Odbiorca dokonuje tego samego dzielenia w stosunku do pakietu odebranego
4. Jeśli reszta z podziału różni się od CRC, oznacza to błąd i odbiorca nie wysyła 
wówczas potwierdzenia ACK (acknowledgment)
5. Wtedy nadawca musi ponowić emisję (czasem kilka razy) 
6. W przypadku otrzymania ACK nie ponawia, tylko wysyła kolejny pakiet. 
Istotą algorytmu CRC jest kod cykliczny, który, jeśli jest odpowiednio długi (wykładnik 
potęgi P(x), tu 16), umożliwia bezbłędne wykrycie dostatecznie dużej liczby błędów (tu 
8), w tym błędów grupowych. Zaletą CRC jest prosta realizacja fizyczna. Odbywa się za 
pomocą łańcucha przerzutników RS, tzw. rejestru przesuwnego, rys.2
WEJŚCIE
Rys.2. Schemat układu do wyliczania CRC według wielomianu P(x)=1+x 5 +x 12 +x 16
Ćwiczenia
1. Co to są błędy grupowe i jak się osłabia ich oddziaływanie?
2. Czy rozpychanie bajtów jest stosowane do CRC?
3. Napisz program, który będzie realizował czynności opisane schematem rys.2 
164065579.002.png
Zgłoś jeśli naruszono regulamin