Designing DCCP: Congestion Control Without Reliability

Click here to load reader

download Designing DCCP: Congestion Control Without Reliability

of 23

  • date post

    19-Mar-2016
  • Category

    Documents

  • view

    27
  • download

    2

Embed Size (px)

description

Designing DCCP: Congestion Control Without Reliability. Eddie Kohler Mark Handley Sally Floyd UCLA University College London ICSI Center for Internet Research - PowerPoint PPT Presentation

Transcript of Designing DCCP: Congestion Control Without Reliability

Slide 1A Pragmatic Approach towards the Improvement of Performance of Ad Hoc Routing Protocols
Designing DCCP: Congestion Control Without Reliability
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Eddie Kohler Mark Handley Sally Floyd
UCLA University College London ICSI Center for Internet Research
[email protected] [email protected] [email protected]
CS595F (Fall 2006): Systems and Networking Seminar
Presentation Outline
CS595F (Fall 2006): Systems and Networking Seminar
Introduction
UDP, the natural alternative, lacks congestion control.
Especially a problem with long-lived flows and lots of traffic (streaming video, audio, internet telephony)
Goal is to ease the safe deployment of these applications
- designing a congestion-controlled unreliable transport protocol.
The outcome, the Datagram Congestion Control Protocol or DCCP, adds to a UDP-like foundation the minimum mechanisms necessary to support congestion control.
The resulting protocol sheds light on how congestion control interacts with unreliable transport, how modern network constraints impact protocol design, and how TCP’s reliable byte stream semantics intertwine with its other mechanisms, including congestion control.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Need for the New Protocol
Why not TCP
TCP’s Reliable byte stream can introduce arbitrary delays
Applications do not want to implement TCP-friendly congestion control
Modular congestion control framework makes it easier to develop new applications.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Options available
Congestion Control is complex, might not be done correctly
New protocol more interoperable than a user-level library
Modify TCP, UDP, RTP, SCTP
Makes these protocols complex
Also Above UDP:
App has too much control (misbehave to get better bandwidth)
Overhead in swapping to/from kernel
Both above and below don’t fix middle box issues. A new proto could.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Presentation Outline
CS595F (Fall 2006): Systems and Networking Seminar
Description
Minimalism (both in functionality and mechanism)
should not provide functionality that can successfully be layered above it by the application or an intermediate library
also helps achieve a secondary goal, namely minimal (or at least small) header size
Robustness
Led to the introduction of explicit connection setup and teardown
Robustness does not, however, require cryptographic guarantees; as in TCP, we considered it sufficient to protect against third-party attacks where the attacker cannot guess valid connection sequence numbers
Middlebox robustness and transparency led us to introduce explicit connection setup and teardown, which ease the implementation burden on firewalls and NATs, and required the disciplined separation of network-level information from transport information.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Description
should support all the features of modern TCP congestion control
provide a framework for implementing congestion control, not a single fixed algorithm
Self-sufficiency
implementations should be able to manage congestion control without application aid
Support timing-reliability tradeoff
should support not only naive applications, but also advanced applications that want fine-grained control over buffers and other tradeoffs between timing and reliability
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Description
Selective Reliability
Retransmissions may sometimes be useful, but left out as they can be easily layered above DCCP
Streams
Multicast
DCCP mechanisms do not apply naturally to multicast
SCTP provides applications with a stream abstraction: sub-connection flows with independent sequence spaces. The benefit is that head-of-line blocking between streams is eliminated. For an unreliable protocol, though, there is no blocking problem, as neither reliable nor in-order delivery is guaranteed. It is trivial to layer streams over DCCP where they are required.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Presentation Outline
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Connections start and end with three-way handshakes
DCCP Packet exchange overview
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Sequence Numbers
DCCP’s core connection management features all depend on sequence numbers
Included to detect loss without application support
Every packet occupies sequence space and uses mew sequence numbers
Ack no corresponds to the latest packet received, rather than the earliest not received
DCCP’s congestion control methods are modularly separated from its core, allowing each application to choose a method it prefers. The core itself is largely focused on connection management—setup, teardown, synchronization, feature negotiation, and so forth.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
In case of network outages, DCCP supports explicit synchronizations
On receipt of unexpected seqno/ackno, endpoint send Sync pkt asking partner to validate seqno
Other endpoint replies with SynAck
Unique packets used to help mutually unsynchronized endpoints to synchronize
Synchronization
DCCP’s congestion control methods are modularly separated from its core, allowing each application to choose a method it prefers. The core itself is largely focused on connection management—setup, teardown, synchronization, feature negotiation, and so forth.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Connection Management
DCCP logically divides each connection into half-connections
Consist of data packets from one endpoint plus corresponding acks from the other
Helps spend less resources in the inactive direction
Inbuilt mechanism for reliably negotiating the values of features
feature is simply a per endpoint property on whose value both endpoints agree
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Congestion Control
Choice made through Congestion Control IDs (CCIDs)
A connection’s CCIDs are negotiated at connection startup
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Congestion Control
Acks use the Ack Vector option (similar to TCP SACK)
Congestion control algorithm follows SACK TCP: maintains variable cwnd, ssthresh, and estimate of the number of data packets outstanding
Maintains a feature called Ack Ratio to detect and act on reverse path congestion
Used to control the rough ratio of data packets per acknowledgement.
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Congestion Control
Uses a sending rate instead of congestion window
Receiver sends feedback to the sender reporting loss event rate
Sender uses information to determine sending rate
In case of no feedback for several RTTs, the sender halves its rate
As acknowledgments are limited, no need for ack congestion control
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Misbehaving Receivers
DCCP Applications tolerate loss to some degree
Deliberate misbehavior like – acking data before it has arrived, must therefore be detected and dealt with
Sender provides an unpredictable nonce and receiver echoes them in the relevant acknowledgement
An endpoint detecting misbehaving partner should slow down its send rate in response
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Design Specifications
Partial Checksums & Non-congestion Loss
Several target applications like corrupted data to lost data (like audio and video applications)
DCCP allows checksums to cover less than the entire datagram (Checksum Coverage (CsCov))
Restricted checksum coverage prompts underlying layers to forward corrupt datagrams – provided corruption is in the unprotected area
To differentiate Congestion loss from Corruption loss, DCCP allows receivers to report corruption separately
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
Presentation Outline
CS595F (Fall 2006): Systems and Networking Seminar
Conclusion
DCCP – a relatively simple protocol that robustly manages congestion controlled connections without reliability.
Modular congestion control mechanism – makes it possible to adapt congestion control within a fixed protocol framework
Robustness against attack addressed in a more thorough way
Jadavpur University
CS595F (Fall 2006): Systems and Networking Seminar
References
Linux kernel-level implementation (2002)
Designing DCCP: Congestion Control Without Reliability
CS595F (Fall 2006): Systems and Networking Seminar
Questions?