21
X E LaTEX 1 1 TCP Martin Heusse

TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

X ELaTEX 1 1

TCP

Martin Heusse

Page 2: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 2 2

Points abordés

• Contrôle de congestion

✓ Le but : équité max min

✓ Slow start ; Congestion avoidance ; fast recovery

✓ Facteurs limitants du débit TCP

• Temporisateur de retransmission RTO (calculé en fonction du RTT)

Page 3: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 3 3

Équité max min

11

0,2

0,2

0,8

• Obtenu par adaptation AIMD (Additive Increase Multiplicative Decrease)

Page 4: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 4 4

Rappels : variables de contrôle d’unedemi-connexion

• Fenêtre glissante : plus grand numéro de séquence émis, plus grandnuméro de séquence acquitté.

• Fenêtre de congestion cwnd (toujours plus grande que 1 MSS, plus petitque 64k)

• Threshold ssthresh (passage de slow start à évitement decongestion)(maintenu toujours plus grand que 2 MSS)

• Champs WIN (tampon disponible au récepteur)

• RTO

• État : slow start ; congestion avoidance ; fast recovery

Page 5: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 5 5

TCP/UDP

Page 6: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 6 6

TCP (Reno) : modes de fonctionnement

49

Récupération (fast recovery)

! Après une temporisation, on entre dans la phase dedémarrage

– inefficace si les pertes sont isolées

– log n RTT, n = twnd/MSS, pour atteindre twnd

! Si une perte détectée par la retransmission rapide (fast

retransmit) (trois ACKs dupliqués)

– une phase de récupération (fast recovery)

» on garde le niveau élevé de twnd

» chaque ACK reçu est interprété comme un signalpositif - augmentation exponentielle

50

Trois phases

Démarrage

augmentation exp. de cwndjusqu'à cwnd = twnd

Évitement

augmentation add. de twndcwnd = twnd

Tempo

cwnd = twnd

Tempo

Ouverture de connexion :twnd = 64Kocwnd =1 seg

Récupération

augmentation exp. de cwndaudéla de twnd

Retransmissionrapide

Retransmissionrapide

Tempo ACK reçu

diminution mul. de twnd

Page 7: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 7 7

Slow start

• Initialisation : ssthresh=65535 ; cwnd=MSS

• Réception ACK : cwnd+=MSS

• Temporisation : ssthresh=cwnd/2 ; cwnd=MSS

1 2 3 4 5 6 7 8cwnd :

1 123

23

4

5

Page 8: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 8 8

Congestion avoidance

• État atteint quand cwnd a dépassé ssthresh

• À chaque RTT :

✓ cwnd += MSS ; ssthresh=cwnd

✓ Mise en œuvre :  à chaque réception d’un acquittement on met à jour lafenêtre de congestion

cwnd← cwnd +MSS× MSS

cwnd

(On reçoit cwnd/MSS ACKs par RTT)

• Temporisation : retour en slow startssthresh=cwnd/2 ; cwnd=MSS

Page 9: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 9 9

Fast recovery (à partir de TCP Reno)

∗ Un récepteur ré-acquitte le dernier segment reçu en cas de rupture deséquence

• Fast retransmit : après 3 acquittements dupliqués (4 ACK identiques), onconsidère qu’un paquet a été perdu (RFC 2581)(3, pour ne pas réagir à un déséquencement bénin).Il est renvoyé immédiatement

→ Ré-émission avant expiration du timer

✓ Pas de slow start : le réseau a transporté des paquets après la perte,donc ça n’est pas bien grave. . .

• ssthresh=W/2 ; cwnd=W/2+3 * MSS(W : nombre courant de paquets non acquittés)(3 ack dupliqués reçus : 3 paquets sont sortis du réseau)

• Pour chaque ACK dupliqué, cwnd+=MSS

• Réception d’un ACK non dupliqué : cwnd=ssthresh(RFC 2581 : This is termed ”deflating” the window.)

Page 10: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 10 10

Fast recovery (à partir de TCP Reno) (suite)

S1S2 S3 S4 S5

A1

S6

Fast retransmit

S2 S84 5

5/2+33 5,5 6,5

S72,5

A6

A1 A1 A1 A1 A6 A7

cwnd : 2,5+xS9

