Datagram Congestion Control Protocol (DCCP)

Similar documents
Datagram Congestion Control Protocol (DCCP) Spec Walkthrough

Congestion Control. Lecture 12: TCP Friendliness, DCCP, NATs, and STUN. Chiu Jain Phase Plots. Fair A=B. Responding to Loss. Flow B rate (bps) t 1 t 3

Lecture 10: TCP Friendliness, DCCP, NATs, and STUN

Lecture 12: TCP Friendliness, DCCP, NATs, and STUN

T Computer Networks II. Transport Issues Contents. TCP and UDP. Congestion Prevention. Motivation for Congestion Control

Network Working Group Request for Comments: 4342 Category: Standards Track UCLA J. Padhye Microsoft Research March 2006

Stream Control Transmission Protocol

Chapter 24. Transport-Layer Protocols

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

Lecture 4: Congestion Control

CSCI-131 Networking: the End-to-End Layer. Rodrigo Fonseca March 12 th, 2013

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Does current Internet Transport work over Wireless? Reviewing the status of IETF work in this area

Outline. History Introduction Packets Association/ Termination Data Transmission concepts Multihoming Streams

An SCTP-Protocol Data Unit with several chunks

UNIT IV -- TRANSPORT LAYER

DCCP (Datagram Congestion Control Protocol)

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

TCP/IP Protocol Suite 1

SCTP: A new networking protocol for super-computing. Mohammed Atiquzzaman Shaojian Fu Department of Computer Science University of Oklahoma.

The Transmission Control Protocol (TCP)

ITS323: Introduction to Data Communications

A Survey of Recent Developments of TCP. Sally Floyd ACIRI (AT&T Center for Internet Research at ICSI) October 17, 2001

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Designing a Resource Pooling Transport Protocol

TCP so far Computer Networking Outline. How Was TCP Able to Evolve

On Inter-layer Assumptions

Introduction to TCP/IP networking

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

ARP, IP, TCP, UDP. CS 166: Introduction to Computer Systems Security 4/7/18 ARP, IP, TCP, UDP 1

ECE697AA Lecture 3. Today s lecture

Reliable Transport I: Concepts and TCP Protocol

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Protocols. ISO Defined Types of Network Service: rate and acceptable rate of signaled failures.

Chapter 7. The Transport Layer

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

The Present and Future of Congestion Control. Mark Handley

Chapter 5 End-to-End Protocols

CSCI-GA Operating Systems. Networking. Hubertus Franke

Computer Networks and Data Systems

Network Layer (1) Networked Systems 3 Lecture 8

Transport of (Legacy) Signaling over IP. Summary of course scope

NWEN 243. Networked Applications. Layer 4 TCP and UDP

COMP/ELEC 429/556 Introduction to Computer Networks

Unit 2.

ETSF10 Internet Protocols Transport Layer Protocols

CS UDP: User Datagram Protocol, Other Transports, Sockets. congestion worse);

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)

Networked Systems and Services, Fall 2018 Chapter 3

Networked Systems and Services, Fall 2017 Reliability with TCP

Designing DCCP: Congestion Control Without Reliability

Computer Networks. Wenzhong Li. Nanjing University

CSE 461 Module 10. Introduction to the Transport Layer

Stream Control Transmission Protocol - Wikipedia, the free encyclopedia

OSI Transport Layer. objectives

EEC-682/782 Computer Networks I

Transport protocols. Transport Layer 3-1

User Datagram Protocol (UDP):

Video Streaming with the Stream Control Transmission Protocol (SCTP)

Lecture 2: Layering & End-to-End

Transport layer issues

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651

Different Layers Lecture 20

Transport Layer Marcos Vieira

Page 1. Goals for Today" Discussion" Example: Reliable File Transfer" CS162 Operating Systems and Systems Programming Lecture 11

User Datagram Protocol

Advanced Computer Networking. CYBR 230 Jeff Shafer University of the Pacific QUIC

Reliable Transport I: Concepts and TCP Protocol

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Structured Streams: A New Transport Abstraction

Process-to-Process Delivery:

Computer Networks. Sándor Laki ELTE-Ericsson Communication Networks Laboratory

ECE 435 Network Engineering Lecture 10

Lecture 3: The Transport Layer: UDP and TCP

Master Course Computer Networks IN2097

Transport Protocols. Raj Jain. Washington University in St. Louis

TCP over wireless links

Internet Technology. Internet Transport Tomorrow

TSIN02 - Internetworking

Mobile Transport Layer Lesson 10 Timeout Freezing, Selective Retransmission, Transaction Oriented TCP and Explicit Notification Methods

TCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture

INF5071 Performance in Distributed Systems Protocols

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

CC-SCTP: Chunk Checksum of SCTP for Enhancement of Throughput in Wireless Network Environments

Reliability and Availability in Stream Control Transport Protocol (SCTP)

Design and Implementation of SCTP-aware DTLS

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Designing DCCP: Congestion Control Without Reliability

Two approaches to Flow Control. Cranking up to speed. Sliding windows in action

UNIT IV TRANSPORT LAYER

Advanced Communication Networks

TSIN02 - Internetworking

CMPE 80N: Introduction to Networking and the Internet

Transcription:

Datagram Congestion Control Protocol (DCCP) Chung, Kwangsue kchung@kw.ac.kr June, 2003 1

Contents Introduction & Motivation DCCP Mechanisms Current Issues & Implementations 2

DCCP: Introduction & Motivation 3

Introduction TCP-like congestion control isn t appropriate for all applications A large increase in application using UDP that have been reluctant to use congestion control Congestion control is important functioning of the Internet An alternative UDP or An unreliable alternative TCP is required Provide a simple minimal congestion control protocol DCCP 4

Motivation A steady growth of applications that generate long-lived flows of UDP datagrams Internet telephony, streaming video and on-line games Preference for timeliness over reliability TCP can introduce arbitrary delay because of its reliability and in-order delivery requirements Thus, these applications use non-congestion-controlled UDP instead This lack of congestion control poses a threat to the network New transport protocol that combines unreliable datagram delivery with built-in congestion control is needed 5

Motivation : Application requirements Choice of congestion control mechanism TCP-like congestion control, TFRC Low per-packet overhead To achieve low delay and quick response time ECN support This is particularly desirable for applications with tight timing constraints 6

Motivation : Design alternatives Congestion control above UDP Implementing congestion control onto applications It s hard to implement / Bad interoperability Congestion control below UDP This approach can t access multiple congestion control There is still complexity up to the application (because of feedback control) Congestion control at transport layer Modify TCP : changing semantics? serious confusion at firewalls and monitoring system Unreliable SCTP : SCTP is hardly minimal, and doesn t allow congestion control negotiation 7

DCCP: Mechanisms 8

Main features Congestion control ID (CCID) Negotiation of congestion control algorithm Half-connection : Two CCIDs per connection Low overhead as possible DCCP is intended to be used by applications that currently use UDP without E2E congestion control Scope : IP/DCCP/RTP 9

Packet format Generic packet header 0 15 31 Source Port Destination Port Type CCval Sequence Number Data offset #NDP CSLen - CCval : sending CCID information - Data offset : padding - #NDP : Number of Non-Data Packets - CSLen : checksum length - Checksum Checksum 10

Packet types 16 types are possible (4bit) Currently 9 types are used DCCP-Request DCCP-Response DCCP-Data DCCP-Ack DCCP-DataAck : piggybacking DCCP-CloseReq DCCP-Close DCCP-Reset DCCP-move : for mobility, multihoming 11

Half-connection Half-connection form A to B Half-connection form B to A Full DCCP session with Bidirectional data Two logical half connection in a single connection Feature negotiation for the two half-connection is completely independent, and may happen simultaneously For example, the two-half connection use different congestion control mechanisms 12

CCID Congestion Control Identifier (0 ~ 255) During connection setup, and optionally thereafter, endpoints negotiate congestion control mechanisms CCIDs are defined as yet, CCID Meaning 0 Reserved 1 Unspecified Sender-Based congestion control 2 TCP-like congestion control (AIMD) 3 TFRC congestion control (TCP-SACK) 13

CCID2 : TCP-like DCCP s TCP-like congestion control framework differs from that of TCP Sender s congestion window is still used But, it can not use a cumulative acknowledgement field to control this Other mechanism If packets are lost, the sender halves it s sending rate appropriately For reliable transmission, using an Ack Vector and acks-ofacks DCCP can detect reverse-path congestion using per-packet sequence numbers, and respond to it appropriate 14

CCID3 : TFRC Instead of a congestion window, a CCID3 sender uses a sending rate Receiver sends feedback to the sender roughly once per round-trip-time reporting the loss event rate calculated by the receiver The sender uses the reported loss event rate to determine its sending rate T R 2 t (3 32 p 2 RTO bp 3 s 3bp ) p(1 8 ) 15

