Transcript Chapitre V
Les Réseaux Informatiques
Chapitre V
LES PROTOCOLES DE
LIAISON
1
Sommaire
Les Réseaux Informatiques
1. Introduction
2. Les protocoles de liaison de données
3. Les mécanismes à mettre en œuvre
-Trame
-Délimitation
4. Les principes généraux des protocoles
5. Étude de quelques protocoles
- Le protocole SLIP
- le protocole X- MODEM
- le protocole Y-MODEM
- le protocole HDLC
- le protocole PPP
2
1.INTRODUCTION
3
Pourquoi une liaison de donnée ?
Le circuit de donnée permet d’émettre et/ou de recevoir
des bits en série
Mais…
Avec:
Un certain débit
D=R.log2V
Un certain délai:
T=l/D+d/Vp
Un certain taux d’erreurs
C’est insuffisant
Ajout d’une interface logique
4
Temps de transmission et propagation
E
R
E émet le
premier bit
E émet le
dernier bit
R reçoit le
R reçoit le
premier bit
dernier bit
Temps de transmission=longeur/débit
Temps de propagation=distance/vitesse de propagation
Temps de réponse
5
Rôle de la liaison de données
Rôle:
fiabiliser le transfert d’information entre 2 ETTD
Fiabilité:
•Pas d’erreur
•Pas de perte
•séquencement
•Pas de duplication
Liaison de
données
Circuit de
données
Support
physique
Transport
fiable
Transport de
bits
Transport
d’un signal
Généralement au sein de chaque système (ETTD), les fonctions de la couche
Liaison de données sont réalisées par une carte spécifique appelée contrôleur
6
de communication.
- Par exemple : carte HDLC, carte Ethernet, etc.
Principaux problèmes résolus dans le
niveau liaison de données
• Fournir les services nécessaires pour
établir, maintenir et libérer une connexion
• Acheminer les trames sur la liaison
physique
• Contrôler le flux de données afin d’éviter
la saturation du récepteur
• Contrôler la correction de la transmission
des données.
7
Protocoles de liaison de données
8
Protocole de liaison de données
Un protocole de liaison de données: un ensemble de règles permettant de
gérer la liaison
Règles de codage
Règle de structuration
Règles d’échange
Le protocole met en œuvre un certain nombre de mécanismes de
communication
Exemple
1960 : BSC (Binary synchronous communication) - IBM
Protocole orienté caractère
Synchronisation en continue
1970 :SDLC (Synchronous Data Link Control) - IBM/ANSI
Orienté trame
1976-80 : HDLC (High Data Link Control) - ISO
Protocole orienté bit
ISO 3309 (format), ISO 4335 (HDLC), ISO 7776 (LAP-B),
ISO 7448 (MLP) ISO 8471 (HDLC équilibré)
1985 : Liaison de réseaux locaux
...
9
Généralité
Les protocoles de liaison peuvent s'appuyer sur un mode de transmission
asynchrone (Kermit, Xmodem, ...) ou synchrone
un protocole de liaison peut échanger des trames en exploitant la liaison en
semi-duplex ou en duplex intégral.
Certains protocoles sont "orientés caractère", c'est à dire que les
commandes et les réponses, les délimiteurs ... sont des caractères
appartenant à un alphabet , et auxquels le protocole attribue une
signification. Le protocole BSC, par exemple, utilise le code CCITT n° 5 (STX,
ETX, SYN, ETB, ACK, NAK, EOT ...).
D'autres protocoles, comme HDLC, sont au contraire, "orientés bit", et sont
complètement transparents à la codification des informations contenues dans
les trames.
Le mode non connecté (datagramme) : 1 seule phase (le transfert de
données), Les transferts des données sont effectué à la demande. Chaque
bloc de données est transféré indépendamment, il n’y a aucune garantie de
délivrance
Le mode connecté : 3 phases
phase d'établissement de la connexion
phase de transfert de données
10
phase de libération de la connexion
Les mécanismes à mettre en oeuvre
11
Le protocole doit assurer :
La délimitation des blocs de données
L'amélioration du canal physique (détection et
éventuellement correction des erreurs)
Le contrôle de flux: mécanisme qui consiste à
n'envoyer des données que si le récepteur peut
les recevoir.
Éventuellement, la gestion logique de la ligne :
Création et initialisation de la liaison
Transfert de données
12
Libération de la ligne en fin de transmission
TRAME
Une trame :
- Une suite de bits (d’une longueur variable mais bornée)
- Le début et la fin de trame sont souvent identifiés par
des délimiteurs
- Composée d’un certain nombre de champs ayant chacun
une signification précise.
- On distingue souvent 3 ensembles de champs : l’entête
(header), le champ de données, la terminaison (trailer)
13
Remarques
Suivant le type de protocoles, une trame peut :
(i) être de taille fixe ou de taille variable (jusqu’à une
certaine taille maximum)
- Exemple :
. variable = trame d’HDLC,
. fixe = cellule d’ATM (Asynchronous transfert
Mode) (53 octets)
(ii) ne pas avoir de fin de trame explicite.
- Exemple :
. SD + ED (Starting/ending delimiter) = trame
Token Ring,
. SD uniquement : trame Ethernet,
en fait la fin de la trame est détectée par la fin de la
porteuse du signal.
Suivant le rôle qui lui est attribué :
- une trame peut ne pas comporter de champ information.
14
. Par exemple : un simple acquittement
Délimitation des trames
La couche Physique (grâce à la technique de codage utilisée) permet
généralement au récepteur de reconstituer (à l’aide du signal reçu)
l’horloge et donc d’assurer la synchronisation au niveau du bit et ainsi
de reconstruire la suite binaire envoyée.
La couche Liaison de données à partir de cette suite binaire va
reconstituer la trame envoyée en assurant la synchronisation au
niveau de la trame.
Problème: le récepteur doit savoir quand commence une trame et
quand elle finit
Idée: Une trame doit commencer par un marqueur de début de trame
et se finir par un marqueur de fin de trame (fanion)
15
Un délimiteur peut être :
soit une séquence particulière de caractères,
. Exemple : Trames constituées de caractères d'un alphabet
normalisé(ex ASCII: American Standard Code for Information Interchange
, EBCDIC: Extended Binary Coded Decimal Interchange Code est un code à 8
bits) => les trames sont multiples de 8 bits.
Exemple dans les protocoles BSC (‘Binary Synchronous
Communication’)
❙ STX ("Start of TeXt") - Délimiteur début de bloc de texte
❙ ETX ("End of TeXt") - Délimiteur fin de bloc de texte
❙ DLE ("Data Link Escape") - Échappement de liaison
soit une suite particulière de bits,
. Exemple :Les trames sont constituées de suites binaires.
Chaque trame est délimitée par une suite binaire
Ex: le fanion 01111110 du protocole SDLC/HDLC/LAPB (Link
Access Protocol B)
soit un codage particulier :Des séquences, non utilisées pour coder
16
les éléments binaires, servent à délimiter les trames.
. Exemple : les symboles J et K du protocole Token Ring.
Notion Transparence: Le protocole doit assurer la transparence aux délimiteurs, au
cas où le bloc contiendrait une séquence binaire (ou alphanumérique) identique au
délimiteur de fin qui serait interprétée par le récepteur comme une fin prématurée du
bloc.
transparence caractère
Tout caractère de contrôle (qui n'est pas le délimiteur début ou fin)
apparaissant dans le bloc est précédé de DLE.
ETX -> DLE ETX; STX -> DLE STX; DLE -> DLE DLE
A la réception les DLE ajoutés pour la transparence sont retirés.
Exemple de transparence
❚ Bloc à transmettre :
❚ Bloc transmis :
Pas de problème : pour restituer le bloc initial
❙ Pour distinguer les délimiteurs réels en début et fin de bloc (sans
DLE devant)
❙ Pour distinguer les codes caractères identiques transmis dans la
charge utile (ils sont précédés d’un DLE que l’on supprime à la
17
réception).
Transparence binaire(bit de bourrage: bit stuffing): pour assurer qu’à
l’intérieur de la trame, la configuration 01111110 ne soit pas
interprétée comme un flag de fin. Permet aussi la resynchronisation
en interdisant les longues séquences de bits à 1 consécutifs.
Àl’émission: ajout d’un bit 0 après 5 1 consécutif
À la réception: destruction d’un bit 0 après 5 1 consécutif
Exemple de transparence
❚ Suite binaire à transmettre :
❚ Suite binaire après adjonction des bits de transparence :
❚ Trame transmise avec ses délimiteurs (fanions) :
18
❚ En réception : suppression des bits de transparence et des fanions.
Émission d’une trame
Construction de la trame
Calcul des bits de contrôle
Transparence (ajout)
Réception d’une trame
Transparence (retrait)
Calcul des bits de contrôle
Examen des champs de la trame
19
Trames avec délimiteurs: Violation de code
Problèmes des techniques de transparence basées sur
l'utilisation de délimiteurs formés de configurations binaires
légales (caractères de contrôle, fanions, ...).
Allongement des trames du aux informations de transparence
(quelques pour cent).
Temps perdu à l'émission et à la réception (surtout en
logiciel).
Autres solutions : définir des modulations utilisées comme
délimiteurs (en plus de la modulation des données trame 0,1) .
Augmenter la valence des signaux de niveau physique pour
créer des délimiteurs.
Ces signaux ne peuvent donc apparaître dans le flot normal
des données d’une trame.
De nombreuse variantes de ce principe ont été développées.
Les problèmes de la transparence sont résolus.
Mais le modulateur doit être plus complexe.
20
Solution très utilisée (par exemple dans les réseaux locaux).
Les principes généraux des protocoles
21
Principes généraux des protocoles
• Le mode Send et Wait
• Reprise sur temporisation
• Numérotation des blocs de données
• Numérotation des ACK
• Efficacité des protocoles
• La fenêtre d’anticipation
• Contrôle de flux
22
Principes généraux des protocoles
Le mode Send et Wait
SEND : Envoi d’un bloc
STOP : Arrêt de l’émission
WAIT : Attente ACK
Le principe de base de toute transmission repose sur l’envoi (SEND) d’un
bloc d’information (trame).
L’émetteur s’arrête alors (STOP) dans l’attente de l’accusé de réception
(WAIT).
A la réception de l’acquittement l’émetteur envoie la trame suivante.
En l’absence du signal ACK, l’émetteur (en attente) reste bloqué.
23
Principes généraux des protocoles
Reprise sur temporisation
Reprise sur temporisation :
Pour éviter un blocage de l’émission en cas de perte d’un bloc de données
(rejet du bloc erroné),
l’émetteur déclenche une temporisation (Timer).
A l’échéance du temps imparti (Time Out), si aucun accusé de réception
(ACK) n’a été reçu,
24
l’émetteur retransmet la trame perdue.
Principes généraux des protocoles
Numérotation des blocs de données
A
l'émission
déclenchement
d’un
temporisateur
Sans réception d’ACK à l’échéance (Time
Out)
Retransmission bloc perdu
Difficulté en cas de perte de l’ACK
En cas de perte de l’ACK,
l’émetteur retransmet le même bloc alors que le récepteur l’a déjà reçu : il y
a duplication d’un bloc.
Pour éviter cette duplication, on numérote les trames (compteur: Ns envoyé
avec le bloc).
le récepteur (compteur: Nr) peut alors, par simple lecture du numéro
d’ordre (Nr>Ns : erreur de transmission), détecter le doublon et ignorer les
données reçues à tort et acquitte le bloc .
Cette numérotation évite la duplication et autorise la délivrance 25dans
l’ordre des données reçues.
Principes généraux des protocoles
Numérotation des blocs de données
(2)
Si la temporisation est trop faible
reprise sur temporisation d’un bloc correctement
reçu
Difficulté en cas de perte d’unbloc
le second ACK du premier bloc est interprété
comme celui du second bloc de données
Difficulté si les temporisations sont trop
faibles
Cependant, dans certains cas, le temps de traitement des données reçues est plus
important que prévu ou (et) les délais de transmission sont devenus exagérément longs.
Dans ces conditions, les données reçues peuvent ne pas être acquittées à temps.
L’émetteur effectue alors une retransmission sur temporisation. Le récepteur ayant déjà
reçu ces informations les élimine et les acquitte. En effet, pour le récepteur, s'il y a eu
une retransmission, c’est que l’émetteur n’a pas reçu le précédent ACK. A la réception
du premier ACK (acquittant le premier envoi) l’émetteur envoie la trame suivante (2).
26
Principes généraux des protocoles
Numérotation des ACK
Pour éviter cette confusion d’interprétation il est aussi nécessaire de
numéroter les ACK.
Le récepteur acquitte le bloc 0 par
l’ACK0
Recevant une deuxième fois l’ACK0
l’émetteur l’ignore, Il considère alors
que le bloc1 n’a pas été reçu et le
retransmet
Conclusion :
Un protocole gère un ensemble de compteurs pour identifier les blocs
émis et les blocs reçus (ACK)
27
Principes généraux des protocoles
Efficacité des protocoles (1)
Considérons l’échange matérialisé à coté, on distingue les
phases suivantes :
émission du bloc de données, ou U représente les
données utiles, G les données de gestion du protocole ;
attente du l’émetteur qui représente le temps de transit
aller et retour sur le support et le temps de traitement des
données reçues par le récepteur, ce temps s’appelle temps
de traversée des équipements (Tt), il équivaut à une
émission de (D · Tt) bits où D représente le débit nominal
de l’émetteur ;
réception de l’accusé de réception (K bits) ;
Le nombre de bits qui auraient pu être transmis entre T0 et T1 peut
donc s’exprimer par:
N bits = U + G + K + D · Tt
posons S = G + K + D · Tt
avec
D · Tt = Nb. de bits représentatifs du temps de traversée des équipements
G les bits de gestion (contrôle, adresse...)
K les bits d’accusé de réception,
Soit :
28
Eff = U / (U + S) avec Eff, efficacité sans erreur
Principes généraux des protocoles
Efficacité des protocoles (2)
L’efficacité du protocole avec erreur est :
Effer = Eff0 . P’
où
-p’ est la probabilité pour qu’un bloc soit
reçu correctement,
-et Eff0 l’efficacité du protocole sans erreur
Soit : Effer = Eff0 (1- te) D+K
où
-D est le nombre de bits du bloc de
données (U+G)
-K la taille en bit de l’ACK
-te la probabilité pour qu’un bit soit erroné
pour que N bits soient correctement transmis, est :
p = (1 –te)D avec D = U + G
La probabilité pour que l’ACK soit correctement transmis est de :
p = (1– te)K
La probabilité pour qu'un bloc soit correctement transmis est la
29
probabilité composée :
p' = (1 – te)D · (1– te)K = (1-te)D+K
Principes généraux des protocoles
Conclusion sur les protocoles en mode de base
Les protocoles qui mettent en œuvre les principes précédents sont
appelés protocoles en mode de base
Les faibles performances du mode « Stop and Wait » sont
essentiellement dues au temps d’attente entre les ACK.
Dans ces conditions, une amélioration substantielle est obtenue en
émettant les blocs suivants, sans attendre la réception des ACK.
Cette
possibilité
d’émettre
sans
acquittement
s’appelle
l’anticipation. Ce protocole est connu sous le nom de GO-BACK N, où
N représente le nombre de blocs en attente d’acquittement.
On appelle fenêtre d’anticipation le nombre maximum de blocs
(trames) qui peuvent être envoyés sans acquittement (en attente de
ACK).
Plus la fenêtre est importante, plus le nombre de tampons
nécessaires à la conservation des blocs en attente d’acquittement est
important. Les tailles généralement admises sont de 128 (compteur
sur 7 bits), mais plus fréquemment 8 blocs (compteur sur 3 bits).
30
Principes généraux des protocoles
La fenêtre d’anticipation
Fenêtre dynamique: elle évolue au fur et à mesure des émissions et
des acquittements de blocs :
L’émission de blocs sans ACK fait progresser la borne inférieure
jusqu’au blocage éventuel de l’émission (fenêtre fermée).
L’acquittement de blocs par le récepteur fait progresser la borne
supérieure: fenêtre glissante
31
Principes généraux des protocoles
Optimisation de la fenêtre d’anticipation
L’efficacité est maximale si l’émission
est continue
Le temps Ta (temps d’attente): temps
entre l’émission du premier bit de la
trame N et le premier bit de la trame N+1
en mode send and wait
si tb est le temps d’émission d’un bloc la
fenêtre est optimale si la largeur de la
fenêtre W est telle que :
W.tb Ta
(il n y aura pas d’arrêt des émissions )
Où
soit :
t b U G D
W
Ta
tb
32
Principes généraux des
protocoles
Modes de gestion de la fenêtre
Deux modes de fonctionnement :
chaque bloc est acquitté. lors de la réception d’un ACK,
l’émetteur libère un buffer et émet le suivant: la fenêtre
est dite glissante
le bloc n’est pas nécessairement besoin d’être acquitté
individuellement. L’acquittement peut être différé et
concerne plusieurs blocs: la fenêtre est dite sautante
33
L'acquittement différé
Mode de fonctionnement situé entre le SEND and WAIT et le GO Back N
L’acquittement concerne plusieurs blocs (acquittement collectif ou global):
un seul ACK acquitte N blocs (ainsi ACK3 signifie « j’ai bien reçu 3 blocs de
données (0, 1, et 2), envoyez-moi le bloc numéroté 3 ».
N est la fenêtre d’anticipation ( le système est appelé protocole à fenêtre
sautante)
34
Fenêtre d’émission : nombre de blocs en attente d'acquittement
Principes généraux des
protocoles
La politique de reprise sur
erreur
Deux modes de fonctionnement, selon la technique de
reprise sur erreur :
reprise depuis le bloc erroné (rejet simple)
reprise du bloc erroné seulement (rejet sélectif)
35
Le rejet simple
La réception d’un NACK (acquittement
négatif)
ou
l’échéance
d’un
temporisateur provoque :
l’arrêt des émissions en cours,
la reprise depuis le bloc erroné ou
perdu
l’élimination par le récepteur des
blocs reçus postérieurement.
Ainsi,
le séquencement est conservé, et le récepteur n’aura pas à trier les
blocs pour les remettre en séquence.
L’émetteur doit posséder N tampons (pour conserver les N blocs
36
émis jusqu’à ce qu’ils aient été tous confirmés) et le récepteur 1 seul
tampon.
Le rejet sélectif
Seul
le
bloc
erroné
est
retransmis. Cela implique la
mémorisation des blocs hors
séquence (non rejetés s’ils ont été
confirmés).
L’anticipation est cependant
limitée par les possibilités de
comptage des blocs émis.
Ainsi,
le récepteur devra exécuter un programme de tri pour rétablir le
séquencement initial.
L’exécution de ce programme risque de durer plus longtemps que la
retransmission des blocs postérieurs au bloc erroné.
Cela n’est rentable que pour les réseaux où la fenêtre d’anticipation
est importante, en raison des délais de transmission importants par
37
rapport à la durée d’un bloc (transmission par satellite).
Principes généraux des protocoles
Contrôle de flux
Contrôle de l’émission par le récepteur quand ses
tampons sont pleins (risque de perte de données).
L’émetteur doit cesser son émission.
2 solutions :
1- Il signale son état à l’émetteur (RNR, Receive
No Ready). L’émetteur accuse réception de cette
information (RR, Receive Ready) et cesse son
émission. Il interroge périodiquement le récepteur
afin de reprendre le transfert dès que possible, en
envoyant des trames très courtes (RR, Receive
Ready).
2 – Une autre solution consiste, pour le récepteur, à agir sur la fenêtre
d’émission de l’émetteur, en adaptant en permanence la largeur de la fenêtre
à ses capacités de réception. Quand le récepteur constate que ses tampons
risquent de déborder, il n’envoie plus d’accusé de réception à l’émetteur. La
borne supérieure de la fenêtre est bloquée, l’émetteur épuise son crédit
d’émission (la borne inférieure évolue avec l’émission). Ainsi, pour éviter le
blocage, et assurer la fluidité du flux d’émission, le récepteur adapte l’envoi
38
de ses accusés de réception, à sa capacité d’accueil de trames.
Principes généraux des protocoles
Le contrôle de la liaison : la signalisation
La signalisation est l’ensemble des informations nécessaires à la
supervision de la liaison, et non celle de l’échange
On peut distinguer 2 types de signalisation :
Dans la bande: le format des unités de données est identique pour le
transfert des informations de gestion et celui pour le transfert de
données (champ spécifique de l’unité de données). Ainsi la
signalisation est insérée dans le flot des blocs de données. La
description par le protocole des formats des unités de données
permet de repérer et d’interpréter la signalisation.
Hors bande: un canal spécifique est réservé à la signalisation (2voies:
une voie pour le transfert de données et une voie pour les
informations de signalisations ), le format des unités de données est
allégé. La séparation des 2 canaux (voie physique ou virtuelles)
facilite le traitement des données, et de la signalisation.
39
Étude de quelques protocoles
- Le protocole SLIP
- le protocole X- MODEM
- le protocole Y-MODEM
- le protocole HDLC
- le protocole PPP
40
PROTOCOLE SLIP (Serial Line Internet Protocol )
(RFC 1055 juin 1988)
SLIP est un protocole asynchrone orienté caractère de la pile
TCP/IP.
Très simple, SLIP n'effectue que la délimitation de trames
Le caractère END (192 ou 0xC0) est utilisé comme délimiteur de
début et de fin.
Quand ce caractère apparaît dans le champ de données, il est
remplacé par la séquence ESC_SLIP , ESC_END (0xDB, 0xDC).
Le caractère d'échappement (ESC_SLIP), qui pourrait aussi
apparaître dans les données est lui-même protégé par l'insertion de la
séquence ESC_SLIP, ESC_ESC (0xDB, 0xDD).
Utilisé en mode point à point, il ne nécessite pas de spécification
d’adresses.
N’effectuant pas de contrôle d’erreur, il suppose la liaison exempte
d’erreur de transmission (!!!)
Sa simplicité le place en voie de disparition.
41
PROTOCOLE X- MODEM (Créé en 1977)
Les données à transférer son regroupées en bloc (paquets) de taille fixe de
128 octets, ce qui évite le délimiteur de fin.
Les caractères sont des octets, sans bit de parité (le contrôle d’erreur est
ailleurs).
La structure du paquet de données est la suivante:
Fanion de début : <SOH> (Code ASCII 0x1)
Numéro de bloc : Numérotation des blocs modulo 255, à partir de 1
Contrôle : Contrôle du numéro de bloc (complément à 1 du Numéro, soit : 255
– Numéro)
Données: Champs données de taille fixe. Cela peut provoquer un
accroissement de la taille du fichier reçu d’au moins 127 octets (inconvénient
majeur de ce protocole)
Contrôle données: Checksum , calculé uniquement sur le champ données.
C’est la somme arithmétique modulo 2 (sans retenue) des octets de données.
La transmission est contrôlé par les caractères ASCII :
NACK ( caractère 0x15), utilisé par le récepteur pour initialiser le transfert ou
signaler une erreur lors d’un transfert.
ACK ( 0x6) est un accusé de réception. l’émetteur envoie le paquet suivant
EOT( 0x4) permet à l’émetteur de signaler la fin de transmission.
42
PROTOCOLE Y- MODEM
SOH N°
bloc
Contrôle Nom
N °bloc
Longueur Blanc
0x20
En ASCII
Date
Donnée
CRC
128 à 1024
Format de paquet numéro 0
Le protocole Y-MODEM est une amélioration du protocole XMODEM: Les paquets ont une taille de 128 ou 1024 octets.
Un paquet d’initialisation (paquet 0) permet de transmettre les
caractéristiques du fichier à expédier.
•Nom du fichier: simple ou suivant la convention UNIX (Chemin
complet)
•longueur du fichier: transmis sous forme d’une chaîne de
caractère (finie par le caractère blanc)
•Date de la dernière modification du fichier: en secondes depuis le
01/01/70
Données (128 caractères, Null)
CRC sur 2 octets
43
Rappel des protocoles synchrones en mode caractère
❚ Les premiers protocoles de liaison implantés (définis avant 1970).
❚
Protocoles
en
mode
caractère
BSC
"Binary
Synchronous
Communication« (1960)
L'unité d'information est le caractère.
Certains caractères sont réservés aux besoins du protocole : les caractères
de contrôle existent dans le jeu de caractères ASCII)
Il a existé de multiples versions de protocoles basées sur des principes et
une utilisation des caractères de contrôle souvent très voisins.
Exemple : Protocole BSC 3780
Evolution vers les protocoles à trames de bits
❚ Volonté de construire des protocoles indépendants d’un jeu de caractères.
❙ Si l'on transporte des caractères 10 bits ou des mots 60 bits il faut découper
et coder les données au format caractère du lien.
❙ Il faut traiter à chaque fois le problème de la transparence en fonction du
code caractère et traiter spécifiquement les caractères de contrôle.
❚ Conséquence pour les protocoles à trames de bits:
a) La charge utile devient une suite de bits.
b) Abandon des caractères de contrôle et définition d’un format de
trame au moyen de zones ayant un rôle et un codage binaire
44
(structure de message).
Historique et normes associées
❚ IBM a développé vers 1970 SDLC ("Synchronous Data Link Communication")
pour SNA (System Network Architecture).
❚ SDLC a été soumis à l'ISO pour normalisation. Modifié il est devenu HDLC
"High-level Data Link Communication".(1976)
❚ SDLC a été soumis à l'ANSI pour devenir le standard américain qui l'a
modifié et est devenu ADCCP ("Advanced Data Communication Control
Program")
❚ Le CCITT a adopté et modifié HDLC qui est ainsi devenu le LAP ("Linkage
Access Protocol") pour le standard de réseau X25.
❚ Le CCITT a modifié X25 dont le LAP qui est devenu le LAPB ("Linkage Access
Protocol" B ou Balanced) (1980)
❚ Les IEEE ont normalisé comme l'un des standards de liaison sur les réseaux
locaux une version modifiée légèrement : le LLC2 ("Logical Link Control type
2") (1985)
❚ Une autre version : le LAPD ("Linkage Access Protocol on the D channel")
est définie pour servir de protocole de liaison sur les canaux D du RNIS.
❚ Une version LAPX est spécifiée pour fonctionner avec des échanges à
l'alternat (LAP semi-duplex).
❚ Une version LAPM (‘LAP Modem’) est spécifiée pour la corrections d’erreurs
dans les modems.
❚ Le standard Internet PPP (‘Point to Point Protocol’) en version de base
reprend différents idées des protocoles à trames et possède une version 45
avec
contrôle d’erreur qui est un version de LAPB.
Format des trames HDLC
01111110
Adresse Commande
8 bits
8 ou 16bits
Données
FCS
N bits
16 bits
01111110
Fanion
• Fanions : délimiteurs de trame
• Adresse : identifie la station émettrice ou réceptrice
elle permet de distinguer une trame de commande d’une trame
de réponse à une commande.
• Commande : combinaison de bits qui identifie la trame
• Données : champ de données (facultatif)
• FCS (Frame Check Sequence) : séquence de détection
d’erreurs égale au reste de la division du polynôme associé aux
différents champs de la trame par X16 + x12 + x5 + 1 (dans l’avis
V41).
46
PROTOCOLE HDLC : Différents types de trames
Trois types de trames :
les trames d’information (I Information)
les trames de supervision (S Supervisory)
les trames non numérotées (U Unnumbered ou trame de gestion)
Elles se distinguent notamment par leur champ Commande :
Note : deux formats du champ Commande existent :
- le format normal (8 bits) compteur de trames sur 3 bits
-le format étendu (16 bits) : négocié lors de l’établissement de la
connexion pour avoir un champ de commande plus grand et ainsi
effectuer la numérotation modulo 128(en pratique 127 trames). compteur
47
de trames sur 7 bits
Les trames d’information(I)
Acheminent les données. Utilisent le “piggybacking” (le récepteur peut
acquitter une trame d’information reçue par l ’envoi d’une autre trame
d’information).
• commande ou réponse
N(S) :
- numéro de la trame d’information - 3 bits - modulo 8
- N(R) :
- numéro de la prochaine trame d’information attendue - 3 bits - modulo 8
- acquitte toutes les trames de numéros strictement inférieurs à N(R)
- la perte d’un acquittement peut ainsi être compensée par le prochain
acquittement
Le bit P/F
On dit que le bit P/F est positionné s’il a la valeur 1.
Par pure convention de notation on dit :
Un bit P/F positionné a la valeur P si la trame est une trame de commande.
Un bit P/F positionné a la valeur F si la trame est une trame de réponse.
L’émetteur d ’une commande exige une réponse immédiate.
En recevant une trame avec le bit P/F positionné, la signification de ce bit
dépend du contexte local.
• F si le récepteur a déjà envoyé une commande
48
•P si aucune commande n ’est envoyée.
Les trames de supervision(S)
4 types de trames de supervision,
• codées dans le sous-champ Type du champ Commande(dans la
bande)
• commande ou réponse
RR (“Received & Ready”) - 00 : acquittement
. confirme la réception des trames de données de nº < N(R)
. demande la transmission des trames suivantes
RNR (“Received & Not Ready”) - 01 : contrôle de flux
. confirme la réception des trames de données de nº < N(R)
. interdit la transmission des trames suivantes
REJ (“Reject”) - 10 : protection contre les erreurs
. 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 : protection contre les erreurs
. confirme la réception des trames de données de nº < N(R)
. demande la retransmission de la trame de nº = N(R)
. non-utilisée par LAP-B(équilibré)
49
Les trames non-numérotées (U)
Permettant l’établissement et la libération de la liaison.
Le champ M possède 32 valeurs dont :
00111 signifie SABM (Set Asynchronous Balanced Mode) :
établit une liaison en mode équilibré LAPB.
01111 signifie SABME (Set Asynchronous Balanced Mode) :
identique à la précédente, mais passage en mode
étendu(numérotation modulo 128)
01000 signifie DISC (Disconnected) : demande de déconnexion.
01100 signifie UA (Unnumbered Acknowledgement) : acquitte
une trame non numérotée.
10001 signifie FRMR (Frame reject): informe la réception d’une
trame qui n’a pas pu être accepté
50
Quelques variables des entités du protocole
Chaque entité tient à jour les trois variables suivantes :
-V(S) = numéro de la prochaine trame d’information à émettre,
-V(R) = numéro de la prochaine trame à recevoir,
DN(R) =numéro de la plus ancienne trame non acquittée, qui est la
limite inférieure de la fenêtre.
- Valeurs initiales V(S) = V(R) = DN(R) = 0
et connaît les constantes suivantes :
-T1 (Temporisation de retransmission) = délai de garde au bout
duquel une trame non acquittée est réémise.
-T2 (Temporisation de d’acquittement) = délai maximum au bout
duquel, le récepteur, s’il n’a pas de données à transmettre, doit
envoyer un acquittement à son correspondant.
- N1 = taille maximum d’une trame.
- N2 = nombre maximum de réémissions d’une même trame.
-W = largeur de la fenêtre.
- etc.
51
Emission d’une trame
Emission d’une trame I
Vérifier que V(S) < DN(R) + W (est la limite supérieure de la fenêtre,
qui est le numéro de la première trame dont l'envoi est interdit).
puis :
- N(S) = V(S) et N(R) = V(R) ;
- mémoriser la trame;
- incrémenter V(S) modulo N;
- armer le temporisateur (délai de garde T1) associé à la
trame;
-désarmer T2.
Emission d’une trame REJ
- N(R) = V(R)
-désarmer T2.
Emission d’une trame RR
- N(R) = V(R)
52
- désarmer T2.
Réception d’une trame
Sur réception d’une trame
Si détection d’une erreur Alors
Ignorer la trame reçue
Si la trame est invalide Alors
Envoyer une trame U: FRMR
Sur réception d’une trame I(N(S),N(R))
- Si N(S) ≠ V (R)
- alors trame non-attendue (déséquencée)
. émettre une trame REJ;
- sinon /* N(S) = V(R) */
. Armement du temporisateur T2 (délai
d’acquittement) associé à N(S);
. incrémentation de V(R).
- Si DN(R) <= N(R) < V(S) alors
. Désarmer les temporisateurs T1 des
trames de nº inférieur à DN(R);
. DN(R) = N(R) ;
53
Sur réception d’une trame RR(N(R))
-Si DN(R) <=N(R) < V(S) alors
. désarmer les temporisateurs T1 des trames de nº
inférieur à DN(R) ;
. DN(R) = N(R).
Sur réception d’une trame REJ(N(R))
- Si DN(R) <= N(R) < V(S) alors
. désarmer les temporisateurs T1 des trames de nº
inférieur DN(R);
. DN(R) = N(R) ;
. Émettre les trames de numéros compris entre N(R) et
V(S).
Expiration d’un délai
A l’expiration du délai T1 associé à une trame
- Si le nombre de retransmissions n’est pas dépassé (< N2)
. alors on réémet la trame I telle qu’elle a été
mémorisée.
A l’expiration du temporisateur T2
54
- émettre une trame RR.
Scénario d’établissement et de rupture d’une connexion
Lorsque les erreurs ne peuvent être
corrigées par une simple retransmission de
la ou des trames litigieuses (nombre de
retransmissions supérieur à N2, Nr incorrect
: valeur supérieure au nombre de trames
réelles...), l’ETCD ou ETTD peut effectuer une
déconnexion (DISC) ou réinitialiser la liaison
(SABM)
Sur incident de ligne (modem
coupé...), le réseau (ETCD) peut
signaler cet état par l’émission de
trame DM (Disconnect Mode), après
N2 retransmissions, il passe à l’état
55
déconnecté.
Scénario de transfert de données
Notations :
I(N(S),N(R),P/F)
RR(N(R),P/F)
56
Reprise sur erreur
Notations :
I(N(S),N(R),P/F)
REJ(N(R),P/F)
57
contrôle de flux
RR(Nr=0,p=1)
RR(Nr=0)
RR(Nr=0)
=RR(Nr=3,F=1)
Notations :
I(N(S),N(R),P/F)
RR(N(R),P/F)
RNR(N(R),P/F)
58
PROTOCOLE HDLC : Gestion du bit P/F
En mode équilibré (version LAPB), chaque extrémité de la liaison peut, en
positionnant le bit P à 1, prendre l’initiative de solliciter une réponse de
l’autre extrémité.
Si les deux entités formulent, en même temps, une demande de réponse, le
protocole HDLC ne distinguant pas le bit P du bit F, chaque entité prend la
demande de l’autre comme la réponse à sa propre demande.
Solution: utilise le champ adresse comme extension du champ de commande
pour identifier le sens de la requête
- dans le sens Host/Réseau, le champ adresse contient la valeur binaire
00000001,
- dans le sens Réseau/Host, le champ adresse contient la valeur binaire 59
00000011.
PROTOCOLE HDLC : Différentes versions
HDLC est une famille de protocoles : son implémentation
existe dans plusieurs versions:
LAP (Link Access Protocol), fonctionnement
sollicitation d’une seule extrémité : le primaire
sur
LAP-B (LAP Balanced), mode équilibré, les deux
extrémités sont primaires, elles peuvent émettre des
commandes
LAP-D (LAP channel D), similaire à LAP-B est défini pour
le RNIS (transport de la signalisation)
LAP-M (M pour Modem), dérivé de LAP-D, ce protocole
est utilisé dans les modems conforme à l’avis V42 et
V42bis
LAP-X, mode semi-duplex dérivé de LAP-D, est utilisé
60
dans le télétex
PROTOCOLE PPP: Caractéristiques
Transfert de paquets de protocoles différents encapsulés
61
dans les trames d’information
Protocole PPP
PPP (Point to Point Protocol défini dans les RFCs 1661,
1662 et 1663) est un protocole point à point inspiré
d’HDLC. Il en diffère par la possibilité de multiplexer sur
une même liaison le transport de plusieurs protocoles
(encapsulation du protocole X, Y... ou tunneling). Il s’agit
en fait d’encapsuler des paquets de protocoles différents
dans une trame HDLC simplifiée.
Par contre, pour transporter des blocs d'information issus
de protocoles de niveau supérieur différents (c'est le cas
par exemple d'une liaison entre deux routeurs
multiprocoles) il est nécessaire d'introduire, dans le bloc
de données un champ supplémentaire identifiant le
protocole transporté. Les autres champs sont identiques à
ceux de HDLC, aussi bien pour leur format que pour leur
signification.
62
Il fonctionne en mode asynchrone et en mode synchrone
Format des trames PPP
8 bits
16 bits
01111110 11111111 00000011
Protocole
n bits
Données
FCS
01111110
Fanion
Adresse
Commande
63
Champs de la trame
• Fanions : délimiteurs de trames
Le fanion, implique la transparence (caractère ou binaire). Si le
protocole est utilisé sur une liaison synchrone, la transparence au
fanion est assurée de manière similaire à HDLC (insertion d'un bit à 0
tous les 5 bits à 1, technique dite du bit stuffing).
S'il est utilisé sur une liaison asynchrone la transparence au fanion
(0x7E) est utilisée par remplacement de ce caractère par la séquence :
ESC_PPP, ESC_FLAG (0x7D, 0x5E).
Le caractère d'échappement (ESC_PPP, 0x7D) est remplacé par la
séquence : ESC_PPP, ESC_ESC (0x7D, 0x5D).
• Adresse et Commande : valeurs fixées (et non utilisées). sa
valeur est constante et fixée à 0xFF.
• Protocole : indique quel type de paquet est transporté dans
les données.
• Données : taille maximale par défaut égale à 1500 octets.
• FCS : champ pour la détection d’erreurs.
64
Champ Protocole
Code
Protocole
0021
IP
0029
AppleTalk
002B
IPX
800F
IPV6
002D
TCP/IP (en tête
compressé)
65
SYNTHESE
L’échange de données est régi par un ensemble
de règles (ou protocole)
Un
protocole
assure
totalement
partiellement les fonctions suivantes :
ou
la délimitation des bloc de données (Fanion)
le contrôle d’erreur (parité, CRC)
le séquencement des données (compteurs)
le contrôle flux
l’identification des entités communicantes
l’identification du protocole transporté
66