sdlc/hdlc

Protokół SDLC

Opracowany w latach siedemdziesiątych w firmie IBM protokół synchronicznego sterowania łączem danych SDLC (Synchronous Data Link Control) został zastosowany po raz pierwszy w środowisku SNA (System Network Architecture) do komunikacji z hostami przez łącza rozległe. Protokół SDLC o orientacji bitowej jest nadal stosowany w dwukierunkowej i naprzemiennej transmisji do obsługi połączeń dwupunktowych i wielopunktowych (multicast i broadcast) przez łącza stałe lub dzierżawione. Podobnie jak wiele jego późniejszych wersji, SDLC jest podstawowym protokołem w komputerowych sieciach rozległych z komutacją pakietów. Jest jednym z najważniejszych protokołów w tej klasie i nadal pozostaje podstawowym protokołem środowiska SNA dla sieci rozległych, zwłaszcza w zmodyfikowanej postaci.

Protokół SDLC o orientacji bitowej, a zwłaszcza unowocześniona wersja tego protokołu, znana jako HDLC, znalazły szerokie zastosowanie w systemach transmisji danych przez sieci rozległe. Założenia protokołu SDLC stały się również podstawą rozwoju zmodyfikowanych wersji protokołów warstwy łącza danych, takich jak: LAP-D dla sieci pakietowych, LLC w środowisku sieci LAN i protokołu QLLC, przeznaczonego do łączenia systemów SNA przez sieci X.25.

Konfiguracje sieciowe SDLC

Typowa kofiguracja łącza SDLC (Synchronous Data Link Control)

Protokół SDLC jest stosowany w sieciach rozległych o różnych topologiach z dwoma rodzajami węzłów sieciowych. Wyróżnia się dwa typy stacji sterowanych łączem SDLC: nadrzędne generujące polecenia (komendy, komunikaty) i podrzędne wysyłające odpowiedzi.
Stacja nadrzędna (primary station) jest wytypowana do zarządzania przepływem danych. Wysyła ona polecenia do stacji podrzędnych i otrzymuje od nich odpowiedzi. W przypadku pracy wielopunktowej stacja nadrzędna kontroluje proces utrzymania sesji z każdą inną aktywną w sieci stacją podrzędną.
Stacja podrzędna (secondary station) realizuje polecenia stacji nadrzędnej lecz nie odpowiada za sterowanie transmisją w łączu danych. Stacje podrzędne są okresowo odpytywane (polling) w ściśle określonej kolejności przez stację nadrzędną - w celu stwierdzenia, czy nie mają danych przeznaczonych do transmisji.

W protokole SDLC zdefiniowano cztery podstawowe metody połączeń:
point to point dla połączeń dwupunktowych, w których stacja nadrzędna jest bezpośrednio połączona z podrzędną;
multipoint dla połączeń wielopunktowych, w których stacja nadrzędna jest połączona z wieloma podrzędnymi;
loop, stosowana w topologii pierścieniowej. Jedna stacja nadrzędna jest połączona z wieloma podrzędnymi za pomocą pętli, przy czym informacja jest przekazywana od jednej stacji do drugiej;
hub go-ahead. Nietypowa topologia sieci pierścieniowej, w której stacje podrzędne są połączone szeregowo, zawsze przez stację nadrzędną, zwykle funkcjonującą jako hub lub procesor sieciowy.

Ramki protokołu SDLC

 

Struktura pola sterującego ramki SDLC (podstawowej)

ąą

Transmisja w protokole SDLC polega na przesyłaniu paczek bitów o określonej strukturze, zwanych ramkami. Struktura ramki zawiera sekwencje synchronizacyjne, adresowe i sterujące oraz pole informacyjne. Ramka zaczyna się i kończy ustaloną sekwencją synchronizacji blokowej (flags), przy czym pojedyncza flaga może być stosowana do zakończenia pojedynczego bloku i rozpoczęcia następnego.

Ośmiobitowy znacznik flagi służy do oznaczenia początku i końca każdej ramki oraz synchronizacji blokowej. Sekwencja więcej niż 6 jedynek w polu flagi wskazuje na niepoprawne funkcjonowanie łącza, natomiast sekwencja więcej niż 15 jedynek na całkowitą bezczynność łącza telekomunikacyjnego.


W polu adresowym zwykle znajduje się adres stacji podrzędnej, który jest adresem unikatowym w sieci. W konfiguracji nierównoprawnej pole adresowe zawiera adres stacji podrzędnej, w konfiguracji równoprawnej w polu tym znajduje się adres stacji docelowej (dla komend) lub adres stacji nadawczej (dla odpowiedzi).
 

 

Format ramki SDLC (Synchronous Data Link Control)

 

Sekwencja sterująca może zawierać komendy, odpowiedzi stacji odbiorczych lub numery sekwencyjne ramek. W polu informacyjnym umieszczany jest dowolny ciąg bitów, zwykle utworzony z bajtów danych, jednak całkowicie bitowa postać informacji jest również akceptowana. Pole to występuje wyłącznie w ramce informacyjnej, nie mają go ramki nadzorcze i nie numerowane.

