77
Chapitre 3: Fiabilisation de transmission (Couche liaison) ABBACI KAHYA N Université Badji Mokhtar Annaba Département d'informatique [email protected]

chapitre 3.pdf

Embed Size (px)

Citation preview

Page 1: chapitre 3.pdf

Chapitre 3: Fiabilisation de transmission

(Couche liaison)

ABBACI KAHYA N

Université Badji Mokhtar Annaba

Département d'informatique

[email protected]

Page 2: chapitre 3.pdf

Plan

Introduction

Délimitation de trames

Détection/Correction d’erreurs

Contrôle de flux

Page 3: chapitre 3.pdf

Introduction

Page 4: chapitre 3.pdf

Couche liaison

Nous avons étudié tous les mécanismes à mettre en œuvre pour

transmettre un flot de bits entre deux systèmes distants.

La couche physique nous permet une transmission brute de bits

par un medium reliant une machine A à une machine B.

Comment assurer une transmission exempte d'erreurs sur un

canal de communication ? couche liaison.

La couche liaison est responsable du transfert des

datagrammes d’un nœud à un nœud adjacent à travers une liaison.

Page 5: chapitre 3.pdf

DEFINITION : Ensemble des matériels et des logiciels

fournissant les moyens fonctionnels nécessaires pour

acheminer des données avec un taux d'erreur garanti.

OBJECTIF : fiabiliser la transmission physique et offrir un

service a la couche RESEAU pour acheminer les bits remis

par le processus réseau vers leur destination.

Page 6: chapitre 3.pdf

Services offerts

La délimitation des blocs de données

Contrôle de l’intégrité des données reçues.

L’organisation et le Contrôle de l’échange.

Contrôle de la liaison et l'accès à un canal partagé (MAC)

Page 7: chapitre 3.pdf

Trames

Les données sont fractionnées en trames.

Une donnée échangée au niveau liaison s’appelle une trame.

Données + Commandes

Problème : comment délimiter les trames ?

Page 8: chapitre 3.pdf

Délimitation de trames

Page 9: chapitre 3.pdf

Délimitation des trames

Il existe trois méthodes :

Indiquer la taille de chaque trame (Compter les caractères)

Utiliser des champs délimiteurs de trame

Violer le codage normalement utilisé dans la couche physique

Page 10: chapitre 3.pdf

Compter les caractères

On utilise un champ dans l'en-tête de la trame pour indiquer le

nombre de caractères de la trame.

Problème : si la valeur du champ est modifiée au cours de la

transmission.

Méthode rarement utilisée seule.

Page 11: chapitre 3.pdf

Compter les caractères

Page 12: chapitre 3.pdf

Utilisation des délimiteurs

Un fanion (délimiteur) est placé :

au début de chaque trame

à la fin de chaque trame (en fait, au début de la suivante)

Un fanion (flag) = séquence particulière de bits.

Des bits de transparence sont alors nécessaires pour

qu’une séquence binaire dans la trame ne corresponde

accidentellement au fanion.

Page 13: chapitre 3.pdf

Exemple

Fanion : 01111110

Bit de transparence : 0 inséré après toute séquence de cinq 1

successifs dans la trame.

Technique utilisée dans :

HDLC High-Level Data Link Control

PPP Point to Point Protocol

Page 14: chapitre 3.pdf

Exemple

01111110 01111110

01011001111110

Données :

Trame :

010110011111010

Page 15: chapitre 3.pdf

Utiliser des fanions

Avantages

permet toujours de retrouver la synchronisation

permet l'envoi de trames de tailles quelconques

technique la plus simple

.

Page 16: chapitre 3.pdf

Violer le codage

Utilisable lorsque le codage sur le support physique contient

des redondances

Par exemple :

0 = impulsion positive puis négative

1 = impulsion négative puis positive

On peut donc utiliser les combinaisons positive-positive et

négative-négative pour délimiter les trames

Utilisée dans la norme 802

Page 17: chapitre 3.pdf

Détection/Correction d’erreurs

Page 18: chapitre 3.pdf

Problématique

Le support matériel utilisé par la couche physique n'est pas fiable à 100%

Il est par conséquent nécessaire de pouvoir détecter des erreurs parmi la suite

