Warstwa łącza danych
Plan prezentacji
Rozległe i lokalne sieci
komputerowe
Funkcje warstwy łącza danych
Formatowanie ramek
Detekcja błędów
Błędy ramkowania
Protokoły warstwy łącza danych
Sieci rozległe i lokalne
Rozległe sieci komputerowe (Wide Area
Network) – zbiory autonomicznych
komputerów i urządzeń końcowych
połączonych podsiecią komunikacyjną.
Najważniejsze standardy w sieciach
dotyczą:
mediów komunikacyjnych (łącza, modemy,
kodeki, itd.),
styków sprzętowych (interfejsów fizycznych),
protokołów warstwy łącza danych,
architektur sieciowych.
Sieci rozległe i lokalne - różnice
opóźnienia propagacyjne:
większe w sieciach rozległych,
prędkość transmisji:
niższe w sieciach rozległych,
częstość występowania błędów,
większa w sieciach rozległych,
niezawodność,
mniejsza w sieciach rozległych,
etapowość transmisji,
wieloetapowość w sieciach rozległych,
koszty transmisji:
zmienne i zależne od wolumenu wiadomości w sieciach rozległych,
tryb transmisji:
punkt – punkt w sieciach rozległych; rozgłoszenie w lokalnych
Warstwa łącza danych
(Data Link Layer)
zbiór mechanizmów pozwalających na
niezawodną transmisję pakietów w
kanale transmisyjnym:
ramkowanie (Framing):
ustalenie początku i końca pakietu,
detekcja błędów (Error Detection):
ustalenie kiedy pakiet zawiera błąd,
naprawa (korekcja) błędów (Error Recovery)
naprawa w warstwie łącza danych,
naprawa w warstwach wyższych
Ramkowanie
0101000111000111010100001111101001001010100
- gdzie są dane?
- trzy podejścia do zadania:
- transmisja zorientowana znakowo (character oriented framing),
- zliczanie bitów (kontrola długości) – stała długość ramki,
- protokoły zorientowane bitowo (bit oriented protocols)
Transmisja zorientowana
znakowo
SYN SYN STX NAGŁÓWEK PAKIET ETX CRC SYN SYN
synchronizacja
synchronizacja
Start of TeXt
End of TeXt
Cyclic Redundancy Check
ramka
- standardy kodów (ASCII, EBCDIC) zawierają specjalne znaki dla potrzeb
komunikacji (nie mogą występować jako dane),
- rozpoczęcie i zakończenie transmisji bazuje na znakach kodu,
- długość ramki jest wielokrotnością długości znaku,
- transmisja zależy od kodu,
- problemy z transmisją danych binarnych
Zliczanie bitów
- jedno z pól nagłówka jest wykorzystywane do zapisania długości ramki
(w bajtach lub bitach),
- odbiornik zlicza bity aż do końca ramki po to, aby zidentyfikować
początek kolejnej ramki,
- odbiornik odczytuje odpowiednie pole nagłówka kolejnego pakietu
w celu znalezienia długości pakietu,
- długość pola nagłówka do zapisywania długości ramki zależy od długości
ramki,
-
- ograniczona długość nagłówka (długość pola nagłówka vs. długość
pakietu,
- problemy:
- trudności z ochroną przed błędami,
- niezbędna jest resynchronizacja po tym, jak wystąpi błąd w zliczaniu
bitów
1
log
max
2
l
Jednostki danych o stałej
długości
- np. komórki ATM (Asynchronous Transfer Mode):
- każda komórka ma stałą długość – 53 bajty,
- problemy z transmisją:
- długości pakietów (np. IP over ATM) nie są wielokrotnością długości
komórek (konieczność uzupełniania końcówek pakietów),
- synchronizacja,
- złożone zadania segmentacji (segmentation) i składania pakietów
(re-assembly) przy dużych szybkościach transmisji.
Protokoły zorientowane bitowo
(flagi)
- flaga – unikalny ciąg bitów do wskazywania początku i końca ramki (pakietu, itd.),
- jedna flaga może być używana do oznaczenia zarówno początku, jak i końca
jednostki danych,
- jako flaga może być użyty dowolny ciąg bitów, ale taki który nie wystąpi w ciągu
danych,
- standardowe protokoły wykorzystują:
- jako flagę ciąg binarny: 01111110,
- ciąg „jedynek binarnych” wykorzystywany jest dla oznaczenia stanu jałowego,
- przykłady użycia - protokoły:
- SDLC (Synchronous Data Link Control),
- HDLC (High Data level Link Control procedure),
Wtrącanie i wytrącanie bitów
- przykładowy ciąg danych binarnych (oryginalna wiadomość):
111111100010110100011111111111110000011010101000111110
- „0” jest w nadajniku „wtrącane” (stuffing) po każdych pięciu kolejnych „1”:
0 0 0 0
111111100010110100011111111111110000011010101000111110
- potrzeba „wtrącania” „0” po wystąpieniu ciągu: 0111110:
0111110111 - bez „wtrącania” 0111110111
011111111
- po „wtrąceniu”
0111110111
Wtrącanie i wytrącanie bitów
- reguła w odbiorniku:
- jeżeli „0” poprzedzone jest ciągiem „011111”, to „0” jest usuwane,
- jeżeli „0” jest poprzedzone ciągiem „0111111”, to jest to ostatni bit flagi,
optymalna długość flagi:
- jeżeli pakiety są długie, to lepsze są długie flagi (zmniejszana liczba
niezbędnych „wtrąceń”),
- jeżeli pakiety są krótkie, to krótkie flagi redukują nadmiarowość
wprowadzaną przez konieczne (do transmisji) flagi,
-optymalna długość flagi:
)
_
(
log
2
pakietu
dlugosc
f
opt
Błędy ramkowania -
podsumowanie
wszystkie techniki ramkowania są wrażliwe na błędy:
błąd w polu długości pakietu (w nagłówku) może doprowadzić
do zakończenia zliczania w złym miejscu, co z kolei powoduje
błędy w identyfikacji pola długości kolejnego pakietu,
błędy w znakach STX, ETX, itd. powoduje podobne – jak wyżej –
konsekwencje,
błąd we fladze, lub „wykreowanie” flagi przez wystąpienie błędu
może powodować stratę ramki, lub pojawienie się nowej,
najmniej wrażliwą na błędy jest transmisja zorientowana
bitowo:
wcześniej, czy później pojawi się flaga kończąca kolejny pakiet,
wystąpienie błędu powoduje - w najgorszym przypadku -
powstanie błędnego pakietu,
błędny pakiet jest eliminowany przez odpowiednią, użytą
technikę detekcji błędów,