Kontroll på høyt nivå av datalink - High-Level Data Link Control

Hdlc ( HDLC ) er en bit-orientert kodetransparent synkron datalinknivået protokoll som er utviklet av den internasjonale standardiseringsorganisasjonen (ISO). Standarden for HDLC er ISO / IEC 13239: 2002.

HDLC gir både tilkoblingsorientert og tilkoblingsfri service .

HDLC kan brukes til punkt-til-multipunkt-tilkoblinger via de originale master-slave-modusene Normal Response Mode (NRM) og Asynchronous Response Mode (ARM), men de brukes nå sjelden; den brukes nå nesten utelukkende til å koble en enhet til en annen , ved hjelp av Asynchronous Balanced Mode (ABM).

Historie

HDLC er basert på IBM 's SDLC -protokollen, som er laget 2 protokollen for IBM Systems Network Architecture (SNA). Den ble utvidet og standardisert av ITU som LAP (Link Access Procedure), mens ANSI navngitt den i hovedsak identiske versjonen ADCCP .

HDLC-spesifikasjonen spesifiserer ikke hele semantikken til rammefeltene. Dette gjør at andre fullt kompatible standarder kan avledes fra den, og derivater har siden vist seg i utallige standarder. Den ble vedtatt i X.25- protokollstakken som LAPB , i V.42- protokollen som LAPM , i Frame Relay- protokollstakken som LAPF og i ISDN- protokollstakken som LAPD.

De opprinnelige ISO-standardene for HDLC er følgende:

  • ISO 3309-1979 - Rammestruktur
  • ISO 4335-1979 - Prosedyreelementer
  • ISO 6159-1980 - Ubalanserte prosedyreklasser
  • ISO 6256-1981 - Balanserte prosedyreklasser

ISO / IEC 13239: 2002, den gjeldende standarden, erstattet alle disse spesifikasjonene.

HDLC var inspirasjonen til IEEE 802.2 LLC- protokollen, og det er grunnlaget for innrammingsmekanismen som brukes med PPP på synkrone linjer, som brukes av mange servere for å koble til et WAN , oftest Internett .

En lignende versjon brukes som kontrollkanal for E-carrier (E1) og SONET flerkanals telefonlinjer. Cisco HDLC bruker HDLC-innrammingsteknikker på lavt nivå, men legger til et protokollfelt til standard HDLC-topptekst.

Innramming

HDLC- rammer kan overføres via synkrone eller asynkrone serielle kommunikasjonskoblinger . Disse lenkene har ingen mekanisme for å markere begynnelsen eller slutten av en ramme, så begynnelsen og slutten av hver ramme må identifiseres. Dette gjøres ved å bruke en unik sekvens av bits som en rammeavgrenser, eller flagge , og kode dataene for å sikre at flaggsekvensen aldri blir sett i en ramme. Hver ramme begynner og slutter med en rammeavgrenser. En rammeavgrensning på slutten av en ramme kan også markere starten på neste ramme.

På både synkrone og asynkrone lenker er flaggsekvensen binær "01111110", eller heksadesimal 0x7E, men detaljene er ganske forskjellige.

Synkron innramming

Fordi en flaggsekvens består av seks påfølgende 1-bits, blir andre data kodet for å sikre at den aldri inneholder mer enn fem 1-bits på rad. Dette gjøres ved bitfylling : når som helst fem påfølgende 1-bits vises i de overførte dataene, blir dataene satt på pause og en 0-bit overføres.

Mottakerenheten vet at dette gjøres, og etter å ha sett fem 1-bits på rad fjernes en påfølgende 0-bit ut av mottatte data. Hvis den sjette biten i stedet er 1, er dette enten et flagg (hvis den syvende biten er 0), eller en feil (hvis den syvende biten er 1). I sistnevnte tilfelle avbrytes rammemottaksprosedyren for å starte på nytt når et flagg ses.

Denne bitstoppingen tjener et andre formål, det å sikre et tilstrekkelig antall signaloverganger. På synkrone lenker er dataene NRZI- kodet, slik at en 0-bit overføres som en endring i signalet på linjen, og en 1-bit sendes som ingen endring. Således tilveiebringer hver 0-bit en mulighet for en mottakende modem for å synkronisere klokken ved hjelp av en faselåst sløyfe . Hvis det er for mange 1-bits på rad, kan mottakeren miste tellingen. Bitfylling gir minimum en overgang per seks bit ganger under overføring av data, og en overgang per syv bit ganger under overføring av et flagg.

Når ingen rammer overføres på en enkel- eller full-dupleks synkron lenke, overføres en rammeavgrenser kontinuerlig på lenken. Dette genererer en av to kontinuerlige bølgeformer, avhengig av starttilstanden:

NrziEncodedFlags.png

HDLC-spesifikasjonen gjør det mulig å dele 0-bit på slutten av en rammeavgrenser med starten på neste rammeavgrenser, dvs. "011111101111110". Noe maskinvare støtter ikke dette.

For kommunikasjon med halv dupleks eller multidråper, hvor flere sendere deler en linje, vil en mottaker på linjen se kontinuerlig tomgang 1-bits i inter-frame-perioden når ingen sender er aktiv.