de bits reçue, et éventuellement les corriger. Pour cela, la couche liaison de

données de l'émetteur ajoute des bits au message à transmettre, qui permettent

à la couche liaison de données de l'entité réceptrice du message de vérifier la

cohérence de ce qu'elle a reçu.

La problématique des erreurs comporte 3 aspects :

la détection d'une erreur ;

la localisation de l'erreur détectée ;

la correction de l'erreur trouvée.

Page 19: chapitre 3.pdf

Pour répondre a ces problèmes, on utilise des codes qui sont

appliqués au message à transmettre.

Ils permettent de détecter certaines erreurs, mais pas

nécessairement toutes, et peu permettent la correction.

Page 20: chapitre 3.pdf

Code simple

Page 21: chapitre 3.pdf

Un code simple : la répétition

Une approche naïve consiste à dupliquer ( c'est-à-dire répéter) le message à

transmettre.

Supposons que le message effectivement transmis soit le double du message réel.

Par exemple, pour envoyer 11100010, on transmet 1110001011100010

La détection et la localisation des erreurs sont alors simples : on cherche les

différences entre la première et la seconde moitiés du message.

Par contre, il est impossible de corriger une erreur détectée : le bit erroné est

différent dans les deux copies, et rien ne permet de dire lequel est le bon.

Pour remédier à ce problème, on peut envoyer les message en 3 exemplaires au

lieu de 2

Dans ce cas, un bit a soit la même valeur dans toutes les copies, ou la même

valeur dans deux d'entre elles et l'autre valeur dans la troisième copie. Le bit

correct est celui qui apparaît en deux exemplaires.

Page 22: chapitre 3.pdf

Un code simple : la répétition

Le code de répétition est simple, mais présente de nombreux

inconvénients:

o La détection et la correction d'erreurs nécessitent l'introduction

de redondance dans les messages transmis. La taille du message à

transmettre peut alors augmenter de manière significative.

o Certaines erreurs peuvent ne pas être détectées. C'est le cas

lorsque l'on utilise la redondance, si le même bit est erroné dans

toutes les copies du message.

Page 23: chapitre 3.pdf

Détection d’erreurs

Page 24: chapitre 3.pdf

Codes à contrôle de parité

Les codes à contrôle de parité sont de parité soit paire, soit impaire.

Dans le premier cas, on va protéger une séquence de bits en ajoutant

un nouveau bit de telle sorte que le nombre de bits ayant la valeur 1

(dans la séquence protégée plus le bit introduit) soit pair. Dans le

second cas, ce nombre doit être impair.

VRC (Vertical Redundancy Check)

C'est la technique la plus simple. Un code ASCII étant défini sur 7 bits,

on utilise le 8ème bit de l'octet pour introduire le code vérificateur.

Page 25: chapitre 3.pdf

Codes à contrôle de parité

Exemple : Pour transmettre la chaîne de caractères IUT, on code

chaque lettre en ASCII, puis on a joute le code de parité.

Pour envoyer le message avec un code de parité pair, on transmet

(avec l'ordre d'envoi des bits de gauche à droite) :

Ce code permet de détecter les erreurs en nombre impair sans

pouvoir corriger. Il est peu efficace.

Page 26: chapitre 3.pdf

Codes à contrôle de parité

LRC (Longitudinal Redundancy Check)

Le principe est similaire à celui du VRC, mais au lieu de protéger les caractères un par un, on protège l'ensemble des bits de même rang de tous les caractères. On obtient alors un code de protection sur 7 bits.

Pour envoyer le message avec un code de parité pair, on transmet:

Page 27: chapitre 3.pdf

Codes à contrôle de parité LRC+VRC

On peut également combiner les deux techniques précédentes. On

protège alors chaque caractère par un code VRC et l'ensemble des bits

par un code LRC. On obtient donc un LRC sur 8 bits. La parité des LRC

et VRC utilisés est la même (tous les deux pairs ou tous les deux

impairs).

Exemple : Pour transmettre la chaîne de caractères IUT, on code chaque

lettre en VRC puis en LRC :

Pour envoyer le message avec un code de parité pair, on transmet:

Page 28: chapitre 3.pdf

Codes polynomiaux

Les codes polynomiaux, encore appelés CRC (Cycling Redundancy

Code), sont utilisés par la plupart des protocoles actuels.

Un code polynomial est basé sur l'utilisation d'un polynôme générateur

G(x) connu à l'avance par à la fois l'émetteur et le récepteur du message.

Les polynômes manipulés sont binaires : tous les coefficients sont 0 ou 1

Par conséquent, un polynôme générateur de degré k s'écrit sous la forme :

Page 29: chapitre 3.pdf

Codes polynomiaux

Le polynôme G(x) est associé à une valeur binaire.

Exemple : La valeur binaire associée au polynôme G(x) = x 3 +

x+ 1 est 1011

Soit M le message (séquence de bits) à protéger. Un polynôme

M(x) lui est associé :

Exemple : Au message M = 1101 est associé le polynôme M(x) =

x 3 + x 2 + 1

Page 30: chapitre 3.pdf

Emetteur Soit D(x) les données à envoyer et k le degré de G(x)

1) calculer D(x)*xk

