Congestion Control Algorithms General Principles of Congestion Control Congestion Prevention Policies Congestion Control in Virtual-Circuit Subnets Congestion Control in Datagram Subnets Load Shedding Jitter Control Congestion • When too much traffic is offered, congestion sets in and performance degrades sharply. • Factors: • Insufficient memory • Slow processors • Low bandwidth. • Congestion Control vs Flow Control: • Congestion control has to do with making sure the subnet is able to carry the offered traffic. • Flow control relates to the point-to-point traffic between a given sender and a given receiver. General Principles of Congestion Control Open loop solution Attempt to solve the problem by good design. It makes decisions without regard to the current state of network. Closed loop solution based on the concept of a feedback loop. Monitor the system . detect when and where congestion occurs. Pass information to where action can be taken. Adjust system operation to correct the problem. Congestion Control in VirtualCircuit Subnets Admission control technique: once congestion has been signalled, no more virtual circuits are setup until the problem has gone away. Allow new virtual circuits but carefully route all new virtual circuits around problem areas. Negotiating an agreement between the host and subnet when a virtual circuit is set up. The agreement specifies the volume the shape of the traffic, Qos etc. To keep part of the agreement, the subnet, the subnet will typically reserve resources along the path when the circuit is set up. Congestion Prevention Policies Policies that affect congestion. Congestion Control in Virtual-Circuit Subnets (a) A congested subnet. (b) A redrawn subnet, eliminates congestion and a virtual circuit from A to B. Congestion control in Datagram Subnets • Theory: – Each line has a real variable, u, whose value between 0.0 and 1.0 reflects the recent utilization of that time. – To maintain a good estimate of u, a sample of the instantaneous line utilization, f (0, or 1), can be made periodically and u updated according to: u2=a*u1+(1-a)f – When u moves above the threshold the output line enters a warning state Congestion control in Datagram Subnets • The Warning Bit – The warning state is set as a special bit in the packet’s header. – As long as the router was in the warning state, it continued to set the warning bit, which meant that the source continued to get acknowledgements with it set. – As long as the warning bits continued to flow in, the source continued to decrease its transmission rate. • Choke Packets – In the warning state, the router sends a choke packet back to the source host. – When the source host gets the choke packet. It reduce the traffic by x%. It ignore choke packets referring to the destination for a fixed time interval, and check again if there is still the choke packets sent back. Hop-by-Hop Choke Packets 1. 2. • A choke packet that affects only the source. A choke packet that affects each hop it passes through. More buffer request for router F at this moment. The net effect of this hop-by hop scheme is to provide quick relief at the point of congestion at the price of using up more buffers upstream. Jitter Control • • (a) High jitter. (b) Low jitter. The variation (i.e., standard deviation) in the packet arrival times is called jitter. What a packet arrives at a router, the router checks to see how much the packet is behind or ahead of its schedule. If it is behind schedule, the router tries to get it out the door quickly and if it is ahead of schedule, it is held just long enough to get it back on schedule.