20.07.2014 Views

U.E. Architecture des Réseaux (ARES) 3/5 : Couche transport

U.E. Architecture des Réseaux (ARES) 3/5 : Couche transport

U.E. Architecture des Réseaux (ARES) 3/5 : Couche transport

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PTF v3.0<br />

Service de base<br />

Service fiable<br />

Contrôle de congestion<br />

Principes de transfert de données fiable<br />

TCP : un protocole en mode orienté connexion<br />

TCP : mécanismes de fiabilisation<br />

PTF v3.0 : émetteur<br />

Service de base<br />

Service fiable<br />

Contrôle de congestion<br />

Principes de transfert de données fiable<br />

TCP : un protocole en mode orienté connexion<br />

TCP : mécanismes de fiabilisation<br />

Transfert fiable sur un canal avec erreurs et pertes<br />

canal sous-jacent peut aussi perdre <strong>des</strong> paquets (data ou<br />

ACK)<br />

ctrlerr + numSeq + ACK + retransmission<br />

insuffisant : l’absence d’un paquet bloque l’automate !<br />

Temporisation <strong>des</strong> retransmission<br />

estimation d’un temps de retour de ACK raisonable<br />

déclenchement d’une temporisation à l’emission d’un paquet<br />

tempo init<br />

ACK avant l’expiration de la temporisation ➠ rien<br />

tempo stop<br />

pas de ACK à l’expiration de la temporisation<br />

➠ retransmission<br />

tempo expire<br />

si le ACK est seulement en retard...<br />

retransmission = duplication<br />

détectée grâce au numéro de séquence<br />

ptf_rcpt(pqtrc)<br />

ptf_rcpt(pqtrc)<br />

&& valide (pqtrc)<br />

&& estACK(pqtrc, 1)<br />

tempo_stop<br />

tempo_expire<br />

ptnf_emis(pqtem)<br />

tempo_init<br />

ptf_rcpt(pqtrc) &&<br />

(erreur(pqtrc) || estACK(pqtrc, 0))<br />

ptf_emis(data)<br />

pqtem=cree_pqt(0, data, ctrlerr)<br />

ptnf_emis(pqtem)<br />

tempo_init<br />

Attente<br />

Attente<br />

appel couche<br />

ACK 0<br />

supérieure<br />

Attente<br />

ACK 1<br />

Attente<br />

appel couche<br />

supérieure<br />

ptf_emis(data)<br />

pqtem=cree_pqt(1, data, ctrlerr)<br />

ptnf_emis(pqtem)<br />

tempo_init<br />

ptf_rcpt(pqtrc) &&<br />

(erreur(pqtrc) || estACK(pqtrc, 1))<br />

tempo_expire<br />

ptnf_emis(pqtem)<br />

tempo_init<br />

ptf_rcpt(pqtrc)<br />

&& valide (pqtrc)<br />

&& estACK(pqtrc, 0)<br />

tempo_stop<br />

ptf_rcpt(pqtrc)<br />

émetteur<br />

Olivier Fourmaux (olivier.fourmaux@upmc.fr)<br />

U.E. <strong>Architecture</strong> <strong>des</strong> Réseaux (<strong>ARES</strong>) 3/5 : <strong>Couche</strong> <strong>transport</strong><br />

Olivier Fourmaux (olivier.fourmaux@upmc.fr)<br />

U.E. <strong>Architecture</strong> <strong>des</strong> Réseaux (<strong>ARES</strong>) 3/5 : <strong>Couche</strong> <strong>transport</strong><br />

PTF v3.0 : sans perte<br />

Service de base<br />

Service fiable<br />

Contrôle de congestion<br />

Principes de transfert de données fiable<br />

TCP : un protocole en mode orienté connexion<br />

TCP : mécanismes de fiabilisation<br />

Service de base<br />

Service fiable<br />

Contrôle de congestion<br />

Principes de transfert de données fiable<br />

TCP : un protocole en mode orienté connexion<br />

TCP : mécanismes de fiabilisation<br />

PTF v3.0 : perte d’un paquet de données<br />

Emetteur<br />

envoi Data 0<br />

réception ACK 0<br />

envoi Data 1<br />

réception ACK 1<br />

envoi Data 0<br />

Data 0<br />

Data 1<br />

Data 0<br />

ACK 0<br />

ACK 1<br />

ACK 0<br />

Récepteur<br />

réception Data 0<br />

envoi ACK 0<br />

réception Data 1<br />

envoi ACK 1<br />

réception Data 0<br />

envoi ACK 0<br />

Emetteur<br />

envoi Data 0<br />

réception ACK 0<br />

envoi Data 1<br />

tempo_expire<br />

ré−envoi Data 1<br />

réception ACK 1<br />

envoi Data 0<br />

Data 0<br />

ACK 0<br />

Data 1<br />

Data 1<br />

ACK 1<br />

Data 0<br />

Récepteur<br />

réception Data 0<br />

envoi ACK 0<br />

réception Data 1<br />

envoi ACK 1<br />

Olivier Fourmaux (olivier.fourmaux@upmc.fr)<br />

U.E. <strong>Architecture</strong> <strong>des</strong> Réseaux (<strong>ARES</strong>) 3/5 : <strong>Couche</strong> <strong>transport</strong><br />

Olivier Fourmaux (olivier.fourmaux@upmc.fr)<br />

U.E. <strong>Architecture</strong> <strong>des</strong> Réseaux (<strong>ARES</strong>) 3/5 : <strong>Couche</strong> <strong>transport</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!