HDLC overfører byte med data med minst signifikant bit først (ikke forveksles med liten endian- orden, som refererer til bytebestilling innen et flerbytefelt).

Asynkron innramming

Når du bruker asynkron seriell kommunikasjon som standard RS-232 serielle porter , er bitfylling av synkron stil upassende av flere grunner:

  • Bitfylling er ikke nødvendig for å sikre et tilstrekkelig antall overganger, ettersom start- og stoppbiter sørger for at,
  • Fordi dataene er NRZ- kodet for overføring, i stedet for NRZI-kodet, er den kodede bølgeformen annerledes,
  • RS-232 sender bits i grupper på 8, noe som gjør det enkelt å legge til enkeltbiter, og
  • Av samme grunn er det bare nødvendig å spesielt kode flagg bytes ; det er ikke nødvendig å bekymre seg for at bitmønsteret strekker seg over flere byte.

I stedet bruker asynkron innramming "kontroll-oktett-gjennomsiktighet", også kalt " byte-fylling " eller "oktett-fylling". Rammegrenseoktet er 01111110, (0x7E i heksadesimal notasjon). En "kontroll flukt oktett ", har verdien 0x7D (bit sekvens '10111110', som RS-232 overfører de minst signifikante bit først). Hvis en av disse to oktettene vises i de overførte dataene, sendes en fluktoktet, etterfulgt av den opprinnelige dataoktet med bit 5 invertert. For eksempel vil byten 0x7E bli overført som 0x7D 0x5E ("10111110 01111010"). Andre reserverte oktettverdier (som XON eller XOFF ) kan unnslippes på samme måte om nødvendig.

"Avbryt sekvensen" 0x7D 0x7E avslutter en pakke med en ufullstendig byte-stuff-sekvens, og tvinger mottakeren til å oppdage en feil. Dette kan brukes til å avbryte pakkeoverføring uten sjanse for at den delvise pakken tolkes som gyldig av mottakeren.

Struktur

Innholdet i en HDLC-ramme er vist i følgende tabell:

Flagg Adresse Kontroll Informasjon FCS Flagg
8 biter 8 eller flere biter 8 eller 16 bits Variabel lengde, 8 × n bits 16 eller 32 bits 8 biter

Merk at sluttflagget til en ramme kan være (men ikke trenger å være) begynnelsesflagget til neste ramme.

Data sendes vanligvis i multipler på 8 bits, men bare noen varianter krever dette; andre tillater teoretisk datajusteringer på andre enn 8-biters grenser.

Den ramme-kontrollsekvens (FCS) er en 16-bit CRC-CCITT eller en 32-bit CRC-32 beregnet over adressen, styre- og informasjonsfelt. Det tilveiebringer et middel som mottakeren kan oppdage feil som kan ha blitt indusert under overføring av rammen, slik som tapte biter, vendt biter og fremmede biter. Imidlertid, gitt at algoritmene som brukes til å beregne FCS er slik at sannsynligheten for at visse typer overføringsfeil blir uoppdaget øker med lengden på dataene som blir kontrollert for feil, kan FCS implisitt begrense den praktiske størrelsen på rammen.

Hvis mottakerens beregning av FCS ikke samsvarer med avsenderens, noe som indikerer at rammen inneholder feil, kan mottakeren enten sende en negativ kvitteringspakke til avsenderen, eller sende ingenting. Etter at du enten har mottatt en negativ bekreftelsespakke eller tidsbestemt ventet på en positiv kvitteringspakke, kan avsenderen sende den mislykkede rammen på nytt.

FCS ble implementert fordi mange tidlige kommunikasjonskoblinger hadde en relativt høy bitfeilrate , og FCS kunne lett beregnes med enkle, raske kretser eller programvare. Mer effektive ordninger for korrigering av fremoverfeil blir nå mye brukt av andre protokoller.

Typer stasjoner (datamaskiner) og dataoverføringsmodus

Synchronous Data Link Control ( SDLC ) ble opprinnelig designet for å koble en datamaskin med flere eksterne enheter via en multidropbuss . Den opprinnelige "normale responsmodusen" er en master-slave-modus der datamaskinen (eller primærterminalen ) gir hver perifer ( sekundærterminal ) tillatelse til å snakke i sin tur. Fordi all kommunikasjon er enten til eller fra den primære terminalen, inkluderer rammer bare en adresse, den til den sekundære terminalen; den primære terminalen er ikke tildelt en adresse. Det skilles mellom kommandoer sendt av primær til sekundær, og svar sendt av sekundær til primær, men dette gjenspeiles ikke i kodingen; kommandoer og svar kan ikke skilles fra, bortsett fra forskjellen i retningen de sendes i.

Normal svarmodus gjør at sekundær-til-primær-lenken kan deles uten uenighet , fordi den har den primære gi sekundærene tillatelse til å overføre en om gangen. Det tillater også drift over kommunikasjonskoblinger med halv dupleks , så lenge den primære er klar over at den ikke kan overføre når den har gitt tillatelse til en sekundær.

