Datagram Congestion Control Protocol CISC 856 TCP/IP and Upper Layer Protocols Presentation by:...

39
Datagram Congestion Control Protocol CISC 856 TCP/IP and Upper Layer Protocols Presentation by: Kireeti Valicherla 11/30/2004

Transcript of Datagram Congestion Control Protocol CISC 856 TCP/IP and Upper Layer Protocols Presentation by:...

Datagram Congestion Control Protocol

CISC 856TCP/IP and Upper Layer Protocols

Presentation by:Kireeti Valicherla

11/30/2004

2

SCTPDCCP

Figure 2-11 TCP/IP Protocol Suite, Behrouz A. Forouzan

DCCP: Which Layer?

3

Streaming Media

Source: http://streaming.wisconsin.edu/Accessible_Tutorials/Tutorial1/p1-3.htm•What streaming media needs?

•Timeliness of data.

•What streaming media doesn’t need?

•Retransmissions of lost packets.

4

D9-D12

D12-D16

A16

A12

D17-D19

A16

D17

ArbitraryDelay

Data is not useful

Streaming media with TCP

D20-D22

5

Streaming Media with UDP

No Congestion Control in UDP flows.

Harmful to internet health

6

Problems with UDP

From Network’s point of view: Congestion Unfairness

From the application’s point of view: Firewalls and NAT’s do not always pass UDP

traffic

7

Solution:

UDP with congestion control Handshaking during connection setup and

teardown

8

Questions?

9

DCCP : Overview

Connection setup & teardown: Reliable handshaking Unreliable packet flow Bi-directional Unicast connections Reliable feedback from receiver to sender Choice of congestion control Minimal overhead

10

DCCP Response

DCCP Request

DCCP ACK

Client Server

DCCP connection setup

DCCP A DCCP B

Similar to TCP

connection setup

11

DCCP Data transfer phase

Client Server

DCCP DATA

DCCP ACK

DCCP DATA ACK

DCCP DATA

12

DCCP connection termination

DCCP Close

DCCP Reset

Client Server

DCCP A DCCP B

DCCP CloseReq

13

DCCP Request

DCCP Response

DCCP ACK

Initiation

DCCP Data

DCCP ACK

DCCP DATA ACK

Data Transfer

DCCP CloseReq

DCCP Close

DCCP Reset

Termination

Client Server

Connection dynamics

echo those of TCP

14

DCCP Packet FormatsGeneric Header

Additional Fields (depending on type)

Options (optional )

Application Data Area

• DCCP header can be from 12 to 1020 bytes long

• Generic Header -> 12 bytes

• Additional Fields -> Fixed length field

• Options -> Variable length field

15

DCCP Generic Header

Source Port Destination Port

Data Offset CCVal CsCov Checksum

Res Type X

=

0

Sequence Number

16

DCCP Generic Header

Source Port Destination Port

Data Offset CCVal CsCov Checksum

Res Type X

=

1

Reserved Sequence Number (high bits)

Sequence Number (low bits)

17

Acknowledgement Sub-Header

Reserved Acknowledgement Number (high bits)

Acknowledgement Number (low bits)

Acknowledgement Number(low bits)

X =1

X =0

18

DCCP data transfer Example

Each packet carries a seq #

Seq # incremented per packet

Pure Acks also increment seq #

