Allocation de Mmoire Buffering et Exemples de Session Interactive - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Allocation de Mmoire Buffering et Exemples de Session Interactive

Description:

Ajustement de l'Allocation du Buffer. metteur et r cepteur devraient tre capable d'ajuster leur buffer dynamiquement au changement du trafic du flux. ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 26
Provided by: djafer
Category:

less

Transcript and Presenter's Notes

Title: Allocation de Mmoire Buffering et Exemples de Session Interactive


1
Allocation de Mémoire Buffering et Exemples de
Session Interactive
  • Djafer Baddou

2
Rappel
  • Contrôle de flux cest des techniques qui assure
    que les trames envoyés ne surcharge pas la
    mémoire (buffer ) de la destination.
  • La destination réserve une partie de la mémoire
    de données.
  • Quand un trame arrive, la destination va mettre
    le trame dans la partie de mémoire réserve pour
    son processus avant de le passer a la couche
    supérieur.
  • Dans le cas de labsence du contrôle de flux, les
    buffers peuvent être remplis ce qui nous ramène a
    la congestion.
  • On a vu quil y a deux techniques de contrôle de
    flux qui sont
  • Arrêt et attend (stop-and-Wait).
  • Fenêtre de glissage (Sliding-Window).
  • Ces deux techniques dépendent de lallocation de
    mémoire, buffer,

3
Le Buffering
  • Buffer du cote du émetteur
  • Récepteur doit mettre une copie des trames
    transmis en mémoire ( buffer ) jusquà lenvoie
    dun reçu positif de la part de lémetteur. Ainsi
    dans le cas denvoie dun reçu négative ou de la
    fin de délai d'attente ( timeout ), le récepteur
    retrouve une copie de la trame a partir du
    buffer et la transmis.
  • Cest le cas dun réseau non fiable en
    particulier.
  • Buffer du cote du récepteur
  • Dans le cas dun réseau fiable, lémetteur peut
    ne pas avoir besoin du buffer. Mais le récepteur
    doit avoir un buffer pour mémoriser les trames
    pour processus. Lémetteur doit savoir si le
    récepteur a toujours de lespace dans le buffer
    pour plus de trames.

4
Le Buffering
  • Rappelons le mécanisme de demande de répétition
    automatique (ARQ)
  • Récepteur informe lémetteur sil ny pas
    despace dans le buffer.
  • Émetteur arrête la transmission des trames.
  • Récepteur informe lémetteur du trame endommage.
  • Émetteur doit retransmettre une copie du trame.

5
Ajustement de lAllocation du Buffer
  • Émetteur et récepteur devraient être capable
    dajuster leur buffer dynamiquement au changement
    du trafic du flux.
  • Émetteur devrait être capable de demander au
    récepteur de réserver une partie de lespace du
    buffer.
  • Récepteur peut informer lémetteur sur la
    quantité despace du buffer disponible.
  • Buffers peuvent être réservés pour chaque
    connexion séparément, ou pour toute communication
    entre deux nuds.

6
Numéro Séquentiel
  • Assure que tous les messages sont reçus une seule
    fois, et dans l'ordre, à la destination.

noeud 1
noeud 2
Seq.
Duplicata a ecarte
7
Gestion Dynamique du Buffer
  • Les numéros de séquence doivent occuper un espace
    dans le trame.
  • La taille de cet espace reliée au contrôle
    derreur.
  • Pour numéros de séquence de k bits despace.
  • Les numéros de séquence sont de modelo de 2k
    entre 0 et 2k 1. Après chaque cycle les
    numéros sont re-utilisés.
  • La taille maximale de fenêtre de trames est de 2k
    1 trames.

8
Gestion Dynamique du Buffer
  • Initialement, émetteur demande au récepteur un
    certain nombre de buffers pour lallocation des
    trames.
  • Récepteur répond en permettant un nombre de
    buffers ceci défini la taille de fenêtre pour
    lémetteur.
  • Chaque fois que lémetteur transmis un trame,
  • il incrémente le numéro de séquence et lui encode
    dans le trame suivant,
  • déclenche le timer, et.
  • décrémente son allocation du buffer.
  • si timeout arrive, trame sera déclare perdu et
    une copie devrait être retransmis.

