|
|
|
|
Homework 7: Congestion Control
Out: Wednesday November 21
Due: Wednesday November 28
Read all of RFC4340, Datagram Congestion Control Protocol (DCC) ,
except that Sections 17, 19, and 20 are optional.
This page contains
a link to that RFC, as well as other, related RFC's that you might find
useful, or just plain interesting.
-
Each individual application is free to employ whatever transport protocol it
wants. Two possible choices are DCCP and UDP. DCCP will reduce the
send rate (at the IP level) if the network is busy; if all end host
applications do likewise, congestion collapse can be avoided.
UDP will not reduce the send rate; if all other applications are using
DCCP (or TCP), though, things will be great for the UDP application.
Given that, why would any application ever choose to use DCCP? That is,
what's in it for that application itself? Try to be concrete - describe a
particular (realistic) application that might decide to DCCP over UDP for
its own (rather than the network's) benefit.
- DCCP does not provide reliability, and so doesn't include sliding window
or ARQ. It does have ACKs, though. Why?
- One the other hand, DCCP does have windows, and it does do some
like retransmission. Explain why it has windows, and give an example
where repeated transmission is employed and explain why it is useful
and/or necessary for that case.
- DCCP defines sequence numbers. Unlike TCP, the DCCP sequence number
is affected by the transmission of ACKs.
Why should DCCP increment the sequence number for ACKs, and
TCP shouldn't?
- Consider a bug that causes the sequence number computed by a TCP or DCCP
endpoint to be "off by one" - instead of computing the correct value, N,
as the sequence number, N+1 is computed.
- What will the effect of this be in the case of TCP?
- What will the effect of this be in the case of DCCP?
- DCCP's Sync/Sync-Ack have no counterpart in TCP. Why does DCCP need
them, and why doesn't TCP?
- TCP provides ordered, "at most once" semantics for the data stream (meaning
that each data byte will be delivered 0 or 1 times, and all delivered data
bytes will be in consecutive order). What semantics does DCCP provide?
- DCCP, the Datagram Congestion Control Protocol,
doesn't actually define any congestion control algorithms (although
is cites two other RFCs that do). Of what use is DCCP then?
|