revient à ajouter k zéros (poids faibles) à D(x)

2) calculer D(x)*xk / G(x)

on obtient le quotient Q(x) et le reste R(x)

3) calculer T(x) = D(x)*xk - R(x)

revient à remplacer les k zéros par R(x)

Page 31: chapitre 3.pdf

Récepteur

T(x) est le mot transmis par l’émetteur

T’(x) est le mot reçu par le récepteur

Le récepteur effectue le test suivant :

Si T’(x) / G(x) donne un reste égal à 0 alors

pas d’erreur

sinon

une erreur

fin si

Page 32: chapitre 3.pdf

Normalisation

Plusieurs polynômes ont fait l’objet d’une norme car possédant

de bonnes propriétés

CRC 12 = x12 + x11 + x3 + x2 + x +1

CRC 16 = x16 + x15 + x2 + 1

CRC CCITT = x16 + x12 + x5 + 1

Page 33: chapitre 3.pdf

Exemple

D(x) = 0101 1100

G(x) = 1 1000 0101

D(x)*xk = 0101 1100 0000 0000

R(x) = 0100 1101

T(x) = 0101 1100 0100 1101

Page 34: chapitre 3.pdf

Exemple Exercice1 : Soient le polynôme générateur G(x) = x 3 + x + 1 et le

message à envoyer M = 1101. Le polynôme correspondant au

message est M(x) = x 3 + x 2 + 1. Le degré de G(x) est 3. Donc,

P (x) = M(x).x 3 = x 6 + x 5 + x 3

1. Effectuons la division de P (x) par G(x).

2. Trouvez R(x) et le message à envoyé.

Page 35: chapitre 3.pdf

Détection et Correction d’erreurs

Page 36: chapitre 3.pdf

Correction d'erreurs

Deux approches permettent de corriger les erreurs :

les codes auto-correcteurs, tels que le code de Hamming

la correction par retransmission qui demande à l'émetteur de

retransmettre le message lorsqu'une erreur est détectée.

Page 37: chapitre 3.pdf

Le code de Hamming

Le code de Hamming est utilisé dans les transmissions de

données car il permet de détecter et de corriger une erreur

survenue dans un bloc transmis.

Principe du codage.

On fixe un entier k et on code chaque bloc de m = 2k- k-1

bits de données par un bloc de n = 2k- 1 bits en ajoutant

donc k bits, dits de correction, a certaines positions au bloc

de m bits.

Le tableau suivant indique les nombres de bits de correction,

de données pour différentes valeurs de k.

Page 38: chapitre 3.pdf

Le code de Hamming

Position des k bits de correction :

Les k bits de correction sont placés dans le bloc envoyé aux

positions d’indice une puissance de 2. Ainsi, en notant k1 k2 k3

les bits de correction et m1 m2 m3 m4 les bits de données, le

bloc envoyé est :

m4 m3 m2 k3 m1 k2 k1.

Page 39: chapitre 3.pdf

Le code de Hamming Calcul des k bits de correction :

Les k bits de correction sont calcules en utilisant une matrice de parité H, représentée ci-dessous pour k=3.

Les k bits de correction sont tels qu’en

considérant le vecteur

Page 40: chapitre 3.pdf

Le code de Hamming

On obtient ainsi 3 équations scalaires que doivent vérifier les k

