Vous êtes sur la page 1sur 4

Congestion control algorithms

Congestion is a situation in which too many packets are present in (a part of) the subnet,
performance degrades. The symptom is depicted in Fig .
Figure: When too much traffic is offered, congestion sets in and performance degrades
sharply.
Factors causing congestion:
The input traffic rate exceeds the capacity of the output lines.
The routers are too slow to perform bookkeeping tasks (ueueing buffers,
updating tables, etc.).
The routers! buffer is too limited.
"dding more memory may help up to a point, but if routers ha#e an infinite amount of
memory, congestion gets worse. (Why $ %elay timeout retransmission more traffic
load).
Congestion control is different from flow control&
Congestion is a global issue, in#ol#ing the beha#ior of all the hosts, all the
routers, the store'and'forward processing within the routers, etc.
Flow control relates to the point'to'point traffic between a gi#en sender and a
gi#en recei#er.
" situation reuiring flow control& a fiber optic network with a capacity of ()))
gigabits*sec on which a supercomputer was trying to transfer a file to a personal
computer at (+bps.
" situation reuiring congestion control& a store'and'forward network with (',bps lines
and ())) large minicomputers, half of which were trying to transfer files at ()) kbps to
the other half.
5.3.1. General principles of congestion control
From a control theory point of #iew, all solutions to problems in complex systems , such
as computer networks, can be di#ided into two groups&
Open loop solutions sol#e the problem by good design, in essence, to make sure
the problem does not occur in the first place.
Tools include deciding when to accept new traffic, when to discard packets and
which ones, and how to schedule packets at #arious points in the network.
" common fact& they make
decisions without regard to
the current state of the network.
Closed loop solutions are based on the concept of a feedback loop, which consists
of the following three parts&
(. ,onitor the system to detect when and where congestion occurs.
-. .ass this information to places where actions can be taken.
/. "d0ust system operation to correct the problem.
Chief metrics for monitoring the subnet for congestion are&
the percentage of all packets discarded for lack of buffer space,
the a#erage ueue lengths,
the number of packets that time out and are retransmitted,
the a#erage packet delay, and
the standard de#iation of packet delay.
1ow to propagate the monitored congestion information $
The router detecting the congestion sends a separate warning packet to the traffic
source.
" bit or field can be reser#ed in each packet. When a router detects a congested
state, it fills in the field in all outgoing packets to warn the neighbors.
1osts or routers send probe packets out periodically to explicitly ask about
congestion and to route traffic around problem areas.
1ow to correct the congestion problem $
2ncrease the resource&
o 3sing an additional line to temporarily increase the bandwidth between
certain points.
o 4plitting traffic o#er multiple routes.
o 3sing spare routers.
%ecrease the load&
o denying ser#ice to some users,
o degrading ser#ice to some or all users, and
o ha#ing users schedule their demands in a more predictable way.
The open loop congestion control approach tries to achie#e the goal by using appropriate
policies at #arious le#els, as shown in Fig.
Figure: .olicies that affect congestion.
The leaky bucket algorithm
(a) " leaky bucket with water. (b) a leaky bucket with packets.

The token bucket algorithm
The leaky bucket algorithm enforces a rigid output pattern at the a#erage rate, no matter
how bursty the traffic is.
For many applications, it is better to allow the output to speed up somewhat when large
bursts arri#e, so a more flexible algorithm is needed, preferably on that ne#er loses data.
The bucket holds tokens, generated by a clock at the rate of one token e#ery sec.
For a packet to be transmitted, it must capture and destroy one token.
The token bucket algorithm allows sa#ing up to the maximum si5e of the bucket, ,
which means that bursts of up to packets can be sent at the maximum speed (for a
certain period of time).
Token bucket
" token bucket is a common algorithm used to control the amount
of data that is in0ected into a network, allowing for bursts of data to
be sent. "lthough it has se#eral uses, it is best understood in the
context of network traffic shaping or rate limiting.
The token bucket is a control mechanism that dictates when traffic can be
transmitted, based on the presence of tokens in the bucket''an abstract
container that holds aggregate network traffic to be transmitted. The bucket
contains tokens, each of which can represent a unit of bytes or a single packet
of predetermined si5e. Tokens in the bucket are remo#ed (6cashed in6) for the
ability to send a packet. The network administrator specifies how many
tokens are needed to transmit how many bytes. When tokens are present, a
flow is allowed to transmit traffic. 2f there are no tokens in the bucket, a flow
cannot transmit its packets. Therefore, a flow can transmit traffic up to its
peak burst rate if there are adeuate tokens in the bucket and if the burst
threshold is configured appropriately.

Vous aimerez peut-être aussi