La couche Liaison et ses problèmes de contrôle du flux de données

64
1 La couche Liaison et ses problèmes de contrôle du flux de données Azza Ouled Zaid Institut Supérieur d’Informatique 2 ème année Cycle Ingénieur

description

La couche Liaison et ses problèmes de contrôle du flux de données. Azza Ouled Zaid Institut Supérieur d’Informatique 2 ème année Cycle Ingénieur. http://www.clipart-darktreasures.com. Deux généraux qui doivent prendre une ville…. Seulement en agissant ensemble peuvent-ils gagner… - PowerPoint PPT Presentation

Transcript of La couche Liaison et ses problèmes de contrôle du flux de données

Page 1: La couche Liaison et ses problèmes de contrôle du flux de données

1

La couche Liaison et ses problèmesde contrôle du flux de données

Azza Ouled Zaid

Institut Supérieur d’Informatique

2ème année Cycle Ingénieur

Page 2: La couche Liaison et ses problèmes de contrôle du flux de données

2

Deux généraux qui doivent prendre une ville…

Seulement en agissant ensemble peuvent-ils gagner… Un général n’attaquera que s’il est certain que l’autre attaquera

aussi

Le seul moyen de communication est un pigeon…

http://www.clipart-darktreasures.com

Page 3: La couche Liaison et ses problèmes de contrôle du flux de données

3

Un dialogue sans espoir… Général A envoie un message: attaquons à 6h demain

Attaqueront-ils? Non, A attendra confirmation

Général B envoie une réponse: d’accord à 6h demain Attaqueront-ils? Non, B attendra confirmation

Général A répond encore: d’accord à 6 h demain Attaqueront-ils? Non, A attendra confirmation

Etc…

http://www.clipart-darktreasures.com

Page 4: La couche Liaison et ses problèmes de contrôle du flux de données

4

Il n’y a pas de protocole pour résoudre ce problème!

Preuve (informelle):

Supposez qu’un protocole existe

Il doit impliquer au moins un message

Il doit être tel que si le dernier message est perdu, les

généraux attaquent

Donc le dernier message ne serait pas nécessaire

Enlevons le dernier message pour un protocole plus efficace

Le même raisonnement s’applique inductivement à tout

message, y inclus le premier!

Aucun message ne serait nécessaire

• contradiction

Page 5: La couche Liaison et ses problèmes de contrôle du flux de données

5

Erreurs résiduels

Après analyse, on découvre que ce résultat s’applique à n’importe quel protocole! Il n’est pas possible d’établir l’accord certain dans le cas de

canaux avec perte• Un aspect fondamental de la preuve est que nous ne savons pas combien

de fois le système va échouer• Si nous savons que sûrement il y aura succès au moins 1 fois sur 10,

alors l’envoi de 10 pigeons suffira Étant donné que normalement il est impossible d’établir ce type de

borne, il n’est pas possible d’établir la certitude globale dans les systèmes répartis

N’importe la complexité du protocole et la fiabilité du milieu, il y a toujours la possibilité d’erreurs résiduels On parle donc de taux d’erreur résiduel (residual error rate)

Il est vrai cependant que dans les supports de communication modernes (fibres optiques, etc.) la fiabilité est extrêmement élevée

Page 6: La couche Liaison et ses problèmes de contrôle du flux de données

6

Problèmes de sécurité

Considérez aussi la possibilité que le pigeon puisse être intercepté et remplacé par un autre pigeon avec un message différent…

Page 7: La couche Liaison et ses problèmes de contrôle du flux de données

7

Position du problème

1. Synchronisation entre la vitesse de transmission et celle de propagation et réception

2. Optimiser l’utilisation du canal

3. Éviter la congestion

Le 2ème et 3ème objectifs sont complémentaires L’émission lente est pénalisante L’émission rapide introduit la congestion La capacité de stockage des nœuds intermédiaires

est limitée pour supporter les messages échangés par plusieurs pairs emetteur-recepteur

Page 8: La couche Liaison et ses problèmes de contrôle du flux de données

8

Objectif du cours

Établir un système de contrôle de flux complet à partir d’une séquence de modifications apportées à un modèle basique simple

