Description
Problem A. Consider transferring an enormous file of L bytes from Host A to Host B. Assume an MSS of 536 bytes. (hint: MSS:
Maximum Segment Size, i.e., the maximum size of the payload of a TCP segment, not including the TCP segment header. It’s essentially
the largest amount of application-layer data, in Bytes, that a TCP segment can carry.)
(a) What is the maximum value of L such that TCP sequence numbers are not exhausted? Recall that the TCP sequence number field
has 4 bytes.
(b) For the L you obtain in (a), find how long it takes to transmit the file. Assume that a total of 66 bytes of transport, network, and
data-link header are added to each segment before the resulting packet is sent out over a 155 Mbps link. Ignore flow control and
congestion control so A can pump out the segments back to back and continuously. (Hint: it is assumed that the window size N is
large enough such that the segments can be sent out back to back without the need to wait for the next sequence number to be
available and there is no loss of packet or ack.)
Problem B. Host A and B are communicating over a TCP connection, and Host B has already received from A all bytes up through
byte 126. Suppose Host A then sends two segments to Host B back- to- back. The first and second segments contain 80 and 40 bytes of
data, respectively. In the first segment, the sequence number is 127, the source port number is 302, and the destination port number is
80. Host B sends an acknowledgment whenever it receives a segment from Host A.
(a) In the second segment sent from Host A to B, what are the sequence number, source port number, and destination port number?
(b) If the first segment arrives before the second segment, in the acknowledgment of the first arriving segment, what is the
acknowledgment number, the source port number, and the destination port number?
(c) If the second segment arrives before the first segment, in the acknowledgment of the first arriving segment, what is the
acknowledgment number? (Hint: The reliability control used in TCP is basically a GBN approach with some variation.)
(d) Suppose the two segments sent by A arrive in order at B. The first acknowledgment is lost and the second acknowledgment arrives
after the first time-out interval. Draw a timing diagram, showing these segments and all other segments and acknowledgments
sent. (Assume there is no additional packet loss.) For each segment in your figure, provide the sequence number and the number of
bytes of data; for each acknowledgment that you add, provide the acknowledgment number. (hint: draw all the segments and
ACKs that are exchanged between Hosts A and B involved in delivering these two segments)
Problem C. Referring to the Slide 38 titled “TCP Flow Control”, if RcvBuffer = 4096 bytes, 1280 bytes data is buffered,
(a) what is the rwnd value in the TCP header of the next receiver-to-sender segment?
(b) When the sender receives the above TCP segment, it has sent out 2560 bytes not yet ACKed. At most how many more bytes can
the sender send out before receiving any ACK?
Problem D. (a) List the following three TCP segments in the order of being transmitted in the TCP 3-way handshake for establishing a
TCP connection; (b) describe the sender and receiver of EACH TCP segment as client-to-server or server-to-client; (c) what is the initial
sequence number chosen by the client; (d) what is the initial sequence number chosen by the server?
TCP Segment [SYNBit = 1, Seq = 58, ACKbit = 1, ACKnum = 126]
TCP Segment [ACKbit = 1, ACKnum = 59]
TCP Segment [SYNBit = 1, Seq = 125]
Problem E. Given that the client initiates the procedure of closing a TCP connection, the last byte sent from client to server before the
FIN segment is byte #1,742, the last byte sent from server to client before the FIN segment is byte #6,029, (a) list four TCP segments
exchanged between client and server for closing a TCP connection, where EACH TCP Segment must be described in the format used
in Problem B; (b) describe the sender and receiver of EACH TCP segment as client-to-server or server-to-client.
(more on next page!)
MSU Denver, M&CS CS 3700: Computer Networks, Spring 2020 Dr. Weiying Zhu
Problem F. The initial ssthresh is 16, the sender experiences a 3-duplicate-ACKs event right after the 9th transmission round in both
Tahoe and Reno cases, and then the sender experiences a timeout event right after the 16th round in a TCP Tahoe case and after
right after the 19th round in a TCP Reno case, FILL the following table to illustrate the congestion window size in segments (cwnd)
and ssthresh as functions of transmission round for the time from the 1st to the 22th round if (a) TCP Tahoe is used for congestion
control; and (b) TCP Reno is used for congestion control. (Hint: be aware that the figure in the slide titled “TCP: switching from slow
start to CA” illustrates both cases in the same graph.)
TCP Tahoo TCP Reno
Trans. Round cwnd ssthresh Trans. Round cwnd Ssthresh
1st 1st
2nd 2nd
3rd 3rd
4th 4th
5th 5th
6th 6th
7th 7th
8th 8th
9th 9th
10th 10th
11th 11th
12th 12th
13th 13th
14th 14th
15th 15th
16th 16th
17th 17th
18th 18th
19th 19th
20th 20th
21st 21st
22nd 22nd