You are on page 1of 22

Chapitre 5

Contrle de flux

5.1. Introduction
Nous avons dfini la notion de protocole et les principaux mcanismes
protocolaires utiliss. Dans ce chapitre nous allons considrer le protocole LAP B
utilis actuellement sur le rseau Transpac, afin dillustrer de manire concrte les
notions de couches et denveloppes, de regarder comment fonctionnent les
mcanismes de reprise sur erreur et de squencement dans ce protocole. Chaque
solution protocolaire est propre un protocole particulier. Enfin, nous allons sur ce
protocole introduire et illustrer le mcanisme de contrle de flux dfini dans le
chapitre 2.
5.2. Le rseau Transpac
Le rseau de transmission par paquets le plus utilis en France est le rseau
Transpac. Son nom est dailleurs tir des premires syllabes de transmission par
paquets . On trouvera tous les renseignements concernant Transpac (tarifs, normes et
connexions) dans les STUR (Spcifications Techniques dUtilisation du Rseau).
5.2.1. Historique
Lobjectif de Transpac tait de rpondre aux besoins nouveaux qui dcoulaient de
lutilisation de matriels informatiques varis. Avant lui, il nexistait en France que les
rseaux commuts tlphoniques analogiques et le tlex. Or ces rseaux ont des
performances limites et le taux derreur y est important (10-4). Ils ne peuvent
rpondre compltement aux besoins dapplications informatique. Pour des besoins
spcifiques, des lignes spcialises (ou liaisons spcialises) peuvent tre loues
France Tlcom, mais elles cotent cher et de ce fait ne sont rentables que pour des
utilisateurs importants, cest--dire dont le besoin de communication permet de les
utiliser de manire satisfaisante (taux doccupation lev). La liaison spcialise est
point point et ne sait pas raccorder deux usagers pour un usage temporaire (comme
le fait le tlphone). Cette solution manque de souplesse.

204

Les rseaux

Figure 5.1. Infrastructure du rseau TRANSPAC fin 1993

Ouvert en 1978, le rseau Transpac permet ltablissement de relations entre


matriels htrognes et entre abonns situs sur lensemble du territoire franais.
A lorigine, le rseau possdait 4 commutateurs, en 1985 il en comportait plus de 25.
En 1993 le rseau compte plus 150 commutateurs (cf. figure 5.1.). Les commutateurs
de Transpac sont relis entre eux par des liaisons spcialises loues France
Tlcom. Le service de Transpac permet de rationaliser lusage (par multiplexage
statistique) de ces liaisons permanentes pour des usagers qui ralisent des
communications de courte dure.
Lune des originalits de ce rseau de commutation de paquets est doffrir aux
abonns une tarification indpendante de la distance entre les quipements, mais
uniquement fonction du temps de connexion et de la quantit de donnes transportes.
Il existe de nombreux moyens daccs au rseau Transpac. On voit sur la
figure 1.6. laccs par le rseau tlphonique commut. Il permet un accs 1200 B/s
en rception et 75 B/s en mission. Des accs plus haut dbit sont possibles par des
modems sur des numro dappels Transpac pour des usages temporaires. Transpac est
aussi accessible par le canal D de Numris 16 Kb/s. Des dbits plus levs (64, 128,
256 kb/s ou mme 2 Mb/s) ncessitent la location dune liaison spcialise.
5.2.2. Architecture de Transpac
Seuls les trois premiers niveaux du modle OSI de lISO sont implants dans
Transpac. Le niveau 3 (couche rseau) offre lusager un service de transmission de

Contrle de flux 205

Ordinateur personnel/client TRANSPAC

Modem

Modem
liaison srie

Point daccs
TRANSPAC

Liaison spcialise

liaison srie
locale

locale
ETTD

ETCD

ETCD

ETTD

Figure 5.2. Raccordement au point du rseau TRANSPAC par une voie liaison spcialise

donnes sur connexion, appel X25 [21]. Les informations circulant ce niveau
sappellent des paquets, N PDU. Nous y reviendrons au chapitre 6.
Le niveau 2 (couche liaison) assure la transmission des donnes par blocs, L SDU
sans erreurs. Les informations circulant ce niveau sappellent des trames, L PDU. Ce
niveau gre le protocole de transmission entre les deux entits (gestion des ressources,
traitement des erreurs) et soccupe de lenveloppe des trames pour leur dlimitation
dans le flot continu de donnes. Le protocole utilis, appel LAP B (Link Access
Protocol version B), est un protocole de transfert de donnes sur connexion. Nous
allons lexaminer. Aujourdhui, Transpac utilise diverses versions de protocoles
(LAP D...). Nanmoins le segment terminal daccs usager utilise toujours le
protocole LAP B.
Le niveau 1 (couche physique) permet le transport des informations lmentaires
(bits) un rythme fixe (vitesse de la liaison). Il utilise un format de trame, MA PDU,
connu sous le nom de HDLC (High Level Data Link Control). Nous ne le dcrivons
ici que pour illustrer la couche physique et le mcanisme de dtection des erreurs. On
ne le verra plus dans les exercices proposs pour ce chapitre puisque les trames sont
collectes par une station au niveau liaison. Seul un oscilloscope pourrait montrer les
enveloppes physiques compltes. La couche physique est mise en uvre sur les
liaisons spcialises.
Le rseau Transpac est rsum par le schma de la figure 5.2. dans le vocabulaire
de Transpac (et dans les recommandations de lIUT-T), on appelle ETCD,
Equipement de Terminaison de Circuit de Donnes (en anglais DCE, Data
Commutation Equipement), le point daccs au rseau pour lusager ; en pratique un
modem. On appelle ETTD, Equipement Terminal de Traitement de Donnes,
lquipement de lusager (en anglais DTE, Data Terminal Equipment), ou le nud
dentre Transpac (cf. figure 5.3. ). Ce vocabulaire permet entre autres de distinguer
la partie fournie par et sous la responsabilit de la socit Transpac de la partie dont
labonn est responsable.