Asynkron responsmodus er et HDLC-tillegg for bruk over full-duplekslenker . Mens det primære / sekundære skillet beholdes, lar det sekundæren overføre når som helst. Dermed må det være en annen mekanisme for å sikre at flere sekundærer ikke prøver å overføre samtidig (eller bare en sekundær).

Asynkron balansert modus legger til konseptet med en kombinert terminal som kan fungere som både en primær og en sekundær. Dessverre har denne driftsmåten noen implementeringsfinesser. Selv om de vanligste rammene som sendes ikke bryr seg om de er i en kommando eller svarramme, gjør det noen viktige (spesielt de mest numrerte rammene, og hvilken som helst ramme med P / F-bit sett), og adressefeltet til en mottatt ramme må bli undersøkt for å avgjøre om den inneholder en kommando (den mottatte adressen er vår) eller et svar (den mottatte adressen er den for den andre terminalen).

Dette betyr at adressefeltet ikke er valgfritt, selv på punkt-til-punkt-lenker der det ikke er behov for å entydiggjøre den jevnaldrende som blir snakket med. Noen HDLC-varianter utvider adressefeltet til å omfatte både kilde- og destinasjonsadresser, eller en eksplisitt kommando / svarbit.

HDLC-operasjoner og rammetyper

Tre grunnleggende typer HDLC-rammer kan skilles ut:

  • Informasjonsrammer, eller I-rammer , transporterer brukerdata fra nettverkslaget. De kan også inkludere informasjon om flyt og feilkontroll på data.
  • Tilsynsrammer, eller S-rammer , brukes til flyt- og feilkontroll hver gang piggybacking er umulig eller upassende, for eksempel når en stasjon ikke har data å sende. S-rammer har ikke informasjonsfelt.
  • Unummererte rammer, eller U-rammer , brukes til forskjellige formål, inkludert lenkehåndtering. Noen U-rammer inneholder et informasjonsfelt, avhengig av type.

Kontrollfelt

Det generelle formatet for kontrollfeltet er:

HDLC-kontrollfelt
7 6 5 4 3 2 1 0
N (R)
Mottak sekvensnr.
P / F N (S)
Send sekvensnr.
0 Jeg-ramme
N (R)
Mottak sekvensnr.
P / F type 0 1 S-ramme
type P / F type 1 1 U-ramme

Det er også utvidede (to-byte) former for I- og S-rammer. Igjen sendes den minst betydningsfulle biten (lengst til høyre i denne tabellen) først.

Utvidede HDLC-kontrollfelt
15 14 1. 3 12 11 10 9 8 7 6 5 4 3 2 1 0
N (R)
Mottak sekvensnr.
P / F N (S)
Send sekvensnr.
0 Utvidet I-ramme
N (R)
Mottak sekvensnr.
P / F 0 0 0 0 type 0 1 Utvidet S-ramme

P / F-bit

Poll / Final er en enkeltbit med to navn. Det kalles Poll når en del av en kommando (angitt av den primære stasjonen for å få svar fra en sekundær stasjon), og Final når en del av et svar (angitt av den sekundære stasjonen for å indikere et svar eller slutten av overføring). I alle andre tilfeller er biten klar.

Biten brukes som et token som føres frem og tilbake mellom stasjonene. Bare ett token skal eksistere om gangen. Sekundæren sender bare en finale når den har mottatt en avstemning fra den primære. Primæren sender bare en avstemning når den har mottatt en Final tilbake fra sekundæren, eller etter en tidsavbrudd som indikerer at biten har gått tapt.

  • I NRM gir besittelse av avstemningstoken også adressert sekundær tillatelse til å overføre. Sekundæren setter F-biten i sin siste svarramme for å gi opp tillatelse til å overføre. (Det tilsvarer ordet "Over" i radio stemme prosedyre .)
  • I ARM og ABM tvinger P-biten et svar. I disse modusene trenger ikke sekundæret å vente på at en avstemning skal overføres, så den siste biten kan inkluderes i det første svaret etter avstemningen.
  • Hvis det ikke mottas noe svar på en P-bit i en rimelig tidsperiode, avvikler primærstasjonen og sender P igjen.
  • P / F-biten er kjernen i det grunnleggende rettsendingsskjemaet for sjekkpunktet som kreves for å implementere HDLC; alle andre varianter (for eksempel REJ S-rammen) er valgfrie og tjener bare til å øke effektiviteten. Hver gang en stasjon mottar en P / F-bit, kan den anta at rammer som den sendte før den sist sendte P / F-biten og ennå ikke er godkjent, aldri vil komme, og derfor bør sendes på nytt.

Når du opererer som en kombinert stasjon, er det viktig å opprettholde skillet mellom P- og F-biter, fordi det kan være to kontrollpunktssykluser som fungerer samtidig. AP-bit som kommer i en kommando fra den eksterne stasjonen, er ikke et svar på P-biten vår; bare en F-bit som kommer i et svar er.

N (R), mottakersekvensnummeret