bits de correction :

Page 41: chapitre 3.pdf

Le code de Hamming

Réception des données et vérification :

On reçoit le bloc C = c1 c2 c3 c4 c5 c6 c7 qui peut être

différent du bloc A si il y a eut des perturbations sur la ligne.

Si on considère qu’il n’y a eut qu’une seule erreur de

transmission, alors on peut écrire :

C = A + E ou E est un bloc contenant 6 bits a 0 et 1 bit a 1.

Les positions des 0 et du 1 sont inconnues dans le bloc.

Page 42: chapitre 3.pdf

Le code de Hamming

On calcule le vecteur S tel que :

Finalement, S est une des colonnes de la matrice de parité dont

l’indice nous donne la position de l’erreur dans le bloc C. L’erreur est

corrigée en changeant le bit considère d’état.

s3 s2 s1 est le code binaire de position de l’erreur dans le bloc C que

nous obtenons a partir des équations suivantes :

Page 43: chapitre 3.pdf

Le code de Hamming

Exercice 1: On souhaite envoyer le message 1010, compléter

le mot de Hamming correspondant.

Exercice 2 : On veut envoyer le mot 1011, quels bits, je doit

lui adjoindre et quelle séquence je transmettrai alors ?

Exercice 3 : y a-t-il une erreur dans le mot suivant ? 1101101

Page 44: chapitre 3.pdf

Demande de retransmission

Lorsque l'on effectue de la correction par demande de

retransmission, l'émetteur conserve une copie des données

envoyées. Le récepteur applique une méthode de détection

des erreurs. Quand il reçoit un message, le récepteur renvoie

un paquet à l'émetteur, contenant un acquittement positif si

aucune erreur n'a été détectée, et un acquittement négatif si

une erreur a été trouvée. Lors de la réception d'un

acquittement négatif, l'émetteur retransmet le message

erroné.

Page 45: chapitre 3.pdf

Contrôle de flux

Page 46: chapitre 3.pdf

contrôle de flux

Réguler le flux de données entre un émetteur et un récepteur Capacité de stockage

Capacité de traitement

Plusieurs variantes de contrôle de flux :

Protocole de type « envoyer et attendre » (Send and Wait)

Les données ne circulent que dans un sens

Une seule trame est envoyée a la fois

Le récepteur Informe I 'émetteur de son état par un acquittement

Protocoles avec fenêtre d'anticipation (Sliding Window)

Les données circulent dans les deux sens

Plusieurs trames sont envoyées a la fois

Liste des numéros de séquence de trames = fenêtre d'anticipation

Page 47: chapitre 3.pdf

Contrôle de flux : principes

Chaque trame envoyée doit être acquittée par le récepteur.

L’acquittement peut être positif (ACK) ou négatif (NACK)

Page 48: chapitre 3.pdf

Contrôle de flux : principes Problème 1:

Solution : Armer un temporisateur T1 après l’envoi d’une trame d’information.

Si T1 expire avant la réception d’un acquittement (+ ou -), Alors l’émetteur renvoi la même trame d’information.

Page 49: chapitre 3.pdf

Contrôle de flux : principes

Problème 2 :

Solution : Numérotation de trames (identification).

Page 50: chapitre 3.pdf

Contrôle de flux : principes

Problème 3 :

Si chaque trame doit être acquittée par une trame spécifique

et d’une manière individuelle l’efficacité de la liaison sera

très faible.

La plupart de temps les extrémités de la liaison seront en état

d’attente d’acquittement.

Page 51: chapitre 3.pdf

Contrôle de flux : principes

Solutions :

Piggypacking : le récepteur peut acquitter une trame

d’information reçue par l ’envoi d’une autre trame

d’information.

Anticipation : l’émetteur peut envoyer w trames sans avoir

un acquittement.

Acquittement groupé : Le récepteur peut acquitter par une

seule trame un groupe de trames reçues.

• Numérotation de trames d’information

• Acquitter la trame N c’est acquitter toutes les trames précédentes 1..N

Page 52: chapitre 3.pdf

Contrôle de flux : principes

L’acquittement peut être explicite ou implicite

Chaque trame d’informations est identifiée par un numéro.

La numérotation de trames est faite modulo 2n où n est le