206

Les rseaux

paquets X25.3
trames LAP-B

bits
HDLC

ETTD

ETCD

ETCD
ETTD
Point daccs
TRANSPAC

ETTD ETCD
Point daccs
TRANSPAC
donnes

Ordinateur Client

ETCD

ETTD

Ordinateur Client

Figure 5.3. Modle de rfrence du service X25 de TRANSPAC

LETTD doit disposer de la pile de protocole utilise en interne par Transpac pour
construire la voie de communication jusqua labonn demand (cf. figure 5.3.). On
observe donc que les ordinateurs des clients et les point daccs mettent en uvre la
mme pile de protocoles.
5.2.3. Lenveloppe du niveau physique
Ce sous-niveau permet de dlimiter les blocs dinformations utiles dans le flot
continu de bits transmis par le niveau physique. Il permet galement de dtecter les
erreurs ventuelles introduites par le niveau physique dans les blocs dinformation. Il
permet, enfin, deffectuer une signalisation des deux tats de la ligne physique (actif
et inactif) pour chaque sens de transmission.
Avec le format utilis HDLC, High Level Data Link Control (cf. figure 5.4.),
toutes les trames doivent commencer et se terminer par une squence spciale de
dlimitation de trame ou fanion (flag en anglais). Lquipement (ETCD) doit, en
permanence, rechercher cette squence. Le fanion est utilis pour la synchronisation
des trames. Il sert dlimiter le dbut et la fin dune trame. Un mme fanion peut tre

fanion
01111110

bloc dinformation

CRC
16 bits

fanion
01111110

Figure 5.4. Structure de la trame HDLC dans la couche physique

Contrle de flux 207

He

Hr
Figure 5.5. Les horloges de lmetteur et du rcepteur ne sont pas gnralement en phase
et nont pas la mme prcision

utilis la fois comme fanion de fermeture et fanion douverture de la trame suivante,


autrement dit comme sparateur de trames. Lmission continue de fanion ou de
donnes signale une liaison physique active. Labsence prolonge de fanions signale
une liaison physique inactive.
Le codage utilis ne prvoit pas de retour zro, il est appel NRZ (Non-Retour
Zro). Il consiste coder la valeur 1 par un niveau lectrique et 0 par un second niveau
pendant une dure, gale linverse du dbit, appele : temps bit = 1/D secondes. Cela
pose problme au niveau physique, car lhorloge de lmetteur et du rcepteur ne sont
dune part pas synchrones (cf. figure 5.5.), dautre part elles ne sont pas galement
prcises et donc risquent de driver lune par rapport lautre. Lhorloge sert
dterminer les temps bits. Chaque temps bit dbute sur un front dhorloge. Les
transitions 10, 01, concident avec un front dhorloge. Ces transitions peuvent
donc tre utilises pour caler et synchroniser lhorloge du rcepteur sur le signal reu.
En labsence prolonge de telles transitions (suite de 0 et de 1), il nest plus possible
de synchroniser lhorloge. En consquence, une suite de bits identiques risque dtre
reue avec un bit en plus ou en moins. Pour viter cela, il y a lieu de forcer des
changements de niveau lorsque plus de cinq bits un sont soumis, pour permettre au
rcepteur de caler son horloge sur le signal reu. La squence 01111110 viole cette
rgle, aussi sert-elle de marque de dbut et de fin de la trame (appel fanion). Il faut
viter que la suite 01111110 se retrouve un autre endroit dans la trame, sinon le
rcepteur croirait une fin de trame. Lmetteur doit examiner le contenu de la trame
entre les deux fanions. Il doit insrer un 0 aprs toute squence de cinq 1 conscutifs1.
Le rcepteur doit examiner le contenu des trames et liminer tout lment 0 qui suit
immdiatement 5 lments 1 (cf. figure 5.6.). Afin de prserver la transparence de
linformation transmise. Cest--dire que lutilisateur peut envoyer nimporte quelle
squence de bits sans que cela influence le service de la couche infrieure (ici
physique) charge de transmettre le SDU.
Le mcanisme de dtection derreur est bas sur un code redondance cyclique
(CRC, cf. paragraphe 4.2) de 16 bits placs en fin de trame. Le polynme gnrateur
utilis pour calculer le CRC est x16+x12+x5+1. Les bits, ou lments binaires, 0

1. Ce mcanisme est appel bit stuffing en anglais.

208

Les rseaux

Suite de donnes utilisateur :

101111111100011110111111001

Donnes transmises :

