Presentation is loading. Please wait.

Presentation is loading. Please wait.

IETF87 Berlin DCTCP implementation in FreeBSD

Similar presentations


Presentation on theme: "IETF87 Berlin DCTCP implementation in FreeBSD"— Presentation transcript:

1 IETF87 Berlin DCTCP implementation in FreeBSD
Midori Kato Richard Scheffenegger Lars Eggert Alexander Zimmermann Keio logcwndを下げないことで、delayの収束時間およびcwndの収束時間が遅くなる。

2 DCTCP (Data Center TCP) overview
Problem statement Large FIFO buffers in the presence of bulk transfers impacts latency-sensitive flows DCTCP Maintain the queue size short using ECN (Explicit Congestion Notification) Endpoint-only mechanism Switches/routers’ mechanism is same as standard ECN There are two kinds of flows.. Without DCTCP With DCTCP throughput-sensitive flows High throughput High throughput Short delay Long delay latency-sensitive flows ECN threshold

3 DCTCP algorithm Sender side Receiver side
Maintain the fraction of ECN marked seg. for each RTT and update average fraction of marked seg. ( ) Adopt alpha to cwnd decrease Mark ECE only when CE packet is received send immediate ACK when CE state is changed (regardless of delayed ACK) F = \frac{\mathrm{\#\ of\ marked\ ACKs}}{\mathrm{\#\ of\ ACKs}} \alpha \leftarrow (1 - g)\ \alpha + g F \mathrm{cwnd} \leftarrow (1 - \frac{\alpha}{2} )\mathrm{\ cwnd} wo Delayed ACK w Delayed ACK S R S R Immediate ACK ** reaction to packet loss (e.g., dup ack and timeout) is same with NewReno CE (Congestion Experience) ECE (ECN Echo)

4 FreeBSD implementation status [1/2]
Total # of lines: 479 lines tcp_input.c (24 lines), tcp_output.c (12 lines), cc.h (4 lines), cc_dctcp.c (439 lines) Add ECN handling functions to CC module Add DCTCP as one of CC algorithms References for FreeBSD DCTCP Released Linux patch [1] DCTCP paper “Data Center TCP (DCTCP) [SIGCOMM’10]” Tcp_input: 24 lines Tcp_output: 12 lines cc.h: 4 lines Cc_dctcp: 439 lines [1]

5 FreeBSD implementation status [2/2]
Design issues Cwnd behavior on first ECN Halve or Ignore cwnd Reconsideration of alpha update interval every RTT or more frequent (e.g., every ack) Alpha value handling after idle time Discard or keep alpha Alpha calculation affected by receive buffer control Change nothing or handle alpha as special case Topic in this talk In progress

6 Open issue: cwnd behavior on first ECN
Option 1: DCTCP never reduces cwnd at first congestion recovery Option 2: halves cwnd at first congestion recovery 0.5 [KBytes] Linux DCTCP Linux DCTCP [ms] 150 100 50 40 20 Benefit: Delay converges quickly Font size Time = zero Reaction to the first congestion event ----- 会議メモ (7/24/13 11:31) ----- srtt chart should add queueing delay and rtt line FreeBSD DCTCP 150 100 50 FreeBSD DCTCP 40 20 Time[s] Time[s]

7 Performance with small queue size
Experiment - Measure transfer time for X MB and SRTT (Smoothed RTT) using flowgrind sender receiver dummynet BW: 2Mbps, delay: 20ms qlen: 7, ecn_thresh: 5 Transfer time Xaxis -> logscale ----- 会議メモ (7/24/13 11:31) ----- dummynet tune bw and buffer size newreno -> sack tcp color red - oragange green -> dctcp

8 Performance with large queue size
Experiment - Measure transfer time for X MB and SRTT (Smoothed RTT) using flowgrind sender receiver dummynet BW: 2Mbps, delay: 20ms qlen: 30, ecn_thresh: 10 Why dctcp delay is bigger than sack tcp/our dctcp is because sigcomm dctcp never halves window size, delay is on the way of window shrinking

9 Summary Introduce DCTCP implementation in FreeBSD and design issues
Plan to submit our code to FreeBSD Future work Interaction with RFC3168 CUBIC and DCTCP Change architecture for coexist of DCTCP and other CC algorithms ----- 会議メモ (7/24/13 11:31) ----- switch arch ->

10 Performance evaluation
Experiment - Measure transfer time for X KB and SRTT (Smoothed RTT) using flowgrind sender receiver dummynet BW: 2Mbps, delay: 20ms qlen: 14, ecn_thresh: 10 Transfer time Xaxis -> logscale ----- 会議メモ (7/24/13 11:31) ----- dummynet tune bw and buffer size newreno -> sack tcp color red - oragange green -> dctcp

11 Microscope view of Sack TCP with ECN

12 Microscope view of Linux DCTCP

13 Microscope view of FreeBSD DCTCP

14 TCP(RFC3168) and DCTCP Question TCP (RFC 3168) DCTCP sender
When is cwnd reduced? Reduce cwnd to half as soon as it receives ECE seg. Reduce cwnd using the proportion of marked bytes When CWR is marked? Only when the host receives CWR When the host reduces cwnd Receiver (wo Delayed ACK) When is ECE marked? Keep sending segment with ECE until the host receives CWR Send a segment with ECE only when the packet is marked CE (*) Receiver (w Delayed ACK) (*) + Send immediate ack when CE state has changed


Download ppt "IETF87 Berlin DCTCP implementation in FreeBSD"

Similar presentations


Ads by Google