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 ramka SYN SYN STX NAGŁÓWEK PAKIET ETX CRC SYN SYN synchronizacja synchronizacja Cyclic Redundancy Check Start of TeXt End of TeXt 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
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 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,
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,