1
CPS 470/570: Wireshark Lab TCP due 11:55 PM, Wednesday, 3-22-2017 (100 pts)
Receive 5 bonus points if submit it without errors at least one day before deadline
Receive an F for this course if any academic dishonesty occurs
1. Purpose The goal of this lab is to introduce you to Wireshark and observe TCP traces in Wireshark.
2. Description
2.1. Overview
In this assignment, you will connect to our course website and observe the network protocols in
your computer “in action,” interacting and exchanging messages with protocol entities executing
elsewhere in the Internet. You will observe, and you will learn, by doing.
2.2. Details
a) Getting Wireshark
The basic tool for observing the messages exchanged between executing protocol entities is
called a packet sniffer. As the name suggests, a packet sniffer captures (“sniffs”) messages
being sent/received from/by your computer; it will also typically store and/or display the
contents of the various protocol fields in these captured messages. A packet sniffer itself is
passive. It observes messages being sent and received by applications and protocols running
on your computer, but never sends packets itself. Similarly, received packets are never
explicitly addressed to the packet sniffer. Instead, a packet sniffer receives a copy of packets
that are sent/received from/by application and protocols executing on your machine.
Figure 1 shows the structure of a packet sniffer. At the right of Figure 1 are the protocols (in
this case, Internet protocols) and applications (such as a web browser or ftp client) that
normally run on your computer. The packet sniffer, shown within the dashed rectangle in
Figure 1 is an addition to the usual software in your computer, and consists of two parts. The
packet capture library receives a copy of every packet that is sent from or received by your
computer. Recall from the discussion from section 1.5 in the text (Figure 1.24) that messages
exchanged by higher layer protocols such as HTTP, FTP, TCP, UDP, DNS, or IP all are
eventually encapsulated in link-layer frames that are transmitted over physical media such as
an Ethernet cable. In Figure 1, the assumed physical media is an Ethernet, and so all upper
layer protocols are eventually encapsulated within an Ethernet frame. Capturing all link-layer
frames thus gives you all messages sent/received from/by all protocols and applications
executing in your computer. The second component of a packet sniffer is the packet
analyzer, which displays the contents of all fields within a protocol message.
2
Figure 1. Packet sniffer structure
You will be using the Wireshark packet sniffer [http://www.wireshark.org/] for this
assignment, allowing you to display the contents of messages being sent/received from/by
protocols at different levels of the protocol stack. In order to run Wireshark, you will go to
http://www.wireshark.org/download.html and download/install the Wireshark binary for your
computer. The Wireshark FAQ has a number of helpful hints and interesting tidbits of
information, particularly if you have trouble installing or running Wireshark.
b) Running Wireshark When you run the Wireshark program, the Wireshark graphical user interface shown in
Figure 2 will be displayed. Initially, no data will be displayed in the various windows.
Figure 2. Wireshark Graphical User Interface
3
The best way to learn about any new piece of software is to try it out! We’ll assume that
your computer is connected to the Internet via a wired Ethernet interface. Do the
following
1. Start up your favorite web browser, which will display your selected homepage.
2. Start up the Wireshark software. You will initially see a window similar to that shown in Figure 2.
3. To begin packet capture, select Capture Options under Capture (see Figure 2). This will cause the “Wireshark: Capture Options” window to be displayed, as shown in Figure 3.
Figure 3. Wireshark Capture Options Window
4. You can use most of the default values in this window, but uncheck “Hide capture info
dialog” under Display Options. In case your computer has more than one active network
interface (e.g., if you have both a wireless and a wired Ethernet connection), you will
need to select an interface that is being used to send and receive packets (mostly likely
the wired interface). After selecting the network interface (or using the default interface
chosen by Wireshark), click Start. Packet capture will now begin - all packets being
sent/received from/by your computer are now being captured by Wireshark!
5. Once you begin packet capture, a packet capture summary window will appear, as shown in Figure 4. This window summarizes the number of packets of various types that are
4
being captured, and (importantly!) contains the Stop button that will allow you to stop
packet capture. Don’t stop packet capture yet.
Figure 4. Wireshark Packet Capture Window
6. While Wireshark is running, enter the URL in your browser: http://academic.udayton.edu/zhongmeiyao/470.html and have that page displayed in your
browser. In order to display this page, your browser will contact the HTTP server at
academic.udayton.edu and exchange HTTP messages with the server in order to
download this page. The Ethernet frames containing these HTTP messages will be
captured by Wireshark.
7. After your browser has displayed the course web page, stop Wireshark packet capture by selecting stop in the Wireshark capture window (see Figure 4). This will cause the
Wireshark capture window to disappear and the main Wireshark window to display all
packets captured since you began packet capture. The main Wireshark window should
now look similar to Figure 5. You now have live packet data that contains all protocol
messages exchanged between your computer and other network entities! The HTTP
message exchanges with the academic.udayton.edu web server should appear somewhere
in the listing of packets captured. But there will be many other types of packets displayed
as well (see, e.g., the many different protocol types shown in the Protocol column in
Figure 5). Even though the only action you took was to download a web page, there were
evidently many other protocols running on your computer that are unseen by the user.
We’ll learn much more about these protocols as we progress through the textbook! For
now, you should just be aware that there is often much more going on than “meet’s the
eye”!
5
Figure 5. A snapshot of Wireshark lab
8. As shown in Figure 6, type in “http” (without the quotes, and in lower case – all protocol names are in lower case in Wireshark) into the display filter specification window at the
top of the main Wireshark window. Then select Apply (to the right of where you entered
“http”). This will cause only HTTP message to be displayed in the packet-listing window.
Figure 6. Wireshark display after step 8
listing of
captured
packets
details of
Frame 14’s
header
packet
content in
hexadecimal
and ASCII
6
9. Select the first http message shown in the packet-listing window. This should be the HTTP GET message that was sent from your computer to the academic.udayton.edu
HTTP server. When you select the HTTP GET message, the Ethernet frame, IP datagram,
TCP segment, and HTTP message header information will be displayed in the packet-
header window. By clicking on right-pointing and down-pointing arrowsheads to the left
side of the packet details window, minimize the amount of Frame, Ethernet, Internet
Protocol, and Transmission Control Protocol information displayed. Maximize the
amount information displayed about the HTTP protocol. (Note, in particular, the
minimized amount of protocol information for all protocols except HTTP, and the
maximized amount of protocol information for HTTP in the packet-header window).
10. Exit Wireshark
Congratulations! You’ve now understand how to use wireshark.
2.3. TCP
The following questions are based on the trace file tcp-ethereal-trace-1 in in http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip
Answer the following questions for the TCP segments: 1. What is the IP address and TCP port number used by your client computer (source) to transfer the file to gaia.cs.umass.edu? 2. What is the IP address and port number used by gaia.cs.umass.edu to receive the file. 3. If you did this problem on your own computer, you’ll have your own solution
7
Figure 1: IP addresses and TCP port numbers of the client computer (source) and gaia.cs.umass.edu
4. What is the sequence number of the TCP SYN segment that is used to initiate the TCP connection between the client computer and gaia.cs.umass.edu? What is it in the segment that identifies the segment as a SYN segment? The SYN flag is set to 1 and it indicates that this segment is a SYN segment.
8
Figure 2: Sequence number of the TCP SYN segment
5. What is the sequence number of the SYNACK segment sent by gaia.cs.umass.edu to the client computer in reply to the SYN? What is the value of the ACKnowledgement field in the SYNACK segment? How did gaia.cs.umass.edu determine that value? What is it in the segment that identifies the segment as a SYNACK segment?
9
Figure 3: Sequence number and Acknowledgement number of the SYNACK segment
6. What is the sequence number of the TCP segment containing the HTTP POST command? Note that in order to find the POST command, you’ll need to dig into the packet content field at the bottom of the Wireshark window, looking for a segment with a “POST” within its DATA field.
10
Figure 4: Sequence number of the TCP segment containing the HTTP POST command
7. Consider the TCP segment containing the HTTP POST as the first segment in the TCP connection. What are the sequence numbers of the first six segments in the TCP connection (including the segment containing the HTTP POST)? At what time was each segment sent? When was the ACK for each segment received? Given the difference between when each TCP segment was sent, and when its acknowledgement was received, what is the RTT value for each of the six
segments? What is the EstimatedRTT value (see page 237 in text) after the
receipt of each ACK? Assume that the value of the EstimatedRTT is equal to the measured RTT for the first segment, and then is computed using the
EstimatedRTT equation on page 237 for all subsequent segments. Note: Wireshark has a nice feature that allows you to plot the RTT for each of the TCP segments sent. Select a TCP segment in the “listing of captured packets” window that is being sent from the client to the gaia.cs.umass.edu server. Then select: Statistics->TCP Stream Graph- >Round Trip Time Graph.
11
Figure 5: Segments 1 – 6
Figure 6: ACKs of segments 1 – 6
12
Figure 7: Round Trip Time Graph
8. What is the length of each of the first six TCP segments?
Figure 8: Lengths of segments 1 – 6
13
9. What is the minimum amount of available buffer space advertised at the received for the entire trace? Does the lack of receiver buffer space ever throttle the sender?
Figure 9: Minimum receive window advertised at gaia.cs.umass.edu (packet No. 2)
10. Are there any retransmitted segments in the trace file? What did you check for (in the trace) in order to answer this question?
14
Figure 10: Sequence numbers of the segments from the source (192.168.1.102) to the
destination (128.119.245.12)
11. How much data does the receiver typically acknowledge in an ACK? Can you identify cases where the receiver is ACKing every other received segment (see Table 3.2 on page 247 in the text).
15
Figure 8: Cumulative ACKs (No. 80, 87, 88, etc) where the receiver is ACKing every other received segment.
12. What is the throughput (bytes transferred per unit time) for the TCP connection? Explain how you calculated this value.