10111110111000111101111101001

Suite de donnes dlivres :

101111111100011110111111001

Figure 5.6. Processus dinsertion et de retrait de bits dans une squence mise et reue

ajouts pour viter toute confusion avec le fanion, ne sont pas inclus dans le calcul du
CRC.
5.2.3.1. Architecture de la couche physique de HDLC
Le sous-niveau physique et la partie basse de la couche liaison peuvent ainsi tre
dcomposs en quatre fonctions ou entits protocolaires, comme le montre la
figure 5.7. On remarquera que la fonction bit stuffing est effectue en mission aprs
le calcul du CRC, rciproquement en rception avant le calcul du CRC. Elle
sapplique donc au rsultat du calcul du CRC. On remarquera quil sagit dun
empilement hirarchique dentits protocolaires (en loccurrence, toutes au sein du
niveau physique du modle OSI). Comme il ny a pas de besoin de multiplexage, il est
inutile de crer plusieurs SAP spcifiques en entre (resp. en sortie) de chaque entit
protocolaire. Lassemblage est fig, il ne tolre aucun multiplexage. Par exemple une
seule entit fanion et bit-stuffing peut utiliser le service fourni par lentit
modulation/dmodulation.
En mission on peut dcomposer le niveau physique en quatre entits.
entit srialisateur qui permet de passer des octets ou mots en mmoire un
train de bits continu au dbit de la voie, et rciproquement le rcepteur remet en octets
la suite de bits reus,
Octets ou mots en mmoire
Srialisateur/Dsrialisateur
CRC
fanion et bit-stuffing
Modulateur/Dmodulateur
Support physique
Figure 5.7. Dcomposition en sous-couches des fonctions ralises par la couche physique

Contrle de flux 209

Adresse
8 bits

Commande
8 bits

Information

Figure 5.8. Format court du bloc dinformation de la trame HDLC

entit de calcul du CRC, lmetteur ajoute le CRC dans le MA PDU alors que
le rcepteur effectue la vrification,
entit dajout (resp. retrait) de bits 0, bit stuffing. Ce mme module met les
fanions en labsence de demande de donnes transmettre. Ce module marque (resp.
signale) le dbut et la fin des MA PDU.
enfin, entit dmission physique, ou modem proprement dit, qui transforme
les squences de bits en un signal adapt au support de transmission. Le rseau remplit
normalement le temps entre les trames en mettant des fanions contigus. Lorsque le
rseau met des fanions contigus, la liaison physique de transmission du rseau vers
lETTD est dite dans ltat actif.
Cette sparation en quatre entits est purement logique et nest pas ncessairement
implante dans les ralisations, car des simplifications peuvent souvent tre ralises
en associant les diffrentes fonctions ncessaires llaboration des tches de ces
entits.
5.2.4. Gestion logique des trames
La couche physique permet dassurer un transport de blocs avec une faible
probabilit derreur sur linformation, mais avec possibilit de pertes. Une trame reue
avec un CRC faux est en effet limine.
Le format des paquets de la couche liaison est donn sur la figure 5.8. La couche
liaison permet de corriger ces pertes de blocs dinformations laide de plusieurs
protocoles. Nous allons dcrire ici la procdure appele LAP B (Link Asynchronous
Protocol version B). Ce protocole permet de transporter sans erreur et de conserver
lordre des paquets manipuls par la couche suprieure. La couche liaison avec le
protocole LAP B ne gre que des liaisons point point. Il existe un format long (utilis
dans les rseaux locaux, les rseaux satellites) et un format court. Nous dcrivons ici
uniquement le format court.
Dans Transpac, pour connecter un ETTD au rseau, deux valeurs dadresse sont
utilises. Elles permettent de distinguer les deux catgories de trame appeles
commande et rponse. Lutilisation de ces adresses et les valeurs sont donnes sur la
figure 5.9.
5.2.4.1. Champ de commande
Le champ de commande sert dsigner le type de la trame. Suivant la fonction de
la trame (ouverture de connexion, acquittement, transport de donnes, etc,), ce champ
prend des valeurs diffrentes. Les trames sont classes suivant trois types.

210

Les rseaux

Catgorie
COMMANDE
REPONSE

Emetteur

rseau

abonn

00000011

00000001

00000001

00000011

Figure 5.9. Le champ adresse

Le type I, ou Information, dsigne les trames qui transportent des donnes


