12.07.2015 Views

DCCP: Transport Protocol with Congestion Control and Unreliability

DCCP: Transport Protocol with Congestion Control and Unreliability

DCCP: Transport Protocol with Congestion Control and Unreliability

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

St<strong>and</strong>ardsClientServerClientServerOPENOPENOPENOPENCLOSING<strong>DCCP</strong>-Close<strong>DCCP</strong>-CloseReqCLOSEREQ<strong>DCCP</strong>-ResetCLOSEDLISTENCLOSING<strong>DCCP</strong>-CloseTIMEWAIT(2MSL)<strong>DCCP</strong>-ResetCLOSEDLISTENCLOSEDTimeTIMEWAIT(2MSL)(a)(b)CLOSEDTimeFigure 4. Datagram <strong>Congestion</strong> <strong>Control</strong> <strong>Protocol</strong> connection termination. <strong>DCCP</strong> uses two- or three-way h<strong>and</strong>shakes toterminate a connection.mechanism they want to use viafeature negotiation options. <strong>DCCP</strong>currently has two defined congestion-controlmechanisms, as mentioned— CCID 2 <strong>and</strong> CCID 3. CCID2 offers TCP-like congestion control,which is suited to bursty packetflows, whereas CCID 3 offers TFRCcongestion control, which is suited tosmooth packet flows.CCID 2. CCID 2 uses the additiveincrease/multiplicative decrease(AIMD) congestion-control mechanismwhereby the sender adopts acongestion window to control thetransmission rate. The sender adjuststhe window’s value accordingto the information embedded in theacknowledgments. CCID 2 uses threemain integer variables: cwnd (congestionwindow), the maximum allowableamount of outst<strong>and</strong>ing packets;ssthresh (slow-start threshold), athreshold of the congestion windowthat separates slow start from congestionavoidance; <strong>and</strong> pipe, thenumber of estimated outst<strong>and</strong>ingpackets. These three variables arealmost the same as the variables inSelective Acknowledgement (SACK)TCP, 5 apart from the fact that <strong>DCCP</strong>uses packets as units, whereas TCPuses bytes as units. The greatest differencebetween CCID 2 <strong>and</strong> SACKTCP congestion control is that theformer doesn’t execute fast retransmission<strong>and</strong> fast recovery becauseit’s an unreliable protocol.<strong>Congestion</strong> control also retrainsacknowledgments to prevent themfrom causing network congestion.The sender uses the ack ratio featureto dynamically adjust acknowledgments’sending rate from the receiver.The ack ratio is two by default— that is, the receiver replies to anacknowledgment after receiving twopackets. <strong>Congestion</strong> control for acknowledgmentsis similar to that fordata packets. When the sender detectsan acknowledgment loss, it doublesthe ack ratio, thus halving the acknowledgmentreply rate. When thesender receives acknowledgments ofa congestion-free window, the expectednumber of received acknowledgmentsincreases by one. Becausethe ack ratio is an integer, once reducedby one, the number of receivedacknowledgments will increase bycwnd cwndk = −ack ratio ack ratio −1 .Thus, in reality, when the senderreceives acknowledgments of k congestion-freewindows, the ack ratiodecreases by 1.CCID 3. CCID 3 uses TFRC congestioncontrol. The sender uses the lossevent ratio the receiver measures,calculates the transmission rate Tvia the following formula, <strong>and</strong> accordinglyadjusts its sending rate:T =S2pRTT +3⎛ p ⎞tRTO3 3 p + p⎝⎜⎠⎟( 1 32 2 ) , (1)8where T is the transmission rate, S isthe packet size, RTT is the round-triptime, t RTOis the retransmission timeout,<strong>and</strong> p is the loss event ratio.In the initial phase, slow-start,the transmission rate doubles aftereach RTT until the receiver reports apacket loss or ECN marked. Then, thesender leaves the slow-start phase<strong>and</strong> uses Equation 1 to calculate thepacket transmission rate allowed inthe next period. CCID 3 expects toreceive throughput similar to TCP ina coexisted environment <strong>and</strong> obtainsa smooth transmission rate.Table 1 summarizes comparisonsbetween <strong>DCCP</strong> <strong>and</strong> TCP, UDP, <strong>and</strong>the Stream <strong>Control</strong> Transmission <strong>Protocol</strong>(SCTP).Shigeki Takeuchi <strong>and</strong> his colleaguesobserved the competition between82 www.computer.org/internet/ IEEE INTERNET COMPUTING

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!