nombre de bits utilisés pour représenter les numéros de

trames.

Selon le protocole HDLC, n = 3

Page 53: chapitre 3.pdf

Protocoles de liaison de données

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

Page 54: chapitre 3.pdf

HDLC

HIGH-LEVEL DATA LINK CONTROL Protocole de référence normalisé par I'lSO.

Version très générale (LAP-B, LAP-D, LLC, PPP, LAP-X, ...),

Utilise dans LAN, Internet, GSM.

Caractéristiques:

Transmission synchrone

Oriente bit

Liaisons point-a-points ou multi-points

Full Duplex

Mécanisme d'anticipation

fenêtre de 7 trames : HDLC et LAP-B

fenêtre de 127 trames : LAP-B étendu, PPP

Page 55: chapitre 3.pdf

Transmission fiable ?

Problème : Garantir la réception correcte, sans duplication

et dans l’ordre des informations transmises.

Solution:

Utilisation d’un code polynomial. G( x) = x16 + x15 + x2 + 1.

Utilisation de technique d’acquittement positif et négatif.

Numérotation de trames.

Page 56: chapitre 3.pdf

Format des trames (HDLC)

Page 57: chapitre 3.pdf

Format des trames (HDLC)

Taille minimale d’une trame : 6 octets

Page 58: chapitre 3.pdf

Types de trames

HDLC est un protocole de transmission fiable qui opère en mode connecté :

Trames de gestion de la liaison (U)

Demande de connexion, acceptation, refus, libération de la connexion

Trames d’informations (I)

Trames de transmission effective des données.

Trames de supervision de la transmission (S)

Acquittements : positifs et négatifs

Trois types : 2 bits suffisent pour les distinguer

Page 59: chapitre 3.pdf

Types de trames : définitions

Le champs contrôle définit le type de la trame.

Page 60: chapitre 3.pdf

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

P si aucune commande n ’est envoyée.

Page 61: chapitre 3.pdf

Trames d’informations (I)

Ns : Numérotation des trames émises: 3 bits donc numéro

module 8

Nr : Numéro de la prochaine trame d’information

attendue: Numérotation modulo 8.

Une trame acquitte toutes les trames de numéros strictement

inférieur à Nr

Page 62: chapitre 3.pdf

Trames de supervision (S)

RR (Recieved Ready) [00]: Acquittement

Prêt à recevoir, accusé de réception utilisé lorsque le récepteur n’a pas de trame d’infot à envoyé.

RNR (Recieved & Not Ready) [10] : contrôle de flux

Non prêt à recevoir, le récepteur demande à l’émetteur d’arrêter ses émissions et d’acquitté les trames acceptées N( r ) -1

REJ (Reject) [01]

Demander la retransmission a partir de la trame Nr.

Page 63: chapitre 3.pdf

Trames de gestion (U)

SABM [11100]: commande de passage en mode équilibré,

chaque station peut émettre sans autorisation.

SABME [11110]: passage en mode étendu.

UA [00110]: Trame de confirmation de connexion

DISC [11010]: Libération de la connexion

FRMR[11000]: Rejet de trames

Page 64: chapitre 3.pdf

HDLC : ÉTABLISSEMENT ET RUPTURE DE

CONNEXION (TRAME U)

Connexion

La source demande l’établissement d’une liaison par l’envoi de trames non numérotées (U) de type SABM (Set Asynchronous Balanced Mode) , P =1

La destination, si elle accepte la connexion, répond par la trame non numérotée UA (Unnumbered Acknowledgement), F = 1 identique à celui du bit P.

La liaison est établie, l’échange d’informations peut donc commencer.

Déconnexion

La source émet une demande de déconnexion DISC (DISConnect), P est positionné indifféremment à 1 ou à 0.

La destination accuse la réception avec UA, F prend la même valeur du bit P de la trame DISC

La liaison est rompue.

Page 65: chapitre 3.pdf

HDLC : ÉTABLISSEMENT ET RUPTURE DE

CONNEXION (TRAME U)

Page 66: chapitre 3.pdf

HDLC : ÉCHANGE DE DONNÉES (TRAME I)

Chaque extrémité met à jour les variables suivantes :

V(s) : indique le numéro de la trame à émettre,

