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