High-Level Data Link Control ( HDLC ) er en bit-orienteret [1] linklagsprotokol af OSI-netværksmodellen udviklet af ISO .
Den nuværende standard for HDLC er ISO 13239.
HDLC kan bruges i multi-access-forbindelser, men bruges i øjeblikket hovedsageligt i punkt-til-punkt- forbindelser ved hjælp af asynkron balanceret tilstand (ABM).
HDLC blev udviklet baseret på SDLC -Dens let modificerede underordnede protokoller - LAPB , LAPM , LAPF , LAPD blev indbygget af ITU i henholdsvis X.25 , V.42 , Frame Relay , ISDN protokolstakkene . HDLC var også grundlaget for udviklingen af rammemekanismer i PPP -protokollen , som er meget udbredt på internettet .
Hver af stationerne på hvert tidspunkt er i en af 3 logiske tilstande:
Hvis den sekundære station er i normal frakoblingstilstand (NDM), så kan den kun modtage frames efter at have modtaget en eksplicit tilladelse fra den primære. Hvis den er i Asynchronous Disconnect Mode (ADM), kan den sekundære station starte en transmission uden tilladelse.
Bruges til at overføre kontrol til en fjernkombineret station og til at udveksle parametre mellem fjernstationer.
Alle stationer har lov til at sende og modtage information. Stationer kan være i NRM-, ARM-, ABM-tilstande.
HDLC understøtter tre logiske forbindelsestilstande, som adskiller sig i rollerne for interagerende enheder:
For at sikre kompatibilitet mellem stationer, der kan ændre deres status (type), giver HDLC-protokollen 3-kanalskonfigurationer:
HDLC-rammer kan transmitteres ved hjælp af både synkrone og asynkrone forbindelser. Forbindelserne i sig selv har ikke mekanismer til at bestemme begyndelsen og slutningen af rammen; til disse formål bruges en unik bitsekvens (FD - Frame Delimiter) '01111110' (0x7E i hexadecimal ) til dette formål, placeret i begyndelsen og slutningen af hver ramme. Det unikke ved flaget er garanteret ved at bruge bitstaffing i synkrone forbindelser og bytestaffing i asynkrone. Bitstuffing - bitstuffing, her - bit 0 efter 5 på hinanden følgende bit 1. Bitstuffing virker kun under transmissionen af informationsfeltet (datafeltet) i rammen. Hvis senderen registrerer, at der er blevet transmitteret fem 1'ere i træk, indsætter den automatisk et ekstra nul i den transmitterede bitsekvens (også selvom der efter disse fem 1'ere allerede er et nul). Derfor vil sekvensen 01111110 aldrig vises i datafeltet i en ramme. Et lignende kredsløb fungerer i modtageren og udfører den modsatte funktion. Når et nul er fundet efter fem enere, fjernes det automatisk fra rammens datafelt. Ved bytestuffing bruges en escape-sekvens, her - '01111101' (0x7D i hexadecimal repræsentation ), det vil sige, at FD-byten (0x7E) i midten af rammen erstattes af en byte-sekvens (0x7D, 0x5E), og en byte (0x7D) erstattes af en bytesekvens (0x7D, 0x5D ).
Under inaktiv medie på en synkron forbindelse sendes sekvensen 0x7E ('01111110') konstant over kanalen for at opretholde bitsynkronisering. Der kan være en kombination af den sidste bit 0 i et flag og den indledende bit 0 i det næste. Inaktiv tid omtales også som interframe time fill.
HDLC-rammestruktur inklusive FD-flag:
FD flag | Adresse | kontrolfelt | Informationsfelt | FCS | FD flag |
---|---|---|---|---|---|
8 bit | multiplum af 8 bit | 8 eller 16 bit | 0 eller flere bits, multiplum af 8 | 16 bit | 8 bit |
Designet til at overføre brugerdata. Under transmissionen af informationsblokke nummereres de i overensstemmelse med glidende vinduesalgoritme. Efter at forbindelsen er etableret, begynder data og positive bekræftelser at blive transmitteret i informationsrammer. Den logiske HDLC-kanal er duplex, så datarammer og dermed positive bekræftelser kan sendes i begge retninger. Hvis der ikke er flow af informationsrammer i den modsatte retning, eller der skal sendes en negativ kvittering, så bruges kontrolrammer. Under HDLC-drift bruges et glidende vindue på 7 rammer (med en kontrolfeltstørrelse på 1 byte) eller 127 (med en kontrolfeltstørrelse på 2 byte) for at sikre transmissionspålidelighed. For at understøtte vinduesalgoritmen er der tildelt 2 felter i informationsrammerne for afsenderstationen:
Antag for nøjagtigheden, at station A sendte station B en informationsramme med nogle værdier af NA(S) og NA(R). Hvis der som reaktion på denne ramme ankommer en ramme fra station B, i hvilken nummeret på NB(S)-rammen sendt af denne station svarer til nummeret på NA(R)-rammen, der forventes af station A, så anses transmissionen for at være korrekt. Hvis station A modtager en svarramme, hvor nummeret på den sendte ramme NB(S) ikke er lig med nummeret på den forventede NA(R), så kasserer station A denne ramme og sender en negativ kvittering REJ (fra det engelske reject ) - afslag) med nummeret NA(R ). Efter at have modtaget en negativ kvittering skal station B gentage transmissionen af rammen med nummeret NA(R), samt alle rammer med højere tal, som den allerede har sendt ved hjælp af skydevinduemekanismen.
I-frames indeholder også P/F ( poll/final ) bit. I NRM-tilstand bruger masteren P-bitten til at polle, slaven bruger F-bitten i svarets sidste I-frame. I ARM- og ABM-tilstande bruges P/F-bittene til at fremtvinge svaret.
Hold/
Svar |
Beskrivelse | Format ex. felter
8…7…6…5…4…3…2…1…. |
---|---|---|
C/R | Brugerdata | .-N(R)-… P/F….-N(S)-..0 |
Bruges til at kontrollere strømmen af transmissionsfejl. Kontrolrammer transmitterer kommandoer og svar i sammenhæng med en etableret logisk forbindelse, herunder anmodninger om at gentransmittere korrupte informationsblokke:
Klar til at modtage (RR)
Ikke klar til at modtage (RNR)
Afvisning (REJ)
Selektiv afvisning (SREJ)
Navn | Hold/
Svar |
Beskrivelse | info | Format ex. felter
8…7…6…5…4…3…2…1…. |
---|---|---|---|---|
Klar til at modtage (RR) | C/R | positiv kvittering | Klar til at modtage I-frame | .-N(R)-… P/F…0…0…0…1 |
Ikke klar til at modtage (RNR) | C/R | positiv kvittering | Ikke klar til at modtage | .-N(R)-… P/F…0…1…0…1 |
Afvisning (REJ) | C/R | Negativ kvittering | Gentag N rammer | .-N(R)-… P/F…1…0…1…0 |
Selektiv afvisning (SREJ) | C/R | Negativ kvittering | Gentag 1 ramme | .-N(R)-… P/F…1…1…0…1 |
U-frames identificeres ved de to mindst signifikante bit sat til 1. Sammen med P/F flaget efterlader dette således 5 bits for rammetypen. Fordi der er færre end 32 værdier, har nogle rammetyper forskellige betydninger, afhængigt af om de sendes som en anmodning eller som et svar. Så forbindelsen mellem DISC (disconnect)-kommandoen og RD (request disconnect)-svaret er klar, men årsagerne til, at SARM -kommandoen og DM - svaret har den samme digitale værdi, er ikke klare.[ til hvem? ] .
U-rammer er beregnet til at etablere og bryde en logisk forbindelse, samt informere om fejl.
M-feltet af unummererede rammer indeholder koder, der definerer typen af kommandoer, der anvendes af to knudepunkter under forbindelsesetableringsfasen (f.eks. SABME, UA, REST).
Navn | Hold/
Svar |
Beskrivelse | info | Format ex. felter
8…7…6…5…4…3…2…1…. |
---|---|---|---|---|
Indstil normal SNRM- responstilstand | C | Indstil tilstand | ..1…0…0…P…1…1…0…1 | |
Indstil udvidet normal responstilstand SNRME | C | Indstil tilstand | ..1…1…0…P…1…1…1…1 | |
Indstil SARM asynkron responstilstand | C | Indstil tilstand | ..0…0…0..P/F..1…1…0…1 | |
Indstil udvidet SARME asynkron responstilstand | C | Indstil tilstand | ..0…1…0…P..1…1…1…1 | |
Indstil asynkron SABM balanceret tilstand | C | Indstil tilstand | ..0…0…1..P/F..1…1…1…1 | |
Indstil SABME udvidet asynkron balanceret tilstand | C | Indstil tilstand | ..0…1…1…P…1…1…1…1 | |
Indstil SIM -initieringstilstand | C | Start linjeovervågningsfunktionen i den adresserede station | ..0…0…0..P/F..0…1…1…1 | |
Afbryd DISC- forbindelsen | C | Bryd logisk forbindelse | ..0…1…0..P/F..0…0…1…1 | |
Unummereret UA - bekræftelse | R | Kvittering for modtagelse af en af kommandoerne til indstilling af tilstand | ..0…1…0….F..0…0…1…1 | |
DM -afbrydelsestilstand | R | Logtilstandsindikation. adskillelse | ||
RD -afbrydelsesanmodning | R | Svar på DISC-kommandoen | ..0…1…0..P/F..0…0…1…1 | |
RIM initialiseringsanmodning | R | Initialisering påkrævet | SIM-kommandoanmodning | |
Unummereret UI- oplysninger | C/R | Bruges til at udveksle kontroloplysninger | ..0…0…0..P/F..0…0…1…1 | |
Unummereret UP- afstemning | C | Bruges til at anmode om kontroloplysninger | ..0…0…1..P….0…0…1…1 | |
Genstart af RSET- tællere | C | Brug genopretning | Nulstiller N(R), N(S) | ..1…0…0..P….1…1…1…1 |
XID -statusudveksling | C/R | Brug for at forespørge/overføre status | ..1…0…1..P/F..1…1…1…1 | |
Test _ | C/R | Udveksling af identiske inf. testfelter | ..1…1…1..P/F..0…0…1…1 | |
FRMR Frame Rejection | C/R | Ugyldig rammemeddelelse |
UI, XID, TEST rammer indeholder nyttige data og kan bruges både som kommandoer og som svar.
TCP / IP-protokoller efter lag af OSI-modellen | Grundlæggende|
---|---|
Fysisk | |
kanaliseret | |
netværk | |
Transportere | |
session | |
Repræsentation | |
Anvendt | |
Andet anvendt | |
Liste over TCP- og UDP-porte |