V(r) : indique le numéro de la trame attendue

Après la phase de connexion les compteurs sont initialisés à zéro de chaque côté

N(S) : numéro de la trame reçus

N(R) : acquittement des trames reçues de numéro strictement inférieur à N(S)

Page 67: chapitre 3.pdf

HDLC : GESTION DES ERREURS (TRAME S)

Exemple de la reprise sur erreur

Supposons la trame 2 erronée, elle est ignorée par le récepteur.

La trame 3 est alors reçue hors séquence, elle est rejetée.

La machine B émet alors une trame de supervision de rejet (REJ : Reject) en indiquent à A à partir de quelle trame il doit reprendre la transmission [N(r) = 2].

Toutes les trames dont la valeur de Ns est supérieure à 2 sont alors rejetées (rejet simple).

La machine A reprend la transmission à partir de la trame 2 (N(s) = 2).

Si, suite à la trame erronée, A n’avait plus de données à émettre, alors B n’aurait pas détecté le déséquencement.

Dans ce cas, c’est A qui à l’échéance du temporisateur T1, aurait pris l’initiative de retransmettre la trame 2.

Page 68: chapitre 3.pdf

HDLC : GESTION DES ERREURS (TRAME S)

Page 69: chapitre 3.pdf

HDLC : GESTION DE FLUX (TRAME S)

HDLC utilise le contrôle de flux implicite.

La fenêtre est paramétrée à l’installation du logiciel ou

négociée lors de la connexion par le protocole de niveau

supérieur.

En cas de saturation des tampons de réception, le récepteur,

(la machine B) rejette la trame en excès et informe A de son

incapacité temporaire à accepter de nouvelles données.

Il émet la trame S indique RNR (Receive Not Ready) avec le

compteur Nr positionné au numéro de la trame reçue et

rejetée.

Page 70: chapitre 3.pdf

HDLC : GESTION DE FLUX (TRAME S)

Page 71: chapitre 3.pdf

Calcul du temps de transmission

Temps de propagation Tp: Temps nécessaire à un signal pour parcourir un support d'un point à un autre

Temps de transmission Tt: Délai qui s'écoule entre le début et la fin de la transmission d'un message sur une ligne

Page 72: chapitre 3.pdf

performances

Soit:

C: Débit de la transmission D: distance de propagation

L: Longueur de la trame a émettre L' : Longueur de I 'acquittement

V : Vitesse du support

Te: temps d‘émission de la trame = L/C

Tp: temps de propagation aller de la trame = D/V

T'e : temps d‘émission de I 'acquittement = L' /C

T'p: Temps de propagation retour de I'ACK = Tp = D / V

Texec : Temps de traitement des données = négligeable

T: temps de transmission total = Te + 2Tp + T'e = ((L+L')/C) + 2D/V

Page 73: chapitre 3.pdf

Exercices

Page 74: chapitre 3.pdf

Exercice 1 : Calcul du VRC et du LRC

1. Calculez le VRC et le LRC du message HELLO en utilisant la

parité paire, sachant que H est codé par 0001001, E par 1010001,

L par 0011001 et O par 1111001.

2. Déterminer le message construit à transmettre.

Page 75: chapitre 3.pdf
Page 76: chapitre 3.pdf

Exercice 2 : Protocole HDLC

1. On considère un échange de données bidirectionnel simultané entre deux stations A et B, géré par le protocole LAP-B (sous-ensemble de HDLC utilisant le rejet simple des erreurs). La liaison est déjà initialisée et aucun temporisateur n’est armé. La station A a 5 trames d’information à transmettre à la station B. Celle-ci en a 10 à émettre vers A. On suppose que toutes les trames sont de même longueur. Les deux stations commencent leur transmission à des instants très voisins l’un de l’autre. Donnez le schéma des échanges en indiquant le numéro des trames émises et reçues avec la nomenclature classique : I, N(S), N(R) pour une trame I portant le numéro N(S) et acquittant les trames jusqu’au numéro N(R)– 1. On suppose de même :

• Qu’il n’y a aucune erreur de transmission sur les trames de A.

• Qu’il y a une erreur de transmission sur les sixième et septième trames de B.

• Que les trames sont correctement retransmises.

Page 77: chapitre 3.pdf