utiles, L SDU, cest--dire transmises la couche suprieure.
Le type S, ou Supervision, dsigne les trames qui vont transporter des
informations de contrle pour la connexion (acquittement, contrle de flux, etc).
Le type U, ou non numrot (Unumbered), permet de transmettre des trames en
dehors des connexions (ouverture de connexion, fermeture, purge, etc).
La figure 5.10. rcapitule les diffrents types de champs de contrle utiliss au
niveau 2 du rseau Transpac.
5.2.4.2. Les numros de squence
Chaque paquet, L SDU, venant de la couche Rseau est plac dans un bloc
dinformation, L PDU, lui-mme plac dans une trame physique, MA PDU. Pour
dtecter les pertes ventuelles de bloc dinformation, on attache ceux-ci un numro
de squence. Dans la suite de ce document, nous appellerons ce numro de squence
en mission Ns (S pour Send).
Le numro de squence est cod sur 3 bits, ce qui permet dobtenir des valeurs
comprises entre 0 et 7. La numrotation des trames se fera modulo 8. Quand nous
ferons rfrence une relation dordre (par exemple : cette trame a un numro de
squence suprieur cette autre trame), nous nous rfrerons cette numrotation
modulo 8.
Les trames perdues sur la liaison daccs devront tre rptes. A cet effet, il faut
les garder en mmoire chez lmetteur. Le nombre de trames mmorises sera au
maximum gal 8. Lanticipation ne peut excder 7 trames du fait que le compteur est
implant sur 3 bits, sinon lon retrouverait un numro dj utilis.
Pour indiquer lmetteur que tous les paquets contenus dans les trames
dinformation prcdentes ont bien t reus, et par consquent quil nest plus
ncessaire de les garder en mmoire, le rcepteur va mettre le numro du prochain
paquet attendu, appel numro de squence en rception Nr (R pour Receive) dans
les trames dinformation (technique du piggy backing1) et les trames de supervision
(Nr = Ns+1, o Ns indique le numro de la dernire trame reue en squence). En
dautres termes, le rcepteur met le numro de la prochaine trame attendue.
1. Le terme piggy backing dsigne le fait dutiliser une trame de type I (Information) pour acquitter une trame prcdente. Cette technique est utilise dans de nombreux protocoles.

Contrle de flux 211

CODAGE

Type de
trame

Catgorie

Trame I

commande

Nr

P/F

RR: prt recevoir

Rponse/
commande

Nr

P/F

REJ: Rejet

Rponse/
commande

Nr

P/F

RNR: Non prt


recevoir

Rponse/
commande

Nr

P/F

1
0

Ns

Trame S

Trame U
0

Commande

UA: Accus de
rception

Rponse

FRMR: rejet de
trame

Rponse

SABM: Ouverture ou
rinitialisation

Commande

DM: Indication de
mode dconnect

Rponse

DISC: dconnexion

Figure 5.10. Diffrentes valeurs du champ commande (format court)

5.2.4.3. Le bit P/F


Le bit P/F se retrouve dans chacune des trames LLC. Une convention de notation
fait que ce bit nest pas appel de la mme manire suivant que la trame est une requte
ou une rponse une requte (par exemple, une trame SABME est une requte et une
trame UA est une rponse cette requte).
Pour une requte le bit, sappelle P (pour Poll). Lmetteur de la requte demande
une rponse immdiate du rcepteur. Dans le cas dune rponse, ce bit sappelle F
(pour Final) : il indique que le rcepteur rpond bien la prcdente requte. A
lorigine du protocole, le droit dmission tait gr par une station matre laide du
polling (invitation mettre). Les stations esclaves pouvaient mettre une suite de
trame dont la dernire tait marqu final. Ces noms ont t conservs dans les
volutions du protocole.

212

Les rseaux

Initiateur
Matre

Appel
Esclave

L_CONNECT
.request

SABM, P

L_CONNECT
.indication
Vr=0 Vs=0

UA, F

Vr=0 Vs=0
L_CONNECT
.rponse
I

L_CONNECT
.confirmation
Data.indication

Data.request

Data.request

Figure 5.11. Etablissement de la connexion. Une fois tablie la connexion est


full duplex. Les deux entits peuvent mettre et recevoir

Il ne faut pas confondre ce bit P/F avec le bit C/R prsent dans le champ adresse,
aussi appel SSAP. Le bit C/R sert coder la nature de la trame commande ou rponse,
tandis que le bit P/F sert demander une rponse immdiate dans le cas dune trame
de commande et donner une rponse immdiate dans le cas dune trame rponse.
Autrement dit, dans le cas dune trame de commande (bit C/R 0), le bit du champ
contrle sappelle P, et dans le cas dune trame de rponse (bit C/R 1), le bit du
champ contrle sappelle F.
5.2.5. Fonctionnement du protocole
LAP B est un protocole qui offre un service sur connexion. Il y a donc trois phases
dans la vie du protocole (cf. paragraphe 2.1.5) :
tablissement de la voie (ouverture de la connexion),
transfert de donnes sur la voie,
libration de la voie (fermeture de la connexion).
5.2.5.1. Etablissement de la voie
Si la voie est dans ltat dconnect, lETTD initiateur, abonn ou rseau, peut
demander ltablissement de la liaison en transmettant la commande SABM (Set
Asynchronous Balanced Mode), comme le montre la figure 5.11. LETTD appel
rpond normalement par UA (Unumbered Acknowledge) et passe en phase de transfert

Contrle de flux 213


Initiateur
Matre
SABM, P
UA, F
Vr=0 Vs=0

TO

Appel
Esclave

Vr=0 Vs=0

Rptition

SABM, P
UA, F

Figure 5.12. Etablissement dune connexion aprs la perte de laccus de rception

dinformation. LETTD initiateur et lETTD appel peuvent alors schanger des