Les règles de procédures de ces protocoles sont définies par un langage de spécification basé sur l’SDL

Page 9: La couche Liaison et ses problèmes de contrôle du flux de données

9

Contrôle de flux

Le contrôle de flux est un mécanisme pour empêcher l’émetteur d’envoyer plus que le récepteur ne peut recevoir (à cause de l’espace de tamponnage disponible)

Il y a deux formes fondamentales de contrôle de flux: Explicite: le récepteur dit à l’émetteur qu’il est prêt à recevoir x

paquets

Implicite: le récepteur n’accepte pas (p.ex. n’envoie plus d’acquittements)

Page 10: La couche Liaison et ses problèmes de contrôle du flux de données

10

Notations

mesg:o dans une instruction d’entrée ou sortie indique le message du type mesg avec le champs de données o est émit ou reçu

next:o l’extraction interne de donnée o qui sera transmise dans le prochain (next) message de sortie

accept:i stockage i comme donnée reçue acceptée

Page 11: La couche Liaison et ses problèmes de contrôle du flux de données

11

Structure d’un organigramme Les actions d’un processus sont spécifiées par des symboles. Six types de symboles :

• Ces symboles représentes :• Déclarations, e.g, affectations (statement)• Tests booléens, e.g., expressions (test)• Conditions d’attente, e.g., récepteurs (wait)• Événements internes, e.g., timeouts (delais)• Les messages entrant et sortant (input, output)

Page 12: La couche Liaison et ses problèmes de contrôle du flux de données

12

Structure d’un organigramme

Les tests booléens sont évalués sans délais

Les conditions d’attente sont utilisées pour modéliser la

synchronisation du processus Elles indiquent que l’exécution n’aura lieu que si une

condition donnée soit vraie

Les éléments restants d’un organigramme sont : Les arêtes directionnelles Les connecteurs

Page 13: La couche Liaison et ses problèmes de contrôle du flux de données

13

Structure d’un organigramme

Les arêtes directionnelles indiquent que le contrôle du flux converge uniquement vers les connecteurs

Elles peuvent diverger aux conditions d’attentes et aux tests booléens

Page 14: La couche Liaison et ses problèmes de contrôle du flux de données

14

Structure d’un organigramme

File d’attente de capacité infinie : Associée à un organigramme du processus

Utilisée pour stocker les messages qui arrivent

Déclarations output : les messages sont insérés dans la file d’attente

Déclarations input : les messages sont extrait de la file d’attente

Page 15: La couche Liaison et ses problèmes de contrôle du flux de données

15

Structure d’un organigramme Les outputs, déclarations, conditions d’attente, événements

internes et les tests booléens peuvent apparaître à n’importe quelle localisation dans l’organigramme

Les inputs doivent suivre les symboles d’attente que nous désignons par receive.

Page 16: La couche Liaison et ses problèmes de contrôle du flux de données

16

Structure d’un organigramme

Une condition d’attente (receive) suspend l’exécution du processus jusqu’a se que le type du message contenu dans la première trame de la file d’attente soit défini dans l’une des entrées (inputs) qui suit le symbole d’attente

Si le message dans la première trame de la file est d’un autre type, il s’agit d’une erreur de protocole

Un délai d’attente (timeout) est une condition de synchronisation interne représentée par un événement interne.

L’exécution sera suspendue tant que l’expression (une fois évaluée) donne la valeur booléenne vrai (une valeur non nulle).

Page 17: La couche Liaison et ses problèmes de contrôle du flux de données

17

Structure d’un organigramme Deux actions internes pour modéliser les accès : next et accept

next:a,b indique l’extraction interne des éléments a et b d’une base de données interne

accept:a,b le stockage des données dans une base de données interne

Les deux actions next et accept inclus touts les processus associés respectivement à l’extraction et le stockage des données

Page 18: La couche Liaison et ses problèmes de contrôle du flux de données

18

Modèle de protocole basique

Ce protocole est fiable ssi le récepteur est plus rapide que l’émetteur Violation d’une règle basique de la conception des systèmes répartis:

