Chapitre%204 - PowerPoint PPT Presentation

About This Presentation
Title:

Chapitre%204

Description:

pour communiquer par la poste, il faut informer les autres de votre adresse, il ... des probl mes semblables si nous admettons que le milieu puisse g n rer par ... – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 53
Provided by: luig4
Category:

less

Transcript and Presenter's Notes

Title: Chapitre%204


1
Chapitre 4
  • Lacquittement
  • (acknowledgment)

Auteur des transparents L. Logrippo w3.uqo.ca/lui
gi
2
Protocoles
  • Procédures concernant la communication
  • Afin que deux ou plusieurs parties puissent
    communiquer, ils doivent utiliser un protocole
    commun
  • P.ex. pour communiquer par la poste, il faut
    informer les autres de votre adresse, il faut
    regarder dans la boîte aux lettres
    périodiquement, poster aux boîtes rouges,
    utiliser des enveloppes, des timbres, etc.

3
Deux généraux qui doivent prendre une ville
  • Seulement en agissant ensemble peuvent-ils
    gagner
  • Un général nattaquera que sil est certain que
    lautre attaquera aussi
  • Le seul moyen de communication est un pigeon

4
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 daccord à 6h
    demain
  • Attaqueront-ils?
  • Non, B attendra confirmation
  • Général A répond encore daccord à 6 h demain
  • Attaqueront-ils?
  • Non, A attendra confirmation
  • Etc

5
Il ny a pas de protocole pour résoudre ce
problème!
  • Preuve (informelle) (v. notes de cours du Prof.
    Pelc pour une preuve plus générale)
  • Supposez quun 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 sapplique inductivement à
    tout message, y inclus le premier!
  • Aucun message ne serait nécessaire
  • contradiction

6
Erreurs résiduels
  • Après analyse, on découvre que ce résultat
    sapplique à nimporte quel protocole!
  • Il nest pas possible détablir laccord certain
    dans le cas de canaux avec perte
  • Un aspect fondamental de la preuve est que nous
    ne savons pas combien de fois le milieu va
    échouer
  • Si nous savons que sûrement il y aura succès au
    moins 1 fois sur 10, alors lenvoi de 10 pigeons
    suffira
  • Étant donné que normalement il est impossible
    détablir ce type de borne, il nest pas possible
    détablir la certitude globale dans les systèmes
    répartis
  • Nimporte la complexité du protocole et la
    fiabilité du milieu, il y a toujours la
    possibilité derreurs résiduels
  • On parle donc de taux derreur 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
  • Et nous avons aussi des applications pour
    lesquelles la fiabilité absolue nest pas
    nécessaire
  • Si un paquet est perdu dans la transmission de la
    parole, de la musique, dune image de télévision,
    lusager pourrait ne pas sen rendre compte

7
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

8
Fonctionnalité des acquittements
  • Dans les systèmes télématiques, les acquittements
    peuvent avoir deux fonctions différentes
  • Simplement faire savoir que le message a été reçu
  • Surtout dans la couche liaison de données
  • Répondre à la requête
  • Surtout dans la couche application
  • Cest la première fonction qui nous préoccupe en
    ce chapitre

9
La détection derreurs dans les modèles à couche
  • Quelle couche est la plus appropriée pour la
    détection derreurs?
  • Dans l OSI, la détection derreurs se fait
  • un peu partout dans les premières 4 couches
  • surtout dans la couche 2 Liaison de données
  • pas du tout après la couche Transport
  • Dans le TCP/IP, elle se fait à la couche TCP
    (Transport)
  • Cependant en principe il ny a pas de couche
    préférable
  • Chaque couche doit en quelque sorte se préoccuper
    derreurs à son niveau
  • Détectable p.ex. comme réception non spécifiée
  • Même dans les applications nous devons nous
    préoccuper de la possibilité derreurs
  • P.ex. une application de base de données qui
    reçoit une requête dans un format non valable

10
Protocoles à trois étapes Three-way handshake
  • Utilisé dans TCP, connexion et déconnexion
  • Et dans un grand nombre dautres protocoles