Både I- og S-rammer inneholder et mottakssekvensnummer N (R). N (R) gir en positiv bekreftelse for mottak av I-rammer fra den andre siden av lenken. Verdien er alltid den første rammen som ennå ikke er mottatt; det erkjenner at alle rammer med N (S) -verdier opp til N (R) -1 (modulo 8 eller modulo 128) har blitt mottatt og indikerer N (S) for neste ramme den forventer å motta.

N (R) fungerer på samme måte, enten det er en del av en kommando eller et svar. En kombinert stasjon har bare ett sekvensnummer.

N (S), sekvensnummeret til den sendte rammen

Dette økes for påfølgende I-rammer, modulo 8 eller modulo 128. Avhengig av antall biter i sekvensnummeret, kan opptil 7 eller 127 I-rammer vente på bekreftelse når som helst.

I-rammer (brukerdata)

Informasjonsrammer, eller I-rammer , transporterer brukerdata fra nettverkslaget. I tillegg inkluderer de også informasjon om flyt og feilkontroll på data. Underfeltene i kontrollfeltet definerer disse funksjonene.

Den minst signifikante biten (først overført) definerer rammetypen. 0 betyr en I-ramme. Med unntak av tolkningen av P / F-feltet, er det ingen forskjell mellom en kommando I-ramme og en respons-I-ramme; når P / F er 0, er de to formene nøyaktig ekvivalente.

S-rammer (kontroll)

Tilsynsrammer, eller 'S-rammer', brukes til flyt og feilkontroll når piggybacking er umulig eller upassende, for eksempel når en stasjon ikke har data å sende. S-rammer i HDLC har ikke informasjonsfelt, selv om noen HDLC-avledede protokoller bruker informasjonsfelt for "multiselektiv avvisning".

S-rammens kontrollfelt inkluderer en ledende "10" som indikerer at det er en S-ramme. Dette etterfølges av en 2-bitstype, en avstemning / endelig bit og et 3-biters sekvensnummer. (Eller et 4-biters polstringsfelt etterfulgt av et 7-biters sekvensnummer.)

De første (minst signifikante) to bitene betyr at det er en S-ramme. Alle S-rammer inkluderer en P / F-bit og et mottakssekvensnummer som beskrevet ovenfor. Med unntak av tolkningen av P / F-feltet er det ingen forskjell mellom en kommando S-ramme og en respons S-ramme; når P / F er 0, er de to formene nøyaktig ekvivalente.

Motta klar (RR)

  • Bitverdi = 00 (0x00 for å matche over tabellfeltets bitrekkefølge)
  • Angi at avsenderen er klar til å motta flere data (avbryter effekten av en tidligere RNR).
  • Send denne pakken hvis du trenger å sende en pakke, men ikke har noen jeg-ramme å sende.
  • En primærstasjon kan sende dette med P-bit-settet for å be om data fra en sekundær stasjon.
  • En sekundær terminal kan bruke dette med F-bit-settet for å svare på en avstemning hvis den ikke har data å sende.

Motta ikke klar (RNR)

  • Bitverdi = 10 (0x04 for å matche over tabellfeltets bitrekkefølge)
  • Bekreft noen pakker, men be om at ikke flere sendes inntil videre.
  • Kan brukes som RR med P-bit satt til å be om status for en sekundær stasjon
  • Kan brukes som RR med F-bit satt til å svare på en avstemning hvis stasjonen er opptatt.

Avvis (REJ)

  • Bitverdi = 01 (0x08 for å matche over tabellfeltets bitrekkefølge)
  • Ber omgående gensending fra og med N (R).
  • Sendt som svar på et observert sekvensnummergap; for eksempel etter å ha sett I1 / I2 / I3 / I5, send REJ4.
  • Valgfritt å generere; en fungerende implementering kan bare bruke RR.

Selektiv avvisning (SREJ)

  • Bitverdi = 11 (0x0c for å matche over tabellfeltets bitrekkefølge)
  • Ber om overføring av bare rammen N (R).
  • Støttes ikke av alle HDLC-varianter.
  • Valgfritt å generere; en fungerende implementering kan bare bruke RR, eller bare RR og REJ.

U-rammer

Unummererte rammer, eller U-rammer , brukes primært til lenkehåndtering, selv om noen få brukes til å overføre brukerdata. De utveksler øktadministrasjons- og kontrollinformasjon mellom tilkoblede enheter, og noen U-rammer inneholder et informasjonsfelt som brukes til systemadministrasjonsinformasjon eller brukerdata. De to første bitene (11) betyr at det er en U-ramme. De fem typebitene (2 før P / F-bit og 3 bit etter P / F-bit) kan lage 32 forskjellige typer U-rammer. I noen få tilfeller brukes den samme kodingen til forskjellige ting som en kommando og et svar.

Modusinnstilling

De forskjellige modusene er beskrevet i § Koblingskonfigurasjoner . Kort fortalt er det to ikke-operasjonelle moduser (initialiseringsmodus og frakoblet modus) og tre operasjonsmodi (normal respons, asynkron respons og asynkron balansert modus) med 3-biters eller 7-biters (utvidet) sekvensnummer.