Ne jamais imposer une hypothèse sur les vitesses des processus concurrents

Page 19: La couche Liaison et ses problèmes de contrôle du flux de données

19

Synchronisation émetteur-récepteur

Rôle du récepteur :1. interpréter les données2. décider ce qu’il doit faire avec3. allouer la mémoire4. orienter les données vers un destinataire approprié Consommation d’un temps considérable

Rôle de l’émetteur :1. trouver le fournisseur des données à transférer2. il est en arrêt tant qu’il n’y a pas de données à transférer3. libérer de la mémoire après le transfert moins de temps à consommer

Le goulot dans le protocole est le processus de réception

Page 20: La couche Liaison et ses problèmes de contrôle du flux de données

20

Première technique de contrôle de flux: protocole X-on X-off

Plus ancien, moins fiable Deux messages de contrôle :

suspend : suspendre le trafic resume : réinitialiser le trafic

Hypothèses : canal est idéal (pas d’erreurs de transmission) vocabulaire du protocole : V = { mesg, suspend, resume }

Les messages de contrôle "suspend"   et "resume" sont utilisés pour implémenter la méthode de contrôle de flux

Page 21: La couche Liaison et ses problèmes de contrôle du flux de données

21

Protocole X-on X-off : Processus d’émission

Page 22: La couche Liaison et ses problèmes de contrôle du flux de données

22

Protocole X-on X-off : Processus de réception

Le message de données passe du compteur vers le processus d’acceptation à travers une file d’attente interne

Page 23: La couche Liaison et ses problèmes de contrôle du flux de données

23

Limites du protocole X-on X-off

Le fonctionnement correcte d’un protocole dépend des caractéristiques du canal La perte ou le retard d’un message suspend introduit

un problème de dépassement

Le fonctionnement du protocole doit être indépendant du temps que métrera le message de contrôle pour atteindre l’émetteur

Même problème dans le cas d’une perte d’un message resume

Page 24: La couche Liaison et ses problèmes de contrôle du flux de données

24

Limites du protocole X-on X-off

Deux problèmes à résoudre :1. Protection contre les erreurs de dépassement

d’une manière plus fiable

2. Protection contre la perte des messages

Solution au premier problème L’émetteur attend explicitement un acquittement

pour transférer les messages Protocole ping-pong ou stop and wait

Page 25: La couche Liaison et ses problèmes de contrôle du flux de données

25

Protocole stop and wait Résout le problème de dépassement mais pas celui de la

perte des données

Page 26: La couche Liaison et ses problèmes de contrôle du flux de données

26

Limites du protocole X-on X-off

t : temps de propagation a : temps de réception (traitement et acceptation) p : temps de transmission L’émetteur nécessite un délai de (2t + a – p) pour chaque message

transmit (retard)

Le message d’acquittement (ack) a donc deux fonctions reliées: Faire savoir que le message a été reçu correctement (contrôle d’erreur) Faire savoir que le récepteur est prêt à recevoir un ou plusieurs

nouveaux messages (contrôle de flux) Cette idée conduit à une solution au problème du retard

Protocole à fenêtre.

Page 27: La couche Liaison et ses problèmes de contrôle du flux de données

27

Protocole à fenêtre

Dans la phase d’initiation d’appel, le récepteur peut informer l’émetteur de l’espace mémoire réservé aux messages entrants

L’émetteur dispose alors d’un budget pour un nombre fixe des messages sortants

Le budget peut être mis à jour dynamiquement lorsque la quantité d’espace mémoire disponible change

Page 28: La couche Liaison et ses problèmes de contrôle du flux de données

28

Protocole à fenêtre : canal idéal

W : budget initial alloué (nombre de messages fixé) W-n : le budget non utilisé

Page 29: La couche Liaison et ses problèmes de contrôle du flux de données

29

Perte des messages

L’émetteur sera en attente si seulement si le budget était réduit à 0 Durant le transfert le budget varie entre 0 et W suivant la

rapidité de l’émetteur et le récepteur

Optimisation des communications : l’émetteur peut continuer d’envoyer des paquets même si un certain nombre de paquets déjà transmis n’a pas été acquitté