DCCP-DATA(seq # 1)

DCCP-DATA(seq # 2)

DCCP-ACK(seq # 10, ACK # 2)

DCCP-DATA ACK(seq # 3, ACK # 10)

DCCP-ACK(seq # 11, ACK # 3)

A B

19

DCCP data tranfer example

No Retransmissions Ack # = Greatest Seq # received

DCCP-DATA(seq # 1)

DCCP-DATA(seq # 2)

DCCP-ACK(seq # 10, ACK # 2)

A B

20

Questions ?

21

Features

Connection attribute on whose value two endpoints agree Examples

CCID ECN incapable Data checksum

DCCP features are identified by a feature number and an endpoint Notation “F/X” is used

22

F/X Notation

A B

Feature location for all F/A

Feature location for all F/B

Feature Remote for all F/B

Feature Remote for all F/A

23

Feature Negotiation

At the connection setup, and whenever either endpoint wants

Carried in a reliable way Endpoints send packets containing Change

options, until agreement is reached( and signalled by Confirm Option)

24

Feature Negotiation Example

Change R(CCID, 2)

Confirm L(CCID, 2)

Change R(CCID, 3 4)

Confirm L(CCID, 4, 4 2)

CCID/Server agreed as 2

CCID/Server agreed as 4

25

Feature Negotiation Example

Change R(CCID, 2)

Prefer L(CCID, 3)

Confirm R(CCID, 3)

CCID/Server agreed as 3

26

Feature Negotiation Example

Change R(CCID, 2)

Change R(CCID, 2)

Confirm L(CCID, 2)

CCID/Server agreed as 2

27

Questions?

28

Congestion Control Mechanisms in DCCP

TCP Like Congestion Control – CCID 2

TFRC Congestion Control – CCID 3

29

CCID2: TCP Like Congestion Control

AIMD behavior exhibited as in TCP/IP: Slow start Timeouts Congestion event -> Halve congestion window Abrupt rate changes

30

CCID 2: TCP-like Congestion Control

Applications using this: Respond quickly to changes in available

bandwidth. Must tolerate abrupt changes

Online Interactive Games prefer this kind of congestion control

31

CCID 3

TFRC, [RFC 3448] Equation-based congestion control Minimizes abrupt changes in sending rate Maintains longer-term fairness with TCP

Streaming Media doesn’t need responsiveness but prefer steadier less bursty traffic as provided by TFRC

32

TCP-Friendly Rate Control

The receiver measures the loss event rate and feeds this information back to the sender.

The sender also uses these feedback messages to measure the round-trip time (RTT).

The loss event rate and RTT are then fed into TFRC's throughput equation, giving the acceptable transmit rate.

The sender then adjusts its transmit rate to match the calculated rate.

33

The throughput equation

s

X = -------------------------------------------------------------------------------------

{R*sqrt(2*b*p/3) + (t_RTO * (3*sqrt(3*b*p/8) * p * (1+32*p^2)))}

Where: X is the transmit rate in bytes/second. s is the packet size in bytes. R is the round trip time in seconds. p is the loss event rate, between 0 and 1.0, of the number of loss

events as a fraction of the number of packets transmitted. t_RTO is the TCP retransmission timeout value in seconds. b is the number of packets acknowledged by a single TCP

acknowledgement.

34

Congestion related options

Slow receiver option Receiver sends this option to its sender to

indicate it is having trouble keeping up with the sender’s data

Data dropped option Option indicates that some packets reported as

received actually had their data dropped before it reached the application.

35

Explicit Congestion Notification

A network assisted congestion control method Uses two bits of IP header plus two bits in

transport level header: Sender sets an ECT bit in outgoing packets If a router is congested, it may set a CE bit in ECT

marked packets Receiver reports CE flagged packets as congestion

events The sender then reduces its sending rate

36

DCCP: Miscellaneous Features

Prevents DDoS attacks

Multihoming and Mobility

Path MTU discovery

37

DCCP and RTP

DCCP

Figure 28-8 TCP/IP Protocol Suite, Behrouz A. Forouzan

38

DCCP: Summary

Transport layer protocol Unreliable datagrams Bi-directional Congestion-controlled unicast

39

References Datagram Congestion Control Protocol (DCCP)

Eddie Kohler, Mark Handley, and Sally Floyd[Nov 2004] http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-09.txt

DCCP OverviewEddie Kohler and Sally Floyd http://www.icir.org/kohler/dcp/summary.pdf

DCCP

Eddie Kohler, Mark Handley, Sally Floyd, Jitendra Padhyehttp://www.icir.org/kohler/dcp/