250 likes | 372 Views
Les protocoles de liaison : HDLC, PPP, X25.2. 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 :
E N D
Les protocoles de liaison : HDLC, PPP, X25.2 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 Cas d ’utilisation : Transmission de trames longues A B (a) T,a (a) ACK (b) T,b (b)
Transmission de trames, protocole I : Stop-and-Wait Problème n°1 : Perte d ’une trame ou d ’un ACK => Timer A B (a) T,a A B Time out (a) T,a (a) T,a ACK (a) Time out (b) ACK T,b (b) T,a ACK (a) ACK Perte d ’un acquittement Doublons
Transmission de trames, protocole I : Stop-and-Wait Problème n°2 : Doublons => Numérotation des trames et ACK (0 & 1) A B (a) T,a,0 (a,0) Time out ACK (a) T,a,0 T,a,0 (a,0) ACK,0 ACK (b) (b) T,b,1 T,b,1 (b,1) (b,1) Time out NACK,1 ACK Fausse perte T,b,1 ACK (c) T,c,2 (d) Perte de la trame c (d,3) T,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 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 ? 01111110 Trame de données FLAG TYPE N°TRAME DONNEES FCS FLAG Les différentes trames utilisées Trame d ’acquittement TYPE FLAG ACK + N° FCS FLAG
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. 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 Trame de données FLAG TYPE N°TRAME ACK+N° PAQUET FCS FLAG Trame de contrôle FLAG ACK+N° FCS TYPE FLAG
2ième amélioration : Le pipeline L’émetteur peut envoyer plusieurs trames en attendant un acquittement Problème : plus de contrôle du flux (risque de saturation du récepteur) A B A B (a) (a) T,a,0 T,a,0 (b) T,b,1 (a,0) (a,0) ACK,0 (c) T,c,2 (b,1) (c,2) (b) T,b,1 (b,1) ACK,1
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) 3 0 1 2 0 1 2 3 Emetteur Trames qui peuvent êtres émises Fenêtre glissante (taille = 3) Trames déjà reçues 3 0 1 2 0 1 2 3 Récepteur Trames qui peuvent êtres reçues
Contrôle du flux : Fenêtres glissantes (exemple) (Numérotation sur 2 bits) Emetteur Récepteur Emetteur envoi les trames 0 et 1 3 3 0 1 2 0 1 2 3 0 1 2 0 1 2 3 T(0,1) Récepteur attend la trame 2 s z 3 3 0 1 2 0 1 2 3 0 1 2 0 1 2 3 ACK,2 s z 3 0 1 2 0 1 2 3 3 0 1 2 0 1 2 3 T(2,3,0) Emetteur bloqué 3 3 0 1 2 0 1 2 3 0 1 2 0 1 2 3 ACK,1 3 3 0 1 2 0 1 2 3 0 1 2 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 B (a) T,a,0 (a,0) (b) T,b,1 Trame erronée ACK,1 REJ,1 (c) T,c,2 (b) T,b,1 (b,1) (c) T,c,2 (c,2) (d) T,d,3 (d,3) ACK,3
« 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 B (a) T,a,0 (a,0) (b) T,b,1 Trame erronée ACK,1 SREJ,1 (c) T,c,2 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 • Asynchronous Response Mode (ARM) Point-to-point Secondaire initie une transmission • Asynchronous Balanced Mode (ABM) Point-to-point Full-duplex Half-duplex Primaire Secondaire Secondaire Full-duplex Primaire Secondaire Full-duplex Prim/Sec 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 8 bits 16/32 bits 8 bits 8 bits Flag Adresse Contrôle Information FCS Flag 0 N(S) P/F N(R) Trame d’information (données) 1 0 N(S) P/F N(R) Trame de supervision 1 1 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 Secondaire B Légende RR, RNR (acquittement) REJ, SREJ (rejet) UA (ack non numéroté) ARM / ABM / NRM (mode) Disc (disconnect) P/F : Poll/Final B,SNRM,P Demande connexion B,UA,F Accepte la connexion B,I,N(S)=0,N(R)=0 B reçoit I,0 B,I,N(S)=1,N(R)=0,P B reçoit I,0 & P bit B,I,N(S)=0,N(R)=2 A reçoit I,0 & ACK B,I,N(S)=1,N(R)=2 A reçoit I,1 B,I,N(S)=2,N(R)=2,F A reçoit I,2 & F bit B,RR,N(R)=3,P B reçoit ACK & P bit B,RR,N(R)=2,F A reçoit I,2 & F bit B,DISC,P B reçoit déconnexion & P bit B,UA,F A reçoit un ACK & F bit adresse du secondaire
Hiérarchie des protocoles de liaison SDLC - 1970 (SNA) HDLC (ISO) ABM NRM NRM PPP LAPB (X25.2) LAPD (RNIS) SDLC (SNA) LAP (X25.2) LLC (LANs) LAPDm (GSM) 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) ETTD (pc) ETCD (modem) ETTD (pc) X.25 ETTD ETTD ETTD ETTD Switch X.25/3 X.25/3 réseau réseau réseau réseau réseau X.25/2 X.25/2 liaison liaison liaison liaison liaison X.25/1 X.25/1 Physique Physique Physique Physique 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 IPX Couche réseau NCP CHAP PPP PAP LCP Couche liaison Couche physique
Phases d ’une transmission avec PPP LCP : Link-Control-Protocol NCP : Network-Control-Protocol • 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 I : Chaque extrémité du lien PPP envoi des paquets LCP pour configurer et tester la ligne 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) Phase IV : Transfert des datagrammes Evénement
Exemple d ’utilisation de PPP Connexion à un réseau d’entreprise FTP, WWW Machine isolée TCP UDP Réseau téléphonique Serveur d ’accès Modem IP PPP / SLIP Physique Réseau entreprise Connexion à Internet 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