(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.
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).
L = loss rate = 1 / [(3/8)W2 + (3/4)W]
1.22 * MSS / [RTT * sqrt (L)]
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.
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.
Last modified: October 25, 2000.
tihuang at cs . uh . edu