Authors Siddharth Fangadhar Truc Anh N Nguyenm Greeshma Umapathi and James PG Sterbenz CS577 Brett Levasseur 1012013 1 Outline Introduction TCP Variations ID: 696266
Download Presentation The PPT/PDF document "TCP Westwood( ) Protocol Implementation ..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
TCP Westwood(+) Protocol Implementation in ns-3
Authors: Siddharth Fangadhar, Truc Anh N. Nguyenm Greeshma Umapathi, and James P.G. SterbenzCS577Brett Levasseur
10/1/2013
1Slide2
Outline
IntroductionTCP Variationsns-3 TCP Implementationns-3 Westwood ImplementationEvaluationConclusionsRemarksQuestions10/1/20132Slide3
Introduction
ns-3 is a packet network simulatorSuccessor to ns-2Improved design, better wireless supportUsed by researchers around the worldHas TCP implementationLacks modern TCP variantsTahoe, Reno, NewRenoAuthors present Westwood(+) for ns-310/1/2013
3Slide4
TCP Tahoe
Termscwnd: Congestion Windowssthresh: Slow Start ThresholdTCP StatesSlow-start: cwnd exponential increaseCongestion Avoidance: cwnd linear increaseFast Retransmit: Half ssthresh, reset cwnd to 1Timeouts and duplicate ACKs (DUPACK) considered congestion
10/1/2013
4Slide5
TCP Tahoe
10/1/20135
Slow start
Congestion avoidance
ssthresh
Timeout or 3 DUPACKSlide6
TCP Reno
Tahoe vs RenoTahoe: 3 DUPACKs move to fast retransmitReno: 3 DUPACKs half ssthresh and cwnd, move to fast recoveryFast RecoveryRetransmit missing packetWait for ACK before congestion avoidance10/1/2013
6Slide7
TCP Reno
10/1/20137Slow start
Congestion avoidance
ssthresh
Timeout or 3 DUPACKSlide8
TCP NewReno
Adds partial and full ACKsPartial ACK remain in fast recoveryFull ACK continues congestion avoidance10/1/20138
Transmission Window
1
2
3
4
5
6
7
8
9
Partial ACK = 4, 6, 8
Full ACK = 9Slide9
TCP Packet Corruption
Lost packets considered congestionWireless has bursty errorsHigh wireless bit error rate confused as congestionTCP lowers cwnd needlessly10/1/20139
Wireless lossSlide10
TCP Westwood
Made for wireless networksEstimates bandwidthSet cwnd based on estimateSet ssthresh based on estimateRate of ACK and DUPACK arrivals used10/1/201310
BWE
ˆb
BWA
b
Weight
a = 0.9
Time
kSlide11
TCP Westwood+
ACK compression hurts Westwood estimationWestwood+ compensatesSamples every RTT instead of every ACK10/1/201311
ACK
ACK
Data
Data
Data
ACK
ACK
ACK
ACK
Flow 1
Flow 2Slide12
TCP in ns-3
Object oriented designGeneric TCP definedTCP variants are extended from baseTCP headers and buffers provided10/1/201312
ContributionSlide13
Global Variables
10/1/201313m_cWndCongestion window
m_ssThreshSlow start threshold
m_initialCWnd
Initial
value of
m_cWnd
m_inFastRec
Fast recovery flag
m_prevAckNo
Last received ACK
m_accountedFor
Track number of DUPACKs during loss
m_lastAck
Arrival time of previous ACK
m_currentBW
Current bandwidth estimate
m_minRTT
Minimum round trip time
m_lastBW
Last
bandwidth estimate
m_lastSampleBW
Total measured
bandwidth
m_ackedSegments
Total
ACKed
segments for current RTT
m_IsCount
Flag to count for
m_ackedSegments
m_bwEstimateEvent
Bandwidth sampling eventSlide14
Execution
ACK arrives at senderACKs countedBandwidth is estimatedImmediate in WestwoodAfter RTT timeout in +Optional use of Tustin filter (user choice)Off: Measured BWOn: Estimate BW10/1/201314Slide15
Count ACK
Need total number of bytes sentCount TCP segments receivedcumul_ack = Current ACK number – m_prevAckNo10/1/201315
ACK = 10
m_prevAckNo
= 6
cumul_ack
= 10 - 6
4 Packets receivedSlide16
Count ACK
Take DUPACKs into accountIf cumul_ack = 0 then current ACK is a duplicateElse check m_accountedFor for number of DUPACKs10/1/201316
ACK = 6
m_prevAckNo
= 6
cumul_ack
= 6 - 6
DUPACK
ACK = 9
m_prevAckNo
= 6
cumul_ack
= 9
- 6
m_accountedFor
= 1
ACKed
3 > 1 DUPACK
3 – 1 = 2 received
ACK = 7
m_prevAckNo
= 6
cumul_ack
=
7
- 6
m_accountedFor
= 2
ACKed
1 < 2 DUPACK
cumul_ack
= 1Slide17
Estimate Bandwidth
WestwoodWestwood+10/1/201317
Bytes since last ACK
Time since last ACK
Last known RTTSlide18
Tustin Filtering
Off – Measure bandwidth assumed currentOn – Estimate current bandwidth10/1/201318
w1
w2Slide19
Tustin Filtering
10/1/201319
w1
w2
(
alpha *
m_lastBW
)
+
((1 - alpha) * ((
sample_bwe
+
m_lastSampleBW
) / 2))
;
w1
w2
From ns-3 source code (version 3.18):
Source code and Westwood equation use addition
Equation 4 uses multiplication so probably a typo
?Slide20
Westwood Cont
For new ACK adjust variables same as RenoAfter receiving set number of DUPACKsAdjust slow start thresholdIf retransmit timeoutAdjust slow start threshold the same as previousCwnd set to one TCP segment size10/1/2013
20
If
m_cWnd
>
m_ssThresh
Then
m_cWnd
=
m_ssThreshSlide21
Westwood Evaluation
Simulate original TCP Westwood study10/1/201321
Wireless LinkSlide22
Packet Error Rate
10/1/201322
Westwood samples bandwidth on every ACK
Westwood+ samples every RTT
Westwood+ takes longer to stabilize
As error rate increases Westwood+ performs worseSlide23
Packet Error Rate
10/1/201323
n
s-3 Simulation
Westwood Paper
Authors claim this is validation of their workSlide24
Bottleneck Delay
10/1/201324PER = 0.005Westwood(+) attempt to fill the pipeOther variants conservativeSlide25
Bottleneck Delay
10/1/201325
n
s-3 Simulation
Westwood Paper
TCP Reno appears to behave differently in ns-3
vs
ns-2Slide26
Bottleneck Bandwidth
10/1/201326PER = 0.005Delay = 0.01msWestwood(+) attempt to fill the pipe
Other variants conservativeSlide27
Bottleneck Bandwidth
10/1/201327ns-3 SimulationWestwood PaperSlide28
Delayed ACK
10/1/201328
Delayed ACK Timeout = 200msSlide29
MTU Size
10/1/201329Slide30
Cwnd Size
10/1/201330PER = 0.005Samples every 3secSlide31
Westwood+ Evaluation
Simulation designed to create ACK compression10/1/201331Slide32
ACK Compression
10/1/201332
Westwood overestimates bandwidthSlide33
Conclusions
Created Westwood(+) for ns-3Validated similar to original Westwood workWestwood+ better when ACK compression presentWorking on TCP SACK and Vegas implementations10/1/201333Slide34
Remarks
Inconsistency in Reno implementationTests did not emphasize Westwood+ strengths Comparison to original Westwood work is not as conclusive as author’s suggestTypo in the Westwood equation10/1/201334Slide35
Questions
10/1/201335Slide36
References
S. Gangadhar, T. Nguyen, G. Umapathi, and J. Sterbenz. TCP Westwood(+) protocol implementation in ns-3. In ICST 2013, pages 167-175. S. Mascolo, C. Casetti, M. Gerla, M. Sanadidi, and R. Wang. TCP
westwood: Bandwidth estimation for enhanced transport over wireless links. In
MOBICOM 2001
, pages 287–297
.
10/1/2013
36