Page 11: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 11 11

Fast recovery (à partir de TCP Reno) (suite)

Fast recovery

Slow start

Page 12: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 12 12

New Reno (RFC 2582)

• Pb avec Fast recovery de Reno : En cas de pertes multiples, le «gonflage»de la fenêtre après la détection de la 2e perte peut être insuffisant pourtransmettre de nouvelles données→ on attend le temporisateur sansplus rien transmettre… La solution, c’est new Reno

• En cas d’acquittement partiel, cwnd=cwnd-3MSS+MSSPas de division par deux decwnd ; ssthresh = W/2Retransmission du paquet réclamé. (il a été perdu…)

→ Récupération de plus d’un paquet

→ On sort de la récupération d’erreur quand on reçoit l’acquittement dudernier paquet émis au moment de la détection de la perte.

• On repart avec cwnd = min(ssthresh, W + MSS)

Page 13: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 13 13

Quelques exemples

• Topologie :

 

Ligne SLIP

Ethernet

• Ethernet 100baseTX full duplex  Ligne série à 115200 baud

• Debit UDP max : 88.3 kb/s ;MTU : 552 octets

Page 14: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 14 14

Exemple 1 — Fast recovery, New Reno

0 50 100 150 200

010

000

2000

030

000

Temps (s)

Oct

ets

non

acqu

ittés

Attention, le slow start est ici interrompu à un niveau enregistré d’une connexion précédente. Le RTT est nul, quelle est la taille du tampon

du routeur ? ?

Page 15: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 15 15

Exemple 2 — Slow start, Fast Recovery

0 20 40 60 80 100

020

000

4000

060

000

Temps (s)

Oct

ets

non

acqu

ittés

Page 16: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 16 16

Exemple — Fast Recovery (trace 1)

Page 17: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 17 17

Exemple — Fin de slow start (trace 2)

W1

Sortie fast recovery

fast retransmit

W1/4(2 congestions)

fast retransmit acquittementpartiel

Sortie fast recoveryW2= 0

cwnd < ssthresh⇒ slow start

Fast recovery Fast recoverycongestion avoidance

slow startslow start

congestion avoidanceÉtat

À

la réception d’un acquittement partiel, on retransmet le segment réclamé par le nouvel ACK.

Page 18: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 18 18

Acquittements sélectifs (1996—RFC 2018)

• SACK-permitted : Option dans le SYN

• SACK : indique à l’émetteur les plages de numéros de séquences bienreçues

Page 19: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 19 19

Temporisateur de retransmission RTO

• Calculé en fonction du RTT

✓ Trop court : réémission du segment avant que l’ACK puisse revenir

✓ Trop long : perte de performance

• Mesure du RTT (t)

✓ Ne peut pas se faire pour des paquets retransmis (auquel correspondl’ACK ?)

✓ Option timestamp : écrit par émetteur, recopié par récepteur

• À chaque nouvelle mesure t :Erreur : δ ← t̂− tEstimation du RTT : t̂← (1− α)̂t + αtv̂← (1− β)̂v + βδ�� ��RTO← max(̂t + 4̂v, 1s)

(α = 1/8 ;β = 1/4)(la valeur minimale est de 200ms pour linux,windows…)

• À chaque retransmission, RTO est doublé

Page 20: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 20 20

Qu’est ce qui limite le débit TCP (D) ?

1. Limitation par le goulot d’étranglement

D ≤ minl∈chemin

(Dl)

2. Limitation par la fenêtre du récepteur

D ≤ WIN

RTT

3. Interaction RTT↔ pertes (p)

D ≤ ζMSS

RTT√

p

Page 21: TCP - imaglig-membres.imag.fr/heusse/RICM4/TCPS2.pdf · TCPavancé 3 3 Équité max min 1 1 0,2 0,2 0,8 • Obtenu par adaptation AIMD(Additive Increase Multiplicative Decrease)

TCP avancé 21 21

TCP : réglages

• Configuration système/socket : reno/newreno ; SACK ; acquittementretardé ; Nagle

• Taille du tampon de réception

• Vegas : réduction de la fenêtre de congestion avant même qu’une perteadvienne (quand le RTT augmente)

✓ FreeBSD : TCP bandwidth delay product window limiting