/
TCP Westwood( ) Protocol Implementation in ns-3 TCP Westwood( ) Protocol Implementation in ns-3

TCP Westwood( ) Protocol Implementation in ns-3 - PowerPoint Presentation

natalia-silvester
natalia-silvester . @natalia-silvester
Follow
345 views
Uploaded On 2018-10-25

TCP Westwood( ) Protocol Implementation in ns-3 - PPT Presentation

Authors Siddharth Fangadhar Truc Anh N Nguyenm Greeshma Umapathi and James PG Sterbenz CS577 Brett Levasseur 1012013 1 Outline Introduction TCP Variations ID: 696266

westwood ack bandwidth tcp ack westwood tcp bandwidth cwnd dupack 2013 ssthresh start congestion wireless cumul current rtt estimate

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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