High-level Data Link Control (HDLC)
Bitgeoriënteerd protocol voor uitwisselen van gegevens. Het is van toepassing op laag 2 van het ISO/OSI referentiemodel.
Bitgeoriënteerd: er worden geen vaste pakketten of bytes gehanteerd, maar de gegevens worden als 1 stroom bits geïnterpreteerd.
Het is ontwikkeld voor synchroon transport.
Eenheid = frame
Stations en configuraties
Via HDLC kan een aantal soorten logische stations met elkaar communiceren over een synchrone datalink.
Drie soorten logische stations:
- primary stations 1
- secondary stations 2
- combined stations 3
Onderscheid heeft te maken met de hiërarchie van het station in de verbinding.
De uitgewisselde berichten in de stations zijn commando- of response-frames
1: verantwoordelijk voor besturing datalink
Kan commando-frames verzenden naar secondary stations & response-frames ontvangen
2: kan enkel response-frames verzenden naar primary station
3: kan zowel frames verzenden naar als ontvangen van een ander combined station.
Twee soorten configuraties:
° ongebalanceerde configuratie: 1 primary station + secondary station(s)
- Niet in balans wat betreft richting van verkeersstromen
- Point-to-point of multipoint
- Half- of full-duplex
- Permanent of geschakeld
- Primary station zorgt voor logische verbinding met secondary stations
- Secondary stations voorzien van adres (en frames voorzien van adres van station)
° gebalanceerde configuratie: 2 combined stations
- 2 combined stations point-to-point verbonden
- Half-of full-duplex
- Permanent of geschakeld
- Gelijkwaardige stations met eigen adres en zelfde mogelijkheden voor besturing datalink en gegevensoverdracht
- Commando-frames bevatten adres van bestemmingsstation & response-frames dat van het verzendstation
Onderdelen van een HDLC frame
Begin flag & eind flag
Ze bestaan uit 8-bits (patroon: 01111110)
Flags zorgen ervoor dat het frame wordt afgebakend en uniek is. Als het bitpatroon(begin of end) bij de eindbestemming aankomt - beschouwd als end flag.
In het frame zelf mag NIET dezelfde bitcombinatie voorkomen.
Bitstuffing: nagaan of dit patroon in het frame voorkomt (gebeurt na foutberekening)
Na elke vijfde 1-bit à toevoeging 0-bit à 0-bit verwijderd bij aankomst è oorspronkelijke bitcombinatie komt tevoorschijn = Bitstuffing
Adres
8 bits, bevat adres van secondary station, enkel betekenis bij ongebalanceerde multipointverbindingen.
Control
8 of 16 bits lang, bevat info i.v.m. besturing datalink
Drie soorten control-frames:
- I-frame: informatieframe - gebruikt voor gegevensuitwisseling
- bevat zendvolgnrs en ontvangstvolgnrs [N(S) & N(R)]
- S-frame: supervisory frame - gebruikt voor datalinkfuncties
- bevestingen van correcte aankomst v/e frame, verzoek voor hertransmissie v/e frame en flow control
- U-frame: unnumbered frame: - gebruikt voor ongenummerde functies v/d datalink-
besturingsfuncties (algemene besturingsfuncties)
Informatie
Geen vaste lengte, bevat gegevens die moeten verzonden worden
Afhankelijk van componenten die geg. uitwisselen
Frame Check Sequence
16 bits, verantwoordelijk voor foutcontrole op datalink, enkel betrekking op adresveld;informatieveld;controleveld (zonder de 0-bits van bitstuffing)
Modes
Mode = toestand waarin datalink zich bevind tijdens gegevenstransport
Twee modes in ongebalanceerde config. :
- NRM(Normal Response Mode) : sec station kan enkel respone-frames zenden als prim.
- station dat vraagt
- ARM(Asynchronous Response Mode): Het voorgaande kan nu zonder toestemming van
prim. station. Info-frames & frames waarmee statusveranderingen worden aangegeven = mogelijk
In gebalanceerde config.: ABM (Asynchronous Balanced Mode): v. toep. op combined stations. Beiden mogen command- en response-frames zenden zonder toestemming van de ander
Bevestingingstechnieken
Aantal technieken voor bevestinging van correcte onvangst of aangeven van fouten:
- aparte bevestinging per bericht of frame 1
- piggy backing 2
- sliding window 3
1: per bericht of frame wordt bevestinging teruggestuurd en indien nodig hertransmissie
Kost veel overhead en tijd
2: bevestiging meegestuurd met uitgaande bericht v/d ontvanger
Voordeel: minder berichten gestuurd dus minder onderbrekingen in communicatie
Nadeel: Foute berichten moeten op andere manier worden herhaald = complex
3: elk frame volgnr tss 0 en N à Z heeft overzicht van opeenvolgende nrs van frames die gezonden mogen worden = sending windows à O houdt overzicht bij van frames die mogen ontvangen worden = receiving window à venster bij Z en O moeten niet zelfde onder-+bovengrens hebben
Volgnrs in window v zender staan voor niet-bevestigde frames
Frames kunnen verloren gaan è tijdelijk in geheugen van Z gezet tijdens transmissie. è Z moet grote buffercapaciteit hebben
als window max. grote bereiktè Z mag geen frames meer zenden tot 1 of meer frames zijn bevestigd.
Alle frames krijgen nr èvia modulo-tellingè bijhouden welk frame al dan niet is bevestigd.
Modulo begint na bereiken van max. telkens terug bij begin.
Indien transmissiefoutè transmissie gaat door è ontvanger vraagt voor hertransmissie vanaf foutieve frame
2 methoden:
- Go back n: O gooit alles na foutieve frame weg en Z moet alles vanaf daar opnieuw zenden
- Selective repeat: Correcte frames in buffer opgeslagen en foutieve frame ẅ opnieuw gestuurd