Hi Xuesong,

> In congestion control of layer 4, it is assumed that there is a bottleneck in 
> the network, and the ideal rate of the transmitters equals to a fair share of 
> the bandwidth in the bottleneck. The flows in the network change all the time 
> and so as to the ideal transmitting rate. There are some methods to detect 
> the bottleneck, for example detecting packet loss, setting ECN, RTT and so 
> on. Considering that the goal of cc is to maximize the throughput and 
> minimize the queuing delay, the throughput and delay could be used to compare 
> different cc algorithms.


I consider flow control and congestion control to be separate, but similar 
problems.

Flow control is about creating a single control loop between a single 
transmitter and single receiver.

Congestion control is about creating multiple interacting control loops between 
multiple transmitters and multiple receivers.


> The problem of mine is that for CC of ISIS flooding, where is the 
> bottleneck?(maybe the receiver capability) What method of detecting could be 
> used? (In my understanding, we have two options at this stage: one from the 
> receiver side and the other from the transmitter side) What is the criteria 
> of comparing? (still a little confusing for me )


In the case of modern IS-IS, we have gigabit links everywhere, the bandwidth 
greatly exceeds our needs, and flooding only happens between peers, so link 
resources are never the issue.  Thus, to my mind, congestion only happens when 
a node is engaged in flooding on multiple interfaces concurrently. Effectively, 
congestion control can be seen as flow control with shared resources, or as 
flow control with varying resources.

The resources of concern vary depending on the internals of both the sender and 
receiver.  Some that come to mind are:

- CPU. Both transmitter and receiver have finite cycles available. This is 
typically shared across multiple interfaces, so can congest.

- Process level buffer space. There may be a fixed number of packet buffers 
within the IS-IS process.  These can be depleted.

- Kernel buffers. 

- Internal control fabric. In some multi-chassis designs, the line card chassis 
is remote from the CPU running IS-IS. The network between the two can congest.

- Line card CPU. Again in the case of a multi-chassis system, control packets 
may flow through a CPU on the line card.  This can congest due to cycles or 
buffers.

- Forwarding plane buffers. Modern design for many systems has a forwarding 
plane ASIC doing a great deal of our packet handling. 
  One of its responsibilities is to extract control plane traffic from incoming 
traffic and pass it upwards. As a single ASIC, it is finite and can only buffer
  so many packets before loss.  The buffers are only cleared when the packets 
are read out by the line card or central CPU.  IMHO, this is a very likely 
point of congestion.

All of these can be instrumented to determine whether they are congesting.  It 
seems very unlikely that the transmitter ever congests.  Bruno’s data as 
presented supports this: the transmitter can outstrip the receiver. Thus, we 
tend to focus on congestion at the receiver.

The other feedback mechanisms that we have available are the ones that we’ve 
discussed: PSNPs provide acknowledgment of received packets. From that, and 
their timing, we may be able to infer more useful data, but we are discussing 
changing their behavior to make things more useful.

In our draft, we are proposing other feedback mechanisms.

Tony


_______________________________________________
Lsr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to