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 |
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.
W protokole SDLC zdefiniowano cztery podstawowe metody połączeń:
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).
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.
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.
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żą:
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.
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:
Łącze HDLC można skonfigurować jako połączenie na trzy sposoby:
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:
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.
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:
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.