trames dinformation. Deux compteurs Vr (receive) et Vs (send) qui appartiennent au
contexte de la connexion sont crs de chaque ct et initialiss 0.
Le contexte de la connexion est donc cr pendant la phase dtablissement de la
connexion et ces deux compteurs vont servir assurer le squencement des paquets.
Le protocole garantit le squencement des donnes et la rcupration des erreurs,
comme nous allons le voir par la suite. Par contre la demande de connexion (SABM)
ou laccus de rception (UA, cf. figure 5.12.) peuvent se perdre. Pour pallier ce risque
de perte, un rveil, TO pour Time Out, est arm par linitiateur de la connexion. Sil
nobtient pas de rponse avant la fin du dlai compt par le rveil, il ritre sa
demande. Cette opration peut tre rpte plusieurs fois (3 ou 4), et, si au bout de ces
rptitions aucune rponse nest parvenue, la connexion est refuse.
Lautomate dtablissement dune connexion est dcrit sur la figure 5.13. Il y
apparat que les deux quipements ont un rle diffrent dans cette phase. Linitiateur
va demander louverture de la connexion, alors que le rpondeur est pralablement en
attente de la demande douverture. Cet automate comporte quatre tats :
Repos : lautomate attend soit une demande douverture par un utilisateur
de la couche suprieure, soit une trame SABM de la couche infrieure.
Attendre ACK : lautomate est linitiateur de la connexion. Il a mis une
demande de connexion (SABM) vers son correspondant et attend laccus de
rception de celui-ci. Il a aussi arm un rveil (TO) pour surveiller larrive de la
rponse. Dans cet tat, il surveille la rception de laccus de rception, ou la sonnerie
du rveil. Si le rveil sonne, il rmet la demande douverture (le contrle du nombre
de rptitions nest pas implant sur cet automate).

214

Les rseaux

Repos

Repos
SABM,P

L_CONNECT.request
met SABM, P
arme TO
Attendre
ACk

TO
met SABM,P
arme TO

L_CONNECT.indication

Attente
rponse

SABM,P

UA,F

L_CONNECT.rponse

met L_CONNECT.confirmation
dsarme TO

UA,F

Connexion
ouverte

Connexion
ouverte

Initiateur

Rpondeur

SABM,P
UA, F

Figure 5.13. Automate dcrivant le fonctionnement de ltablissement dune connexion

Attente rponse : lautomate a reu un SABM de la couche infrieure. Il a


averti lutilisateur local dun appel externe et attend que celui-ci accepte ou refuse la
connexion. Il peut alors recevoir de nouveau la demande SABM dans le cas dun
rptition par linitiateur. Il ignore cette rptition. Par contre, lorsquil reoit
lacceptation de lutilisateur, il envoie laccus de rception.
Connexion ouverte : lautomate autorise le transfert de donnes sur la
connexion. Lautomate entre dans la phase de transfert de donnes.
5.2.5.2. Dconnexion de la voie
Pendant la phase de transfert de linformation, lETTD indique une demande de
dconnexion en transmettant au rseau la commande DISC (Disconnect). Celui-ci
rpond par la commande DM, Disconnect Mode, et passe dans ltat dconnect.
5.2.6. Transfert de donnes
5.2.6.1. Squencement
Quand une requte L DATA.request (L SDU1) est soumise en A, lautomate
LAP B de A va crer la L PDU Information correspondante. Le paramtre de la
1. Dans les paragraphes suivants, on utilisera lexpression la L SDU ou la L PDU par abrviation pour la trame L SDU (resp L PDU) bien que, en principe, les abrviations anglaises soient
toujours au masculin en franais.

Contrle de flux 215

Vitesse de la ligne

Valeur minimale
du temporisateur.

48 000 b/s
19 200 b/s
9 600 b/s
4 800 b/s
2 400 b/s

100 ms
200 ms
400 ms
800 ms
1 600 ms

Figure 5.14. Valeur de temporisation TO pour diffrents dbit de la voie physique

requte est linformation SDU (Service Data Unit) que lutilisateur souhaite
transmettre. Il met le numro du L PDU dans le champ Ns grce la valeur courante
Vs, et dans le champ Nr la valeur courante du numro de la prochaine L PDU attendue
grce la valeur de Vr. Le bit de polling est zro. Le compteur Vs est incrment
aprs lenvoi de la L PDU.
La figure 5.17. montre diffrents cycles dchanges aprs louverture de la
connexion. Aprs lenvoi de la L PDU, le compteur Vs est incrment et un rveil, TO,
est arm. Le rcepteur de cette trame va laccepter car elle est en squence (le numro
Ns est gal au Vr quil possde). Il incrmente Vs, le numro de la prochaine L PDU
attendue. Il peut mettre au destinataire lindication de rception L.DATA.indication
(L SDU). Comme ce ntait pas une L PDU I de scrutation (P = 0), lentit liaison
rceptrice peut attendre pour rpondre davoir une trame de donnes. Il ne faut pas
nanmoins quelle attende plus quune dure TO pour viter que lmetteur ne
retransmette sa L PDU (cf. figure 5.14.). Nous verrons plus loin que sil na aucune
donne mettre, il peut rpondre par une L PDU de supervision RR.
Restons sur lexemple de la figure 5.17. B ne rpond pas immdiatement. B
incrmente son compteur Vr pour noter quil attend maintenant une L PDU de numro
de squence 1. A, de nouveau, a une L PDU transmettre : il met donc une L PDU 1
de numro de squence Ns = 1. Comme il souhaite savoir o en est sa prcdente
LPDU, il met une L PDU de commande avec le bit P 1. A la rception de cette
commande, B va tre oblig de rpondre. A ne rarme pas ncessairement un rveil
TO car celui de la L PDU prcdente court toujours. Comme prcdemment, B
accepte cette L PDU car, Vr = Ns, il incrmente Vr. Sur la figure 5.17, on suppose qu
cet instant, B a des donnes mettre, il rpond par une L PDU de rponse avec le bit
P/F = 1. Il met Ns = Vs = 0 et Nr = Vr = 2. Aprs cette transmission, B incrmente Vs ;
en recevant cette L PDU, A sait que ses L PDU 0 et 1 ont t correctement reues. Il
va dsarmer aussi le rveil TO, arm pour la premire mission. Ol libre les copies
des L PDU 0 et 1 conserves dans ses buffers.
Dans le rseau Transpac, un certain nombre de valeurs pour le temporisateur (TO)
sont dfinis en fonction du dbit de transmission des donnes. Au dbit correspond
bien sr une dure dmission. La figure 5.14. donne les valeurs de ce temporisateur.

