Rémi EVE - 2001 -

Rémi EVE
- 2001 -
Sommaire
Objectifs :
• Intérêt des protocoles de liaison
• Comprendre leur fonctionnent
• Où sont ils utilisés ?
Les techniques :
• Le « Stop-and-Wait »
• Les protocoles à fenêtres
Les normes et les produits :
• La norme HDLC et ses implémentations dérivées
Quels services sont proposés à la couche réseau ?
On peut citer trois services que la couche liaison de données peut offrir à la
couche réseau :
• sans connexion, sans acquittement
(utilisé pour transporter la parole)
• sans connexion, avec acquittement
(utilisé pour des canaux peu fiables)
• avec connexion, acquitté
(utilisé pour des transmissions fiables)
Compromis entre performances et fiabilités
Transmission de trames, protocole I : Stop-and-Wait
Schéma classique :
• Emetteur envoi une trame
• Récepteur reçoit la trame et retourne un acquittement (ACK ou
NACK)
• Emetteur attend l’acquittement pour émettre la prochaine trame
A
(a)
B
T,a
(a)
ACK
(b)
T,b
(b)
Cas d ’utilisation : Transmission de trames longues
Transmission de trames, protocole I : Stop-and-Wait
Problème n°1 : Perte d ’une trame ou d ’un ACK
=>
A
A
(a)
(a)
B
T,a
(a)
T,b
ACK
(b)
B
T,a
Time
out
T,a
ACK
(b)
Timer
Time
out
ACK
(a)
T,a
(a)
ACK
Perte d ’un acquittement
Doublons
Transmission de trames, protocole I : Stop-and-Wait
Problème n°2 : Doublons
A
(a)
Time
out
=> Numérotation des trames et ACK (0 & 1)
B
T,a,0
ACK
(a,0)
(a)
T,a,0
(a,0)
ACK,0
ACK
(b)
Time
out
T,a,0
(b)
T,b,1
(b,1)
T,b,1
NACK,1
ACK
(b,1)
Fausse perte
T,b,1
ACK
(c)
T,c,2
(d)
Perte de la trame c
T,d,3
(d,3)
Emetteur croit recevoir l’acquittement de la trame c
Transmission de trames, protocole I : Stop-and-Wait
Ce protocole permet une transmission fiable en utilisant :
• N°séquence (trame)
• N°acquittement (ACK et NACK)
• Timer
• CRC
Les différentes
trames utilisées
Trame de données
Trame d ’acquittement
01111110
FLAG TYPE N°TRAME DONNEES FCS FLAG
FLAG TYPE ACK + N° FCS FLAG
Ce protocole est aussi connu sous les termes « de protocoles à bits alternés »
Inconvénient : un faible taux d’utilisation du canal
Comment améliorer ce taux ?
1ère amélioration : Communication bidirectionnelle
Comment communiquer dans les deux sens ?
Technique du « piggyback » : Inclusion du champ ACK dans les trames de
données.
Trame de données
FLAG TYPE N°TRAME ACK+N° PAQUET FCS FLAG
Trame de contrôle
FLAG ACK+N° FCS TYPE FLAG
Une trame envoyée est acquittée par :
• Une trame de données si le récepteur a une trame à envoyer
• Une trame de contrôle dans le cas contraire
Une trame peut acquitter plusieurs trames en une seule opération
2ième amélioration : Le pipeline
L’émetteur peut envoyer plusieurs trames en attendant un acquittement
A
(a)
B
T,a,0
ACK,0
(b)
A
(a,0)
(a)
(b)
(c)
B
T,a,0
T,b,1
T,c,2
T,b,1
ACK,1
(b,1)
Problème : plus de contrôle du flux (risque de saturation du récepteur)
(a,0)
(b,1)
(c,2)
Contrôle du flux : Fenêtres glissantes
Principe :
• plusieurs trames émises à la suite
• Trames numérotées sur « n » bits et modulo 2n
• Taille des fenêtres : 2n-1
Trames déjà émises
N° de Séquence (n° de trame)
Emetteur
0 1 2 3 0 1 2 3
Trames qui peuvent êtres émises
Trames déjà reçues
Récepteur
Fenêtre glissante (taille = 3)
0 1 2 3 0 1 2 3
Trames qui peuvent êtres reçues
Contrôle du flux : Fenêtres glissantes (exemple)
(Numérotation sur 2 bits)
Emetteur
0 1 2 3 0 1 2 3
s
0 1 2 3 0 1 2 3
Emetteur envoi les
trames 0 et 1
T(0,1)
Récepteur attend
la trame 2
Récepteur
0 1 2 3 0 1 2 3
z
0 1 2 3 0 1 2 3
ACK,2
s
0 1 2 3 0 1 2 3
T(2,3,0)
z
0 1 2 3 0 1 2 3
Emetteur bloqué
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
ACK,1
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
Comment détecter une erreur ou une perte ?
Détection d’une perte :
• Le Timer de l ’émetteur permet de détecter une perte
L ’émetteur émet à nouveau la trame perdue
Détection d ’une erreur côté récepteur :
• Vérification du FCS
• Réception de la trame « (x) mod n » avant la trame « (x-1) mod n »
Deux possibilités pour récupérer une erreur :
• « GO-BACK-N »
• « Selective Repeat »
Dans tous les cas, l ’émetteur doit mémoriser les trames
non acquittées
« GO-BACK-N »
« GO-BACK-N » :
• La transmission est reprise depuis la trame perdue ou erronée
Méthode simple mais peu efficace
A
ACK,1
ACK,3
B
(a)
T,a,0
(b)
T,b,1
(c)
T,c,2
(b)
T,b,1
(c)
T,c,2
(d)
T,d,3
(a,0)
Trame erronée
(b,1)
(c,2)
(d,3)
REJ,1
« SELECTIVE-REPEAT »
« Selective Repeat » :
• Seule la trame perdue ou erronée est retransmise
Plus efficace que le GO-BACK-N
Implémentation plus complexe
Mémorisation des trames côté récepteur
A
(a)
(b)
ACK,1
(c)
B
T,a,0
T,b,1
T,c,2
(a,0)
Trame erronée
SREJ,1
Buffer
(b)
T,b,1
(b,1) (B ordonne les trames)
ACK,3
Norme : HDLC (High Level Data Link Control)
L’ISO défini un protocole de liaison « générique ». Cette norme propose 3
modes de fonctionnement selon la topologie du réseau :
• Normal Response Mode (NRM)
Point-to-point ou multipoint
Half-duplex
Primaire
• Asynchronous Response Mode (ARM)
Point-to-point
Secondaire initie une transmission
• Asynchronous Balanced Mode (ABM)
Point-to-point
Full-duplex
Secondaire
Primaire
Prim/Sec
Secondaire
Full-duplex
Full-duplex
Secondaire
Prim/Sec
La trame HDLC « générique »
On distingue 3 types de trames :
• Information (contient les données)
• Supervision (gestion des erreurs : REJ,SREJ,RR,RNR)
• Non numérotée (initialisation et libération : UA,DISC,SABM,SARM)
8 bits
Flag
8 bits
8 bits
Adresse
0
Contrôle
N(S)
1
0
1
1
N(S)
Information
16/32 bits
8 bits
FCS
Flag
P/F
N(R)
Trame d’information (données)
P/F
N(R)
Trame de supervision
P/F
Trame non numérotée
Champs de contrôle : particularité
Trame de supervision :
• RR : Receive Ready
le récepteur est prêt à recevoir
• RNR : Receive Not Ready
le récepteur ou la couche réseau est débordé, demande de rémission
de la trame
• REJ / SREJ : Reject et Selective Reject
demande de retranmission
Trame non-numérotée :
• DISC : Disconnect
• SABM : Set Asynchronous Balanced Mode
• UA : Acquittement
Exemple de transmission en mode HDLC NRM
Primaire
A
Demande connexion
Secondaire
B
B,SNRM,P
B,UA,F
B,I,N(S)=0,N(R)=0
B,I,N(S)=1,N(R)=0,P
A reçoit I,0 & ACK
B,I,N(S)=0,N(R)=2
A reçoit I,1
B,I,N(S)=1,N(R)=2
A reçoit I,2 & F bit
B reçoit I,0
B reçoit I,0 & P bit
B reçoit ACK & P bit
B,RR,N(R)=2,F
B,DISC,P
A reçoit un ACK & F bit
Accepte la connexion
UA (ack non numéroté)
ARM / ABM / NRM (mode)
Disc (disconnect)
P/F : Poll/Final
B,I,N(S)=2,N(R)=2,F
B,RR,N(R)=3,P
A reçoit I,2 & F bit
Légende
RR, RNR (acquittement)
REJ, SREJ (rejet)
B reçoit déconnexion & P bit
B,UA,F
adresse du secondaire
Hiérarchie des protocoles de liaison
SDLC - 1970
(SNA)
HDLC
(ISO)
PPP
ABM
NRM
NRM
LAPB LAPD
(X25.2) (RNIS)
SDLC
(SNA)
LAP
(X25.2)
LAPDm
(GSM)
LLC
(LANs)
SDLC : Synchronous Data Link Control (IBM)
HDLC : High Data Link Control (ISO)
PPP : Point-to-Point protocol
LAP : Link Access Procedure
Les réseaux X.25
La norme X.25 : Adopté par l’ITU (International Telecommunications
Union) en 1976, elle définie l’interface entre un ETTD (serveur, routeur,
terminal,...) et un ETCD (modem,…).
Objectif : Répondre aux besoins croissants de connexions distantes.
Exemple : Les réseaux publics français sont basés sur X.25 (Transpac en
1979, Minitel, …).
La norme X.25 couvre les 3 premières couches de l ’OSI.
Le niveau liaison :
• Rendre fiable le canal entre un ETCD et un ETTD
• Protocole LAPB (Link Access Procedure Balanced) qui est une
implémentation d ’HDLC (fenêtre coulissante, …)
Exemple de réseau X.25
ETTD
(pc)
ETCD
(modem)
ETTD
(pc)
ETTD
(pc)
X.25
ETTD
ETTD
Switch
ETTD
ETTD
réseau
X.25/3
réseau
réseau
réseau
X.25/3
réseau
liaison
X.25/2
liaison
liaison
liaison
X.25/2
liaison
Physique X.25/1 Physique
Physique
Physique X.25/1
Physique
Un produit : PPP (Point-to-Point Protocol)
SLIP et SLIP+ : Prédécesseurs de PPP, mais trop rigide (manque de
modularité).
Objectif :
• Faire transiter des paquets de données sur des liaisons point-à-point
• Accéder à Internet depuis un poste isolé (via un modem)
Implémentation d ’HDLC
Caractéristiques :
• Communication bidirectionnelle et garde l’ordre des paquets
• Supporte divers protocoles de niveau réseau (IP,IPX,…)
• Contrôle d’accès via des procédures d’authentifications
• Optimisation de la communication
• Modularité
• Contrôle d ’erreurs
Composants de PPP
1) Trame HDLC
2) Protocole de contrôle de liaison (LCP : Link Control Protocol)
• Etablissement, maintien et libération de la connexion
• Négociation d ’options (taille des trames,…)
3) Protocole de contrôle réseau (NCP : Network Control Protocol)
• Une famille de protocoles de contrôle réseau (IPC,IPXCP,NBTP,...)
qui configure les protocoles de la couche réseau
IP
Couche réseau
IPX
NCP
CHAP
PPP
PAP
Couche liaison
Couche physique
LCP
Phases d ’une transmission avec PPP
LCP : Link-Control-Protocol
NCP : Network-Control-Protocol
Phase I : Chaque extrémité du lien
PPP envoi des paquets LCP
pour configurer et tester la ligne
Phase II [option] : Authentification
Deux modes disponibles :
• PAP
Simple, mais le mot de passe transite en
clair sur le réseau
• CHAP
Fourni une protection contre les attaques
Phase III : PPP envoi des paquets NCP
pour choisir et configurer un ou plusieurs
protocoles réseau disponibles (IP, IPX).
(Cette phase peut lors d ’une connexion Internet
permettre d’obtenir une adresse IP pour toute la
durée de la connexion)
Evénement
Phase IV : Transfert des datagrammes
Exemple d ’utilisation de PPP
Connexion à un réseau d’entreprise
FTP, WWW
TCP
UDP
IP
PPP / SLIP
Physique
Machine
Modem
isolée
Serveur
d ’accès
Réseau téléphonique
Connexion à Internet
Réseau entreprise
Modem
Internet
Fournisseur d ’accès
Exemple de produits PPP
PPP se trouve essentiellement comme couche logicielle :
• Intégré au système d’exploitation dans windows, solaris2
• « MacPPP » pour Macintosh
• « pppd » sous Linux