9
Gestion Dynamique du Buffer
  • Si lallocation du buffer attribuée a lémetteur
    atteint le zéro, il doit arrêter la transmission
    des trames jusqua ce que le récepteur offrira
    plus dallocation de buffer.
  • Récepteur transmis un reçu dAck qui inclus
  • Les plus grand numéro séquentiel de consécutif
    trames qui ont réussi darriver saint et sauve.
  • Nombre de buffers disponible.

10
Gestion Dynamique du Buffer
  • Dans cet arrangement, le récepteur ne reconnaît
    (acknowledge ) pas des trames spécifiques
  • En particulier, si le récepteur reconnaît
    (acknowledge) le trame 5, et reçoit alors avec
    succès le trame 7, il ne peut pas accuser
    réception le trame 7 jusqu'à ce que le trame 6
    soit également arrivée. C'est le protocole
    dAller-En arrière-N ( Go-Back-N ).
  • Basé sur le numéro de reçu dack, lémetteur
    connaît combien de trames peuvent être effacées
    du buffer émetteur.
  • La figure 1 explique bien le processus de
    fenêtre de glissage et comment faisait la gestion
    dynamique du buffer.

11
Figure 1 Gestion Dynamique du Buffer
Trames memorise jusqua Ack
Emetteur
Trames deja transmis
Fenetre des trames pour possible transmission
0 1 2 3 4
5 6 7 ..
.. 0 1 2 3 4 5 6 7
Fenetre etendu de lavant pendant reception de
lAkg
Fenetre retrecie de larriere pendant la trasmis
des trames
Num. Seq. trame
Dernier trame Ack
Dernier trame transmi
Accepteur
Trames deja recevu
Fenetre des trames pour possible reception
0 1 2 3 4
5 6 7 ..
.. 0 1 2 3 4 5 6 7
Fenetre etendu de lavant pendant transmis de
lAkg
Fenetre retrecie de larriere pendant reception
des trames
Num. Seq. trame
Dernier trame Ack
Dernier trame recevu
12
Gestion Dynamique du Buffer
  • La figure 1 explique bien le processus de fenêtre
    de glissage.
  • Il assume l'utilisation des numéros séquentiel de
    3 bits, de sorte que des trames soient numérotées
    séquentiellement de 0 à 7, et alors les mêmes
    numéros soient réutilisés pour les trames
    suivantes.
  • Émetteur
  • Le rectangle gris indique les trames qui peuvent
    être envoyés commençant par le trame 0.
  • Chaque fois que un trame est envoyé, la fenêtre
    grise se rétrécit
  • chaque fois quun Ack. est reçue, la fenêtre
    grise sétendue.
  • Des trames entre la barre verticale et la fenêtre
    grise ont été envoyés mais reçu dack pas encore
    envoyer.
  • Dans ce cas, ces trames doivent rester en mémoire
    au cas où elles devraient être retransmis.

13
Gestion Dynamique du Buffer
  • Récepteur
  • Le rectangle gris indique les trames qui peuvent
    être acceptés commençant par le trame 0.
  • Chaque fois que un trame est accepté, la fenêtre
    grise se rétrécit
  • chaque fois quun Ack. est envoyé, la fenêtre
    grise sétendue.
  • Des trames entre la barre verticale et la fenêtre
    grise ont été acceptés mais reçu dack pas encore
    envoyé.
  • La taille de fenêtre n'a pas besoin d'être une
    taille maximum possible de numéro de séquence.
  • Par exemple, en utilisant un nombre d'ordre
    3-bit, une taille de fenêtre de 4 a peut être
    configurée en utilisant le protocole de fenêtre
    glissage.

14
Figure 2 Exemple de Protocole de Fenêtre de
Glissage
  • Émetteur A
    Récépteur B

0 1 2 3 4 5 6
T0
T1
T2
3 4 5 6
0 1 2
3 4 5 6
0 1 2
3 4 5 6 7 0 1
2 3 4 5 6 7
0 1 2
RR3
3 4 5 6 7 0 1
2 3 4 5 6 7
0 1 2
T3
4 5 6 7 0 1 2
0 1 2 3
T4
T5
2 3 4 5 6 7
7 0 1
T6
RR4
15
Gestion Dynamique du Buffer
  • La figure 2
  • Suppose l'utilisation des numéros séquentiel de
    3 bits.
  • Une taille maximum de fenêtre de sept trames.
  • Au début, A et B ont des fenêtres indiquant que A
    peut transmettre 7 trames, commençant par le
    trame 0 (T0).
  • Après la transmission de 3 trames (T0, T1, T2)
    sans reçu dAck., A a rétréci sa fenêtre à 4
    trames et maintient une copie des 3 trames
    transmises.
  • La fenêtre indique que A peut transmettre encore
    4 trames, commençant par le trame T3.