216

Les rseaux

I,0,0
I,0,0

armer

RR,1

I,0,1

I,1,0

armer
I,0,0,P expiration
armer

RR,1

REJ,1,F

RR,2

dsarmer
I,1,2
I,0,1

dsarmer

Transfert dinformation

Reprise sur temporisateur

Notation adopte : I,Nr,Ns


Figure 5.15. Exemple dchanges dinformations quand les rveils sont arms

I,0,0
I,0,0
I,0,1

I,0,0
I,0,1
REJ,0

I,1,0,P
RR,1,F

I,0,0,P
I,1,1
RR,1,F

Reprise sur temporisateur

Rception dune trame


hors-squence.

Figure 5.16. Exemples de schmas dchanges ou diagrammes temporels

Contrle de flux 217

A
Vr
Temps

Vs

I Nr=0 Ns=0 P=0


I Nr=0 Ns=1 P=1
I Nr=2 Ns=0 F=1
I Nr=1 Ns=2 P=0
I Nr=1 Ns=3 P=0 erreur
I Nr=1 Ns=4 P=1
S = REJ Nr=3 F=1
I Nr=1 Ns=3 P=0
I Nr=1 Ns=4 P=1

I Nr=1 Ns=5 F=1


I Nr=5 Ns=1 P=0
I Nr=6 Ns=2 F=1

Vr

Vs

0
Trame 0 bien reue

Trame 1 bien reue


Rponse

Trame 2 bien reue


Trame 3 mal reue

Trame 4 bien reue


mais hors squence

Trame 3 bien reue

Trame 4 bien reue


Rponse de B

Donne vers A
6

Figure 5.17. Echanges de trames de donnes

Toujours sur la figure 5.17, tudions maintenant un cas derreur dtecte. A envoie
trois L PDU de numro de squence 2, 3 et 4. On suppose que la seconde trame (Ns=3)
arrive errone chez B et que la dernire trame (Ns=4) est une commande de polling.
Le rveil TO est arm sur la L PDU 2 uniquement. Vs crot jusqu 5.
Comme prcdemment, B reoit la L PDU 2 (Ns=2) et accepte celle-ci car Ns =
Vr. B ne reoit pas la L PDU 3 (Ns=3), mais reoit la L PDU 4 (Ns=4) et constate que

218

Les rseaux

