Problem 2

Question 1 (8 points)

For DNS, both UDP and TCP are correct transport-layer protocols.

If DNS over UDP:
  • 1 point per correct packet.
  • 0.5 points for a packet that has the ports wrong(*) but the rest (source/destination address and purpose) correct.

If DNS over TCP:
  • 0.5 points per correct DNS packet (SYN, SYN ACK, DNS request and response).
  • 1 point per correct HTTP packet.
  • Half the points (so, 0.25 points per DNS packet and 0.5 points per HTTP packet) for a packet that has the ports wrong(*) but the rest correct.
(*) Not knowing the exact port number is not a mistake. E.g., if a student consistently uses "x" in place of 80 (for HTTP packets) or "y" in place of 53 (for DNS packets), that's fine. 

xxxxxx

Question 2 (8 points)

Same as for Question 1.

xxxxxx

Question 3 (3 points)

0.6 points for correctly computing the delay of each packet.

In more detail:
  • 0.2 points for correct propagation delay of DNS request.
  • 0.4 points for correct transmission delay of DNS request.
  • 0.2 points for correct propagation delay of DNS response.
  • 0.4 points for correct transmission delay of DNS response.
  • 0.6 points for correct propagation delay of TCP SYN.
  • 0.6 points for correct propagation delay of TCP SYN ACK.
  • 0.2 points for correct propagation delay of HTTP GET request.
  • 0.4 points for correct transmission delay of HTTP GET request.
Partial credit rule:
  • If a student does not include the HTTP GET request in the handshake and they include it in Question 4 and they compute the delays for it correctly, then: 0.3 points for the HTTP GET request (half the 0.6 that thy would get if they had correctly included it).
Justification is anything that shows the student knew what they were doing and did not just copy a result. Even breaking down the result into correct components is OK.

xxxxxx

Question 4 (4 points)
  • 1 point for correct propagation delays.
  • 3 points for correct transmission delays = first packet over first link + first and second packets over second link + second and third packets over last link.
Attention: if a student added the HTTP response header to all segments, then the correct response changes = first packet over first link+ all packets over second link + last packet over last link.

Partial credit rules:
  • Not considering the HTTP header as part of the HTTP response size: -1 point.
  • Adding the HTTP response header to all segments: -2 points.
  • Incorrectly computing the transmission delay by blindly applying the formula from lecture (first packet over first link+ all packets over second link + last packet over last link): -2 points.
Justification is anything that shows the student knew what they were doing and did not just copy a result. Even breaking down the result into correct components is OK.

xxxxxx

Question 5 (4 points)
  • 0.25 points for correct propagation delay of first response packet.
  • 0.75 points for correct transmission delay of first response packet.
  • 1 point for correct propagation delay of ACK.
  • 0.5 points for correct propagation delay of second and third response packets.
  • 1.5 points for correct transmission delay of second and third response packets.
Attention: the correct answer depends again on whether the third response packet is 300 or 700 bytes.

Partial credit rules:
  • Not considering the HTTP header as part of the HTTP response size (both in Q4 and Q5): no penalty.
  • Adding the HTTP response header to all segments: -1 point.
  • Incorrectly computing the transmission delay by blindly applying the formula from lecture: -1 point.
  • Not giving a precise answer but describing correctly who will send what packets AND saying that ti will take longer: -2 points.
  • As above but WITHOUT saying how that will affect the delay: -3 points.

Justification is anything that shows the student knew what they were doing and did not just copy a result. Even breaking down the result into correct components is OK.

xxxxxx

Question 6 (1 point)

(a)
  • 0.25 points for saying it’s the former.
  • 0.25 points for saying why.
If a student said Tahoe/Reno achieve better throughput because they assumed that the web server would continue to communicate with Bob, OK to give full points, as long as it’s clear the student is considering the general case.

(b)
  • 0.25 points for mentioning congestion.
  • 0.25 points for mentioning lack of flow control.

xxxxxx

Question 7 (2 points)
  • 0.5 points for correct answer to (a).
  • 0.5 points for correct answer to (b).
  • 0.25 points for saying no to (c).
  • 0.25 points for explaining why.
  • 0.25 points for saying yes to (d).
  • 0.25 points for saying why.


Problem 3

Question 1 (0.25 points)
  • 0.25 points for saying it’s a connection-setup request or TCP SYN segment.
xxxxxx

Question 2 (0.25 points)
  • 0.25 points for saying it’s the second segment transmitted by A.
xxxxxx

Question 3 (4 points)

(a) 1 point for saying that the window is 16 or 32 MSS or anything in between (no need to justify this).

(b)
  • 2 points for saying that no data segments can have been lost, with correct justification (see below, b1).
  • 1 point for saying that no ACKs can have been lost with correct justification (see below, b2).

Partial credit rule:

  • 0.5 points for saying that ACKs may have been lost because ACKs are cumulative.

Correct justification:
(b1) The window has not decreased AND/OR there has been no timeout.
(b2) The window would not have grown as it did if ACKs had been lost.

xxxxxx

Question 4 (1.5 points)
(a)  0.5 points for saying that the window is 1 MSS.
(b)
  • 0.5 points for saying that a timeout must have happened AND/OR that there must have been packet loss (or unpredictable delays).
  • 0.5 points for any reasonable justification.
Question 5 (4 points)
(a) 1 point for saying that A uses fast-retransmit.
(b)
  • 1 point for saying that a segment must have been lost. 
  • OK  to say that more than one (but not all) segments may have been lost (even though not OK, because fast recovery would have been impossible).
  • 2 points for correct justification.
Correct justification:
  • There must have been either a timeout or 3-duplicate-ACKs, because the window decreased at point X. It cannot have been a timeout, because then A would have gone into the slow-start state, i.e., it would have transmitted 2 segments after an RTT, then 4 segments after another RTT, and so on.

xxxxxx

Question 6 (4 points)
(a)
  • 1/3 point for correct answer (11 MSS).
  • 1 point for correct justification.
(b)
  • 1/3 point for correct answer (17 MSS).
  • 1 point for correct justification.
(c)
  • 1/3 point for correct answer (8 MSS).
  • 1 point for correct justification.
Correct justification:
(a) Point X is when A received 3 duplicate ACKs. Hence, it must have set ssthresh to half the window (so, 8 MSS), and the window to ssthresh + inflation (3 MSS) = 11 MSS.
(b) Point Y is when A restarted transmitting new segments. Since it has 16 outstanding segments, it must be the case that the window is 17 MSS.
(c) Point Z is when A received the ACK for the segment that was retransmitted at point X. Hence, it must have set the window to ssthresh = 8 MSS.Question 7 (1 point)
  • 0.5 point for saying it’s congestion avoidance OR linear increase.
  • 0.5 point for correct justification.
Correct justification:
  • Since apparently A recovered from the lost segment, it must have exited fast recovery and entered congestion avoidance OR since A set its window to ssthresh at point Z, it must have entered congestion avoidance.

Last modified: Friday, 24 December 2021, 16:00