Consider a buffer of size B bytes if fed by packetized data-traffic at constant rate R bytes/second by a source connected to the buffer with a bidirectional link whose one-way latency is D seconds. The buffer’s service is not regular and it is possible that there is no service at all for significant intervals of time.
a) To avoid buffer overflow, at what maximal level of occupancy X<B should the buffer dispatch a message to the source to stop transmission? Note: X is maximal so as to minimally affect the throughput to the buffer. Hint: bandwidth delay product. In the context of a TCP session between two end-systems, y and z.
b) Under what circumstances would one end-system y receive a (first) duplicate acknowledgment from z with sequence number, say, n?
c) What action would y take upon receipt of the first such duplicate ACK and what additional actions, if any, should be taken by z upon its transmission?
d) What action would y take upon receipt of a second such duplicate ACK?
Expert Answer
a). To avoid buffer overflow, we should have mean-rate buffer design. In this case the processor stalls while the buffer is awaiting service to free an entry.
- buffer input rate < buffer output rate
- then, size to reduce frequency of overflow to acceptably low level with respect to overall performance
bandwidth-delay product refers to the product of a data link’s capacity (in bits per second) and its round-trip delay time (in seconds).
For infinite buffer, assume distribution of buffer occupancy is q and mean occupancy is Q
for a given probability of overflow (p), conservatively select BF as
BF = min(Q/p,Q + s/ p)
b) Whenever a packet arrives with sequence number n to z from y , z will send an Acknowledgement packet with number n+1 (next expected sequence number). But, if any packet from y to z is lost or any unordered packet is received at z. In this case z will again send the duplicate ACK with expected sequence number n+1.
c) On receipt of first such duplicate ACK, y will resend the last ACK packet to portray the expected packet again.
d) TCP does not know whether a duplicate ACK is caused by a lost segment or just a reordering of segments, it waits for a small number of duplicate ACKs to be received.
- It is assumed that if there is just a reordering of the segments, there will be only one or two duplicate ACKs before the reordered segment is processed, which will then generate a new ACK.
- If three or more duplicate ACKs are received in a row, it is a strong indication that a segment has been lost.