Ns > Vr. La L PDU 4 est dite hors squence. Il ignore donc la partie SDU de cette
L PDU, cest--dire quil ne dlivre pas le L SDU 4, les donnes, lutilisateur. Par
contre, il reconnat dans la trame la source et la prsence du bit P. B va donc renvoyer
une L PDU de supervision de code REJ avec Nr = Vr. Le compteur Vs nest pas
incrment dans ce cas. La rception par A de cette trame de supervision lui permet
savoir quune L PDU hors squence est arrive lentit homologue et de reconnatre
que B attend toujours la L PDU 3. A remet son compteur Vs 3, libre le tampon de
la L PDU 2 qui est acquitte, dsarme le rveil TO et reprend la transmission des
L PDU 3 et 4.
Une L PDU information, mme avec le bit P/F 1, naurait pas eu un effet
similaire. En effet les L PDU peuvent se croiser et le fait que Nr ne soit pas gal Vs
ni signifie nullement quune perte eu lieu. Afin de mettre en lumire les phnomnes
dasynchronisme qui se produisent, la partie infrieure de la figure 5.17. montre un
exemple dchanges o les L PDU arrivent pendant une rception. On saperoit alors
que les compteurs Vs et Vr voluent de manire diffrente dans le temps en A et en B.
Il sagit, comme le lecteur peut le constater, dun protocole qui revient en arrire
pour retransmettre les N L PDU mises depuis la L PDU (incluse) : on dit quil est de
type Go Back N . Normalement, B ne doit envoyer quune seule L PDU REJ. Aprs
celle-ci, il ignore les L PDU hors squence, afin dviter les reprises de transmissions
multiples chez A. Nanmoins, un rveil de surveillance du rejet est arm pour
contrler que celui-ci ne sest pas perdu. Dans une telle hypothse, la L PDU REJ
pourrait tre retransmise N fois de manire similaire la procdure douverture de
connexion avant de dcider que la connexion est ferme. Nous ne traiterons pas tous
les cas de fautes et dasynchronismes possibles. La figure 5.19. dcrit le
fonctionnement de cet automate simplifi et son comportement dans les diffrentes
situations. Nous laissons au lecteur le soin de le dcouvrir, ou de se reporter la
description dtaille fournie soit par les STUR LAP B, soit par la norme IEEE802.2.
Le fonctionnement correct de ce protocole est bas sur une hypothse de flux
quilibr, cest--dire que les deux partenaires envoient des donnes (scnario de type
question-rponse typique des applications transactionnelles). Dans ce cas, si la
rponse vient rapidement, la donne permet dconomiser lacquittement. En
pratique, du fait des valeurs des timers (cf. figure 5.14.), il faut une raction trs
rapide. Si un ordinateur peut le faire, cest rarement le cas dun humain. La plupart du
temps, il faut envoyer une trame dacquittement RR pour viter que le rveil ne sonne
chez lmetteur. On rflchira ce problme dans lexemple propos par
lexercice 5.4.
5.2.6.2. Contrle de flux
Etudions maintenant la gestion du contrle de flux. La figure 5.17. montre un tel
cas et fait suite directement la figure 5.17. Aprs rception de la L PDU 6, B a utilis
tous ses tampons. Une cause possible est, par exemple, que lutilisateur de cette
connexion ne retire pas ses donnes. B ne peut recevoir les L PDU 7 et 0 du fait quil
na plus de tampons. Celles-ci sont donc perdues. B envoie une L PDU de supervision
RNR aprs la L PDU de numro de squence 0 venant de A (numrotation modulo 8

Contrle de flux 219

A
Vr
Temps

Vs

I Nr=3 Ns=6 P=0


I Nr=3 Ns=7 P=0
I Nr=3 Ns=0 P=1
S = RNR Nr=7 F=1

Vr

Vs

Trame 6 bien reue

B ne peut plus accepter


de donnes issues de A
0 et 1 sont perdues
Trame de polling bien
reue

Time Out
3

S=RR Nr=3 P=1


S = RR Nr=7 F=1

I Nr=3 Ns=7 P=0


I Nr=3 Ns=0 P=1
S =RR Nr=1 F=1

A interroge B
B est de nouveau prt
recevoir

Trame 7 bien reue

Trame 0 bien reue


Rponse de B, accus
de rception.
Donne vers A

Figure 5.18. Utilisation des L PDU Receveur non prt (RNR)


et Receiver Ready (RR) pour grer le contrle de flux

dans lexemple), car celle-ci a le bit P 1 et la rponse est donc imprative. B aurait
tout aussi bien pu envoyer son RNR sur la L PDU prcdente. Sur rception du RNR,
A comprend que B est bloqu. Cette L PDU a Nr = 7 : A remet donc son compteur Vs
7 mais ne reprend pas la transmission de nouvelles L PDU information.
Le dblocage de cette situation ne peut provenir que de B. Nanmoins A est
autoris envoyer des L PDU supervision RR avec le bit P 1 pour forcer B
rpondre, acquitter les L PDU quil a reues prcdemment et vrifier quil est
toujours en tat de fonctionnement. En effet, A ne peut rester ternellement
silencieux ; si B na aucune donne envoyer, il doit forcer B lui confirmer quil est

220

Les rseaux

toujours bloqu. Lorsque B a de nouveaux tampons, il envoie une L PDU de


supervision RR pour signaler quil est de nouveau prt accepter des L PDU
dinformation. Cette L PDU permet de dbloquer A, elle ne linforme nullement du
nombre de L PDU I quil est habilit mettre.
Cela signifie seulement que la fentre de rception est de nouveau ouverte sans
prcision du nombre de L PDU I qui peuvent tre envoyes. A va donc renvoyer ses
informations. Sur cet exemple, la L PDU I de numro 0 envoye par A oblige B
rpondre. B, nayant pas de donnes transmettre, le fait en envoyant une L PDU de
supervision RR qui acquitte les deux prcdentes donnes de A. Le mcanisme que
nous venons de dcrire permet dasservir le dbit dmission de lmetteur aux
capacits de rception du rcepteur. Ce mcanisme est appel contrle de flux.
Dans les exemples prcdents, nous avons toujours eu des donnes transmettre
soit de A vers B, soit de B vers A. Supposons maintenant que A envoie sa dernire
unit de donne vers B et que celle-ci ne soit pas reue correctement.
A pourrait attendre indfiniment lacquittement de celle-ci. Il faut un rveil pour
dbloquer cette situation. Lorsque le rveil TO sonne, A renvoie une L PDU
Information avec le bit P 1 vers B pour le forcer rpondre et arme un rveil
spcifique appel P Bit, Poll Bit, plus court que TO. On prend en compte ici le fait que
le correspondant est dans lobligation de rpondre. Si la sonnerie du rveil P-Bit
aucune rponse na t reue (L PDU donne, RR ou RNR), la L PDU Information de
commande est rmise. Le rveil P Bit est arm de nouveau. Ce processus est rpt
au maximum N fois1. Si au bout de N fois aucune rponse nest obtenue du
correspondant, la connexion est considre comme rompue et lutilisateur en est
inform.
5.2.6.3. Gestion des pertes
Nous avons vu que la rception dune L PDU hors squence permettait de dtecter
la perte dune prcdente L PDU et de reprendre la transmission des L PDU depuis
celle qui a t perdue. A lmission dune L PDU, un rveil TO est arm pour
surveiller la rception de lacquittement correspondant. Si ce rveil sonne, cette
L PDU est retransmise N fois avant de dcider de la rupture de la liaison. Afin de
rduire la dure de cette dtection, le bit P permet de forcer le correspondant
rpondre. Lorsquune L PDU avec le bit P est mise, un rveil spcifique plus court
que TO est arm. Nous ne traiterons pas ici dautres cas de fautes que ceux dj
voqus.
Il est extrmement complexe de prvoir tous les cas de figures derreurs possibles
dans un protocole. Il est gnralement recommand aux auteurs dimplantation dtre
extrmement prudents quant aux L PDU quils envoient et suspicieux lgard de tout
ce quils reoivent. Ils doivent en gnral prvoir de recevoir toutes les configurations
de L PDU dans les diffrents tats de leur automate. La norme dcrit sous forme
dautomate dtat fini le fonctionnement du protocole et dcrit les ractions que doit
avoir le rcepteur dune L PDU dans tel ou tel tat.
1. Typiquement N=3.