Mais, le problème de perte, effacement, duplication, désordre sera maintenu

La perte d’une séquence de messages d’acquittement bloquera les deux entités

Page 30: La couche Liaison et ses problèmes de contrôle du flux de données

30

Délais d’attente : timeouts

ARRÊT ET ATTENTE: Stop and Wait Protocol L’émetteur envoie, attend acquittement Si l’acquittement arrive, continue avec proch. message Sinon (le message ou l’acquittement pourraient être

perdus!) renvoie message précédent

Problème: combien de temps attendre Solution: établir un temps sur la base du temps

d’allée/retour du message et son acquittement (le double?)

Minuterie: positionner , annuler

Page 31: La couche Liaison et ses problèmes de contrôle du flux de données

31

Faute usuelle,

l’émetteur et le récepteur utilisent tout les deux des délais d’attente

Diagramme de séquence d’une erreur

Page 32: La couche Liaison et ses problèmes de contrôle du flux de données

32

Faute usuelle,

L’émetteur et le récepteur décident de retransmettre le dernier message émit (cas d’un effacement)

Lorsque le premier acquittement atteint l’émetteur, ce dernier ne peut pas savoir s’il acquitte le message perdu ou retransmit

Page 33: La couche Liaison et ses problèmes de contrôle du flux de données

33

Solutions proposées

Leçon n°1 La retransmission est initiée par l’une des deux entités

(émetteur ou récepteur) En général la retransmission est à la responsabilité de

l’émetteur l’émetteur (seul) sait avec certitude quand une nouv donnée a

été transmise

Leçon n°2 L’acquittement doit indiquer quel message a été acquitté,

même dans le cas de l’émission d’un message par période Ajouter le numéro de séquence pour chaque message de

données ou de contrôle

Page 34: La couche Liaison et ses problèmes de contrôle du flux de données

34

Numérotation des séquences

Le numéro de séquence appartient à un intervalle fini, il faut vérifier que le recyclage des numéros ne perturbe pas le bon fonctionnement du protocole

Nous allons voir que la numérotation des séquences est utilisée en combinaison avec le protocole à fenêtre

Avant d’établir la combinaison, protocole à fenêtre d’anticipation, nous allons nous familiariser avec l’utilisation des délais d’attente et la numérotation des

séquences (protocole du bit alterné)

Page 35: La couche Liaison et ses problèmes de contrôle du flux de données

35

Le protocole du bit alterné (BA)

Le protocole BA est le 1er protocole qui fut spécifié en utilisant la notion de modèle de transitions d’état Article de Bartlett et Scantlebury dans Comm. ACM May

1969, disponible à partir de http://portal.acm.org/portal.cfm• Excellent et fameux article, 2 pages seulement!• Parfois cité comme 1er article dans l’ingénierie des protocoles

BA est un des plus simples protocoles de liaison données, mais il Démontre les principes fondamentaux de tous les protocoles de liaison

de données Réussit à récupérer des erreurs de transmission

• Dans certaines limites… Il a été utilisé dans un grand nombre d’études sur la validation

des protocoles Cependant chaque étude dépend d’un formalisme

particulier

Page 36: La couche Liaison et ses problèmes de contrôle du flux de données

36

Découvrons le protocole du bit alterné

Exigence: un protocole qui accepte une séquence de paquets de données et les remet à l’autre côté dans le même ordre

0

1

2

3

Message 0

1

2

3

Page 37: La couche Liaison et ses problèmes de contrôle du flux de données

37

Contrôle d’erreurs Problème, le canal peut perdre des données

0

1

2

0

1

2

3

Le récepteur a perdu l’ordre des messages

Page 38: La couche Liaison et ses problèmes de contrôle du flux de données

38

Compter les messages

Chaque message contient son numéro, de façon à ce que le récepteur sache quel message il vient de recevoir

Besoin de connexion: les deux côtés doivent initialiser une connexion, ce qui permet d’initialiser le comptage

Étant donné qu’il faut pas gaspiller les bits pour le comptage, essayons avec le plus petit compteur possible: 1 bit (numéro du message mod 2)

