CS 498 Lecture 15 COCOON: End-host Congestion ManagementCOCOON OverviewCocoon in Internet Protocol (IP) StackInformation Sharing in a GroupCongestion Control in a GroupUDP Connections in a GroupSlide 7Slide 8Window Setup for a New ConnectionGroup ManagementImplementation and EvaluationPerformanceSlide 13CS 498 Lecture 15 COCOON: End-host Congestion ManagementJennifer HouDepartment of Computer Science University of Illinois at Urbana-ChampaignReading: Yuan Gao, Guanghui He, and Jennifer Hou, “COCOON: an end-host approach to end-point congestion management”COCOON OverviewProvides a unified congestion control mechanism for subsets of active unicast connections at a host. Resides at end-hosts and requires no router support.Groups connections (TCP, UDP) destined to the same subnet. Adjusts group dynamically.Prevents blindly competition by sharing information and coordinating congestion control actions in a group.Allows a new connection to start with a large congestion window.Cocoon in Internet Protocol (IP) StackRound-trip time (RTT) and its variance for the group are estimated and used by all group members to set their retransmission timers.When a connection Ci detects congestion: Ci reduces its congestion window size (cwndi) to half of its outstanding data size (FlightSizei) Ci sets it slow-start threshold (ssthreshi) to half of its outstanding data size (FlightSizei );Information Sharing in a GroupCongestion Control in a GroupFor connection in this groupif ( ) {} else if ( ) {} elsejC),max(21ijjFlightSizeFlightSizecwndijFlightSizeFlightSizejjcwndssthreshijFlight SizeFlight Size21jjFlightSizecwndijFlightSizessthresh21),21min(jijssthreshFlightSizessthreshUDP Connections in a GroupAll UDP connections in a group are grouped together and treated as a virtual connection which is then regulated by a virtual congestion window. cwndv is set to the average TCP congestion window size times #UDP connections. The outstanding data size, , of the virtual connection is initialized to 0.vFlightSizeUDP Connections in a GroupData can be sent only when ; When a packet is sent, is increased by the packet size;When a non-duplicate acknowledgement is received by a TCP connection in the group, then is updated and is reduced by the amount of data bytes acknowledged.vvcwndFlightSizevFlightSizevFlightSizevcwndUDP Connections in a GroupWhen a TCP connection times out, the virtual connection immediately freezes its transmission, no matter if ; it only resumes transmission when a new acknowledgement is received by timeout TCP connection. If all TCP connections are inactive, and are unchanged. The virtual connection is allowed to send at rate cwndFlightSizevFlightSizevcwndvRTTgroupcwndv_/Window Setup for a New ConnectionWhen a new TCP connection is established and added into a group, it chooses the connection with the smallest congestion window.New connection’s congestion window and slow-start threshold are set as:kCrCrkcwndcwnd21=),min(rrkssthreshcwndssthreshGroup ManagementGroup size is dynamically adjusted.When a group is too large, it is split into two smaller groups.When number of groups is too large, some groups are merged into one larger group. Group adjustment is according to connections RTTs. A discrete-time Markovian analysis shows that the overhead is less than 5% of the CPU time.Implementation and EvaluationYou are required to implement the mechanisms in slides 4, 5, and 9 in Linux Kernel 2.4.22.You need to trace code in net/ipv4/tcp_v4.c, tcp.c, tcp_input.c, tcp_output.cThree major parts in TCP codestate machine implementation (connect, listen, accept). How packets traverse from the socket layer down to the device and how packets traverse upward from the device to the socket layer.Window congestion control mechanism.Pay attention to the code when a TCP connection is established/terminated, when a packet is received, when a timeout
View Full Document