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
