SDLC

ITpedia

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.


Spis treści

Konfiguracje sieciowe SDLC

Typowa kofiguracja łącza SDLC (Synchronous Data Link Control)
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)
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)
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
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
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ń.
Ramka HDLC i łączenie stacji końcowych
Ramka HDLC i łączenie stacji końcowych

Łącze 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.


Protokoły LAP

Grupa protokołów pod ogólnym oznaczeniem LAP (Link Access Procedure) jest zalecana przez CCITT/ITU-T do współpracy z systemami komutacji pakietów. W zespole tych protokołów są wykorzystywane niektóre funkcje protokołów SDLC/HDLC, usprawniające funkcjonowanie w typowych zastosowaniach:

  • protokół LAP-B - pierwsza wersja LAP, przeznaczona początkowo do współpracy z sieciami pakietowymi X.25, została zastąpiona protokołem LAP-B (LAP-Balanced), wyspecjalizowanym do komunikacji dwupunktowej, co oznacza, że do identyfikacji drugiej stacji nie jest potrzebny jej adres;
  • protokół LAP-D (LAP-D channel) - przeznaczony do organizacji transmisji pakietowej przez kanał sygnalizacyjny typu D w sieciach cyfrowych ISDN. Umożliwia zestawianie kanału zwielokrotnionego i uzyskanie wielu połączeń logicznych między dwoma użytkownikami;
  • protokół LAP-F (LAP for Frame Mode Bearer Services) - zdefiniowany zaleceniem Q.922 - jest stosowany do przekazywania i przełączania ramek w sieciach pakietowych Frame Relay. LAP-F wywodzi się z modyfikacji protokołu LAP-D stosowanego w sieciach ISDN;
  • protokół LAP-M (LAP for Modems) - zgłoszony przez CCITT jako specyfikacja V.42; umożliwia grupowanie danych w pakiety, co redukuje liczbę bitów startu i stopu, powodując zwiększenie przepływności kanału o ok. 20 proc.;
  • protokół LAP-X (LAP-B Extended) - stanowi rozszerzenie protokołu LAP-B w odniesieniu do systemów terminalowych.

Najbardziej znany jest protokół LAP-B zalecany przez CCITT/ITU-T do współpracy sieci pakietowych X.25 z komutacją pakietów między urządzeniami typu DTE i DCE. Przeznaczony do komunikacji dwupunktowej w trybie asynchronicznym równoprawnym, wykorzystuje jedynie część komend i odpowiedzi pierwowzoru HDLC. Ma szereg specyficznych ograniczeń na adresację urządzeń DTE i DCE, pomimo całkowitej zgodności formatu ramki transmisyjnej z protokołami SDLC i HDLC. Umożliwia jednak potwierdzenie, że przesyłany pakiet dotarł do celu przeznaczenia.


Protokół LLC (IEEE 802.2)

Sterowanie łączem logicznym LLC (IEEE 802.2)
Sterowanie łączem logicznym LLC (IEEE 802.2)

Rozwiązania przyjęte w warstwie sterowania łączem logicznym LLC (Logical Link Control) określają sposób komunikacji między stacjami (systemami) w sieci LAN. Warstwa łącza ma dwie podwarstwy: sterowania dostępem do medium MAC (Medium Access Control) i sterowania łączem logicznym LLC. Protokół sterowania łączem logicznym LLC - określony specyfikacją IEEE 802.2 - jest szczególnie popularny w środowisku sieciowym LAN, gdzie zachodzi potrzeba współdziałania z wieloma innymi protokołami, takimi jak: IEEE 802.3 (CSMA/CD - Ethernet), IEEE 802.4 (magistrala Token Bus) i IEEE 802.5 (pierścień Token Ring).

Protokół podwarstwy LLC realizuje trzy typy usług serwisowych:

  • LLC Type 1, LLC-1 (unacknowledged connectionless) - usługi bezpołączeniowe i bez potwierdzeń. Najczęściej stosowana usługa komunikacyjna w sieciach LAN, w której wymiana danych następuje bez ustalenia połączenia między stacjami. Przesyłana ramka ma charakter datagramu, tj. zawiera wszystkie niezbędne informacje do odnalezienia adresata w sieci, a potwierdzenie dostarczenia wiadomości nie występuje na poziomie warstwy sieciowej.
  • LLC Type 2, LLC-2 (connection oriented) - usługi połączeniowe z potwierdzeniami, oparte na połączeniu logicznym między nadawcą i odbiorcą; wymagają uprzedniego ustalenia połączenia między stacjami. Istnieje gwarancja dostarczenia wiadomości wraz z kontrolą błędów.
  • LLC Type 3, LLC-3 (acknowledged connectionless) - usługi bezpołączeniowe z potwierdzeniami. Ujmują wszystkie zalety LLC-1 rozbudowane o potwierdzenia przekazywanych pakietów. Stosowane głównie w środowisku produkcyjnym do sterowania automatami, gdzie detekcja błędów i poprawny przekaz są szczególnie ważne.


Protokół QLLC

Protokół QLLC (Qualified Local Link Control) został opracowany w celu umożliwienia bardziej efektywnego transportu danych SNA (System Network Architecture) przez sieci X.25. Bezpośrednie współdziałanie dwóch typów protokołów QLLC i X.25 zastępuje szereg dotychczas funkcjonujących protokołów SNA, zapewniających transport danych przez sieci pakietowe. Ustawienie (na wartość 1) wskaźnika zwanego qualifier bit w polu GFI (General Format Identifier), znajdującego się w nagłówku warstwy pakietowej protokołu X.25, automatycznie powoduje uruchomienie współpracy z protokołem QLLC. Od tego momentu dane z SNA (i odwrotnie) są kierowane bezpośrednio przez łącze logiczne pakietów trzeciej warstwy protokołu X.25.

-
-