22
Omar Cheikhrouhou 1 Le Protocole HDLC Omar Cheikhrouhou [email protected] Département Informatique

Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

Omar Cheikhrouhou 1

Le Protocole HDLC

Omar [email protected]épartement Informatique

Page 2: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

2

Références

� Cours d’Olivier Glück http://www710.univ-lyon1.fr/~ogluck/index.html

Page 3: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

3

Rappel (fonctionnalité de La couche

liaison de données)

� La couche liaison de données assure un transit fiable des données sur une liaison physique.

� Ainsi, la couche liaison de données s'occupe de : � l'adressage physique (plutôt que

logique), � de la topologie du réseau, � de l'accès au média, � de la notification des erreurs, � de la livraison ordonnée des trames� et du contrôle de flux.

Page 4: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

4

Encapsulation de données par la couche 2

01111111000000011110000001111011101110000101

DonnéesEn-tête

application

DonnéesEn-tête

application

DonnéesEn-tête

application

DonnéesEn-tête

application

DonnéesEn-tête

application

DonnéesEn-tête

application

En-têtePrésentation

En-têtePrésentation

En-têtePrésentation

En-têtePrésentation

En-têtePrésentation

En-têteSession

En-têteSession

En-têteSession

En-têteSession

En-têteTransport

En-têteTransport

En-têteTransport

En-têteRéseau

En-têteRéseau

En-têteTrame

En-queueTrame

Page 5: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

5

Classification des Protocoles de liaison de

données

� Orientées Caractère/bit� BSC� HDLC

� Point to point / point to multipoint � PPP,SLIP� Ethernet

HDLC

Page 6: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

6

Les protocoles de Liaison de Données� 1960:BSC Binary Synchronous Communications (IBM)� 1970:SDLC Synchronous Data Link Control (SNA)� 1976:HDLC High level Data Link Control

� normalisé par l'ISO en 1976� nombreux sous-ensembles (protocoles LAP)

� 1980 : adapté pour l’accès au réseau numérique de données� LAP-B (“Link access procedure-balanced”) : rôles équilibrés (symétriques)

entre les deux systèmes adjacents� normalisé : CCITT X25.2 et ISO 7776

� 1985 : adapté aux réseaux locaux� protocole de la sous-couche d’homogénéisation LLC (“Logical link control”)� apparition d’un mode de transmission non connecté (LLC classe 1)� normalisé : IEEE 802.2 et ISO 8802/2

� Autres adaptations :� Télex : LAP-X - CCITT T71� RNIS - canal D : LAP-D - CCITT Q921 ou I441

� ...

Page 7: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

7

High level Data Link Control

� HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI)

