3.1 Introduction, rôles de la couche liaison
3.2 Protocoles ARQ
3.3 Protocole « Send and wait »
3.4 Protocole à fenêtre d’anticipation
3.5 Protocoles synchrones, HDLC
Objectif : assurer une communication fiable et efficace entre deux machines adjacentes, ie les données échangées par la couche réseau doivent être :
• dans l'ordre, sans erreur, sans perte , et sans duplication.
Principale fonctionnalité :
• Transmission ‘séquentielle’ des données sous formes de trames confiées à la couche physique
• Chemin virtuel : couche 2 ? couche 2 (trames)
• Chemin réel :
couche 1 ? couche 1 (suite de bits sur canal de transmission: voir cours précédent…)
• Considérations :
• Le canal de transmission délivre les bits dans l'ordre d'émission, mais certains peuvent changer de valeur, ou disparaître, ou apparaître.
• Un message de la couche réseau (datagramme/paquet niveau 3) doit être délivré 1 et 1 seule fois à la couche réseau destination.
? calcul d’une somme de contrôle d’erreurs (CRC), acquittements, temporisateurs, numérotation des trames.
• Le contrôle de flux : l'émetteur ne doit envoyer des trames que si le récepteur est en mesure de les traiter.
• La gestion de la liaison :
• établissement et libération de la liaison,
• supervision du fonctionnement selon le mode de synchronisation, de transmission, et le type de liaison,
ARQ (Automatic Repeat reQuest) : l'émetteur attend des acquittements positifs ou négatifs ; le récepteur détecte les erreurs, et selon le cas, ignore la trame ou demande sa retransmission.
Deux types de protocoles ARQ :
• protocoles « envoyer et attendre » (send and wait),
• protocoles « continus » (continuous ou pipelined ARQ) ou «à fenêtre d'anticipation ».
• Méthode :
• Le récepteur informe l'émetteur des situations d’erreur ? acquittements.
• L’émetteur envoie et attend l’information du récepteur...
• Conséquence : empêche l'émetteur d'envoyer des données plus rapidement que le récepteur ne peut les traiter.
Trame erronée : acquittement positif ou négatif
Trame perdue : temporisateur
Acquittement perdu, duplication : numérotation des trames
Temporisateur expire trop tôt : numérotation des acquittements
Ces protocoles sont unidirectionnels, et ne permettent qu’une pauvre utilisation de la capacité du canal.
Protocoles « à fenêtre d'anticipation »
Améliorations :
• Données (et acquittements) dans les 2 sens (mode bidirectionnel).
• Envoi d'un certain nombre de trames sans attendre d'acquittement (pipelining)
• Acquittements ajoutés à des trames de données envoyées dans l'autre sens (piggypacking ).
? + d'efficacité, + de complexité de gestion aussi
? besoin de tampons pour trames non encore acquittées (et susceptibles d'être réémises).
Trames : ont un numéro de séquence codé sur n bits (0 ? 2n -1).
Remarque : si n=1 ? « envoyer et attendre » robuste.
• Fenêtre d'émission (côté émetteur) : liste des numéros de séquence des trames autorisées à être émises .
• Fenêtre de réception (côté récepteur) :
liste des numéros de séquence des trames autorisées à être reçues .
Taille (maximale) = nombre de trames autorisées à être émises sans attendre acquittement.
Contenu = numéros de séquence des trames envoyées mais non encore acquittées.
• L'émetteur stocke les trames non acquittées dans des zones tampons (au plus m trames, si m est la taille de la fenêtre).
• Si la fenêtre atteint son maximum, on n'envoie plus rien jusqu'à une libération, ie un acquittement.
Taille (fixe) = nombre de trames autorisées à être reçues.
Contenu = numéros de séquence de ces trames attendues.
• Protocole à fenêtres d'émission et de réception de largeur1
? revient à « envoyer et attendre » robuste.
• Protocole à fenêtre d'émission de largeurmet à fenêtre de réception de largeur1
? rejet global
• L'émetteur peut envoyer plusieurs trames sans acquittement (jusqu'à m).
• Le récepteur rejette toutes les trames qui suivent une trame erronée.
? retransmission de toutes les trames qui suivent celle erronée.
• Protocole à fenêtre d'émission de largeurmet à fenêtre de réception de largeurk
? rejet sélectif
• Le récepteur stocke les suivantes.
• Quand le récepteur reçoit la trame qui manquait, il envoie un acquittement du + grand nombre possible.
? moins de retransmission de trames.
Deux familles de protocoles synchrones
• Protocoles basés sur le caractère :
trame = suite de caractères.
Exemple :
• BSC (Binary Synchronous Communications) d'IBM.
? exploitation half-duplex, utilisation d'un code (ex. ASCII).
• Protocoles basés sur l'élément binaire :
trame = suite de bits.
Exemples :
• SDLC (Synchronous Data Link Control) d'IBM,
• HDLC (High-level Data Link Control) de l'ISO.
• Exploitation full-duplex de la liaison.
• Basé sur l'élément binaire :
? pas d'interprétation du contenu,
? transparence / aux codes éventuellement utilisés.
• Protocole synchrone :
synchro-bit : horloge, synchro-trame : délimiteur ou fanion 01111110. ? bit de transparence (un 0 après cinq 1).
• Protection contre les erreurs de transmission pour chaque trame.
• Une trame contient données et/ou infos de service (ex. ACK).
• Liaison non-équilibrée : point-à-point ou multipoint.
• La primaire commande, la secondaire répond .
• La primaire gère la liaison (activation/désactivation).
• Liaison équilibrée : point-à-point.
• Stations mixtes primaire/secondaire, commandes et réponses.
définissent 3 classes de protocoles HDLC.
Pour les liaisons non-équilibrées :
• NRM : Normal Response Mode
La secondaire n'émet que si elle y est invitée, et indique la fin de transmission pour rendre la main à la primaire. ? Classe UN : Unbalanced Normal.
• ARM : Asynchronous Response Mode
La secondaire émet à son gré (une fois la liaison activée).
? Classe UA : Unbalanced Asynchronous.
Pour les liaisons équilibrées :
• ABM : Asynchronous Balanced Mode
Primaire et secondaire peuvent initialiser la liaison et émettre quand elles veulent.
? Classe BA : Balanced Asynchronous.
Fanion | Adresse | Commande | Données | FCS | Fanion |
01111110 | (8 bits) | (8 bits) | (n ? 0 bits) | (16 bits) | 01111110 |
FCS : Frame Check Sequence (polynôme X16 +X12 +X5+1)
? Calculs avant le rajout des bits de transparence à l'émission, après leur suppression à la réception.
Adresse : adresse d’un couple primaire/secondaire opposés
? Dans une trame commande, adresse de la station qui reçoit.
? Dans une trame réponse, adresse de la station qui répond.
définit le type de la trame et ses fonctions.
Type I ( Information) : transfert de données.
Type S ( Supervision) : accusé de réception et contrôle de flux.
Type U ( Unnumbered) : connexion, déconnexion, erreurs,
N(S) : numéro trame I envoyée. N(R) : numéro trame I attendue.
P/F (Poll/Final) : P pour commandes, F pour réponses.
• Trame RR (Receive Ready)
? prête à recevoir
? accusé de réception jusqu’à la trame N(R)-1
• Trame RNR (Receive Not Ready)
? demande de suspension temporaire de toute transmission
? accusé de réception jusqu’à la trame N(R)-1
• Trame REJ (Reject) :
? demande de retransmission de toutes les trames à partir de la trame N(R).
• Trame SREJ (Selective Reject) :
? demande de retransmission de la trame N(R).
Ainsi, si on utilise un protocole HDLC avec :
• une taille de fenêtre de réception =1 ? REJ
• une taille de fenêtre de réception >1 ? SREJ
RR
I N(S),N(R) : j’envoie la trame ayant le numéro N(S) et j’attends la trame ayant le numéro N(R).
Trame perdue ou erronée
On a perçu la rupure de séquence il faut réagir
asynchrone équilibré