Protokół HDLC
Łącza synchroniczne pozwalają na przesyłanie strumieni bitów. Jednak w przypadku sieci komputerowych ważne jest zachowanie podziału strumienia na bajty, a także zachowanie podziału ciągu bajtów na pakiety. Prosty protokół jakim jest HDLC umożliwia zachowanie takiego właśnie podziału. Do zaznaczenia początku i końca pakietu danych służy ciąg bitów 01111110. Jest to specjalny znacznik (ang. flag), który nie może pojawić się wewnątrz pakietu. Dzięki niemu odbiornik ma pewność, że następujące po nim bity są kolejno pierwszym, drugim, itd. bajtem przesyłanych danych. Pojedynczy znacznik HDLC może być jednocześnie końcem jednego pakietu i początkiem kolejnego. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ponieważ ciąg bitów 01111110 jest zarezerwowany, dlatego trzeba odpowiednio zmodyfikować przesyłane dane, aby nie pojawił się on wewnątrz pakietu i nie został błędnie zinterpretowany. Dlatego za każdym razem, gdy w strumieniu danych pojawi się pod rząd 5 jedynek nadajnik wstawia po nich dodatkowe zero. Odbiornik z kolei po odebraniu 5 kolejnych jedynek pomija następujące po nich zero. W ten sposób przesyłany ciąg bitów zostaje odtworzony. Taka operacja nosi nazwę bit stuffing. Dodatkowo żeby zapewnić integralność przesyłanych danych na końcu pakietu jest dodawana 16-bitowa suma kontrolna CRC16. Na poniższym przykładzie widać, jak zmienia się ciąg bitów w przypadku zastosowania protokołu HDLC. Trzybajtowy pakiet 0x15 0xff 0x3e:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pakiet HDLC ze znacznikami i bit stuffingiem:
Rys. 2· Trzybajtowy pakiet (0x15 0xff 0x3e) przed i po zastosowaniu HDLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jeśli przez linię transmisyjną nie mają być przesyłane żadne dane, wówczas nadajnik powinien nieprzerwanie wysyłać sekwencję 01111110. Wysłanie ciągu samych jedynek służy do przerwania tramisji i zakomunikowania drugiej stronie, że wystąpił błąd. |