Réseaux Réseaux
Liaison de Données Liaison de Données
Master Miage 1
Université de Nice-Sophia Antipolis
(Second semestre 2009-2010)
Plan général Plan général
Introduction
Transmission des données
Liaison de données
Architecture de Réseaux, modèle 0SI, services de réseaux
Réseaux locaux d'établissement, interconnexion
Services de circuit virtuels : X25, relais de trame, ATM
Architectures TCP/IP, UDP
Protocoles applicatifs de bas niveaux
Conclusion
Fonctions des protocoles de liaison
Fonctions des protocoles de liaison (1/2) (1/2)
Echanger des blocs de données au travers d'un circuit de données imparfait en cachant ces imperfections aux couches supérieures.
Le protocole met en œuvre des conventions entre stations qui déterminent le comportement de celles-ci selon les conditions, normales ou anormaales de la transmission.
E T T D E T T D
Couche Liaison de liaison
Couche Liaison
CouchePhysique CouchePhysique
Circuit de données
Fonctions des protocoles de liaison
Fonctions des protocoles de liaison (2/2) (2/2)
Les blocs de données ou LDSU (Link Service Data Units) sont accompagnés d'information de contrôle ou LPCI (Link Protocol Control Information) et forment des éléments de protocoles ou LPDU (Link Protocol Data Units).
L P C I L D S U
Protocole de liaison
L P D U
Principales fonctions supportées Principales fonctions supportées
identification du début et de la fin de chaque élément de protocole (bloc)
identification des adresses des stations
détection des erreurs de transmission
actions correctives en cas d'anomalie (ex : retransmission)
Séquencement correcte des blocs de données (éventuellement)
Moyens éventuels d'asservissement du flux émetteur (contrôle de flux)
Éléments de protocole particuliers de commande (interrogation des stations, initialisation, etc.)
Types de protocoles Types de protocoles
Protocoles Start/Stop
Protocoles COP
– Character Oriented Protocol
Protocoles BOP
– Bit Oriented Protocol
Protocoles Start/Stop Protocoles Start/Stop
Un bloc = un caractère d'un code donné (ex : ASCII)
Protocoles asynchrones
Caratères spéciaux (ou séquence de caractères normaux) réservés par le protocole
Exemple : protocole (X.28) d'accès au PAD X.25
Protocoles COP
Protocoles COP (Character Oriented Protocol) (Character Oriented Protocol)
un bloc = plusieurs caractères d'un code donné
protocoles synchrones
fonctionnement Half-Duplex
Caractères spéciaux réservés par le protocole
Exemple : protocole BSC (Binnary Synchronous Communication)
Protocoles BOP
Protocoles BOP (Bit Oriented Protocol) (Bit Oriented Protocol)
un bloc = une suite de bits
protocoles synchrones
fonctionnement Full-Duplex
Transparence aux éventuels code utilisés
Exemple : protocole HDLC (High-level Data Link Control)
Protocoles
Protocoles (1/6) (1/6)
Protocoles
Protocoles (2/6) (2/6)
Protocoles
Protocoles (3/6) (3/6)
Protocoles
Protocoles (4/6) (4/6)
Protocoles
Protocoles (5/6) (5/6)
Protocoles
Protocoles (6/6) (6/6)
Protection contre les erreurs
Protection contre les erreurs (1/2) (1/2)
Taux moyen d'erreurs de transmission sur un circuit de données de l'ordre de 10-5 (lignes analogiques de faible qualité)
– Convient pour la transmission de la voix ou des images – 10-10 nécessaire pour la transmission des données
Ajout à l'information utile d'une quantité d'information suppléméntaire dite de redondance
Deux stratégies :
– redondance juste suffisante pour permettre la détection des erreurs
– Redondance permettant au récepteur de retrouver l'information originelle : correction d'erreurs
– Tendance habituelle : détection seulement (exception : en-tête des celleules ATM)
Protection contre les erreurs
Protection contre les erreurs (2/2) (2/2)
Information utile découpée en bloc de i bits auquels on ajoute r bits de redondance
– Parmi les 2**n combinaisons possibles des n=i+r bits transmis, seules 2**i sont valides .
En réception 2 cas possibles :
✓ mot de n bit reçu valide => bloc origine ( i bits) peut-être reconstitué
✓ mot reçu invalide :
Code correcteur => bloc origine peut-être reconstitué
Code détecteur => bloc origine doit être retransmis
Techniques de calcul de redondance :
– Bit de parité ( (VRC Vertical Redundancy Checking), caractère de redondance (LRC Longitudianl Redundancy Checking), total de vérification (Checksum), etc.
– Codes cycliques
Codes Cycliques (CRC) Codes Cycliques (CRC)
Voir séance de travaux dirigés
Exemple de calcul de CRC Exemple de calcul de CRC
Voir séance de Travaux Dirigés
Protocoles de la famille HDLC Protocoles de la famille HDLC
HDLC High-level Data Link Control (ISO) – ISO 3309 Structure de trame
– ISO 4335 Eléments de procéduree – ISO 7809 Classes de procédure
ADCCP Advanced Data Communications Control Procedure (ANSI)
SDLC Synchronous Data Link Control (IBM)
LAP-B Link Access Protocol Balanced (CCITT X.25)
LAB-D Gestion du canal D de l'accès à RNIS
LLC Logical Link Control (Réseaux locaux)
Caractéristiques de HDLC Caractéristiques de HDLC
Exploitation duplex de la liaison
Fenêtre d'anticipation : possibilité d'envoi de plusieurs
messages (trames) en séquence sans attendre d'acquittement
Piggybacking (superposition) : une trame peut contenir des données et des informations de service (ex : ACK)
Protection des trames par un FCS (Frame Check Sequence)
Fanion (flag) : délimiteur unique de début et de fin de trame
Transparence vis à vis des donnée transportées :
transmissionsynchrone de suite d'éléments binaire sans interprétation
Liaison HDLC non-équilibrée
Liaison HDLC non-équilibrée (1/2) (1/2)
Commandes --->
Station primaire
Réponses
<---
Station
Secondaire Station
Secondaire
Station primaire :
– unique
– émet des commandes
– active et désactive la liaison, gère les reprises
Stations secondaires :
– une ou plusieurs
– recoit des réponses
– ne peut émettre que sur sollicitation de la station primaire, doit indiquer quand elle a fini de transmettre pour rendre le
Liaison HDLC non-équilibré
Liaison HDLC non-équilibré (2/2) (2/2)
En fonction des commandes reçues de la station primaire les stations secondaires peuvent prendre différents états :
– Mode de réponse normal
NRM (Normal Response Mode) ou UNC (Unbalanced Normal Class) suite aux commandes :
✓ SNRM Set Normal Response Mode
✓ SNRME Set Normal Response Mode Extended
– Mode déconnecté suite à la commande :
✓ DISC Diconnect
– Mode d'initialisation suite à la commande :
✓ SIM : Set Initialization Mode
Liaison HDLC équilibrée
Liaison HDLC équilibrée (1/2) (1/2)
Commandes ou Réponses --->
Station
Mixte Station
Mixte Commandes ou Réponses
<---
2 Stations mixtes :
– à la fois primaires et secondaires
– émettent des commandes ou des réponses – Responsabilités égales
Liaison HDLC équilibrée
Liaison HDLC équilibrée (2/2) (2/2)
En fonction des commandes reçues depuis son homologue chaque stations mixtes peut prendre différents états :
– Mode asynchrone équilibré
ABM (Asynchronous Balanced Mode) ou BAC (Balanced Asynchronousl Class) suite aux commandes :
✓ SABM Set Asynchronous Balanced Mode
✓ SABME Set Asynchronous Balanced Mode Extended
– Mode déconnecté suite à la commande :
✓ DISC Diconnect
– Mode d'initialisation suite à la commande :
✓ SIM : Set Initialization Mode
Structure de la trame HDLC Structure de la trame HDLC
adresse commande information
8 bits 8 bits 8 bits n bits 16 bits 8 bits
Fanion
(flag) Vérification
(FCS) fanion
(flag)
fanion : délimiteur de trame (synchronisation de trame)
adresse : identification d'une ou plusieurs station
commande : type de trame, numéro de séquence, etc.
information : données à transmettre, de longueur n bits quelconque, parfois nulle, souven,t multiple de 8 (octet)
Vérification : FCS (Frame Check Sequence) permettant de vérifier la transmission correcte de la trame
Fanion et insertion de zéro
Fanion et insertion de zéro (1/2) (1/2)
Configuration binaire unique : 01111110
Insertion de zéro : empêche une simulation de fanion à l'intérieur d'une trame entre les fanions de début et de fin :
– après l'envoi du fanion d'ouverture et jusqu'au fanion de
fermeture , l'émetteur insère un zéro après toute succession de 5 uns contigus
– Après détection d'un fanion, le récepteur élimine tout zéo qui suit une succession de 5 uns contigus (entre fanions)
fanion adresse commande information
0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 . . .
émission 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 . . .
réception 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 . . .
message à Transmettre
1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 message
Fanion et insertion de zéro
Fanion et insertion de zéro (2/2) (2/2)
Zéros insérés non inclus dans le calcul du FCS
Synchronisation trame : les stations anlysent en permanence le flux des bits reçus pour y reconnaître un fanion (fenêtre glissante)
Un même fanion peut fermer une trame et en ouvrir une autre
Entre les trames :
– Émissions de fanions successifs (trames vides)
– Ou emission de uns contigus sans insertion de zéro
Abort : Signal d'abandon pour mettre fin prématurément à la transmission : 01111111
Etat iddle : 15 uns consécutifs
Champ d'adresse Champ d'adresse
Indique toujours l'adresse de la station secondaire
En plus de sa propre adresse une adresse peut reconnaître :
– Une ou plusieurs adresse de groupe – Une adresse de diffusion (broadcast)
Champ de 8 bits extensible à une chaîne d'octets :
– Le premier bit à 0 de chaque octet indique qu'il n'est pas le dernier :
Permet en mode équilibré de distinguer commandes et réponses
0aaaaaaa 0aaaaaaa 0aaaaaaa 1aaaaaaa
Commandes (adresse = B) Réponses (adresse = A) Commandes (adresse = B)
Réponses (adresse = A) Station
Mixte A
Station Mixte
B
Champ de commande
Champ de commande (1/2) (1/2)
3 types de trames :
– trames d'information (I) – trames de supervision (S)
– trames non numérotées (U Unumbered)
Longueur : 8 bits pouvant être étendus à 16 bits
I 0 Ns P/F Nr
S 1 0 S S P/F Nr
U 1 1 M M P/F M M M
Champ de commande
Champ de commande (2/2) (2/2)
Ns (Send count) : compteur d'émission (modulo 8)
Nr (Receive count) : compteur de réception (modulo 8)
P/F : Poll /Final bit
– P : invitation à émettre émise par la station primaire – F : fin de transmission émise par la station secondaire
note : en mode ABM, le bit F indique une réponse à une commande qui contenait le bit P
S : bits de codage des trmaes de supervision (type S)
M (Modifier) : bits de codage des trames non numérotées
(type U)
Numérotation étendue Numérotation étendue
Champ de commande peut être étendu à 16 bits
– Pour permettre d'étendre les champs Nr et Ns et augmenter la fenêtre d'anticipation
✓ Utile pour les tranmissions présentant des temps de propagation élévés (ex : satellites)
Mode activé per les commandes spéciales :
– SNRME au lieu de SNMR – SABME au lieu de SABM
I 0 Ns P/F Nr
S 1 0 S S X X X X P/F Nr
U 1 1 M M X M M M P/F X X X X X X X
Champ d'information Champ d'information
Présence :
– dans les trames de type I
– dans certaines trames de type U
Taille :
– quelconque dans les trames de type I – en général multiple de 8 bi
ts
– en pratique limitée à quelques kilo-octets compte tenu :
✓ de la taille des mémoires-tampons des stations
✓ du taux d'erreurs résiduelles accepatables (taux d'erreurs moyen et performance du FCS)
Champ de vérification : FCS
Champ de vérification : FCS (1/2) (1/2)
Le Frame Check Sequence (FCS) :
– protège toutes les trames (I, S et U)
– inclut tous les champs (A, C, I) des trames dans son calcul – est calculé en réception à partir du premier bit qui suit le
fanion d'ouverture jusqu'au dernier bit qui précède le fanion de fin. Sa valeur accumulée doit alors avoir une valeur prédéterminée.
Toute trame reçue avec un FCS incorrect :
– est ignorée
– ne provoque pas l'incrémentation du compteur Nr en mode NRM ou ABM.
Champ de vérification : FCS
Champ de vérification : FCS (2/2) (2/2)
Pôlynome générateur normal (CRC-CCITT) /
X
**16+ X
**12+ X
**5+ 1
Possibilté d'extension du FCS à 4 octets en utilisant le polynôme :
X**32+X**26+X**23+X**22+X**16+X**12+X**11 +X**8+X**7+X***5+X**4+X**2+X+1
F A C I FCS F
Inclus dans le calcul du FCS
zone d'insertion de zéros
Trames de type I
Trames de type I (1/2) (1/2)
Ns
numéro de séquence d'émission– Numéro (modulo 8) de la trame envoyée
Nr
numéro de séquence de réception– Numéro (modulo 8) de la prochaine trame attendue
– Indique la bonne réception des trames numérotées jusqu'à Nr
Fenêtre d'anticipation
– pas plus de 7 (ou 127) trame de type I en attente d'acquitement sinon ambiguité
F A C I FCS F
0 Ns P/F Nr
Trames de type I
Trames de type I (2/2) (2/2)
Evolution des valeurs de Nr et NS
– seules les trames de type I font évoluer Nr et NS
– certaines commandes (de type U) provoque leur remise à zéro
Les valeurs de Nr et Ns d'une station sont totalement indépendantes
La station primaire doit gérer autant de paire de
compteurs Nr et NS qu'il y a de stations secondaires.
Compteurs Nr et NS (exemple) Compteurs Nr et NS (exemple)
Voir séance de Travaux Dirigés
Trames de type S
Trames de type S (1/2) (1/2)
RR Receive Ready
– La station
✓ accuse réception des trames de type I numérotées jusqu-à Nr-1
✓ est prête à recevoir
✓ n'a pas de trame de type I à émettre
F A C FCS F
1 0 S S P/F Nr 0 0 => RR
0 1 => REJ 1 0 => RNR 1 1 => SREJ
Trames de type S
Trames de type S (2/2) (2/2)
REJ Reject
– La station demande une retransmission des trames I numérotées à partir de Nr (utile dans le cas d'une expoitation duplex de la
liaison)
RNR Receive Not Ready
– La station :
✓ est temporairement incapable de recevoir de nouvelles trames I
✓ Accuse réception des trames I numérotées jusqu'à Nr-1
SREJ Selective Reject
– La station demande le retransmission de la trame I numérotée Nr – L'utilisation de SREJ est optionnelle
Trames RR et RNR (exemple) Trames RR et RNR (exemple)
Voir séance de Travaux Dirigés
Trame REJ (exemple) Trame REJ (exemple)
Voir séance de Travaux dirigés
Trames de type U
Trames de type U (1/2) (1/2)
F A C FCS F
1 1 M M P/F M M M
Trames de type U
Trames de type U (2/2) (2/2)
Trame Nom Commande Réponse
SNRM * Set Normal Response Mode X
SABM * Set Asynchronous Balanced Mode X
DISC Disconnect X
UA User acknowledgment X
DM Disconnect Mode X
FRMR Frame Reject X X
SNRME * Set Normal Response Mode Extended X SABME * Set Asynchronous Balanced Mode Extended X
XID Exchange Identification X X X
TEST Test X X X
UI Unnumbered Information X X X
SIM * Set Initialization Mode X
RIM Request Initialization Mose X
RD Request Disconnect X
RSET Reset X
UP Unnumbered Poll X
Champ I Utilisé
Trames de type U
Trames de type U (1/2) (1/2)
FRMR Frame Reject
– Indique qu'une trame reçue sans erreur de transmission est rejetée et que la reprise doit être faite par les couches
fonctionnelles supérieure – Contenu du champ I :
✓ champ de commande de la trame rejetée
✓ valeurs de Nr rt NS de la station qui émet FRMR
✓ Indicateurs d'erreur:
champ de commande invalide
champ I illicite, trop long
Valeur incorrecte du compteur Nr reçu
XID Exchange Identification
– Commande ou réponse permettant un échange d'identification des stations
– Gestion des champs d'information par les couches supérieures
Trames de type U (exemple) Trames de type U (exemple)
Voir séance de Travaux dirigés
Reprises sur incidents
Reprises sur incidents (1/2) (1/2)
Un protocole de liaison est en charge de :
– la détection des cas de mauvais fonctionnement – la reprise, dans la mesure du possible
Exemples de reprise effectuées par HDLC
– trame reçue en erreur (FCS incorrect) : trame ignorée
– valeur de Ns incorrect : trame ignorée ainsi que toutes les suivantes (sauf utilisation de SREJ). Si liaison Duplex, envoi de REJ (ou SREJ) pour demander la retransmission
– station non prête : elle envoie RNR
– absence de réponse : à l'expiration d'un temporisateur, demande de retransmission
– contention en mode ABM : résolue par des valeurs différentes de temporisation
Reprises sur incidents
Reprises sur incidents (2/2) (2/2)
Exemples d'incidents non recouvrables par HDLC
– trame rejetée
✓ Trame FRMR contenant des informations permettant
l'analyse par les couches supérieures des causes du rejet – identification incorrecte
✓ Réponse XID (analyse de l'identification retournée) – compteur de reprise expiré
✓ Après un nombre maximum de tentative de reprises,
HDLC abandonne et s'en remet aux couches supérieures
Exemples de protocoles normalisés
Exemples de protocoles normalisés (1/2) (1/2)
LAP-B (Link Access Protocol – Balanced)
– Protocole d'accès à un réseau X.25 (couche 2 de X.25) – Liaison point à point équilibrée
– Adress utilisée pour distinguer commandes et réponses Type Commandes Réponses
I
RR RR
RNR RNR
REJ REJ
SABM DM
DISC UA
FRMR Information
(I)
Supervision (S)
Non-numéroté (U)
Exemples de protocoles normalisés
Exemples de protocoles normalisés (2/2) (2/2)
LAP -D
– Protocole d'accès du canal Ddu RNIS (I.441 – Liaison multipoint sans gestion des contentions
(contentions résolues dans la couche physique) – Champ d'adresse à 2 octets :
SAPI C/R 1
TEI 0
SAPI Service Acces Point Identifier
(permet de distinguer des flux multiplexes sur le canal D)
SAPI = 0 protovcole d'appel
SAPI = 16 données en mode paquet sur canal D SAPI = 63 gestion des TEI
(SAPI = 32 interopérabilité avec TELEX)
C/R commande/réponse
TEI Terminal Enpoint Identifier
Procoles SLIP et PPP Procoles SLIP et PPP
Protocoles de liaison point-à-point
SLIP : Serial Line IP (ne fonctionne qu'avec IP)
PPP : Point-to-point Protocol (fonctionne avec plusieurs protocoles réseaux)
Exemple d'utilisation :
SLIP SLIP
Protocole très simple (délimitation des paquets IP)
Pas de détection d'erreurs
Pas de mécanisme d'authentification
Paquet IP suivi (et éventuellemnt précédé) d'un fanion x'C0'
Si x'C0' présent dans le paquet IP, il est remplacé par x'DBDC'
Si x'D8' présent dans le paquet IP il est doublé : X'DBDB'
PPP
PPP (1/2) (1/2)
Protocole dérivé de HDLC
– délimitation non ambiguë – détection d'erreurs
Protocole de liaison LCP (Link Control Protocole) – activation/désactivation de la ligne
– dptions : taille max, colmpression – Authentification
Protocole de réseau NCP (Network Xcontrol Protocol) – Différent pour chaque protocole réseau supporté – Ex : fourniture d'adresse IP
PPP
PPP (2/2) (2/2)
Nb octets 1 1 1 1 ou 2 2 ou 4
Protocole Charge utile
X 'C021' LCP
X '8021' NCP pour IP NCP pour Ipx
NCP pour AppleTalk NCP pour DecNet
X '0021' Data pour IP Data pour Ipx
Data pour AppleTalk Data pour DecNet Fanion
01111110 Adresse
11111111 Commande
00000011 Contrôle
(CRC)