本实验使用到的软件:Wireshark,官网下载链接:
实验目的
- 熟悉并掌握wireshark的基本操作,了解网络协议实体的交互及报文交换
- 利用wireshark抓包软件分析HTTP协议报文的首部格式,理解HTTP协议的工作过程
- 分析DNS的协议包头的首部格式,理解DNS协议的工作过程
- 通过对wireshark 抓包实例进行分析,进一步加深网络协议的理解
实验环境
- 连入Internet的主机一台
- 主机安装Wireshark软件
实验步骤
- 启动您的浏览器,并确保您的浏览器的缓存被清除(大多数Web浏览器使用对象缓存,请确保浏览器的缓存为空。)
- 打开wireshark软件
- 抓取HTTP协议报文,并分析HTTP协议。
- 在Windows命令行下输入nslookup命令,查看DNS解析。同时捕获DNS请求和响应报文
实验分析
1.HTTP协议分析
(1)打开wireshark抓包软件,选定网络接口开始捕获报文,浏览器清空缓存,在浏览器地址栏输入下列网址http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
(2)在浏览器出现相应的页面后,停止捕获报文,停止分组俘获。在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。将捕获结果保存为test1。
(3)打开test1的捕获文件,分析第一个请求报文和响应报文,并回答下列问题。
(1)附上与此实验相关的http请求报文和响应报文的截图
请求报文(Request):
响应报文(Response):
(2)你的主机的IP地址是多少?gaia.cs.umass.edu服务器IP地址是多少?
主机IP:192.168.133.220
服务器IP:128.119.245.12
(3)你的浏览器运行的http版本是 1.0 还是1.1? 服务器运行的版本是什么?
浏览器运行的http版本:HTTP/1.1
服务器运行的http版本:HTTP/1.1
(4)您的浏览器指示哪些语言可以接受服务器的响应?
哪些语言可以接收服务器响应:
简体中文、中文 权重0.9
英文 权重0.8
英语英国 权重0.7
英语美国 权重0.6
(5)服务器返回到浏览器的状态代码是什么?
服务器返回到浏览器的状态代码:200 OK
(6)你收到的html文件的最新修订时间是多少?
04/09/2024 Tue 05:59:02 GMT
(7)响应的html文件长度是多少?
文件长度:128Byte
(4)启动Wireshark数据包嗅探器。在浏览器中输入以下URL
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html 您的浏览器应显示一个非常简单的五行HTML文件。将捕获结果保存为test2,再次快速地将相同的URL输入到浏览器中(或者只需在浏览器中点击刷新按钮)。停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只捕获HTTP消息,并在数据包列表窗口中显示。将捕获结果保存为test3.回答下列问题
(1)检查第一个从您浏览器到服务器的HTTP GET请求的内容。您在HTTP GET中看到了“IF-MODIFIED-SINCE”行吗?
没有
(2)检查服务器响应的内容。服务器是否显式返回文件的内容? 你是怎么知道的?
是否显示返回文件内容:是
首次访问网站需要下载全部html文件(代码)
如图
(3)现在,检查第二个HTTP GET请求的内容。 您在HTTP GET中看到了“IF-MODIFIED-SINCE:”吗? 如果是,“IF-MODIFIED-SINCE:” 头后面包含哪些信息?
是否看到“IF-MODIFIED-SINCE”:是
包含哪些信息:上一次HTTP GET请求的时间
(4)针对第二个HTTP GET,从服务器响应的HTTP状态码和短语是什么?服务器是否明确地返回文件的内容?请解释.
状态码:304
短语:Not Modified
服务器是否明确地返回文件的内容:否
原因是在本地拥有缓存(从上一次GET以后文件没有任何修改),则不需要从服务器再次下载html文件,因此不明确地返回文件内容,直接读取本地缓存结果即可。
(5)启动您的浏览器。启动Wireshark数据包嗅探器。在浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只显示捕获的HTTP消息。将捕获结果保存为test4.回答下面的问题
(1)您的浏览器发送了几个HTTP GET请求消息? 这些GET请求发送到哪个IP地址?
发送了几个HTTP GET请求:3个
这些GET请求发送到哪个IP地址:
128.119.245.12
128.119.245.12
178.79.137.164
2.DNS协议分析
(1)打开wireshark,打开相应接口进行捕获
(2)在windows命令行模式下输入nslookup命令进行DNS解析。解析类型和解析地址自己确定,将命令和解析结果进行截图。
(3)停止捕获,将捕获结果保存为test5,在显示过滤器上输入dns。定位到实验解析的DNS查询报文和查询响应报文,附截图
(4)写下DNS查询的源IP地址、目的IP地址和本主机默认DNS服务器地址。其中目的IP地址是否为默认DNS地址。附截图证明。
源IP:192.168.133.220
目的IP:192.168.133.220
本主机默认DNS服务器地址:192.168.133.96
目的ID地址是否为默认DNS地址:是
nslookup中显示的默认DNS服务器:192.168.133.96
DNS请求中显示的Destination均为192.168.133.96
(5)填写相应的DNS报文各字段的值,没有的字段可填无,截图并填写下表
DNS 查询报文:
Identification |
0x0002 |
Flags |
0x0100 Standard query |
Number of Questions |
1 |
Number of answer RRs |
0 |
Number of authority RRs |
0 |
Number of additional RRs |
0 |
Queries |
baidu.com: type A, class IN |
Answers |
N/A |
Authoritative Servers |
N/A |
Additional records |
N/A |
DNS响应报文:
Identification |
0x0002 |
Flags |
0x8180 Standard query response, No error |
Number of Questions |
1 |
Number of answer RRs |
2 |
Number of authority RRs |
0 |
Number of additional RRs |
0 |
Queries |
baidu.com: type A, class IN |
Answers |
baidu.com: type A, class IN, addr 110.242.68.66 baidu.com: type A, class IN, addr 39.156.66.10 |
Authoritative Servers |
N/A |
Additional records |
N/A |
(6)DNS查询报文中包含“answers”吗?DNS响应报文,其中提供了多少个“answers”?每个answers包含哪些资源记录,请解释?
DNS查询报文中不包含answer
DNS响应报文中提供了2个answers
每个answer中包含1个DNS服务器的名称、类型、类、生存时间(TTL)数据长度、地址。
实验总结
1.总结在抓包过程中遇到的问题,你是如何解决这些问题的。
(1)如果后台有其他网页或程序运行,则会出现大量无关实验的包信息干扰实验结果。
解决方法:尽可能地关闭无关网页、后台程序。
(2)如果没有清空缓存,并非首次访问,则可能无法捕获到状态码200,而是304,因为已经在本地形成缓存。
解决方法:需要及时清空浏览器缓存,在清空后捕获首次结果。
2.应用层有哪些代表性协议,传输层有哪些代表性协议,两个层次的联系和区别是什么?
应用层代表协议:
本次实验有关的:HTTP、DNS
其他的:FTP、SMTP、POP3、DHCP、Telnet等
传输层代表协议:
TCP、UDP
两个层次的联系:
应用层向传输层提出数据传输的请求,传输层根据应用层的需求选择合适的传输协议进行数据传输。
两个层次的区别:
服务对象不同。应用层主要为用户应用程序提供服务,如Web浏览、文件传输、电子邮件等;传输层则为应用层提供服务,确保数据在应用程序之间的可靠传输。
功能侧重不同。应用层侧重于提供各种网络应用服务,如HTTP、SMTP、FTP等,这些协议针对不同的应用场景设计;传输层侧重于提供有序、可靠的的数据传输服务,主要有TCP和UDP两种协议,它们为应用层提供基本的数据传输功能。
连接方式不同。应用层协议通常建立在传输层提供的连接之上,例如HTTP/1.1支持持久连接,即在一段时间内保持连接以便多次请求和响应;传输层中的TCP是面向连接的协议,它在通信双方之间建立一个虚拟的连接,确保数据的可靠传输,而UDP是无连接的协议,每个数据报独立传输,不保证数据到达的顺序和完整性。
可靠性不同。应用层协议可以根据需要选择是否使用可靠的数据传输服务,例如HTTP协议可以选择使用TCP作为传输层协议,以确保数据的可靠传输。