Frakoblet modus (DM) respons
Når sekundæren er koblet fra (standardtilstand ved oppstart), sender den denne generiske responsen til en hvilken som helst avstemning (kommandoramme med avstemningsflagget satt) bortsett fra en akseptabel modusinnstillingskommando. Det kan alternativt gi et FRMR-svar på en uakseptabel modusinnstillingskommando.
Unummerert anerkjennelse (UA) svar
Dette er sekundærens svar på en akseptabel modussettkommando, noe som indikerer at den nå er i ønsket modus.
Still inn ... modus (SNRM, SARM, SABM) kommando
Plasser sekundærprogrammet i den angitte modusen, med 3-bits sekvensnummer (1-byte kontrollfelt). Sekundær anerkjenner med UA. Hvis sekundærprogrammet ikke implementerer modusen, svarer det med DM eller FRMR.
Sett ... modus utvidet (SNRME, SARME, SABME) kommando
Plasser sekundærprogrammet i den angitte modusen, med 7-bits sekvensnummer (2-byte kontrollfelt).
Sett modus (SM) -kommando
Generisk modus satt, nytt i ISO / IEC 13239, ved hjelp av et informasjonsfelt for å velge parametere. ISO / IEC 13239 la til flere tilleggsalternativer til HDLC, inkludert 15- og 31-bits sekvensnummer, som bare kan velges med denne kommandoen.
Koble fra (DISC) kommandoen
Denne kommandoen får sekundæren til å bekrefte med UA og koble fra (gå inn i frakoblet modus). Eventuelle ikke-godkjente rammer går tapt.
Be om frakoblingsrespons (RD)
Dette svaret ber den primære om å sende en DISC-kommando. Primæren bør gjøre det raskt, men kan forsinke lenge nok til å sikre at alle ventende rammer blir anerkjent.
Still kommandoen for initialiseringsmodus (SIM)
Denne sjelden implementerte kommandoen brukes til å utføre sekundær spesifikk initialisering, for eksempel nedlasting av firmware . Hva som skjer i initialiseringsmodus er ikke spesifisert i HDLC-standarden.
Be om respons på initialiseringsmodus (RIM)
Dette ber den primære om å sende SIM og initialisere det sekundære. Den sendes i stedet for DM hvis sekundæren krever initialisering.

Informasjonsoverføring

Disse rammene kan brukes som en del av normal informasjonsoverføring.

Unummerert informasjon (UI)
Denne rammen (kommando eller respons) kommuniserer brukerdata, men uten bekreftelse eller retransmissjon i tilfelle feil.
UI med header check (UIH)
Denne rammen (kommando eller respons), et ISO / IEC 13239-tillegg og sjelden brukt, er som brukergrensesnitt, men ekskluderer også CRC-beskyttelse. Bare et prefiks ("header") av rammen dekkes av konfigurerbar lengde, dekkes av CRC-polynomet. feil i resten av rammen blir ikke oppdaget.
Unummerert avstemning (UP) -kommando
Denne kommandoen ber om et svar fra den sekundære. Med avstemningsbit-settet fungerer det som en hvilken som helst annen avstemningsramme, uten bekreftelse som må inkluderes i I- eller S-rammen. Med avstemningsbiten klar har den en spesiell betydning i normal responsmodus: den sekundære kan svare, selv om den ikke har mottatt avstemningsbiten. Dette brukes sjelden i HDLC, men ble brukt i den opprinnelige IBM SDLC som en erstatning for mangelen på asynkron responsmodus; der kommunikasjonskanalen kunne håndtere samtidige svar, ville primæren med jevne mellomrom sende OPP til kringkastingsadressen for å samle eventuelle ventende svar.

Feilgjenoppretting

Frame refject (FRMR) respons
FRMR-svaret inneholder en beskrivelse av den uakseptable rammen, i et standardisert format. De første 1 eller 2 byte er en kopi av det avviste kontrollfeltet, det neste 1 eller 2 inneholder sekundærens nåværende send- og mottakssekvensnummer (og et flagg som indikerer at rammen var et svar, bare anvendelig i balansert modus), og følgende 4 eller 5 bits er feilflagg som indikerer årsaken til avvisningen. Sekundæren gjentar det samme FRMR-svaret til hver avstemning til feilen blir ryddet med en modussettkommando eller RSET. Feilflaggene er:
  • W: rammetype (kontrollfelt) er ikke forstått eller implementert.
  • X: rammetypen forstås ikke med et ikke-tomt informasjonsfelt, men en var til stede.
  • Y: rammen inkluderte et informasjonsfelt som er større enn det sekundære kan godta.
  • Z: rammen inkluderte et ugyldig mottaksekvensnummer N (R), en som ikke er mellom den tidligere mottatte verdien og det høyeste sekvensnummeret som er overført. (Denne feilen kan ikke slettes ved å motta RSET, men kan slettes ved å sende RSET.)
  • V: rammen inkluderte et ugyldig sendesekvensnummer N (S), større enn det siste tallet som ble bekreftet pluss sendevinduestørrelsen. Denne feilen er bare mulig hvis det er blitt forhandlet om en vindusstørrelse som er mindre enn maksimum.
  • Feilflaggene er normalt polstret med 0 bits til en 8-biters grense, men HDLC tillater rammer som ikke er et multiplum av en byte lang.