Page 39: La couche Liaison et ses problèmes de contrôle du flux de données

39

Utilisation du bit alterné Au début, les deux se mettent d’accord pour commencer

à 0

Pour pouvoir reprendre, il faut donner au récepteur la possibilité de demander le renvoi du message perdu

0 Message 0

Message 1

2

3

bit=0

1

0

Attend 0, OK

Attend 1, reçoit 0Erreur

Page 40: La couche Liaison et ses problèmes de contrôle du flux de données

40

Deux méthodes

Le récepteur peut envoyer un message NACK 0, signalant le fait que le message 0 n’a pas été reçu

Mais le message NACK pourrait aussi se perdre, donc la solution préférée est d’exiger un ACK pour chaque message reçu

ARRÊT ET ATTENTE: Stop and Wait Protocol

Page 41: La couche Liaison et ses problèmes de contrôle du flux de données

41

Protocole bit alterné: Arrêt et attente cas normal

Message n

Attend bit 0: accepté

OK

minuterie t annulée

D0

A

positionne minuterie t

t

t

n-1 messages déjà transmis, n pair

n messages transmis

D0, D1: messages avec bit 0 ou 1A: acquittement

Page 42: La couche Liaison et ses problèmes de contrôle du flux de données

42

Bit dans l’acquittement Il faut que l’acquittement contienne l’identification du message

reçu, sinon…

A retransmet DO et pense que l’acquittement est pour le 2ème

Message n Attend bit 0: accepté

D0

D1

n-1 messages déjà transmis, n pair

n messages transmis

AD0

Ceci est l’acquittement du 2ème DO que A croit être pour D1

A

Page 43: La couche Liaison et ses problèmes de contrôle du flux de données

43

Protocole bit alterné: Arrêt et attente

Cas de perte de message (OK)

Message n

TemporisationDoit renvoyer n

B0

B0

Positionne Minuterie

n

n-1 messages déjà transmis, n impair

A0

Page 44: La couche Liaison et ses problèmes de contrôle du flux de données

44

Protocole bit alterné: Arrêt et attente

Cas de perte d’acquittement (OK)

Attend 1: écarté

n

TemporisationDoit renvoyer n

D0

D0

Positionne Minuterie A0

n-1 messages déjà transmis, n pair

A0

Page 45: La couche Liaison et ses problèmes de contrôle du flux de données

45

Protocole bit alterné: Arrêt et attente

Chevauchement de message! (OK)

n

TemporisationDoit renvoyer

D0

D0

Positionne Minuterie

n

Attend 1, reçoit 0ÉcarterA0

n-1 messages déjà transmis, n pair

Page 46: La couche Liaison et ses problèmes de contrôle du flux de données

46

Protocole bit alterné: Arrêt et attente

Chevauchement d’ack! (OK)

TemporisationDoit renvoyer

D0

D0

Positionne Minuterie

Attend 1, écarter

A0

Attend ack de 0, OK

n+1D1

n+1

A1

n-1 messages déjà transmis, n pair

n

Page 47: La couche Liaison et ses problèmes de contrôle du flux de données

47

Bit alterné unidirectionnel, diagramme de transition

A

Origine du message

Numéro de séquence : bit alterné

0

Les actions d’envoi sont soulignées

A B

Page 48: La couche Liaison et ses problèmes de contrôle du flux de données

48

Organigramme du protocole de bit alterné

Page 49: La couche Liaison et ses problèmes de contrôle du flux de données

49

Notations Deux type de messages : mesg et ack

Format : { mesg, data, sequence number } { ack, sequence number } mesg:o:s spécifie un message mesg avec un champ de

données o et un numéro de séquence s.

Quatre variables binaires : a, e, r, et s. s : utilisé par l’émetteur pour enregistrer le numéro de la dernière

séquence envoyée r : numéro de la dernière séquence reçue e : numéro de la prochaine séquence attendu par le récepteur a : numéro de la séquence qui vient d’être reçue

Toutes les variables sont initiées à zéro

Page 50: La couche Liaison et ses problèmes de contrôle du flux de données

50

Problèmes (montrant que ce protocole n’est pas parfait, comme attendu)