Invitation
Accept (ou non)
Confirm.
11
Avec ré-essai
  • Chaque côté renvoie après un certain temps
  • Ici aussi, il ny a pas certitude après lenvoi
    de conf.
  • Afin de chercher à la créer, on pourrait avoir
    une temporisation et boucle pour conf, ce qui
    demanderait une 2ème conf, etc.

! invit
? invit
tempor.
? accept
! accept
tempor.
! conf
? conf
Peut commencer à envoyer sans être certain.
12
Le protocole du bit alterné (BA)
  • Le protocole BA fut 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 lUQO sur
    http//portal.acm.org/portal.cfm
  • Excellent et fameux article, 2 pages seulement!
  • Parfois cité comme 1er article dans lingénierie
    des protocoles
  • BA est un des plus simples protocoles de liaison
    données possible, 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, nous verrons
  • Il a été utilisé dans un grand nombre détudes
    sur la validation des protocoles

13
Découvrons le protocole du bit alterné
  • Exigence un protocole qui accepte une séquence
    de paquets de données et les remet à lautre côté
    dans le même ordre

0
Message 0
1
1
2
2
3
3
Effet désiré comment lobtenir?
14
Contrôle derreurs
  • Problème, le canal peut perdre des données

0
0
1
Le récepteur a perdu lordre des messages
1
2
2
3
15
Compter les messages
  • Chaque message contient son numéro, afin 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
    dinitialiser le comptage
  • Étant donné quil faut pas gaspiller les bits
    pour le comptage, essayons avec le plus petit
    compteur possible 1 bit

16
Utilisation du bit alterné
  • Le protocole commence le comptage à 0
  • Pour pouvoir reprendre, il faut donner au
    récepteur la possibilité de demander le renvoi du
    message perdu

bit0
Attend 0, OK
0
Message 0
1
Message 1
0
Attend 1, reçoit 0 Erreur
2
3
17
Deux méthodes
  • Le récepteur peut envoyer un message NACK 0,
    signalant le fait que le message 0 na pas été
    reçu
  • Cependant ce message pourra lui-même être perdu
  • Une solution équivalente est dexiger un ACK pour
    chaque message reçu
  • Qui peut lui aussi être perdu
  • ARRÊT ET ATTENTE Stop and Wait Protocol
  • Lémetteur envoie, attend acquittement
  • Si lacquittement arrive, continue avec proch.
    message
  • Sinon (le message ou lacquittement pourraient
    être perdus!) renvoie message précédent
  • Problème combien de temps attendre
  • Solution établir un temps sur la base du temps
    dallée/retour du message et son acquittement (le
    double?)
  • Minuterie positionner , annuler

18
Arrêt et attente (stop-and-wait)
  • Cas normal

n-1 messages déjà transmis, n pair
Message n
Attend bit 0 accepté
D0
t
positionne minuterie t
Ack
OK minuterie t annulée
t
Message n1
D1
t
positionne minuterie t
Etc.
19
Perte de message dans arrêt-attente(si lattente
nest pas assez longue)
n-1 messages déjà transmis, n pair
Message n
D0
Attend bit 0 accepté
Ack
D0
Retransmet DO et pense que lacquittement est
pour le 2ème
Ack

D1
Ceci est lacquittement du 2ème DO mais il paraît
être pour D1
Ne sait pas si ce D0 est une retransmission du
1er ou sil sagit dun nouveau message
D0
Etc.
20
Protocole du bit alternéBit dans lacquittement
  • Il faut donc que lacquittement contienne
    lidentification du message reçu

n-1 messages déjà transmis, n pair
Message n
Attend bit 0 accepté
D0
A0
D0
D0 acquitté
A0

D1
Écarte ceci et il saura quil doit retransmettre
D1
D1
OK
A1
21
Protocole bit alterné Arrêt et attente
  • Cas de perte de message (OK)

n-1 messages déjà transmis, n impair
Message n
B0
Positionne Minuterie
Temporisation Doit renvoyer n
B0
n
A0
22
Protocole bit alterné Arrêt et attente
  • Cas de perte dacquittement (OK)

n-1 messages déjà transmis, n pair
D0
n
Positionne Minuterie
A0
Temporisation Doit renvoyer n
D0
Attend 1 écarté
A0
Continue denvoyer lacquittement du dernier msg
bien reçu
D1
23
Protocole bit alterné Arrêt et attente
  • Chevauchement de message! (OK)