Tilbakestill (RSET) kommando
RSET-kommandoen får en sekundær til å tilbakestille sitt mottatte sekvensnummer slik at den neste forventede rammen er sekvensnummer 0. Dette er et mulig alternativ til å sende en ny modussettkommando, som nullstiller begge sekvensnumrene. Det er bekreftet med UA, som en kommando for modussett.

Peer-oppdagelse

Utvekslingsidentifikasjon (XID)
En XID-kommando inkluderer et informasjonsfelt som spesifiserer primærens evner; sekundæren svarer med en XID-respons som spesifiserer dens evner. Dette gjøres normalt før du sender en modussettkommando. Systems Network Architecture definerte ett format for informasjonsfeltet, der den viktigste biten av den første byten er klar (0), men HDLC-implementeringer implementerer normalt den varianten som er definert i ISO 8885, som har den viktigste biten fra det første bytesettet (1).
TEST
En TEST-kommando er ganske enkelt en ping-kommando for feilsøkingsformål. Nyttelasten til TEST-kommandoen returneres i TEST-svaret.

Definert i andre standarder

Det er flere U-rammer som ikke er en del av HDLC, men definert i andre relaterte standarder.

Ikke reservert (NR0, NR1, NR2, NR3)
De "ikke-reserverte" kommandoene og svarene er garantert av HDLC-standarden for å være tilgjengelig for annen bruk.
Ack tilkoblingsfri (AC0, AC1)
Disse er definert i IEEE 802.2 standard for logisk koblingskontroll.
Konfigurer (CFGR)
Denne kommandoen ble definert i SDLC for feilsøking. Den hadde en 1 byte nyttelast som spesifiserte en ikke-standard testmodus for den sekundære. Jevne tall deaktiverte modusen, mens oddetall aktiverte den. En nyttelast på 0 deaktiverte alle testmodusene. Sekundæren anerkjente normalt en konfigurasjonskommando ved å ekko den som svar.
Beacon (BCN) svar
Dette svaret ble definert i SDLC for å indikere en kommunikasjonsfeil. Et sekundært som ikke mottok rammer i det hele tatt i lang tid, ville begynne å sende en strøm av fyrresponser, slik at en ensrettet feil kunne lokaliseres. Merk at ISO / IEC 13239 tildeler UIH samme koding som BCN.

Koblingskonfigurasjoner

Koblingskonfigurasjoner kan kategoriseres som enten:

  • Ubalansert , som består av en primærterminal og en eller flere sekundære terminaler.
  • Balansert , som består av to peer-terminaler.

De tre koblingskonfigurasjonene er:

  • Normal responsmodus (NRM) er en ubalansert konfigurasjon der bare den primære terminalen kan starte dataoverføring. De sekundære terminalene overfører bare data som svar på kommandoer fra den primære terminalen. Den primære terminalen måler hver sekundærterminal for å gi den en mulighet til å overføre data den har.
  • Asynchronous Response Mode (ARM) er en ubalansert konfigurasjon der sekundære terminaler kan sende uten tillatelse fra den primære terminalen. Imidlertid er det fremdeles en fremtredende primærterminal som beholder ansvaret for linjeinitialisering, feilgjenoppretting og logisk frakobling.
  • Asynchronous Balanced Mode (ABM) er en balansert konfigurasjon der hver stasjon kan initialisere, overvåke, gjenopprette feil og sende bilder når som helst. Det er ingen mester / slave forhold. DTE ( dataterminalutstyr ) og DCE ( datakrets-termineringsutstyr ) blir behandlet som likeverdige. Initiativtakeren for asynkron balansert modus sender en SABM.

En ekstra koblingskonfigurasjon er frakoblet modus . Dette er modusen som en sekundær stasjon er i før den initialiseres av den primære, eller når den eksplisitt kobles fra. I denne modusen reagerer sekundæren på nesten alle andre rammer enn en modussettkommando med svaret "Frakoblet modus". Formålet med denne modusen er å la primæren pålitelig oppdage at en sekundær blir slått av eller på annen måte tilbakestilt.

HDLC kommando og respons repertoar

Minimum settet som kreves for drift er:

  • Kommandoer: I, RR, RNR, DISC, og en av SNRM, SARM eller SABM
  • Svar: I, RR, RNR, UA, DM, FRMR

Grunnleggende operasjoner

  • Initiering kan be om fra begge sider. Når primæren sender en av de seks kommandoene for modussett:
    • Signaler den andre siden om at initialisering er forespurt
    • Spesifiserer modus, NRM, ABM, ARM
    • Spesifiserer om 3 eller 7 bit sekvensnumre er i bruk.

HDLC-modulen i den andre enden overfører (UA) ramme når forespørselen godtas. Hvis forespørselen blir avvist, sender den (DM) rammen for frakoblingsmodus.