16
Gestion Dynamique du Buffer
  • B transmet alors un RR3 (Prêt a Recevoir )
  • Qui signifie que "j'ai reçu tous les trames
    jusquau trame 2 et je suis prêt à recevoir le
    trame 3 En fait, je suis préparé pour recevoir
    7 trames, commençant par le trame 3."
  • A permet la transmission de 7 trames, commençant
    par le trame T3 également A peut effacer de la
    mémoire les trames ayant reçu Ack.
  • A commence la transmission des trames 3,4,5, et
    6.
  • B renvoie RR4, qui reconnaît T3, et permet la
    transmission de T4 jusquau T2 du cycle suivant.
  • A a déjà transmis T4, T5, et T6 a peine ou avant
    même que RR4 arrive,
  • A peut seulement ouvrir sa fenêtre pour permettre
    lenvoi de 4 trames commençant par T7.

17
Algorithme de la Figure 2 Fenêtre de Glissage
  • A-gt req 0 (10 buffers) -gtB (A demande 10
    buffers pour 10 trames)
  • A lt- ack 0 (7 buffers)lt- B (acceptation de 7
    buffers, fenetre fixe a 7)
  • A -gt seq 0 data m0 -gt B (envoi de 1, reste 6
    à A)
  • A-gt seq 1 data m1 -gt B (envoi de 1, reste 5 à
    A)
  • A -gt seq 2 data m2 -gt B (envoi de 1, reste 4
    à A)
  • A lt- ack 3 (3 buffers) lt-B (ack de m2, accept.
    3 buf. de plus par B )
  • A -gt seq 3 data m3 -gt B (envoi de 1, reste 6
    à A, A efface 0,1,2)
  • A-gt seq 4 data m4 -gt B (envoi de 1, reste 5
    à A)
  • A-gt seq 5 data m5 -gt B (envoi de 1, reste 4
    à A)
  • A-gt seq 6 data m6 -gt B (envoi de 1, reste 3 à
    A)
  • A lt- ack 4 (0 buffers) lt-B (ack de m3 )
  • A -gt seq 0 data m0 -gt B (envoi de 1, reste 2
    à A , A efface 3)
  • A -gt seq 1 data m1 -gt B (envoi de 1, reste 1
    à A)
  • A-gt seq 2 data m2 -gt B (envoi du dernier)

18
Gestion Dynamique du Buffer
  • Le mécanisme au dessus décrit le contrôle de flux
    et gère lattribution dynamique des buffers.
  • Le protocole peut aussi permettre à une station
    darrêter le flux des trames envoyés par l'autre
    côté en envoyant un message non prêt de réception
    (RNR), qui ack les précédents trames mais
    interdisent toute future transmission des trames.
  • Par exemple RNR 5 signifie que "j'ai reçu toutes
    les trames jusquau numéro 4 mais je suis
    incapable d'accepter plus."
  • À un moment donné, la station doit envoyer un
    ack. normal pour ré-ouvrir la fenêtre.

19
Gestion Dynamique du Buffer
  • jusqu'ici, nous avons discuté la transmission
    dans une direction seulement.
  • Si deux stations échangent des données, chacune
    doit avoir deux fenêtres, une pour transmettre et
    une pour recevoir, et chaque côté doit envoyer
    les données et les Ack. a l'autre.
  • Une technique appelé ferroutage (piggybacking)
    supporte cette option. Comment?
  • Chaque trame de données inclut un espace qui
    tient le numéro séquentiel de la trame plus un
    espace qui tient un numéro séquentiel utilisé
    pour lAck.
  • Ainsi, si une station a des données à envoyer et
    un Ack à envoyer, elle envoie tous les deux
    ensemble dans le trame.

20
Gestion Dynamique du Buffer
  • Si la station a un reçu dAck mais pas de donnée
    à envoyer, elle envoie un trame dAck., Tel que
    le RR ou le RNR.
  • Si une station a des données à envoyer mais pas
    dAck, elle doit répéter le dernier numéro
    séquentiel utilisé pour lAck., qu'elle a envoyé.
    Parce que le trame de données inclut un espace
    pour le numéro dAck., Et une certaine valeur
    doit être mise dans ce espace.
  • Quand une station reçoit un duplicata dAck.,
    Elle l'ignore tout simplement.

