Term
R1. Suppose the network layer provides the following service. The network layer in the source host accepts a segment of maximum size 1,200 bytes and a destination host address from the transport layer. The network layer then guarantees to deliver the segment to the transport layer at the destination host.
Suppose many network application processes can be running at the destination host.
a. Design the simplest possible transport-layer protocol that will get application data to the desired process at the destination host. Assume the operating system in the destination host has assigned a 4-byte port number to each running application process.
b. Modify this protocol so that it provides a “return address” to the destination process.
c. In your protocols, does the transport layer “have to do anything” in the core of the computer network? |
|
Definition
|
|
Term
R2. Consider a planet where everyone belongs to a family of six, every family lives in its own house, each house has a unique address, and each person in a given house has a unique name. Suppose this planet has a mail service that delivers letters from source house to destination house. The mail service requires that (i) the letter be in an envelope and that (ii) the address of the destination house (and nothing more) be clearly written on the envelope. Sup- pose each family has a delegate family member who collects and distributes letters for the other family members. The letters do not necessarily provide any indication of the recipients of the letters.
a. Using the solution to Problem R1 above as inspiration, describe a protocol that the delegates can use to deliver letters from a sending family member to a receiving family member.
b. In your protocol, does the mail service ever have to open the envelope and examine the letter in order to provide its service? |
|
Definition
|
|
Term
R3. Consider a TCP connection between Host A and Host B. Suppose that the TCP segments traveling from Host A to Host B have source port number x and destination port number y. What are the source and destination port numbers for the segments traveling from Host B to Host A? |
|
Definition
Source port number y and destination port number x. |
|
|
Term
R4. Describe why an application developer might choose to run an application over UDP rather than TCP. |
|
Definition
An application developer may not want its application to use TCP’s congestion
control, which can throttle the application’s sending rate at times of congestion.
Often, designers of IP telephony and IP videoconference applications choose to
run their applications over UDP because they want to avoid TCP’s congestion
control. Also, some applications do not need the reliable data transfer provided by
TCP. |
|
|
Term
R5. Why is it that voice and video traffic is often sent over TCP rather than UDP in today’s Internet. (Hint: The answer we are looking for has nothing to do with TCP’s congestion-control mechanism.) |
|
Definition
Since most firewalls are configured to block UDP traffic, using TCP for video and
voice traffic lets the traffic though the firewalls. |
|
|
Term
R6. Is it possible for an application to enjoy reliable data transfer even when the application runs over UDP? If so, how? |
|
Definition
Yes. The application developer can put reliable data transfer into the application
layer protocol. This would require a significant amount of work and debugging,
however. |
|
|
Term
R7. Suppose a process in Host C has a UDP socket with port number 6789. Sup- pose both Host A and Host B each send a UDP segment to Host C with desti-nation port number 6789. Will both of these segments be directed to the same socket at Host C? If so, how will the process at Host C know that these two segments originated from two different hosts? |
|
Definition
Yes, both segments will be directed to the same socket. For each received
segment, at the socket interface, the operating system will provide the process
with the IP addresses to determine the origins of the individual segments. |
|
|
Term
R8. Suppose that a Web server runs in Host C on port 80. Suppose this Web server uses persistent connections, and is currently receiving requests from two different Hosts, A and B. Are all of the requests being sent through the same socket at Host C? If they are being passed through different sockets, do both of the sockets have port 80? Discuss and explain. |
|
Definition
|
|
Term
R9. In our rdt protocols, why did we need to introduce sequence numbers? |
|
Definition
9. Sequence numbers are required for a receiver to find out whether an arriving
packet contains new data or is a retransmission. |
|
|
Term
R10. In our rdt protocols, why did we need to introduce timers? |
|
Definition
To handle losses in the channel. If the ACK for a transmitted packet is not
received within the duration of the timer for the packet, the packet (or its ACK or
NACK) is assumed to have been lost. Hence, the packet is retransmitted. |
|
|
Term
R11. Suppose that the roundtrip delay between sender and receiver is constant and
known to the sender. Would a timer still be necessary in protocol rdt 3. 0, assuming that packets can be lost? Explain. |
|
Definition
A timer would still be necessary in the protocol rdt 3.0. If the round trip time is
known then the only advantage will be that, the sender knows for sure that either
the packet or the ACK (or NACK) for the packet has been lost, as compared to
the real scenario, where the ACK (or NACK) might still be on the way to the
sender, after the timer expires. However, to detect the loss, for each packet, a
timer of constant duration will still be necessary at the sender. |
|
|
Term
R12. Visit the Go-Back-N Java applet at the companion Web site.
a. Have the source send five packets, and then pause the animation before any of the five packets reach the destination. Then kill the first packet and resume the animation. Describe what happens.
b. Repeat the experiment, but now let the first packet reach the destination and kill the first acknowledgment. Describe again what happens.
c. Finally, try sending six packets. What happens? |
|
Definition
|
|
Term
R13. Repeat R12, but now with the Selective Repeat Java applet. How are Selective Repeat and Go-Back-N different? |
|
Definition
|
|
Term
R14. True or false?
a. Host A is sending Host B a large file over a TCP connection. Assume Host B has no data to send Host A. Host B will not send acknowledgments to Host A because Host B cannot piggyback the acknowledgments on data.
b. The size of the TCP rwnd never changes throughout the duration of the connection.
c. Suppose Host A is sending Host B a large file over a TCP connection. The number of unacknowledged bytes that A sends cannot exceed the size of the receive buffer.
d. Suppose Host A is sending a large file to Host B over a TCP connection. If the sequence number for a segment of this connection is m, then the sequence number for the subsequent segment will necessarily be m + 1.
e. The TCP segment has a field in its header for rwnd.
f. Suppose that the last SampleRTT in a TCP connection is equal to 1 sec.
The current value of TimeoutInterval for the connection will necessarily be = 1 sec.
g. Suppose Host A sends one segment with sequence number 38 and 4 bytes of data over a TCP connection to Host B. In this same segment the acknowledgment number is necessarily 42.a. |
|
Definition
14. a) false b) false c) true d) false e) true f) false g) false |
|
|
Term
R15. Suppose Host A sends two TCP segments back to back to Host B over a TCP connection. The first segment has sequence number 90; the second has sequence number 110.
a. How much data is in the first segment?
b. Suppose that the first segment is lost but the second segment arrives at B.
In the acknowledgment that Host B sends to Host A, what will be the acknowledgment number? |
|
Definition
15. a) 20 bytes b) ack number = 90 |
|
|
Term
R16. Consider the Telnet example discussed in Section 3.5. A few seconds after the user types the letter ‘C,’ the user types the letter ‘R.’ After typing the letter ‘R,’ how many segments are sent, and what is put in the sequence number
and acknowledgment fields of the segments? |
|
Definition
|
|
Term
R17. Suppose two TCP connections are present over some bottleneck link of rate R bps. Both connections have a huge file to send (in the same direction over the bottleneck link). The transmissions of the files start at the same time. What transmission rate would TCP like to give to each of the connections? |
|
Definition
|
|
Term
R18. True or false? Consider congestion control in TCP. When the timer expires at the sender, the “value of ssthresh is set to one half of its previous value. |
|
Definition
18. False, it is set to half of the current value of the congestion window. |
|
|