/
TCP CUBIC in ns-3 CS577 Brett TCP CUBIC in ns-3 CS577 Brett

TCP CUBIC in ns-3 CS577 Brett - PowerPoint Presentation

tatyana-admore
tatyana-admore . @tatyana-admore
Follow
403 views
Uploaded On 2018-02-13

TCP CUBIC in ns-3 CS577 Brett - PPT Presentation

Levasseur 12102013 Outline Introduction CUBIC CUBIC in Linux ns3 Implementation Results Conclusions 12102013 2 Introduction TCP grows cwnd too slowly for large bandwidth connections ID: 630924

2013 cubic tcp cwnd cubic 2013 cwnd tcp loss scaling implementation grows linux newreno clock growth time wmax simulation

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "TCP CUBIC in ns-3 CS577 Brett" 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 CUBIC in ns-3

CS577Brett Levasseur

12/10/2013Slide2

Outline

IntroductionCUBICCUBIC in Linuxns-3 Implementation

Results

Conclusions

12/10/2013

2Slide3

Introduction

TCP grows cwnd too slowly for large bandwidth connectionsNew TCP Variant needed

12/10/2013

3

1,250 byte packets

s

sthresh

~ 8000 bytes

100ms RTT

Almost 1.4 hours to take up ½ possible

cwndSlide4

CUBIC

BIC was first attemptCUBIC simplified and improved upon BICGrow cwnd

slower around loss events

12/10/2013

4Slide5

CUBIC Basics

cwnd growthPacket loss

12/10/2013

5

C

CUBIC

parameter

t

Elapsed time from

the last window reduction

K

Time period to increase

W to

Wmax

W

Current

cwnd

Wmax

cwnd

at last window reduction

β

Window

decrease constantSlide6

CUBIC Basics

12/10/2013

6

Wmax

W(t=0)

At loss event set

Wmax

, reduce

cwnd

by

β

and calculate KSlide7

CUBIC Basics

12/10/2013

7

K

W(t=1)

W(t=2)

cwnd

grows back to K when t = K

W(t=K)Slide8

CUBIC in Linux

Not implemented as in the CUBIC papercwnd grows in increments of segment sizesCustom method for calculating cube roots

Checks for error conditions

Unit scaling

12/10/2013

8Slide9

Growing cwnd

Linux only grows cwnd by full segments

CUBIC can grow

cwnd

less than full segment

Same impact by increasing amount of time between updates

12/10/2013

9

0

0

1

0.25

2

0.5

3

0.75

4

1

0

0

4

1Slide10

Scaling in CUBIC

Most scaling is related to timeVariable ‘t’ measured with TCP timestampsTimestamps use clock cycles to increment

Units are called jiffies in the Linux Kernel

Number of milliseconds in a jiffy depends on the CPU’s clock

Scaling required to get time units correct

12/10/2013

10Slide11

ns-3 Implementation

Object oriented designGeneric TCP definedTCP variants are extended from baseTCP headers and buffers

provided

Added

TcpCubic

objecttcp-cubic.cct

cp-cubic.h

12/10/2013

11Slide12

ns-3 Methods

NewAck – called for every new ACK receivedNormal cwnd

updates in slow start

CUBIC updates otherwise

DupAck

– called for every duplicate ACK receivedNormal operation when < 3 duplicates

For 3 duplicate ACKs reduce

cwnd

12/10/2013

12Slide13

CUBIC Methods

CubicRoot – Find the cubic root of a numberBased on Linux Kernel implementation

CubicUpdate

– Calculate the

cwnd

target for CUBICCubicTcpFriendliness – Change the cwnd

target for TCP Friendliness

CubicReset

– Reset CUBIC parameters

12/10/2013

13Slide14

CUBIC Flow

12/10/2013

14

NewAck

CubicRoot

CubicUpdate

CubicTcp

Friendliness

If outside slow start

Set K for loss event

Check TCP

Friendliness

Recommended

cwnd

growthSlide15

Issues

ns-3 does not have TCP timestampsSimulation clock used insteadRequires adjustments to calculating ‘t’ due to different units

Could remove the use of jiffy code but much of the Linux implementation relies on scaling factors based on the system clock

12/10/2013

15Slide16

Results

Compare to real world CUBIC exampleExamine simulation resultsVerify cwnd

reduction

Verify

cwnd

growth in relation to WmaxCompare simulated CUBIC to simulated

NewReno

12/10/2013

16Slide17

Simulation Scenario

Simple sender and sink topologyPacket sizes 536 bytesTransmission rate 1MbpsDelay 40ms

Error rate – Causes lost packets at the receiver

12/10/2013

17Slide18

Measurements

12/10/2013

18

Measurement and simulation have similar CUBIC curve

Number of segments similarSlide19

Packet Loss

Before loss cwnd = 216After loss

cwnd

= 172

β

= 819BICTCP_BETA_SCALE = 1024

12/10/2013

19Slide20

CUBIC Growth

12/10/2013

20

Before and after additional scaling of ‘t’

More work is needed for using simulator clock with ‘t’

concave

c

oncave &

convex

convexSlide21

NewReno Comparison

Same simulation run with CUBIC and NewReno

Both increment the same under slow start

CUBIC grows

cwnd

fasterCUBIC handles packet loss better than NewReno

12/10/2013

21Slide22

Conclusions

Created a CUBIC implementation in ns-3Similar cwnd growth to actual CUBIC measurements

Current version outperforms

NewReno

Scaling adjustments required

12/10/2013

22Slide23

Questions

12/10/2013

23