Problem 2 (25 points)


Question 1 (5 points):

  • 2 points for each of the big subnets:
    • 1 point for end-systems, 
    • 0.5 points for the router, 
    • 0.5 points for the broadcast IP address.
  • 1/3 points for each of the small subnets.
  • OK if there’s no broadcast IP address.
Partial:
  • If a subnet is not minimal: half the points.
  • If a subnet overlaps with another subnet: 0 points.
  • If a student read 1000 instead of 10000: full points (as long as they did it correctly and subject to the partial rules above).
----

Question 2 (8 points):

  • 1 point for the ARP request.
  • 1 point for the ARP response.
  • 2x 0.5 points for the DNS request.
  • 2x 0.5 points for the DNS response.
  • 2x 0.5 points for the TCP SYN.
  • 2x 0.5 points for the TCP SYN ACK.
  • 2x 0.5 points for the HTTP GET.
  • 2x 0.5 points for the HTTP OK.

No deduction for:
  • Putting the HTTP GET request in a separate packet after concluding the TCP 3-way handshake.
  • Showing packets observed at other routers.

Partial:
  • If an entry has incorrect(*) port numbers: half the points.
  • If an entry has incorrect MAC or IP addresses: 0 points.
  • If an unnecessary ARP request/response is included (the student did not consider ARP caching at R3): -1 point.
  • In general, showing incorrect packets or unnecessary extra packets gets -0.5 points overall, but it depends on the case.
(*) “Incorrect” port numbers means incorrect use of port numbers, e.g., the DNS request has source port 1000 but the DNS response has destination port 2000. The exact numbers are irrelevant. OK if the student used letters instead of numbers, as long as the use is consistent.

----

Question 3 (5 points):

(a) (3 points)
  • 1 point for saying BGP or inter-domain routing protocol.
  • 2 points for saying that it’s because R1 and R2 are border routers.
(b) (2 points)
  • 2 points for showing a correct(*) minimal prefix.
    • Partial: 1 point for showing 4.0.0.0/8.

(*) Ideally, a "correct" prefix is one that aggregates the IP prefixes that have been allocated to AS0 into as few entries as possible. However, if a student included some extra IP addresses, I counted that as correct, too. One lost points for not aggregating at all, or (partially) for showing 4.0.0.0/8.

----

Question 4 (5 points):

(a) (1 point)
  • 0.5 point for saying it’s R2, R3, and R4.
  • 0.5 point for saying that it’s because these are the routers that participate in the intra-domain routing protocol.
(b) (2 points)
  • 2x 0.5 points for the entries that route to the big subnets.
  • 3x 1/3 points for the entries that route to the small subnets.
  • OK not to have a default route for non-local traffic.
(c) (2 points)
  • 1 point for saying yes AND justifying, e.g., “R2 will route to R4 through R3, hence, R3 will have a poisoned reverse in its table such that it never routes to R4 through R2.”
  • OK if a student mentions only one poisoned reverse (i.e., they did not consider the default route for non-local traffic).
----

Question 5 (2 points):

  • 1 point for saying none.
  • 1 point for justifying correctly (*), e.g., “This failure concerns routing within an IP subnet, which is not the responsibility of the IP routers.”
(*) A "correct" justification is one that shows that the student understood that IP routing protocols are not concerned with failures inside a local IP subnet.


Problem 3 (20 points)


Question 1 (5 points):

  • 4 points for handling the timeout correctly:
    • 1 point for showing a timeout.
      • Partial: 0.5 point for showing the timeout but not re-transmitting SEQ3 when the timeout happens.
    • 0.5 point for resetting the window to 1 MSS.
    • 1 point for setting ssthresh correctly and transitioning the state correctly: either (ssthrsh=1,state=CA) or (ssthrsh=2,state=SS).
      • Partial: 0.75 point for doing (ssthrsh=1,state=SS), but setting state=CA in the next row when cwnd becomes 2.
    • 1 point for retransmitting the correct SEQ.
      • Partial: 0.5 for retransmitting other SEQ(s).
    • 0.5 point for correct duplicate ACKs in response to unordered SEQs received
  • 1 point for the rest:
    • 1/3 point for saying the state is “slow start” until the timeout.
    • 1/3 point for increasing the window from 1 to 2.
    • 1/3 point for showing correct SEQ and ACK numbers.
OK if the student delayed the 5th segment as opposed to the 4th one, as long as they did it correctly.
OK if the student delayed by a different amount, as long as it led to a timeout.

----

Question 2 (5 points):

  • 5 points for saying to modify the receiver window AND justifying it. No need for details, as long as it’s clear the student understands why they are changing the receiver window.
    • Partial: 2 points for saying to drop or delay packets AND justifying it. Again, no need for details, as long as the intention is clear.
----

Question 3 (5 points):

  • 5 points for saying to ACK Alice’s packets AND justifying it (no need for details, as above).
----

Question 4 (5 points):

(a) (2 points)
  • 1 point for answering “line 13" to the first sub-question.
  • 1 point for answering “line 13” to the second sub-question.
(b) (3 points)
  • 3 points for saying that it’s possible because an application can implement any kind of reliable data delivery protocol it wants on top of UDP.
Partial:
  • 1 point for saying “Google did it already with Quic” without explaining anything else.
  • 1 point for discussing how to improve TCP performance.
  • 0 points for saying that it’s impossible because without TCP one has to use UDP and then there won’t be any reliability.

Last modified: Friday, 25 February 2022, 11:02