Homework 4
1 Instructions: 
  Complete all of the steps below and answer all of the questions (each of 
  which is enclosed in a box). Only submit your answers to the questions.
  
2 Steps and Questions: 
- 
    Read about the Time Service 
    (RFC 868).
    
 
- 
    What port does the time service run on?
    
 
- 
    What does this mean?
    
 
- 
    Read about the 
    NIST Time Servers.
    
 
- 
    What does NIST stand for?
    
 
- 
    What is the minimum time between queries that the NIST Internet Time 
    Service allows?
    
 
- 
    Download the following two Java applications (you only need the 
    bytecode but may be interested in the source code as well):
    
 
- 
    Make sure you can run both applications from the command 
    line (i.e., 
java UDPTimeClient time.nist.gov and
    java TCPTimeClient time.nist.gov where 
    time.nist.gov is the host/server).
    If you have problems you should find another host/server
    that supports the Time Service (e.g., www.ustiming.org).
     
- 
    Start Wireshark, choose an appropriate device/interface, and filter
    for UDP.
    
 
- 
    Start a live capture.
    
 
- 
    Why might Wireshark be capturing some UDP packets even though you haven't
    executed the UDPTimeClient.
    
 
- 
    Execute the UDPTimeClient.
    
 
- 
    Stop the capture.
    
 
- 
    Why was DNS used?
    
 
- 
    What can you learn by looking at the UDP datagrams related to DNS?
    
 
- 
    Given the description of the protocol in the RFC, how many UDP
    datagrams would you expect to capture as a result of executing the
    UDPTimeClient (ignoring those related to DNS)?
    
 
- 
    Why might you capture only one UDP datagram?
    
 
- 
    What port on the client was used for the request?
    
 
- 
    What port on the client was the response sent to?
    
 
- 
    Clear the existing filter and start filtering for TCP.
    
 
- 
    Start a live capture.
    
 
- 
    Execute the TCPTimeClient.
    
 
- 
    Stop the capture.
    (Note: If the application "times out", repeat the last three steps.)
    
 
- 
    Find the first segment of the connecttion.
    
 
- 
    How do you know it's the first segment?
    
 
- 
    What are the next two segments of this connection?
    
 
- 
    What is the next segment of this connection?  (Note: Make sure you
    look at the next TCP segment.) What are the 
Seq
    and Ack values?
    
 
- 
    What is the next segment of this connection? 
    What are the 
Seq and Ack values?
    Why?
    
 
- 
    How is the connection closed?
    
 
- 
    Clear the existing filter and start filtering for HTTP.
    
 
- 
    Start a live capture.
    
 
- 
    In a browser tab/window, load the URL 
    http://w3.cs.jmu.edu/bernstdh/cs460/helloworld.html
 
- 
    Stop the live capture.
    
 
- 
    Select the GET request.
    
 
- 
    What TCP port was used on the client?
    
 
- 
    Start a live capture.
    
 
- 
    In a browser tab/window, load the URL 
    http://w3.cs.jmu.edu/bernstdh/cs460/grimm.html
 
- 
    Stop the live capture.
    
 
- 
    Select the response. (Hint: First find the GET request, then find a
    response from the server to the client with a code of 200 and 
    a content type of text/html.)
    
 
- 
    What is the Content-Length of the HTTP response?
    
 
- 
    Is that the entire length of the HTTP response?
    
 
- 
    How many TCP segments were used to transmit the response, how long
    were most of the segments, and what was the total length of all of
    the TCP segments?
    
 
- 
    Select a TCP segment.
    
 
- 
    Click on Statistics-TCP StreamGraph-RTT Graph
 
- 
    What were the smallest and largest RTTs?
    
 
- 
    In a browser tab/window, load the URL 
    http://www.gutenberg.org/files/2591/2591-h/2591-h.htm
 
- 
    What Content-Encoding was used in the response?
    
 
- 
    What is the Content-Length of the HTTP response?
    
 
- 
    After the content was decoded, how big was it?
    
 
- 
    What software performed the decoding and when?
    
 
- 
    What are the implications of the encoding/decoding process for
    the network?