CCID negotiation A B B A : Change (1, 2, 3) Asks the sender to use CCID 1, although CCIDs 2 and 3 are also acceptable. A B : Confirm (1, 2, 3) The sender is using CCID 1, but that CCIDs 2 or 3 might also be acceptable A B : Prefer (2, 3) CCID 1 is not acceptable, but, It would prefer CCID 2 or 3 Renegotiation 16

17 DCCP state diagram

Connection overview Two ends, (potentially) two-way data transfer Explicit connection setup and teardown Request / Response, CloseReq / Reset Data transfer and most feature negotiation use Data and DataAck Data = data only DataAck = data + Ack 18

Acknowledgements DataAck acks the largest received sequence number, Not the most recent sequence number Ack Vector option: Provides detailed loss information Which packets were received? ECN marked? TFRC options: loss event rate 19

Example of DCCP-connection (1/3) A B 0: Request, Ask(CCID 2) B A 100: Response[0], Answer(CCID 2), Ask(CCID 0) A B 1: DataAck[100], Answer(CCID 0) B A 101: Data, [media data] B A 102: Data, [media data] A B 2: DataAck[102], Ack Vector( 102 101) 20

Example of DCCP-connection (2/3) B A 103: Data, [media data] B A 104: Data, [media data] * LOST * B A 105: Data, [media data] B A 106: DataAck[2], [media data] A B 3: DataAck[103], Ack Vector( 103 102 101) A B 4: DataAck[106], Ack Vector( 106 105 X104 103) 21

Example of DCCP-connection (3/3) B A 107: DataAck[4], [media data] B A 108: Data, [media data] A B 5: DataAck[108], Ack Vector( 108 107)... B A 200: CloseReq[80] A B 81: Close[200] B A 201: Reset[81] 22

Explicit congestion notification DCCP is fully ECN-aware. Each CCID specifies how its endpoints respond to ECN marks ECN capable feature To inform its partner that it cannot read ECN bits from received IP headers, so the partner must not set ECN-Capable Transport on its packets. ECN capable 1 / ECN capable 0 New connection start with ECN capable 1 23

Multihoming and mobility DCCP provides primitive support for multihoming and mechanism Transferring a connection endpoint from one address to another When the moving endpoint gets a new address, it sends a DCCP-Move packet from that address to the stationary endpoint Then, the stationary endpoint changes its connection state to use the new address Mobility capable feature To inform its partner that it would like to be able to change its address and/or port during the course of the connection Mobility Capable 0 / Mobility Capable 1 24

DCCP: Current Issues /Implementations 25

RTP-over-DCCP RTP-over-DCCP vs. RTP-over-UDP Potential sources of overhead in the RTP-over-DCCP Duplicated acknowledgement/sequence number with RTP Using DCCP s Ack Vector & sequence number DCCP s Sequence number-#ndp = Sequence number of RTP 4bytes per packet are added relative to RTP-over-UDP (when CCID3, TFRC) RTP-over-DCCP have small overhead However, more research is needed about RTP optimization 26

Partial checksums Based on UDP-lite Purposes To support applications that can deal with corrupt data Avoid congestion response to corruption Suggestion Complete checksum : CSLen = 1, DCCP packets + IP header Partial checksum : CSLen=0, DCCP/IP header, but not payload Link-corrupt bit pass up to application Link Layer interactions Link layer checksums are stronger than IP checksum Unless link layer will support partial checksum? Device driver modification 27

Guarding against misbehavior Misbehaving-receiver attacks Greedy endpoint tries to get more than its fair share of network bandwidth Hijacking attacks A man in middle takes over a connection Denial-of-service (DoS) attacks Malicious or broken partner sends useless messages that take up CPU or memory resources Several issues were more difficult than in TCP because of DCCP s unreliability Nevertheless, DCCP seems at least as protected against misbehavior as TCP 28

Implementations Prototype implementations Patrick McManus's Linux 2.4.18 kernel DCCP (http://www.ducksong.com:81/dccp/) A user-level DCCP from Berkeley (http://www.cs.berkeley.edu/~laik/projects/dccp/) Present works ICIR Sun RealNetworks Deval Mehta Vladimir Moltchanov, Nokia 29

Testing for friendliness Measured friendliness of DCCP with CCID3 with respect to increasing TCP connections 1 DCCP 1 TCP Exhibits relatively fair rate changes with respect to background flows 1 DCCP 3 TCP 30

References DCCP homepage http://www.icir.org/kohler/dcp/ IETF DCCP working group http://www.ietf.cnri.reston.va.us/html.charters/dc cp-charter.html DCCP mailing list page http://www1.ietf.org/mailman/listinfo/dccp 31