2,072 views
4 votes
4 votes
As a possible congestion control mechanism in a subnet using virtual circuits internally,
a router could refrain from acknowledging a received packet until (1) it knows its last
transmission along the virtual circuit was received successfully and (2) it has a free
buffer. For simplicity, assume that the routers use a stop-and-wait protocol and that
each virtual circuit has one buffer dedicated to it for each direction of traffic. If it takes
T sec to transmit a packet (data or acknowledgement) and there are n routers on the
path, what is the rate at which packets are delivered to the destination host? Assume
that transmission errors are rare and that the host-router connection is infinitely fast.

1 Answer

7 votes
7 votes

There are n routers between the sender and the receiver. Now the question mentions T as the transmission time. The propagation time is zero ( router connections are infinitely fast )

The source transmits the first packet, time required = T seconds. 

The first router in the path receives the packet at time = T seconds ( Propagation time = 0 ).

It won't send any acknowledgment for the packet to the receiver, it will forward the packet to next router, time required = T seconds.

Thus total time = T + T = 2T seconds up to now. 

 

Similarly, the third router will receive the packet at 2T and finish transmitting it at 3T. There are n routers in between.

Thus the receiver will receive the packet at (n + 1)T  {Each router takes T time + sender takes T time to transmit) 

The receiver sends an acknowledgment to the nth router in the path, it takes T seconds to send the acknowledgment.

Thus the router receives the acknowledgment at (n + 1)T + T time. 

This router in turns sends an acknowledgment to the (n - 1)th router and so on until the acknowledgment reaches to the sender.

The time taken for the acknowledgment to reach the sender is same as the time taken by the packet to travel from the sender to the receiver. 

Thus acknowledgment reaches the sender at (n + 1)T + (n + 1)T = 2(n+1)T. 

 

The sender now sends another packet and the cycle repeats. 

The receiver gets the first packet at (n+1)T and consequent packets at 3(n + 1)T, 5(n + 1)T and so on. 

Thus a packet is delivered every 2(n + 1)T seconds

Thus the rate in terms of the number of packets = 1/(2(n + 1)T)  packets per second.

 

P.S. This is my first answer on Gate overflow. My explanation may not be very clear. Feedback and suggestions are appreciated.

Also, the answer is according to my best understanding, it might have flaws. Please comment if you find anything wrong. 

 

reshown by

Related questions

0 votes
0 votes
1 answer
3