## COSC 4377 - Introduction to Computer Networks Section 07925, Fall 2000

### Due in the class, on Wednesday, November 1st, 2000 (No late assignment will be accepted, unless approved by instructor.)

K&R = Kurose & Ross

1) ( K&R, Ch3, Prob 17) [10+10 points] Consider transferring an enormous file of L bytes from host A to host B. Assume an MSS of 1460 bytes.

1. What is the maximum value of L such that TCP sequence numbers are not exhausted ?
2. 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 10 Mbps link. Ignore flow control and congestion control, so A can pump out the segments back-to-back and continuously.

2) (Based on Peterson & Davie, Ch 5, Prob 18): [15 points] Suppose that TCP is measuring RTTs of 1.0 seconds, with a mean deviation of 0.1 seconds. Suddenly the RTT jumps to 5.0 seconds, with no deviation. Show the sequence of RTT values before they stabilize. How many timeouts will be encountered in the process ? Assume the relevant constant "x" is 1/8.

3) (K&R, Ch 3, Prob 21): [15+10 points] Recall the idealized model for the steady-state dynamics of TCP. In the period of time from when the connections window size varies from (W * MSS) / 2 to W * MSS, only one packet is lost (at the very end of the period).

1. Show that the loss rate is equal to:
L = loss rate = 1 / [(3/8)W2 + (3/4)W]
2. Use the above result to show that if a connection has loss rate L, then its average bandwidth is approximately given by :
1.22 * MSS / [RTT * sqrt (L)]
3. (hint: you may assume that W is large)

4) (K&R, Ch3, Prob 22): [20 points] Consider sending an object of size O = 100 Kbytes from server to client. Let S = 536 bytes and RTT = 100msec. Suppose the transport protocol uses static window with window size W.

1. For a transmission rate of 28 Kbps, determine the minimum possible latency.
2. Determine the minimum window size that achieves this latency.
3. Repeat above for transmission rates of 100Kbps, 1Mbps and 10Mbps.

5) [20 points] Use sniffer (ethereal) to monitor network activities.

You are asked to monitor all the packets to and from the testing machine (any Linux machine in 547 PGH, or your own PC with internet connection) while loading ANY of the following web pages. You start ethereal wrapper program (wp_ethereal). And then type in address of the web page of your choice in the browser. Capturing 400 packets should be sufficient (increase the number if necessary). After browser finishes loading the web page, re-load the web page.

(1) You should report number of packets for TCP, HTTP, DNS (including YPSERV; will explain later), and total number of packets for the first time and the second time (re-load). (You should be aware of caching in your browser. If the object has been cached, the number of packets could be different. Clear the memory / disk cache of your browser before starting capturing.) Report if any number changes between these two.

(2) Also, report number of objects in the web page of your choice, including HTML file, graphics (gif or jpeg), etc.

(3) Use "Follow TCP Stream" to view messages exchanged and report which version of HTTP protocol has been used.

(4) Identify the first three-way handshake and report the time used for three-way handshake. [Oberve if any flag (URG, ACK, PSH, RST, SYN, and FIN) is on for any of TCP packets. See if you can identify the sequence of closing a TCP connection.]

(5) What are the window sizes of TCP packets for first three-way handshake on client and on server? [Observe the changes of TCP window size of one HTTP request.]

When there is a DNS request on any of Linux machines in 547 PGH, OS will first send a request to NIS server (or YP server). If NIS server doesn't have the info, it will send the request to DNS server.

You will find instruction to use ethereal helpful.