- Getting the Picture
- Congestion in Paradise
- C# Code
- Get, Set, and Notify
- Putting It All Together
- Conclusion
- Additional Reading
Congestion in Paradise
Networks are dynamic entities in which subcomponents fail and recover in unpredictable patterns. For example, if R3 in Figure 1 suddenly failed, the LSP would be interrupted. If no backup path existed (for example, if Link 4 was missing), the result would be a loss of service. However, if a backup path exists, that path might become overloaded with the extra traffic. To help tackle these complex scenarios, network entities typically support an event or notification mechanism.
When a notifiable situation occurs, the network emits an event or notification message. This message can be collected by the network management system shown at the bottom of Figure 1. Then it’s up to this system to alert the network manager to the situation promptly. Let’s take a look at a possible scenario.
Let’s assume that LSP123 in Figure 1 is enabled and happily forwarding traffic. Further, assume that this LSP has been allocated a maximum block of bandwidth equal to 150 Mbps (megabits per second). Imagine a network management rule that exists to detect when congestion is looming—that is, no congestion is occurring right now, but is likely to occur. Let’s set this congestion threshold at 120 Mbps. When the incoming traffic consumes 120 Mbps or greater, there is a strong possibility of congestion.
Once congestion occurs, there’s usually data loss, in which packets are dropped in order to improve the situation. When packets are dropped, they may be re-sent, which reinforces the congestion problem! So you really don’t want a network to get congested in the first place.
Figure 2 illustrates the situation in which 120 Mbps of data is pushed into LSP123.
Figure 2 Traffic landing on R2 and consuming bandwidth.
It’s important to understand that the problem (or potential problem) in Figure 2 might disappear quickly as the traffic is forwarded. But let’s be pessimistic and imagine that more traffic lands on R2 for forwarding. This gives rise to the output in Figure 3.
Figure 3 More traffic lands on R2—congestion is imminent.
As Figure 3 shows, the maximum allowed bandwidth is 150 Mbps and the required bandwidth is 140 Mbps. You get the picture: The network is getting congested, and the result is the emission of event messages to the network management system. The latter must try to do something about the problem, such as allocating more bandwidth or redirecting some of the traffic. Now let’s take a look at the code that generates the messages in Figures 2 and 3.