Double chevauchement de message! Un vieux message échoué avec un bit égal à ce qui est

attendu sera considéré bon… D0

n

D0n

A0

D1

A1

OK! (croit avoir reçu n+2)

n+1 n+1

n

A0Acquitte vieille donnée

Page 51: La couche Liaison et ses problèmes de contrôle du flux de données

51

Réceptions non spécifiées dans BA

Que va faire l’envoyeur avec un A0 après avoir reçu un A1 lorsqu’il n’a rien envoyé?

Il pourrait l’écarter

• le récepteur recevra un deuxième D0 qu’il acquittera et ignorera

Ou il pourrait lire dans le canal seulement après avoir envoyé D0

• Il considérera son dernier D0 acquitté

• Et il répondra avec !D1 à l’A0 que le récepteur lui enverra

Dans les deux cas, le protocole retournera enfin à la normalité

• Mais la mauvaise donnée a été livrée à l’usager

Page 52: La couche Liaison et ses problèmes de contrôle du flux de données

52

Et aussi…

Double chevauchement d’ACK

nD0

D0

A0

n+1

A0

D1

A1

D0

A0

D1D0 n’a pas été reçu, D1 sera écarté

n

n

n+1

Page 53: La couche Liaison et ses problèmes de contrôle du flux de données

53

Protocoles à fenêtre d’anticipation (sliding window)

Le protocole du BA peut être généralisé en utilisant un compteur de plusieurs bits: p. ex. 4 bits

Nous avons donc un tampon borné de 2n bits, où n est le nombre de bits

Dans ce cas, il y a plus de liberté concernant la vitesse relative de l’émetteur et du récepteur L’émetteur peut continuer d’envoyer des paquets même si un

certain nombre de paquets déjà transmis n’a pas été acquitté

Les protocoles à fenêtre ont été utilisés dans la couche 2 de X.25, couche 2 de l’OSI et dans TCP HDLC: High-level Data Link Control

Page 54: La couche Liaison et ses problèmes de contrôle du flux de données

54

Fenêtre d’anticipation Au moment de l’envoi d’un message, l’émetteur positionne une

minuterie spécifique à ce message

Si l’ack n’est pas reçu dans le délai, le message doit être retransmis, avec tous les messages qui l’ont suivi jusqu’à la détection de l’erreur

L’émetteur doit être prêt à renvoyer tous les messages non acquittés dans une ‘fenêtre’ ou tampon dont la dimension est reliée à l’intervalle de la minuterie

Il peut réutiliser l’espace des messages acquittés La dimension de la fenêtre doit être telle que le transmetteur

puisse être sûr de pouvoir retransmettre toutes les trames non acquittées

L’intervalle de temporisation et la dimension du tampon doivent être soigneusement choisis

Page 55: La couche Liaison et ses problèmes de contrôle du flux de données

55

Fenêtre d’anticipation

01

2 0

1Erreur

3

écarté

écarté

écarté

écarté2

émetteur récepteur

3

4

23

5

6L’émetteur s’est enfin aperçu que 2 n’a pas été acquitté (temporisation)

4

4

Émetteur doit garder en mémoire un certain nombre de messages pour pouvoir éventuellement les retransmettre (dans ce cas, de 2 à 6)

Page 56: La couche Liaison et ses problèmes de contrôle du flux de données

56

Quelques calculs, par exemple…

Avec un numéro de séquence de 16 bits, nous pouvons numéroter 65 536 messages

Si un message est de 27 = 128 bits, ceci demande une zone tampon de 216x27 = 223 = 8 388 608 bits

À la modeste vitesse de 9 600 bps, tous les numéros seront utilisés dans 15 minutes

Donc si un message retarde plus de 15 minutes, il pourrait être interprété comme appartenant à la séquence suivante

Page 57: La couche Liaison et ses problèmes de contrôle du flux de données

57

Modèle de protocole de fenêtre d’anticipation

Soit M l’intervalle des numéros de séquences disponibles et W le budget initial des messages.

M est suffisamment large pour éviter les problèmes de confusion dus au recyclage

