Document 17766285

advertisement
A Pragmatic Approach
towardsDCCP:
the Improvement
of Performance
of Ad Hoc Routing Protocols
Designing
Congestion Control
Without Reliability
Designing DCCP: Congestion Control
Without Reliability
Eddie Kohler
Mark Handley
UCLA
kohler@cs.ucla.edu
University College London
M.Handley@cs.ucl.ac.uk
Sally Floyd
ICSI Center for Internet Research
floyd@icir.org
Presented by:
Sudipto Das
Phd Student, CS@UCSB, sudipto@cs.ucsb.edu
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Presentation Outline

Introduction

Description
Design Specifications
Conclusion


CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Introduction




Fast-growing Internet applications like streaming media
and telephony prefer timeliness to reliability, making TCP
a poor fit.
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.
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Need for the New Protocol

Why not TCP
•
•


Applications share a preference for timeliness over
reliability
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.
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Options available


Below UDP: too low
Above UDP: implement Congestion Control at
application level




Lots of work, reinventing the wheel each time
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
Not general enough
Forces a reasonably fundamental change
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Presentation Outline

Introduction

Description

Design Specifications
Conclusion

CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Description
Goals of Design

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


should be robust against data injection, connection closure, and
denial-of-service attacks.
Led to the introduction of explicit connection setup and teardown
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Description
Goals of Design

Framework for modern congestion control



Self-sufficiency


should support all the features of modern TCP congestion control
provide a framework for implementing congestion control, not a
single fixed algorithm
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Description
Deliberate Omissions

Flow Control


Selective Reliability



Omitted to extend support for timing-reliability tradeoffs
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Presentation Outline

Introduction
Description

Design Specifications

Conclusion

CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications


DCCP is unicast, connection-oriented protocol with
bidirectional data flow
Connections start and end with three-way handshakes
DCCP Packet exchange overview
DCCP Packet Header
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications
Synchronization




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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications
Connection Management


Communication often asymmetric
DCCP logically divides each connection into halfconnections



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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications
Congestion Control



Provides applications a choice of
congestion control mechanisms
Choice made through Congestion Control
IDs (CCIDs)
A connection’s CCIDs are negotiated at
connection startup
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications
Congestion Control

TCP-like congestion control (CCID 2)




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.
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Design Specifications
Congestion Control

TFRC congestion control (CCID 3)





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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
Presentation Outline

Introduction
Description
Design Specifications

Conclusion


CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
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
CS595F (Fall 2006): Systems and Networking Seminar
Designing DCCP: Congestion Control Without Reliability
Jadavpur University
References

DCCP Homepage

Internet Drafts, mailing lists, presentations
www.icir.org/kohler/dccp/
DCCP implementations



FreeBSD kernel-level implementation (Oct 2003)


Linux kernel-level implementation (2002)


http://www.ducksong.com:81/dccp/
Linux user-level library (2002)


University of Luleå, Sweden, www.dccp.org
UC Berkeley, www.cs.berkeley.edu/~laik/projects/dccp/
Congestion Manager

http://nms.lcs.mit.edu/projects/cm/
CS595F (Fall 2006): Systems and Networking Seminar
A Pragmatic Approach
towardsDCCP:
the Improvement
of Performance
of Ad Hoc Routing Protocols
Designing
Congestion Control
Without Reliability
Questions?
Thank You
CS595F (Fall 2006): Systems and Networking Seminar
Download