Funksjonelle utvidelser (opsjoner)

  • For koblede kretser
    • Kommandoer: ADD - XID
    • Svar: ADD - XID, RD
  • For 2-veis samtidige kommandoer og svar er ADD - REJ
  • For kommandoer og svar for enkel rammesending: ADD - SREJ
  • For informasjonskommandoer og svar: ADD - Ul
  • For initialisering
    • Kommandoer: ADD - SIM
    • Svar: ADD - RIM
  • For gruppeavstemning
    • Kommandoer: ADD - UP
  • Utvidet adressering
  • Slett svar I-rammer
  • Slett Command I-rammer
  • Utvidet nummerering
  • For tilbakestilling av modus (kun ABM) Kommandoer er: ADD - RSET
  • Datakoblingstestkommandoer og svar er: ADD - TEST
  • Be om kobling. Svarene er ADD - RD
  • 32-biters FCS

HDLC kommando og respons repertoar

Type ramme Navn Kommando /
respons
Beskrivelse Info C-feltformat
7 6 5 4 3 2 1 0
Informasjon (I) C / R Brukerutvekslingsdata N (R) P / F N (S) 0
Tilsyn (S) Motta klar (RR) C / R Positiv anerkjennelse Klar til å motta I-frame N (R) N (R) P / F 0 0 0 1
Motta ikke klar (RNR) C / R Positiv anerkjennelse Ikke klar til å motta N (R) P / F 0 1 0 1
Avvis (REJ) C / R Negativ anerkjennelse Sende på nytt med N (R) N (R) P / F 1 0 0 1
Selektiv avvisning (SREJ) C / R Negativ anerkjennelse Send bare N (R) på nytt N (R) P / F 1 1 0 1

Unummererte rammer

Unummererte rammer identifiseres ved at de lave to bitene er 1. Med P / F-flagget, som etterlater 5 bits som en rammetype. Selv om færre enn 32 verdier er i bruk, har noen typer forskjellige betydninger avhengig av retningen de sendes: som en kommando eller som et svar. Forholdet mellom DISC (disconnect) -kommandoen og RD (request disconnect) -responsen virker tydelig nok, men årsaken til at SARM- kommandoen er numerisk lik DM- responsen er uklar.

Navn Kommando /
respons
Beskrivelse Info C-feltformat
7 6 5 4 3 2 1 0
Still inn normal responsmodus SNRM C Still inn modus Bruk 3-biters sekvensnummer 1 0 0 P 0 0 1 1
SNRM utvidet SNRME C Still inn modus; forlenget Bruk 7 bit sekvensnummer 1 1 0 P 1 1 1 1
Still inn asynkron responsmodus SARM C Still inn modus Bruk 3-biters sekvensnummer 0 0 0 P 1 1 1 1
SARM utvidet SARME C Still inn modus; forlenget Bruk 7 bit sekvensnummer 0 1 0 P 1 1 1 1
Still inn asynkron balansert modus SABM C Still inn modus Bruk 3-biters sekvensnummer 0 0 1 P 1 1 1 1
SABM utvidet SABME C Still inn modus; forlenget Bruk 7 bit sekvensnummer 0 1 1 P 1 1 1 1
Still inn modus SM C Innstillingsmodus, generisk Nytt i ISO 13239 1 1 0 P 0 0 1 1
Still inn initialiseringsmodus SIM C Initialiser koblingsstyringsfunksjonen i den adresserte stasjonen 0 0 0 P 0 1 1 1
Be om initialiseringsmodus RIM R Initialisering er nødvendig Forespørsel om SIM- kommando 0 0 0 F 0 1 1 1
Koble fra DISC C Avslutt logisk koblingstilkobling Fremtidige I- og S-rammer returnerer DM 0 1 0 P 0 0 1 1
Be om frakobling RD R Anmodning om DISC- kommando 0 1 0 F 0 0 1 1
Unummerert bekreftelse UA R Bekreft aksept av en av kommandoer for innstillingsmodus. 0 1 1 F 0 0 1 1
Koble fra modus DM R Responder i frakoblet modus Modusinnstilling kreves 0 0 0 F 1 1 1 1
Unummererte informasjon UI C / R Ikke-godkjente data Har en nyttelast 0 0 0 P / F 0 0 1 1
UI med topptekst UIH C / R Ikke-godkjente data Nytt i ISO 13239 1 1 1 P / F 1 1 1 1
Unummerert avstemning OPP C Brukes til å be om kontrollinformasjon 0 0 1 P 0 0 1 1
Tilbakestill RSET C Brukes til utvinning Tilbakestiller N (R) men ikke N (S) 1 0 0 P 1 1 1 1
Utvekslingsidentifikasjon XID C / R Brukes til å be om / rapportere evner 1 0 1 P / F 1 1 1 1
Test TEST C / R Utveksle identiske informasjonsfelt for testing 1 1 1 P / F 0 0 1 1
Ramme avviser FRMR R Rapporter mottak av uakseptabel ramme 1 0 0 F 0 1 1 1
Ikke reservert 0 NR0 C / R Ikke standardisert For applikasjonsbruk 0 0 0 P / F 1 0 1 1
Ikke reservert 1 NR1 C / R Ikke standardisert For applikasjonsbruk 1 0 0 P / F 1 0 1 1
Ikke reservert 2 NR2 C / R Ikke standardisert For applikasjonsbruk 0 1 0 P / F 1 0 1 1
Ikke reservert 3 NR3 C / R Ikke standardisert For applikasjonsbruk 1 1 0 P / F 1 0 1 1
Ack tilkoblingsfri, seq 0 AC0 C / R Ikke en del av HDLC IEEE 802.2 LLC-utvidelse 0 1 1 P / F 0 1 1 1
Ack tilkoblingsfri, seq 1 AC1 C / R Ikke en del av HDLC IEEE 802.2 LLC-utvidelse 1 1 1 P / F 0 1 1 1
Konfigurer for test CFGR C / R Ikke en del av HDLC Var en del av SDLC 1 1 0 P / F 0 1 1 1
Beacon BCN R Ikke en del av HDLC Var en del av SDLC 1 1 1 F 1 1 1 1
HDLC U-rammer, ved binær koding
C-feltformat Kommando Respons C-feltformat Kommando Respons
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
1 1 0 0 P / F 0 0 0 UI 1 1 1 0 P / F 0 1 0 (ubrukt)
1 1 0 0 P / F 0 0 1 SNRM 1 1 1 0 P / F 0 1 1 CFGR
1 1 0 0 P / F 0 1 0 PLATE RD 1 1 1 0 P / F 1 0 x (ubrukt)
1 1 0 0 P / F 0 1 1 SM 1 1 1 0 P / F 1 1 x AC0 – AC1
1 1 0 0 P / F 1 0 0 OPP 1 1 1 1 P / F 0 0 0 SARM DM
1 1 0 0 P / F 1 0 1 (ubrukt) 1 1 1 1 P / F 0 0 1 RSET
1 1 0 0 P / F 1 1 0 UA 1 1 1 1 P / F 0 1 0 SARME
1 1 0 0 P / F 1 1 1 TEST 1 1 1 1 P / F 0 1 1 SNRME
1 1 0 1 P / F 0 x x NR0 – NR3 1 1 1 1 P / F 1 0 0 SABM
1 1 0 1 P / F 1 x x (ubrukt) 1 1 1 1 P / F 1 0 1 XID
1 1 1 0 P / F 0 0 0 SIM-kort KANT 1 1 1 1 P / F 1 1 0 SABME
1 1 1 0 P / F 0 0 1 FRMR 1 1 1 1 P / F 1 1 1 UIH
BCN
* ^ ^ ISO / IEC 13239 tillegg
^ ^ ^ Ikke en del av HDLC