� HDLC est un ensemble de classes, de procédures et de fonctionnalités optionnelles (normalisée par l'ISO en 1976)

� => chaque liaison de données choisit sa procédure en fonction de ses besoins (coûts, ressources ...)

Page 8: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

8

Statuts des stations

� Liaison poit-à-point� Dissymétrique

� Symétrique

Primaire Secondaire

Primaire Secondaire

Secondaire Primaire

commande

commande

commande

Réponse

réponse

Réponse

Page 9: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

9

Statuts des stations

� Liaison multipoint� Dissymétrique (seulement)

Primaire

Secondaire

commande réponse

SecondaireSecondaire

Page 10: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

10

Les différents modes de HDLC

� Le mode synchrone ou normal NRM (Normal Response Mode)� Liaison multipoint dissymétrique� Relation maître/esclave: le primaire invite le secondaire à parler

� Le mode asynchrone dissymétrique ARM(Asynchronous Response Mode) � Liaison peut être point-à-point ou multipoint� Liaison dissymétrique:

� 1 équipement est station principale, tous les autres sont secondaires� la station principale a l'initiative de l'initialisation de la liaison de données

� Le mode asynchrone symétrique (le plus courant) ABM(Asynchronous Balanced Mode ) � Liaison popint-à-point uniquement

� Full duplex�(LAP-B alanced adopter par RNIS)� Half duplex�(LAP-X transmission télétex)

� Liaison symétrique:� tous les équipements agissent de la même façon:primaire en émission et

secondaire en réception � mode équilibré (balanced)

Page 11: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

11

Format des Trames HDLC

Page 12: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

12

Format des Trames HDLC

� Le champ « fanion » indique les bordures de la trame (début et fin)

� Il est représenté par un 0 suivi de 111111 suivi de 0.� Que faire si la données contient la même séquence

de bits (donnée= ...01111110...) ?� Solution: ajouter un 0 après chaque 11111 (5 un

consécutifs au niveau de l’émetteur). � Exemple

� Message à envoyé: 0111110111111011111111� Message envoyé: 0111110011111010111110111

� Le récepteur doit enlever un 0 après chaque suite : 11111

Page 13: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

13

Format des Trames HDLC

� Le champ adresse identifie la station secondaire dans le cas d’une liaison multipoint� Dans une commande il représente la station destinataire� Dans une réponse il représente la station émetteur

� Dans le cas de liason point-à-point il n’est pas pris en compte� Exemple dans PPP adresse=FF (adresse de brodcast ou

diffusion)

Page 14: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

14

Format des Trames HDLC

� Le champ "contrôle" indique le type de la trame� 3 formats de trame, plusieurs commandes pour chaque format:

� Trames I (Information): trames de données (+Ack) � Trames S (Supervision): trames de supervision (+Ack )

� Supervision de l’échange� Contrôle de flux: RR , RNR� Contrôle d’erreur: REJ (rejet continu), SREJ (rejet sélectif)

� Trames U (Unnumbered): trames non numérotées � Supervision de la liaison� initialisation et libération de la liaison de données

� ex: SARM (set mode ARM), SABM (set mode ABM), DISC (disconnect), UA (ack non numéroté)

Page 15: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

15

Format des Trames HDLC

� Le champ «données» peut être vide� Taille minimale (sans fanion)=32 bits (4 octets)

� le champ FCS (Frame Check Sequence) permet la détection d’erreurs� De longueur 16 bits (2 octets)� Porte sur les champs (adresse, contrôle, données) � constitué du reste de la division polynomiale des N bits de

la trame par un polynôme « générateur » normalisé de degré 16

� le récepteur fait de même avec les N bits de la trame reçue et si le reste est égal à celui de la zone FCS on admet que la transmission s'est passée correctement sinon la trame est rejetée

Page 16: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

16

Le champ contrôle

Type de Trame Champ contrôle

Trame I 0 Ns P/F Nr

Trame S 1 0 S S P/F Nr

Trame U 1 1 U U P/F U U U

Le champ contrôle peut être sur 2 octets �Ns et Nr sont alors sur 7 bits et la numérotation se fait modulo 28 =128.

Page 17: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

17

Trame I: d’Information

� Ns: numéro de la trame courante� Nr:numéro de la prochaine trame attendue

� Nr=x� acquitte tous les trames jusqu’à (x-1)

� Le bit P/F (“Poll/Final”) :� Dans le mode équilibré du protocole : LAP-B

� dans une commande : demande de réponse immédiate� dans une réponse : réponse à la demande de réponse

immédiate

� Dans le mode normal (historique) du protocole : LAP� code le passage de l’alternance du droit d’émission

(maître/esclave)

Page 18: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

18

Les trames S : de supervision

� 4 sous types de trames de supervision: selon la valeur de deux bits S.� RR (“Received & Ready”) - 00

� confirme la réception des trames de données de nº < N(R)� Envoyer pour signaler que le récepteur est prêt à recevoir des trames

suivantes ou pour acquitter la trame N(R) en cas d’absence de données à envoyer.

� RNR (“Received & Not Ready”) - 10 � confirme la réception des trames de données de nº < N(R)� Demande d’arrêter, temporairement, la transmission de l’émetteur

� REJ (“Reject”) - 01 � confirme la réception des trames de données de nº < N(R)� demande la retransmission des trames de nº >=N(R)

� SREJ (“Selective Reject”) - 11� confirme la réception des trames de données de nº < N(R)� demande la retransmission de la trame de nº = N(R)

Page 19: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

19

Les trames U : non numérotées

� Utilisées pour la gestion de la connexion� Plusieurs sous types selon la valeur des bits U� Trame non numérotées de commande (primaire�secondaire)

� établissement de la connexion :� SABM (Set asynchronous balanced mode) - en format normal� SABME (Set asynchronous balanced mode extended) - en format

étendu� ...

� libération de la connexion : DISC (Disconnection)� Trame non numérotées de réponse (secondaire � primaire)

� acquittement d’une trame non-numérotée: UA (“Unnumbered acknowledgment”)

� récupération des erreurs : FRMR (“Frame reject”) � Trame d’indication de connexion libérée : DM (“Disconnected

mode”)

Page 20: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

20

Récapitulatif des principales commandes

TypeSous-type Champ contrôle

Trame I 0 Ns P/F Nr

Trame S

RR 1 0 0 0 P/F Nr

RNR 1 0 1 0 P/F Nr

REJ 1 0 0 1 P/F Nr

SREJ 1 0 1 1 P/F Nr

Trame U

SABM 1 1 P

SABME 1 1 P

SARM 1 1 P

DISC 1 1 P

SNRM 1 1 P

UA 1 1 F

FRMR 1 1 F

DM 1 1 U U F U U U

Page 21: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

21

Scénario

Page 22: Le Protocole HDLC - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/enseignement...HDLC est un protocole de couche liaison de données (couche 2 du modèle OSI) HDLC est un ensemble

22

Conclusion