n-1 messages déjà transmis, n pair
n
D0
Positionne Minuterie
Temporisation Doit renvoyer
D0
n
Attend 1, reçoit 0 Écarter
A0
24
Protocole bit alterné Arrêt et attente
  • Chevauchement dack! (OK)

n-1 messages déjà transmis, n pair
D0
n
Positionne Minuterie
A0
Temporisation Doit renvoyer
D0
Attend 1, écarter
Attend ack de 0, OK
D1
n1
n1
A1
25
Collision
  • Nous venons de voir un cas de collision, cad une
    situation où deux entités envoient des messages
    en même temps (D0-A0)
  • Les collisions ne sont pas nécessairement des
    erreurs, cependant elles doivent être prises en
    considération dans la conception
  • P.ex. deux entités qui demandent connexion ou
    déconnexion indépendamment
  • Deux données qui voyagent en direction opposée
    dans les protocoles bi-directionnels

26
Bit alterné unidirectionnel, diagramme de
transition
émetteur
récepteur
?D1
8
!D1
8
!A1
?A1
To, ?A0
!A1
1
1
4
6
Données de lusager
?D0
Données à usager
!D1
2
5
2
5
Données à usager
Données de l usager
!D0
?D1
?A0
4
3
6
3
!A0
To, ?A1
!A0
!D0
?D0
7
7
To temporisation A Ack
27
Usagers émetteur et recepteur
Donner message à lémetteur
Prendre message du récepteur
28
Architecture globale 4 machines à états
Usager émetteur
Usager récepteur
Émetteur
Récepteur
29
Messages altérés - Erreurs
  • Nous navons pas considéré le cas de réception de
    messages altérés (messages avec erreur détectée)
  • Lhypothèse étant quun message altéré est comme
    un message non-reçu
  • Dans le diagramme de transition nous pourrions
    ajouter ce cas derreur aux transitions
  • 3? 7 et 6 ? 8 dans lémetteur
  • 6?7 et 1?8 dans le récepteur

30
Problèmes (montrant que ce protocole nest pas
parfait, comme attendu)
  • Double chevauchement de message!
  • Un vieux message échu avec un bit égal à ce qui
    est attendu sera considéré bon

D0
1?3
n
3?7
n
7?3
n
1?3
A0
3?6
3?4
D1
6?4
n1
n1
4?6
A1
4?1
6?1
1?3
OK! (croit avoir reçu n2)
A0
Acquitte vieille donnée
3?6
D0
Pense que ceci est un msg répété par erreur!
6?7
31
Réceptions non spécifiées dans BA
  • Que va faire lenvoyeur avec un A0 après avoir
    reçu un A1 lorsquil na rien envoyé?
  • Il pourrait lécarter
  • le récepteur recevra un deuxième D0 quil
    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 à lA0 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 à lusager

32
Et aussi
  • Double chevauchement dACK

D0
1?3
1?3
n
n
A0
3?6
3?7
D0
n
6?7
7?3
A0
3?4
7?6
D1
6?4
n1
4?6
n1
A1
4?1
6?1
D0
1?3
A0
3?4
D1
1?8
D0 na pas été reçu, D1 sera écarté
4?6
33
Problèmes de sécurité
  • Nous aurons évidemment des problèmes semblables
    si nous admettons que le milieu puisse générer
    par lui-même des mauvais messages,
  • ou si ceci serait possible par intervention dun
    tiers

34
Transmission bidirectionnelle
  • Le protocole que nous venons de donner est pour
    transmission dans 1 direction seulement (simplex)
  • Le protocole BA original pouvait fonctionner dans
    les 2 directions (alternat ou half-duplex)
  • Piggybacking un seul paquet sert pour transférer
    les nouvelles données en même temps que lack du
    message précédent dans la direction opposée

35
Protocole BA alternat bidirectionnel, compacté
  • Deux stations A et B, chacune garde son propre
    bit local
  • Bit local1 au début pour les deux
  • A commence en état 1
  • B commence en état 3
  • NDonnées de lusager, bit local est renversé
  • !D envoi données avec bit local
  • ?Db réception de données avec
  • Pour A, bit local de A
  • Pour B, bit ? local de B
  • ?Dm réception opposée (erreur)
  • Udonnées à lusager

