/*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} Problem 25 Suppose a TCP connection, with w... [FREE SOLUTION] | 91Ó°ÊÓ

91Ó°ÊÓ

Suppose a TCP connection, with window size 1, loses every other packet. Those that do arrive have RTT \(=1\) second. What happens? What happens to TimeOut? Do this for two cases: (a) After a packet is eventually received, we pick up where we left off, resuming with EstimatedRTT initialized to its pretimeout value and TimeOut double that. (b) After a packet is eventually received, we resume with TimeOut initialized to the last exponentially backed-off value used for the timeout interval. In the following four exercises, the calculations involved are straightforward with a spreadsheet.

Short Answer

Expert verified
Case (a): TimeOut doubles after loss and returns to EstimatedRTT, Case (b): TimeOut retains the double value after loss and doesn't reset.

Step by step solution

01

Title - Understand the Problem

Identify the problem context: A TCP connection with window size 1 where every other packet is lost. Given RTT is 1 second. We need to analyze the situations for two cases: resuming with either estimatedRTT or the backed-off TimeOut value.
02

Title - Case (a): Calculating EstimatedRTT and TimeOut

In case (a), after a packet is eventually received, the connection resumes with the EstimatedRTT set to its pre-timeout value and TimeOut doubled each time a packet is lost. For each cycle of loss and receipt, plot the TimeOut values. Initially, EstimatedRTT = 1 second. If a packet is lost, TimeOut doubles: 2 seconds, then 4 seconds, then 8 seconds, etc. When a packet is eventually received, EstimatedRTT stays at 1 second and TimeOut doubles.
03

Title - Case (b): Track Exponential Back-Off

In case (b), after a packet is eventually received, the resumption occurs with the TimeOut value initialized to the last exponentially backed-off value. This means to track the current TimeOut value which continues doubling until a packet is received. Post reception, TimeOut remains doubled and carries forward. For each cycle of loss and receipt, the TimeOut values will: 2 seconds, 4 seconds, 8 seconds, etc., and then continue to stay at that last value post packet receipt.
04

Title - Analyzing TimeOut and RTT

For both cases, calculate the patterns of TimeOut and RTT: For case (a) after each reception, TimeOut resets to the EstimatedRTT and gets doubled only if there's a subsequent loss. In case (b), TimeOut doubles but does not reset on reception and maintains the backed-off value.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with 91Ó°ÊÓ!

Key Concepts

These are the key concepts you need to understand to accurately answer the question.

TCP window size
In a TCP connection, the window size determines how many packets can be sent before waiting for an acknowledgment. Think of it as a buffer space for unacknowledged packets. In our exercise, the window size is 1, which means only one packet is sent at a time and the sender waits for its acknowledgment before sending the next packet.
A small window size, like 1, can slow down the transmission rate since the sender must wait for the acknowledgment after every single packet. This is especially impactful if there are delays, as seen in our scenario where packets are lost every other transmission.
Packet loss
Packet loss occurs when data packets traveling across a network fail to reach their destination. Packet loss can cause transmission delays because lost packets need to be resent. In our exercise, every other packet is lost, causing significant disruption.
The impact of packet loss is pronounced with a small TCP window size. Since only one packet is sent at a time, losing every other packet means frequent resending and waiting, which can drastically reduce effective throughput and increase the overall transmission time.
RTT calculation
Round-Trip Time (RTT) is the time it takes for a signal to go from the sender to the receiver and back again. In our problem, the RTT is given as 1 second. This means, under ideal conditions without packet loss, each packet acknowledgment should return within 1 second.
In the context of our scenario, lost packets will increase the effective RTT as the packets need to be resent, and each subsequent retry causes a delay.
Timeout calculation
Timeout is the duration a sender waits for an acknowledgment before assuming a packet is lost and resending it. Determining the timeout value is crucial and is usually based on RTT and its variations.
In case (a), after a packet is eventually received, the timeout doubles each time a packet is lost, which follows an exponential pattern: 2 seconds, 4 seconds, 8 seconds, and so forth. When a packet is finally received, the timeout resets, but still considers the EstimatedRTT.
In case (b), after a packet is received, the timeout resumes from the last exponentially backed-off value. This means it continuously doubles with each packet loss and carries this timeout value forward post-reception.
Exponential backoff
Exponential backoff is a strategy employed to manage network congestion by exponentially increasing the waiting time between subsequent attempts following packet loss. This is crucial to prevent overwhelming the network with retries.
In case (a), the exponential backoff is demonstrated through doubling the timeout period after each packet loss. Additionally, the EstimatedRTT is recalibrated to its pre-timeout value upon successful reception.
In case (b), the exponential backoff continues without resetting. This means if the timeout period was 8 seconds after a series of losses and then a packet was successfully received, the timeout retains the 8 seconds and continues to double if packet loss persists.

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

The RPC-based "NFS" remote file system is sometimes considered to have slower than expected write performance. In NFS, a server's RPC reply to a client write request means that the data is physically written to the server's disk, not just placed in a queue. (a) Explain the bottleneck we might expect, even with infinite bandwidth, if the client sends all its write requests through a single logical CHAN channel, and explain why using a pool of channels could help. Hint: You will need to know a little about disk controllers. (b) Suppose the server's reply means only that the data has been placed in the disk queue. Explain how this could lead to data loss that wouldn't occur with a local disk. Note that a system crash immediately after data was enqueued doesn't count because that would cause data loss on a local disk as well. (c) An alternative would be for the server to respond immediately to acknowledge the write request, and to send its own separate CHAN request later to confirm the physical write. Propose different CHAN RPC semantics to achieve the same effect, but with a single logical request/reply.

If a UDP datagram is sent from host \(\mathrm{A}\), port \(\mathrm{P}\) to host \(\mathrm{B}\), port \(\mathrm{Q}\), but at host \(\mathrm{B}\) there is no process listening to port \(Q\), then \(B\) is to send back an ICMP Port Unreachable message to A. Like all ICMP messages, this is addressed to A as a whole, not to port \(\mathrm{P}\) on \(\mathrm{A}\). (a) Give an example of when an application might want to receive such ICMP messages. (b) Find out what an application has to do, on the operating system of your choice, to receive such messages. (c) Why might it not be a good idea to send such messages directly back to the originating port \(\mathrm{P}\) on \(\mathrm{A}\) ?

Request for Comments 1122 states (of TCP): A host MAY implement a "half-duplex" TCP close sequence, so that an application that has called CLOSE cannot continue to read data from the connection. If such a host issues a CLOSE call while received data is still pending in TCP, or if new data is received after CLOSE is called, its TCP SHOULD send an RST to show that data was lost. Sketch a scenario involving the above in which data sent by (not to!) the closing host is lost. You may assume that the remote host, upon receiving an RST, discards all received data still unread in buffers.

Consult Request for Comments 793 to find out how TCP is supposed to respond if a FIN or an RST arrives with a sequence number other than NextByteExpected. Consider both when the sequence number is within the receive window and when it is not.

Suppose BLAST runs over a 10-Mbps Ethernet, sending \(32 \mathrm{~K}\) messages. (a) If the Ethernet packets can hold 1500 bytes of data, and optionless IP headers are used as well as BLAST headers, how many Ethernet packets are required per message? (b) Calculate the delay due to sending a \(32 \mathrm{~K}\) message over Ethernet (i) directly (ii) broken into pieces as in (a), with one bridge Ignore propagation delays, headers, collisions, and interpacket gaps.

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.