c) When packet switching is used, nd the probability that a given user is transmit-
ting.
d) Suppose there are 500 users. Find the probability that at any given time exactly k
users are transmitting simultaneously (this probability is denoted by p(k)).
e) Find probability that there are l or more users transmitting simultaneously.
8 Question 7
[40 points] In class, we have discussed about how a discrete event simulator may be used
to compute the queueing times when the math becomes complicated. The simulator that
we have developed is available at github.uiowa.edu. You can download the code using git:
git clone https://github.uiowa.edu/ochipara/networking-class.git
As part of this assignment, you will be extending the simulator for the topology shown
in Figure 8. Nodes A and B generate packets destined for D that must pass through node
C. The challenge in simulating this topology is that node C has a single queue that must
be shared by packets arriving from nodes A and B. To illustrate the behavior. of the shared
queue, consider the scenario when a packet from A has already arrived at C. While C is
transmitting the packet from A, a packet from B arrives. The packet from B cannot be
transmitted until C completes transmitting the packet from A. This type of behavior. is
common for both routers and switches. You will have to modify the provided simulator to
account for this behavior.
Figure 2: Topology for Question 8
For this simulation, we will assume that an application on node A transmit bursts of 10
packets every 1000 simulation ticks. Similarly, an application running on Node B transmits
two packets every 500 simulation ticks. The transmission and the propagation delays for
all links are 10 ticks and 1 tick, respectively. The total simulation time is 10,000 ticks.
The output of the simulation will be a CSV le named sim.csv (in the current directory)
containing the following table:
The table includes the following information for each of the packets that were generated
during the simulation.
Seq num. Source Queue @src Transmit @src Receive @ C Transmit @ C Receive @ D
1. a unique sequence number of the packet
2. the source of the packet (i.e., either node A or B)
3. time when a packet was queued at the source (i.e., either node A or B)
4. time when a packet was transmitted by the source
5. time when a packet was received at node C
6. time when a packet was transmitted by node C
7. time when a packet was received by node D
Turn in your code on the ICON dropbox. The could should run using Python 3. No
additional packets beyond the standard distribution should be used. Additionally, given
the above table, answer the following questions:
1. What was the end-to-end delay of each packet?
2. What was the queueing delay of each packet?
3. What was the propagation delay of each packet?
4. What was the transmissions delay of each packet?
5. Which part of the delay is most variable and why?