# MCS-394 Homework (Spring 2002)

When turning in a homework problem, if it is one from the book, you should indicate not only the exercise number, but also which kind of exercise it is: review question, problem, or discussion question. The code I will use for this is as follows: 1.r2 is review question 2 of chapter 1; 1.p7 is problem 7 of chapter 1; 1.d1 is discussion problem 1 of chapter 1. Please use this code when you turn in the problems, and I will use them in reporting back your standing on the homework. For any problems that are not from the book, I will specify the problem number to use, which will have an x in it (e.g., 1.x2).

Note that I will add problems to this list from time to time, but unless I warn you otherwise, only by adding entire new chapters at the end. So if you check back, tell your browser to reload the page (in case it has an old version cached) and then look and see if there are any new chapters after what used to be the last chapter with problems

## Chapter 1

• Problem 1.r2, p. 64.
• Problem 1.p7, pp. 67-68.
• Problem 1.d1, p. 68.

## Chapter 2

• Problem 2.r12, p. 160. Assume Bob's mail server is different from Alice's.
• Problem 2.r18, p. 160. Assume the organization's web and mail servers are different. For example, they might be www.foo.com and mail.foo.com, each with a type A record with a different IP address. Web access to foo.com should be just like to www.foo.com, whereas mail addressed to foo.com should go to mail.foo.com. What RR type is used to provide the translation of foo.com in each context? (The book just asks about the mail context; I want both.) There may be more than one correct answer.
• Problem 2.p6, p. 162.
• Problem 2.p8, p. 162. Don't just repeat the RFC's technical description of what UIDL does. Summarize it, but also give some thought to what that function might be useful for.

## Chapter 3

• Problem 3.r6, p. 261.
• Problem 3.p3, p. 262. Note that this problem refers to a correction in protocol rdt2.1 that may not have been fully made in your book. The original (buggy) version of rdt2.1 had the receiver FSM shown in the problem on page 262 in place of that in Figure 3.12 on page 189. It also had buggy text at the bottom of page 189, which your book may well still have: "A negative acknowledgement is sent whenever a corrupted packet or an out-of-order packet is received." This refers to the buggy FSM on page 262. The correct text for page 189, to go with Figure 3.12, is "When an out-of-order packet is received, the receiver sends a positive acknowledgement for the packet it has received. When a corrupted packet is received, the receiver sends a negative acknowledgment." Also, the problem itself has a typo in it: the question should be how a deadlock can occur when the FSM on p. 262 is used together with that of Figure 3.11 (not 3.12). Assume that the sender starts in the "Wait for call 0 from above" state and the receiver starts in the "Wait for 0 from below" state.
• Problem 3.p9, p. 263.
• Problem 3.x1: Normally if a TCP host receives a segment with sequence number 1000 and length 1460 (for example), it will respond with an ACK of 2460, since that is the sequence number of the next byte anticipated. Suppose instead that it sent two ACKs, one with the ACK number field being 2000 and the second with it being 2460. In terms of the simplified TCP sender of Figure 3.31 (p. 217), is there any harm in this "divided ACK"? Next, consider the TCP congestion control algorithm as described on page 242. What would the impact of the divided ACK be on this algorithm? Is this a good or a bad thing?

## Chapter 4

• Problems 4.r23 and 4.r25, p. 370. (I will mark these as a single problem, which I will label 4.r2325.)
• Problem 4.p3, pp. 370-371.
• Problem 4.p4, p. 371.

## Chapter 5

• Problem 5.p4, p. 474.
• Problem 5.p14, p. 476.
• Problem 5.p15, p. 476.

## Chapter 6

• Problem 6.p11, p. 560.
• Problem 6.p15, p. 561.
• Problem 6.p17, p. 561.

## Chapter 8

• Problem 8.x1: Do any of the problems at the end of chapter 8 (in any category) that looks interesting to you. Label the problem as 8.x1 and also the problem's actual number.
• Problem 8.x2: Do any of the problems at the end of chapter 8 (in any category) that looks interesting to you, other than the one you did for 8.x1. Label the problem as 8.x2 and the problem's actual number.

Instructor: Max Hailperin