Ramkę zamyka sekwencja kontrolna FCS (Frame Check Sequence), najczęściej zajmująca dwa bajty (16 bitów); jeśli wymagany jest wyższy stopień protekcji, liczba bitów protekcji FCS może wzrastać oktetami. Typową funkcją stosowaną do obliczeń (i kontroli po stronie odbiorczej) jest wielomian generujący nadmiarowy kod cykliczny z kodem cyklicznym CRC (Cyclic Redundancy Code) w postaci x16+x12+x5+1.

 

Konfiguracja stacji strumieni danych protokołu SDLC

łł

Dla zapewnienia przezroczystości danych informacja o kodzie (sekwencji) flagi nie może znajdować się wewnątrz przesyłanego bloku. Kody danych i adresów o sekwencji flagi są eliminowane przez modyfikację bitową w nadajniku łącza SDLC i odwzorowane do pierwotnej postaci po stronie odbiorczej. Sposób eliminacji zwany wstawką bitową (bit stuffing), polega na ciągłym badaniu zawartości ramki między dwiema flagami i wstawianiu (wielokrotnie) dodatkowego bitu 0 po każdej sekwencji zera i pięciu jedynek. Po stronie odbiorczej zachodzi proces odwrotny, powodujący usuwanie wstawionych bitów stuffingu.

Warianty protokołu SDLC
Założenia protokołu SDLC stały się podstawą opracowania innych, bardziej wydajnych lub specjalizowanych standardów firmowanych przez różne gremia normalizacyjne i fabryczne. Do znanych należą:
HDLC (High Level Data Link Control), opublikowany przez ISO, do szybkiej transmisji danych przez sieci rozległe. Protokół jest obecnie nadrzędny w stosunku do swojego pierwowzoru - SDLC;
LAP (Link Access Procedure), zalecany przez CCITT do współpracy z systemami z komutacją pakietów X.25;
LLC (Logical Link Control), określony standardem IEEE 802.2 dla podwarstwy łącza logicznego modelu ISO/OSI w sieciach lokalnych;
QLLC (Qualified Logical Link Control) zdefiniowany przez IBM do transportowania danych przez sieci X.25.

Na potrzeby innych protokołów opracowano metodę kapsułkowania ramek SDLC w datagramach protokołu IP (Internet Protocol), co pozwala na transport tych ramek przez sieci nie pracujące w tym protokole. W nowych rozwiązaniach routerów sieciowych możliwe jest również multipleksowanie przekazów w protokole SDLC z ruchem realizowanym w innych protokołach.

Protokół HDLC

 

Różnice między protokołami bitowymi SDLC i HDLC

óżęłóżęł

Bitowo zorientowany protokół HDLC (High Level Data Link Control), który z czasem stał się nadrzędnym w odniesieniu do pierwowzoru SDLC, operuje identycznym formatem ramki i oferuje takie same funkcje podstawowe jak protokół SDLC za pomocą łączy asynchronicznych i synchronicznych (dupleksowych). Podzbiory protokołu HDLC są stosowane do sygnalizacji i kontrolowania łączy działających w sieciach ISDN, X.25 i Frame Relay. Jedyne różnice pomiędzy sieciami z protokołem SDLC i HDLC sprowadzają się do trzech zagadnień o różnym ciężarze gatunkowym.

W odróżnieniu od SDLC w protokole HDLC są możliwe trzy tryby transmisji:
normalny NRM (Normal Response Mode). Typowy tryb pracy wymagający uzyskania zezwolenia od stacji nadrzędnej przed każdorazowym rozpoczęciem sesji transmisyjnej przez stację podrzędną;
asynchroniczny ARM (Asynchronous Response Mode). Możliwa transmisja ze stacji podrzędnej bez zezwolenia (stacji nadrzędnej) pod warunkiem, że kanał nie jest zajęty;
równoprawny ABM (Asynchronous Balanced Mode). Tryb stosowany wyłącznie między stacjami uniwersalnymi (nadawcza lub odbiorcza) połączonymi dwupunktowo łączem dupleksowym. Nie wymaga zezwoleń.

 

Łącz

Ramka HDLC i łączenie stacji końcowych

łąńłąń

e HDLC można skonfigurować jako połączenie na trzy sposoby:
nierównoprawne, w którym stacja nadrzędna kontroluje każdą ze stacji podrzędnych w sieci i może ustalać ich tryb pracy;
równoprawne, w którym każda ze stacji uniwersalnych jest uprawniona do sterowania dwupunktowym łączem fizycznym istniejącym między nimi, bez konieczności uzyskiwania wzajemnych zezwoleń;
symetryczne, w którym każda ze stacji uniwersalnych może stać się stacją nadrzędną lub podrzędną, ale wyłącznie w obrębie łącza logicznego, wyróżniającego te stacje wśród wielu innych funkcjonujących w sieci z protokołem HDLC

 

by Krzysztof Pietrzak 2004

[2.Warstwa lacz danych] [IEEE 802.2] [804.5 Token Ring] [sdlc/hdlc] [bezprzewodowe 802.11] [bluetooth] [x.25] [FRame relay]