A
1
N
U
2
?Dm, To
!D
4
3
?Db
B
36
Architecture globale 4 machines à états
Usager émetteur
Usager récepteur
U
N
Émetteur
Récepteur
37
Mais...
  • La vitesse des deux usagers doit être la même
  • Quoi faire si A envoie un message, B doit
    acquitter mais son usager na pas de données
    prêtes à envoyer?
  • A devra donc attendre, ou sinon des messages
    vides pourraient être livrés avec certains
    acquittements...

38
Terminologie
  • Simplex Unidirectionnel
  • Half-Duplex ou alternat bidirectionnel
    alternative
  • Canal qui peut fonctionner dans une direction ou
    lautre, mais pas simultanément
  • Full duplex bidirectionnel simultané

39
Propriété qui peut être prouvée pour le BA
  • Dans le cas dun milieu avec possibilité derreur
    mais sans double chevauchement, il est possible
    de prouver que le BA préserve lordre des
    données, c.-à-d.
  • La chaîne des messages reçus est dans le même
    ordre de la chaîne des messages envoyés
  • Moins évidemment les messages envoyés et pas
    encore arrivés

40
Auto-stabilisation (Self-synchronisation)
  • Le protocole du BA a aussi la propriété dêtre
    capable de retourner au fonctionnement normal
    après nimporte quelle situation derreur
  • Il pourra cependant avoir envoyé à lusager les
    mauvaises données (ce que nous avons vu)

41
Protocoles à fenêtre danticipation (sliding
window)
  • Le protocole du BA peut être généralisé en
    utilisant un compteur de plusieurs bits
  • n bits
  • Dans le cas de n1, lémetteur devait garder le
    dernier message jusquà lacquittement, donc 2n
    -1 messages
  • En général, pour un compteur de n bits,
    lémetteur doit garder au plus les derniers 2n -1
    messages jusquà leur acquittement
  • Dans ce cas, il y a plus de liberté concernant la
    vitesse relative de lémetteur et du récepteur
  • Lémetteur peut continuer denvoyer des paquets
    même si un certain nombre de paquets déjà
    transmis na pas été acquitté
  • Les protocoles à fenêtre ont été utilisés dans la
    couche 2 de X.25, couche 2 de lOSI et dans TCP
  • HDLC High-level Data Link Control

42
Fenêtre danticipation
  • Au moment de lenvoi dun message, lémetteur
    positionne une minuterie spécifique à ce message
  • Si lack nest pas reçu dans le délai, le message
    doit être retransmis, avec tous les messages qui
    lont suivi jusquà la détection de lerreur
  • 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 à
    lintervalle de la minuterie
  • Peut réutiliser lespace 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
  • Lintervalle de temporisation et la dimension du
    tampon doivent être soigneusement choisis

43
Fenêtre danticipation
émetteur
récepteur
0
1
0
2
3
1
Erreur
4
écarté
5
Lémetteur sest enfin aperçu que 2 na pas été
acquitté (temporisation)
écarté
6
écarté
2
3
écarté
4
2
3
4
Émetteur doit garder en mémoire un certain nombre
de messages pour pouvoir éventuellement les
retransmettre (dans ce cas, de 2 à 6)
Exercice combien de messages faut-il garder?
44
Comment choisir le temps dattente pour un
acquittement?
  • Ce temps est déterminé par la vitesse du réseau
  • Doit être choisi judicieusement
  • Si trop petit, beaucoup de messages pourraient
    être renvoyés inutilement
  • Si trop grand, trop de message devront être
    renvoyés quand on sapercevra quun message a été
    perdu
  • Aussi le protocole pourrait retourner à numéroter
    un message n avant quon se soit aperçu que le
    message n précédent a été perdu

45
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 très modeste vitesse de 9 600 bps, tous les
    numéros seront utilisés dans 15 minutes
  • Plus exactement 14.56 mins
  • Donc si un message retarde plus de ça, il
    pourrait être mal placé dans la séquence suivante
  • Il doit cependant arriver au moment où un message
    avec le même no de séquence est attendu