Contrle de flux 221

Nr Vs
Libre les tampons
Envoi RR, Nr
si bit P=1
RR,Nr

I,Nr,Ns
Ns=Vr
Connexion

DLDT.ind
Dsarme le Timer

Ns>Vr
REJ,Nr
Envoi REJ,Nr

Ns<Vr
Cas dun double

REJ,Nr
DATA.request
Vs = Nr
Emission I,Nr,Ns pour
toutes les trames en attente. Arme un Timer

Vs = Nr
Emission I,Nr,Ns
Arme un Timer

DLDT.ind indique la dlivrance dun SDU lutilisateur, ou pour le moins le dpt du SDU dans le
SAP de lutilisateur.

Figure 5.19. Partie de lautomate de LAP-B active pendant la phase de transfert de donne
dune connexion tablie. Le contrle de flux nest pas trait

5.2.6.4. Surveillance de la liaison


En labsence de donnes soumises par lutilisateur le protocole met
priodiquement des L PDU RR avec le bit P un. Lentit homologue rpond aussi
avec une L PDU RR. La priode de rptition est dfinie par le rveil TO (cf.
figure 5.14.).
Donc en labsence de trafic utilisateur la trace dune connexion lAP B tablie
montrera uniquement des L PDU RR.

222

Les rseaux

Vs-i Dernire L PDU non


acquitte

Anticipation
de F

Vs Numro prochaine
L PDU mettre

Vs-I Dernire L PDU non


acquitte

Anticipation
de F

VsNumro prochaine
L PDU mettre

Vs+F-i Valeur suprieure


de la fentre
Vs+F-I Valeur suprieure
de la fentre
a) Etat avant acquittement

b) Etat aprs rception dune trame


avec Nr= Vs-I (I>i)

Figure 5.20. Position de la fentre dans la numrotation des L PDU

5.2.6.5. Gestion de la fentre


La fentre danticipation indique lmetteur le nombre de L PDU I quil peut
envoyer avant dexiger un acquittement. A chaque L PDU I mise, il dcrmente sa
fentre locale. A rception dun ACK, il incrmente sa fentre locale du nombre de
L PDU acquittes. Ce mcanisme ne peut lui seul garantir le contrle de flux. En
effet, le rcepteur doit conserver les L SDU tant que lutilisateur ne les a pas
consommes. Il peut donc entrer dans des situations de manque de ressources. La
fentre locale glisse de chaque ct au rythme des L SDU soumises et acquittes pour
la source et chez le rcepteur des L SDU reues et consommes par lutilisateur. Il ny
a aucun mcanisme dans le protocole qui permette dchanger les valeurs locales.
La figure 5.20. montre une situation o lmetteur a dj mis i L PDU I non
acquittes. Il est prt mettre la L PDU I, Vs, il a encore la possibilit dmettre F-i
nouvelles L PDU avant dtre bloqu. Sur la rception dune L PDU avec Nr = Vs-I, il
fera avancer sa fentre de manire ce que la valeur suprieure soit gale Vs + F-I
(cf. figure 5.20. b).
Le lecteur remarquera que, lorsque F = 1, le protocole utilis nest autre que le
mcanisme Send and Wait dcrit prcdemment.
5.3. Conclusion
Le mcanisme de gestion du squencement et de dtection des pertes est utilis par
tous les protocoles fiables, cest--dire qui veulent garantir la correction des erreurs et
le squencement. LAP P est une implantation simple comprendre. Contrairement au
protocole arrt et attente vu au chapitre prcdent qui utilise un rveil pour dtecter les
pertes LAP B utilise un acquittement ngatif explicite (REJ). Il est trs important de

Contrle de flux 223

matriser ces mcanismes que lon retrouvera sous diverses formes dans dautres
protocoles [53], [54], [26], .

224

Les rseaux

You might also like