UI-, UIH-, XID-, TEST-rammene inneholder en nyttelast, og kan brukes som både kommandoer og svar. SM-kommandoen og FRMR-responsen inneholder også en nyttelast.

  • En brukergrensesnittramme inneholder brukerinformasjon, men i motsetning til en I-ramme blir den verken godkjent eller overført på nytt hvis den går tapt.
  • En UIH-ramme (et ISO / IEC 13239-tillegg) er som en UI-ramme, men bruker i tillegg rammekontrollsekvensen bare til et spesifisert lengdeprefiks av rammen; overføringsfeil etter dette prefikset blir ikke oppdaget.
  • XID-rammen brukes til å utveksle terminalfunksjoner. Systems Network Architecture definerte ett format, men varianten definert i ISO 8885 er mer vanlig. En primær annonserer sine evner med en XID-kommando, og en sekundær returnerer sine egne evner i et XID-svar.
  • TEST-rammen er ganske enkelt en ping- kommando for feilsøkingsformål. Nyttelasten til TEST-kommandoen returneres i TEST-svaret.
  • SM-kommandoen (et ISO / IEC 13239 tillegg) er en generisk "set mode" -kommando som inkluderer et informasjonsfelt (i samme ISO 8885-format som XID) som spesifiserer parametere. Dette gjør at parameterverdier (som 15- og 31-biters sekvensnummer) og parametere som vindusstørrelser og maksimale rammestørrelser som ikke kan uttrykkes av de seks standardmodus-kommandoene, kan forhandles.
  • FRMR-svaret inneholder en beskrivelse av den uakseptable rammen, i et standardisert format. De første 1 eller 2 byte er en kopi av det avviste kontrollfeltet, det neste 1 eller 2 inneholder sekundærens nåværende send- og mottakssekvensnummer, og de følgende 4 eller 5 bitene er feilflagg som indikerer årsaken til avvisningen.

Se også

Merknader

Referanser

  • Venn, George E .; Fike, John L .; Baker, H. Charles; Bellamy, John C. (1988). Forstå datakommunikasjon (2. utgave). Indianapolis: Howard W.Sams & Company. ISBN 0-672-27270-9.
  • Stallings, William (2004). Data- og datakommunikasjon (7. utgave). Upper Saddle River: Pearson / Prentice Hall. ISBN 978-0-13-100681-2.
  • S. Tanenbaum, Andrew (2005). Datanettverk (4. utgave). 482, FIE, Patparganj, Delhi 110 092: Dorling Kindersley (India) Pvt. Ltd., lisenser fra Pearson Education i Sør-Asia. ISBN 81-7758-165-1.CS1 maint: location ( link )

Eksterne linker