46
Taille du tampon
  • Des exemples quon trouve dans les livres et dans
    les sites web montrent des tampons de taille 2N
    pour numéros de séquences de N bits
  • En réalité, lémetteur ne peut transmettre plus
    de 2N-1 message à lavance
  • Considérez le cas où lémetteur envoie 2N
    messages et tous les acquittements sont perdus!
  • Lémetteur essaiera de renvoyer la même séquence
  • Le receveur, ne sachant pas que tous ses
    acquittements sont perdus, pensera quil sagit
    de la séquence suivante!
  • Donc il est nécessaire que lémetteur sarrête
    après avoir envoyé 2N-1 messages, sil ne reçoit
    aucun acquittement à ce moment là, il doit
    reprendre la séquence courante à partir du début
  • Et le récepteur saura quil sagit encore de la
    séquence courante

47
Technique alternative
  • Seulement les messages erronés sont retransmis
  • Le récepteur doit donc stocker tous les messages
    suivant une erreur et être prêt à insérer les
    retransmissions dans le bon ordre
  • Meilleure utilisation de bande passante sil y a
    beaucoup derreurs (rare aujourd'hui)
  • Mais moins utilisé car il demande un stockage
    tant pour lémetteur que pour le récepteur
  • Donc stockage double pour une station relais

48
Et encore une autre technique
  • Dans chaque acquittement, le récepteur déclare
    être prêt à recevoir k paquets à partir dun
    certain numéro
  • Lémetteur doit garder dans un tampon tous les
    paquets non acquittés
  • Pourraient devoir être retransmis
  • Il peut réutiliser lespace libéré par les
    paquets déjà acquittés
  • Réduit le nombre dacquittements

Paquets qui pourraient être transmis
Paquets déjà transmis
3
4
5
6
6
7
0
1
2
3
4
5
6
7
0
1
2
49
Contrôle de flux
  • Ces mécanismes sont étroitement reliés au
    problème de contrôle de flux
  • Le contrôle de flux est un mécanisme pour
    empêcher lémetteur denvoyer plus que le
    récepteur ne peut recevoir (à cause de lespace
    de tamponnage disponible)
  • Il y a deux formes fondamentales de contrôle de
    flux
  • Explicite le récepteur dit à lémetteur quil
    est prêt à recevoir x paquets (exemple précédent)
  • Ou il envoie un message demandant à lémetteur de
    suspendre
  • Implicite le récepteur naccepte pas (p.ex.
    nenvoie plus dacquittements)
  • Ceci peut forcer lémetteur à retransmettre

50
Les deux fonctions des acquittements
  • Le message dacquittement (ack) a donc deux
    fonctions reliées
  • Faire savoir que le message a été reçu
    correctement (contrôle derreur)
  • Faire savoir que le récepteur est prêt à recevoir
    un ou plusieurs nouveaux messages (contrôle de
    flux)

51
La couche liaison aujourdhui
  • La couche liaison était très importante à
    lépoque où
  • les réseaux étaient lents et peu fiables
    (contrôle derreurs)
  • et les ressources de mémoire des noeuds étaient
    limitées (contrôle de flux)
  • Aujourdhui les réseaux sont très rapides, très
    fiables, et les ressources de mémoire sont
    importantes
  • À fins defficacité et simplicité, beaucoup
    dapplications sont bâties sur des protocoles
    comme UDP, un protocole de transport  qui ne
    garantit pas de préserver lordre des messages
  • Chose qui navait pas été prévue par les
    concepteurs de larchitecture OSI!
  • Quel est le résultat dans le cas derreur?
  • Certaines applications ne sont pas sensible aux
    erreurs occasionnels
  • p.ex. voix sur IP, multimédia
  • Lapplication peut être bâtie pour détecter et
    récupérer des erreurs à son niveau
  • p.ex. un programme qui consulte une base de
    données peut reconnaître lerreur car les données
    ne sont pas reçues dans le format approprié et
    peut donc répéter la requête

52
Pour en savoir davantage
  • Un vieux livre de Gerhard Holzmann contient
    beaucoup dinformations que jai utilisé pour ce
    chapitre
  • http//spinroot.com/spin/Doc/Book91_PDF/Design_and
    _Validation_1991.pdf
  • V. Surtout Chapitre 4.
Write a Comment
User Comments (0)
About PowerShow.com