Valutazione del TCP con NS2 Gaia Maselli maselli@di.uniroma1.it
Esempio di simulazione example2.tcl UDP con CBR Lunghezza della coda = 10 UDP con CBR Cosa succede se il traffico tra il nodo 0 e 3 è di tipo TCP? Page 2
Articoli di riferimento K. Fall, S. Floyd, Simulation-based comparisons of Tahoe, Reno and SACK TCP, in SIGCOMM Comput. Commun. Rev. 26, 3 (Jul. 1996), 5-21. G. Holland, N. Vaidya, Analysis of TCP performance over mobile ad hoc networks, in Wireless Networks 8, pp. 275-288, 2002, Kluwer. A. Al Hanbali, E. Altman, P. Nain, A survey of TCP over Ad Hoc Networks, IEEE Communications Surveys & Tutorials, Vol.7 No.3, P. 22-36, Aug. 2005. Haejung Lim; Kaixin Xu; Gerla, M., TCP performance over multipath routing in mobile ad hoc networks, in IEEE International Conference on Communications, 2003. ICC '03. Volume 2, 11-15 May 2003 Page(s):1064-1068 vol.2 Page 3
Window based flow control Protocollo basato su sliding window L ampiezza della finestra è data dal valore minimo tra receiver s advertised window determinata dal receiver in base allo spazio disponibile nel buffer congestion window determinata dal sender, in base al feedback dalla rete Sender s window 1 2 3 4 5 6 7 8 9 10 11 12 13 Acks received Not transmitted Page 4
Window based flow control TCP window flow control è selfclocking Nuovi dati vengono inviati quando quelli inviati sono stati ricevuti (ack) Sender s window 1 2 3 4 5 6 7 8 9 10 11 12 13 Ack 5 Mantiene equilibrio 1 2 3 4 5 6 7 8 9 10 11 12 13 Sender s window Page 5
Meccanismi del TCP Slow start Congestion avoidance Fast retransmit Fast recovery Page 6
Slow start Sorgente Destinazione CongestionWindow = 1 CongestionWindow = 2 Dati ACK CongestionWindow = 4 CongestionWindow = 8 CongestionWindow = CongestionWindow +1 All arrivo di ogni ACK Page 7
Congestion avoidance CongestionWindow = 1 ADDITIVE INCREASE Sorgente Destinazione CongestionWindow = 2 Dati ACK CongestionWindow = 3 CongestionWindow = 4 Incremento lineare Page 8
Slow start + Congestion Avoidance Congestion Window size (segmenti) 14 12 10 8 6 4 2 0 Slow start Congestion avoidance Slow start threshold 0 1 2 3 4 5 6 7 8 Tempo Page 9
Congestion control - timeout Congestion Window Timeout Additive increase multiplicative decrease threshold = max (CW/2, 2) CW = 1 slow start fino alla threshold Additive Increase Slow Start CongestionThreshold Tempo CongestionThreshold = Max(CongestionWindow/2,2) Page 10
Fast retransmit (ack duplicati) Sorgente Pacchetto 1 Pacchetto 2 Pacchetto 3 Pacchetto 4 Pacchetto 5 Pacchetto 6 Destinazione ACK 1 ACK 2 ACK 2 ACK 2 ACK 2 3 ACK Duplicati Ritrasmissione Pacchetto 3 ACK 6 ACK Cumulativo Fast retransmit non aspetta lo scadere del timeout Attivo quando la sorgente riceve multipli (>= 3) ack duplicati (prima del timeout) Page 11
Timeout VS Fast retransmit Differente dal timeout : slow start segue timeout timeout -> pacchetti non arrivano più a destinazione fast retransmit -> un pacchetto viene perso, ma i successivi arrivano a destinazione Non c è necessità di eseguire slow start, perchè si è persa una piccola quantità di pacchetti Fast retransmit in genere è seguita dalla fase di Fast recovery Page 12
Andamento temporale della CW Slow Start, Additive Increase, Fast Retransmit In caso di perdita di un segmento ssthresh=max(cwnd/2,2) CW = 1 Page 13
Fast Recovery ssthresh = cwnd/2 cwnd = ssthresh + number of dupacks Ritrasmette il pacchetto perso (fast retransmit) e attende l ack Quando riceve un nuovo ack (non di un pacchetto ritrasmesso) : cwnd = ssthreh esegue congestion avoidance Congestion window dimezzata Page 14
Fast recovery Congestion Window tempo Stato di Congestione Leggera: la rete è congestionata, ma alcuni pacchetti arrivano a destinazione. Con 3 DUPACK viene rilevata la perdita del pacchetto, si effettua il Fast Retransmit e si entra nella fase di Fast Recovery. Page 15
Esempio: scenario simulato 2 nodi, una connessione TCP 0 -> 1, perdita dei pacchetti randomica (packet error rate = 1%) 1 Mbps FTP Page 16
TCP Tahoe SS + CA + fast rtx 30 25 tahoe cw tahoe th AI 20 CW 15 SS 10 5 perdita 0 0 5 10 15 20 CW=1 Time (sec) Page 17
TCP Reno SS + CA + fast rtx + fast recovery 30 25 reno cw reno th timeout AI 20 CW 15 SS 10 5 0 0 5 10 15 20 Time (sec) Page 18
TCP in ambiente wireless ad hoc TCP esegue controllo della congestione in caso di perdita di pacchetti Nelle reti wireless i pacchetti possono andare persi anche a causa di Errori nei link (es. multipath fading) Mobilità -> interruzione delle rotte Queste perdite vengono erroneamente interpretate come effetti della congestione Packet s timeout (or DupACKS) riduzione della congestion window Molte soluzioni ai problemi di performance delle reti ad hoc si basano sull utilizzo rotte multiple (multipah routing) per aggirare eventuali percorsi interrotti, nodi sovraccarichi, link inefficienti, etc. Multipath drawbacks n+1 Stima inaccurata del RTT Frequenti ACK duplicati S D Ack: n-1 n Il protocollo di MAC limita l utilizzo della capacità della rete, riducendo le performance del trasferimento dei dati Page 19
Effetto di 802.11 sul throughput TCP* 2 non può trx e rcv contemporaneamente 3 può interferire con 2 (hidden terminal) *[Holland, Vaidya] TCP-Reno throughput over an 802.11 fixed, linear, multi-hop network of varying length (in hops). Page 20
Routing multipath 5 0 4 8 9 6 3 10 2 1 7 -- NODE 0 Routing Table at time t ---------------------------------------------- R_dest=1 R_next=1 R_dist=1 R_dest=3 R_next=3 R_dist=1 R_dest=5 R_next=5 R_dist=1 R_dest=6 R_next=5 R_dist=2 R_dest=6 R_next=3 R_dist=2 R_dest=8 R_next=5 R_dist=2 R_dest=8 R_next=3 R_dist=2 R_dest=10 R_next=3 R_dist=2 R_dest=10 R_next=1 R_dist=2 R_dest=2 R_next=1 R_dist=2 OLSR R_dest=7 R_next=1 R_dist=3 routing R_dest=7 R_next=3 R_dist=3 R_dest=7 R_next=5 R_dist=3 protocol R_dest=9 R_next=1 R_dist=3 R_dest=9 R_next=3 R_dist=3 R_dest=9 R_next=5 R_dist=3 R_dest=2 R_next=3 R_dist=3 R_dest=4 R_next=3 R_dist=3 R_dest=4 R_next=5 R_dist=3 R_dest=10 R_next=5 R_dist=3 R_dest=2 R_next=5 R_dist=4 R_dest=4 R_next=1 R_dist=4 R_dest=6 R_next=1 R_dist=4 R_dest=8 R_next=1 R_dist=4 ------- end routing table ------- Page 21
Effetto del routing multipath 350 300 TCP throughput (kbps) 250 200 150 100 Throughput: quantità di dati correttamente ricevuti dalla destinazione nell unità di tempo 50 0 100 200 300 400 500 600 Time (s) load-balancing single path Load-balancing: usa rotte multiple verso la destinazione contemporaneamente + La probabilità che non ci sia una rotta tra sender e receiver è minima - La stima del RTT può non essere accurata - Pacchetti disordinati alla destinazione Page 22
Effetto della mobilità* Incrementando la velocità dei nodi le rotte si interrompono più facilmente, causando perdita di pacchetti, e necessità di ristabilirne di nuove (route discovery), con conseguente overhead e ritardo *[Holland, Vaidya] Page 23
Alcune soluzioni Feedback esplicito TCP Feedback (TCP-F) Explicit Link Failure Notification (ELFN) Il sender viene informato della route failure in modo che non attivi il controllo della congestione Host unreachable (ICMP), or route failure (routing) Congestion control viene disabilitato fino al ristabilimento della rotta Le variabili del TCP vengono congelate Messaggi di probe Page 24