The problem is to simulate a network node. Packets arrive randomly at the switch, and are sent out every t seconds. If too many packets arrive, they are queued. A maximum of N packets can be queued. To model the arrival of packets at the node, you can use the following function nextTime() which gives the next time a packet arrives for a Poisson process.
#include <math.h> #include <stdlib.h> int nextTime(float rateParameter)
{ return (int)(-logf(1.0f (float) random() / (RAND_MAX + 1)) / ratePar }
The argument rateParameter is 1/t and a parameter of your simulation. If the queue grows too large, packets are dropped.
A packet is an instance of a structure as follows:
typedef struct{
int id; // packet id int t0; // arrival time of packet int priority; // higher means more important char contents[80]; // contents of packet
} PACKET;
We will not use priority here, but this can be a standard definition for a packet for later assignments. When a packet is to be added, you need to first allocate it via
PACKET *p;
p = (PACKET *)malloc(sizeof(PACKET));
and then add it to the queue. Note that queue is a circular array of pointers, each pointing to a packet or to NULL (if that queue element is not allocated
- Write a program that will take = 1/t, N and (the rate at which packets are forwarded by the node) and simulate the queue. and are real while N is integer. The program must collect a history of the time spent in the queue and the percentage of packets dropped.
- Vary the three parameters as follows and generate histograms for each case and enter the missing databelow:
1
| N | Avg Delay | % dropped packets | Time per packet | ||
| 5 | 0.45 | 0.5 | ? | ? | ? |
| 10 | 0.45 | 0.5 | ? | ? | ? |
| 20 | 0.45 | 0.5 | ? | ? | ? |
| 5 | 0.4 | 0.5 | ? | ? | ? |
| 5 | 0.3 | 0.5 | ? | ? | ? |
and understand the way N and interact.
- Is the time complexity to manage the queue per packet equal to O(1) or something else? Assume that all CPU and memory operations are the same cost (which they are not).

![[Solved] EE4371-Assignment4 -Queues](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[Solved] EE4371 Assignment3- Sorting](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
Reviews
There are no reviews yet.