哈尔滨工业大学
<<计算机网络>>
实验报告
(2018 年度春季学期)
姓名:
学号:
学院:
教师:
许家乐
1150310329
计算机学院
李全龙
<<计算机网络>>实验报告
实验五 利用 Wireshark 进行协议分析
一、实验目的
熟悉并掌握 Wireshark 的基本操作,了解网络协议实体间进行交互以
及报文交换的情况。
二、实验内容
(1)学习 Wireshark 的使用
(2)利用 Wireshark 分析 HTTP 协议
(3)利用 Wireshark 分析 TCP 协议
(4)利用 Wireshark 分析 IP 协议
(5)利用 Wireshark 分析 Ethernet 数据帧
选做内容:
(a)利用 Wireshark 分析 DNS 协议
(b)利用 Wireshark 分析 UDP 协议
(c)利用 Wireshark 分析 ARP 协议
三、实验过程及结果
(一)wireshark 的使用
(二)HTTP 分析
(1) HTTP GET/response 交互
- 1 -
<<计算机网络>>实验报告
①你的浏览器运行的是 HTTP1.0,还是 HTTP1.1?你所访问的服务器所运行
HTTP 协议的版本号是多少?
我的浏览器:HTTP1.1
服务器:HTTP1.1
②你的浏览器向服务器指出它能接收何种语言版本的对象?
zh-CN,简体中文
③你的计算机的 IP 地址是多少?服务器 http://www.hit.edu.cn 的 IP 地址是
多少?
我的计算机:172.17.20.214
服务器:219.217.226.15
④从服务器向你的浏览器返回的状态代码是多少?
200
(2) HTTP 条件 GET/response 交互
①分析你的浏览器向服务器发出的第一个 HTTP GET 请求的内容,在该请求报文
- 2 -
<<计算机网络>>实验报告
中,是否有一行是:IF-MODIFIED-SINCE?
没有
②分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获
知?
服务器明确返回了内容
HTTP Status Code(状态代码)为 304 时不明确返回文件
HTTP Status Code(状态代码)为 200 时明确返回文件
③分析你的浏览器向服务器发出的较晚的“HTTP GET”请求,在该请求报文中
是否有一行是:IF-MODIFIED-SINCE?如果有,在该首 部行后面跟着的信息是
什么?
有
这个字段后面代表的是时间,即咨询服务器在这个时候之后是否有更新
④服务器对较晚的 HTTP GET 请求的响应中的 HTTP 状态代码是多少?服务器是
否明确返回了文件的内容?请解释。
请求响应中的 HTTP 状态代码为 304。
不会明确返回文件,因为根据之前 HTTP 的 GET 请求中 IF-MODIFIED-SINCE
- 3 -
<<计算机网络>>实验报告
字段内的时间服务器判断结果为 Not Modified,于是客户端可以使用本地这个
没有过期的缓存文件。
(三)TCP 分析
报文捕获:
①向 gaia.cs.umass.edu 服务器传送文件的客户端主机的 IP 地址和 TCP 端
口号是多少?
192.168.199.228
14498
②Gaia.cs.umass.edu 服务器的 IP 地址是多少?对这一连接,它用来 发送和
接收 TCP 报文的端口号是多少?
128.119.245.12
80
③客户服务器之间用于初始化 TCP 连接的 TCP SYN 报文段的序号 ( sequence
number)是多少?在该报文段中,是用什么来标示该报文段是 SYN 报文段的?
如图,初始化 TCP 连接的 TCP SYN 报文段的序号是 0;
- 4 -
<<计算机网络>>实验报告
通过 Flags 标志位,将其中的 SYN 位置为 1,表示该报文段是 SYN 报文段
④ 服 务 器 向 客 户 端 发 送 的 SYNACK 报 文 段 序 号 是 多 少 ? 该 报 文 段 中 ,
Acknowledgement 字段的值是多少? Gaia.cs.umass.edu 服务器 是如何决定
此值的?在该报文段中,是用什么来标示该报文段是 SYNACK 报文段的?
如上图, 服务器端向客户端发送的报文段序号为 0;
服务器发的 acknowledgment number 字段是根据上一次客户端发给服务器的
seq+1 得到的;
通过 Flags 标志位中的 SYN 位和 ACK 位都是 1 来确定该报文段是一个 SYN ACK
报文段的。
⑤你能从捕获的数据包中分析出 tcp 三次握手过程吗?
首先客户端向服务器发送 seq=0 的建立连接的请求
然后服务器向客户端返回 seq=0,ack=0+1=1 的响应
⑥包含 HTTP POST 命令的 TCP 报文段的序号是多少?
Seq=151791
- 5 -
<<计算机网络>>实验报告
⑦如果将包含 HTTP POST 命令的 TCP 报文段看作是 TCP 连接上的 第一个报
文段,那么该 TCP 连接上的第六个报文段的序号是多 少?是何时发送的?该
报文段所对应的 ACK 是何时接收的?
第六个报文段 Seq=7301,在 http post 发送之前,tcp 连接建立之后发送。
对应的 ack 即为服务器返回的第六个 ack。
⑧前六个 TCP 报文段的长度各是多少?
- 6 -
<<计算机网络>>实验报告
⑨在整个跟踪过程中,接收端公示的最小的可用缓存空间是多少? 限制发送端
的传输以后,接收端的缓存是否仍然不够用?
如图,接收端公示的最小的可用缓存空间是 29200,该窗口大小会一直增加,
所以不会出现接收端的缓存是否仍然不够用的情况。
⑩在跟踪文件中是否有重传的报文段?进行判断的依据是什么?
没有出现重传,因为客户端发送的报文序列号没有出现重复。
⑪TCP 连接的 throughput 是多少?请写出你的计算过程
由图可知,发送数据总的长度为 152871B+109*54B=158757B
发送时间间隔约为 1.673847s
因此吞吐量为 158757B/1.673847s=94845.59bps
(四)IP 分析
A.对捕获的数据包进行分析
1.在你的捕获窗口中,应该能看到由你的主机发出的一系列 ICMP Echo Request
包和中间路由器返回的一系列 ICMP TTL-exceeded 消息。选 择第一个你的主
- 7 -