21
Gestion Dynamique du Buffer
  • La fenêtre de glissage est potentiellement
    beaucoup plus efficace que la technique
    dArrêt-et-Attend.
  • La raison est que, avec la fenêtre de glissage ,
    le lien de transmission est traité comme une
    canalisation qui peut être remplie de trames en
    transit.
  • En revanche, avec la technique Arrêt-Et-Attend,
    seulement une trame à la fois peut être dans le
    lien.

22
Problème Éviter deadlocks
  • A-gt req 0 (8 buffers) -gtB (A demande 8
    buffers pour 8 trames)
  • A lt- ack 0 (4 buffers)lt- B (acceptation de 4
    buffers par B)
  • A -gt seq 0 data m1 -gt B (envoi de 1, reste 3
    à A)
  • A-gt seq 1 data m2 -gt B (envoi de 1, reste 2
    à A)
  • A -gt seq 2 data m3 -gt B (envoi de 1, reste 1
    à A)
  • A -gt seq 3 data m4 (perte de 1, mais A
    pense reste 0 à A)
  • A lt- ack 0 (3 buffers) lt-B (ack de m3, accept.
    de 3 buf. par B )
  • A -gt seq 0 data m5 -gt B (envoi de 1, reste
    1(2) à A)
  • A-gt seq 1 data m6 -gt B (envoi de 1, A doit
    arret env. nouveau tra )
  • A-gt seq 3 data m4 -gt B (A time out ack m4,
    re-envoi, reste 0 à A )
  • A lt- ack 0 (0 buffer) lt- B (tout ack mais A
    est bloqué, rapel A dem 8)
  • Alt- ack 0 (1 buffer) lt-B (A peut envoyer m7)
  • A lt- ack 0 (2 buffers) lt-B (B a trouvé de la
    place pour un en plus )
  • A-gt seq 1 data m7 -gt B (reste 1 à A)
  • A-gt seq 2 data m8 -gt B (reste 0 à A, bloqué)
  • ack 3 (4 buff) lt- B potential deadlock

23
Éviter le deadlocks
  • Les commandes des trames (ack/attributions des
    buffers) ne sont pas dans lordre, chronométrées
    (timeout), ou confirmées.
  • La ligne 16 dans lexemple au dessus montre que
    le deadlock est possibles si des attributions des
    buffers sont perdues.
  • Pour éviter ceci, les deux nuds devraient
    périodiquement envoyer des mises à jour de
    statut
  • Dans l'exemple précédent, B ne recevrait pas de
    nouveaux trames.
  • B doit envoyer le lt statut, ACK 6, buf 4 gt
    périodiquement.
  • Si tout va bien, un de ces messages passe, et A
    se remettra en marche.
  • A peut également envoyer le lt statut, ACK 6,
    buf 0 gt périodiquement tandis que bloqué. À la
    réception du message de statut contradictoire, B
    retransmettrait lt ACK 6, buf 4 gt.

24
Taille de Fenêtre et Numéro Séquentiel
  • Un nombre séquentiel composé de m bits permet n
    2m numéros de séquence.
  • Suppose on permet une fenêtre de taille n 1
  • exemple m 2, n 4, fenêtre 5.
  • Assurez-vous que la gamme de nombre séquentiel
    est beaucoup plus étendue que les tailles des
    fenêtres.
  • A-gt req 3 (5 buffers) -gtB (A demande 5
    buffers pour 5 trames)
  • A lt- ack 3 (5 buffers)lt- B (acceptation de 5
    buffers, fenetre fixe a 5)
  • A -gt seq 0 data m0 -gt (Message perdu)
  • A -gt seq 1 data m1 -gt (Message perdu)
  • A -gt seq 2 data m2 -gt (Message perdu)
  • A -gt seq 3 data m3 -gt (Message perdu)
  • A -gt seq 0 data m0 -gt B (A pense quil ne
    reste plus de buffer)
  • A lt- ack 0 trame 0 lt-B (quel
    trame ligne 3 ou 7 )

25
Problème a Éviter
  • Il est dangereux d'avoir deux trames qui sont
    transmis en même temps, et ayez le même numéro
    de séquence. Le récepteur supposera que le trame
    est duplicata, et donc le second sera jeté.

Emetteur
Temps
Seq.
000
003
Crash!
015
Write a Comment
User Comments (0)
About PowerShow.com