Question: C or Java Additive Increase and Multiplicative Decrease (AIMD) is a very useful congestion control mechanism used in TCP to efficiently and fairly share the

C or Java

Additive Increase and Multiplicative Decrease (AIMD) is a very useful congestion control mechanism used in TCP to efficiently and fairly share the bandwidth in a network. The beauty of the mechanism is that the hosts do not

consult each other. They just apply the AIMD rule independently by themselves and eventually the bandwidth is fairly shared.

In this project, you will write a program to simulate the process of AIMD. You can start with 2 hosts. We assume the link they share has a bandwidth of 1 unit. Intially they take, for example, 0.2 and 0.3 of the bandwidth. Then each will work on its own to apply the AIMD rule. That is, each host will first do the AI part by incrementing its share of bandwidth by a certain amount denoted by inc, for example, inc = 0.1. Then after some time, if the total bandwidth exceeds 1, the host will receive packet loss and should do the MD part by reducing its share of bandwidthby a certain percentage denoted by dec, for example, dec = 25%. Repeat this process, after some time, you will see no matter what initial bandwidth they start from, they will reach a fair share of the bandwidth. That is, 0.5 for each.

After you experiment with 2, you can try 3, 4, and 5 hosts to see how they reach a fair share.

You can have inputs like this:

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!