L’émetteur doit mémoriser les messages non acquittés dans cette fenêtre.

Deux vecteurs de valeurs binaires sont utilisés à ces fins : busy[s] = true si le message avec le numéro de séquence s est

émit mais pas acquitté store[s] = true si le message avec le numéro de séquence s est

le dernier message émit Initialement, busy[s] = store[s] = true

Page 58: La couche Liaison et ses problèmes de contrôle du flux de données

58

Fonctionnement du protocole : niveau émetteur

L’objectif peut être découpé en 3 sous objectifs1. Transmission des messages

2. Traitements des acquittements

3. Retransmission des messages non acquittés

Quatre variables supplémentaires (initialisées à 0) sont utilisées

s, num de séquence du message à envoyer window, le nombre des messages émis et non acquittés n, num de séquence du premier message envoyé et non acquitté m, num de séquence du dernier message acquitté

Page 59: La couche Liaison et ses problèmes de contrôle du flux de données

59

Organigramme BA coté émetteur

Page 60: La couche Liaison et ses problèmes de contrôle du flux de données

60

Fonctionnement du protocole : niveau récepteur

Le récepteur est divisé en 2 processus :1. Processus de réception : reçoit et stocke les messages

2. Processus d’acceptation : accepte et acquitte les messages en utilisant les num de séquences pour les remettre dans l’ordre

Les messages sont acquittés que s’ils sont acceptés éviter les problèmes de bourrage

recvd[M] : variable booléenne pour mémoriser les num des séquences de messages reçus mais non encore acceptés

buffer[M] : mémorise le contenu de ces messages p : num de séquence du prochain message à accepter

(initialiser à 0)

Page 61: La couche Liaison et ses problèmes de contrôle du flux de données

61

Fonctionnement du protocole : niveau récepteur

Deux raison peuvent provoquer l’arrivée d’un message dupliqué :

1. Message reçu mais pas encore acquitté.

2. Message reçu et acquitté, l’acquittement n’a pas atteint l’émetteur.

L’acquittement est retransmit que dans le cas 2. la décision est en fonction de p

valid(m) = ( 0 < p -m≤W)| |(0 < p +M -m≤W)

Le protocole à fenêtre garanti qu’un message retransmit ne peut pas avoir un numéro de séquence supérieur à W et inférieur au dernier message qui a été acquitté

Page 62: La couche Liaison et ses problèmes de contrôle du flux de données

62

Organigramme BA coté récepteur

Page 63: La couche Liaison et ses problèmes de contrôle du flux de données

63

Terminologie le contrôle de flux utilisant des acquittements pour contrôler la

retransmission est désigné par ARQ (Automatic Repeat Request). Trois variantes :

Stop-and-wait ARQ Selective repeat ARQ Go-back-N continuous ARQ

Le protocole Ping-Pong fait partie de la classe stop-and-wait ARQ. Après chaque envoie d’un message, l’émetteur doit attendre un

acquittement (positif ou negatif) ou un timeout

L’utilisation des acquittements dans un protocole à fenêtre d’anticipation est une méthode ARQ à répétition sélective. Seules les premiers messages non acquittées seront transmis

Page 64: La couche Liaison et ses problèmes de contrôle du flux de données

64

La couche liaison aujourd’hui La couche liaison était très importante à l’époque où

les réseaux étaient lents et peu fiables (contrôle d’erreurs) et les ressources de mémoire des noeuds étaient limitées (contrôle de

flux) Aujourd’hui les réseaux sont très rapides, très fiables, et les ressources de

mémoire sont importantes À fins d’efficacité et simplicité, beaucoup d’applications sont bâties

directement sur la couche physique (typiquement, IP) Chose qui n’avait pas été prévue par les concepteurs de l’architecture

OSI! Quel est le résultat dans le cas d’erreur?

Certaines applications ne sont pas sensible aux erreurs occasionnels • p.ex. voix sur IP, multimédia

L’application peut être bâtie pour détecter et récupérer des erreurs à son niveau • p.ex. un programme de consultation de bases de données peut

reconnaître l’erreur car les données ne sont pas reçues dans le format approprié et peut donc demander retransmission