余利区

 找回密码
 立即注册
查看: 92|回复: 0

(计算机网络实验3) 利用 Wireshark 进行协议分析

[复制链接]

3

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-1-16 14:03:59 | 显示全部楼层 |阅读模式
@toc
教训


  • IP地址是ipv6地址,造成实验难以进行 原因:是访问了IPV6网站,更改访问网站为IPv4网站(http://www.baidu.com或http://today.hit.edu.cn/等)
  • 进行HTTP分析时 HTTP POST找不到,没有POST记录 原因:因为访问国外网站使用了代理服务器,忘记退出代理服务器……
  • 错误理解包含 HTTP POST 命令的 TCP 报文段的序号 包含 HTTP POST 命令的 TCP 报文段为TCP建立连接后发送的第一个报文段
  • 错误计算TCP 连接的 throughput (bytes transferred per unit time) throughput = 数据报总长度/时间间隔
1.实验目的

熟悉并掌握 Wireshark 的基本操作,了解网络协议实体间进行交互以及报文交换的情况。
2.实验内容

1) 学习 Wireshark 的使用 2) 利用 Wireshark 分析 HTTP 协议 3) 利用 Wireshark 分析 TCP 协议 4) 利用 Wireshark 分析 IP 协议 5) 利用 Wireshark 分析 Ethernet数据帧 6) 利用 Wireshark 分析 DNS 协议 7) 利用 Wireshark 分析 UDP 协议 8) 利用 Wireshark 分析 ARP 协议
3.实验过程

一、Wireshark 的使用

(1)启动主机上的 web 浏览器和Wireshark。
(2)在运行分组俘获的同时,在浏览器地址栏中输入某网页的URL:http://www.hit.edu.cn。 当完整的页面下载完成后,单击 Wireshark 菜单栏中的 stop 按钮,停止分组俘获。
(3)在显示筛选规则中输入“http”,单击“回车”,分组列表窗口将只显示HTTP协议报文。  



在这里插入图片描述

二、分析HTTP协议

HTTP GET/response 交互

开始Wireshark分组俘获,在打开的Webbrowser窗口中输入一下地址:http://hitgs.hit.edu.cn/news,停止分组俘获。



在这里插入图片描述

(1)你的浏览器运行的是 HTTP1.0,还是 HTTP1.1?你所访问的服务 器所运行 HTTP 协议的版本号是多少? 我的浏览器运行的是HTTP 1.1。我所访问的服务器所运行 HTTP 协议的版本号是HTTP 1.1。 (2)你的浏览器向服务器指出它能接收何种语言版本的对象? 简体中文 (3)你的计算机的 IP 地址是多少?服务器 http://hitgs.hit.edu.cn/news 的 IP 地址是多少? 计算机的 IP地址是172.20.23.25,服务器的IP地址是202.118.254.136。 (4)从服务器向你的浏览器返回的状态代码是多少? 状态代码是200
HTTP 条件 GET/response 交互


  • 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中的“Internet 选项”命令,在出现的对话框中,选择“删除文件”)。
  • 启动 Wireshark 分组俘获器。开始 Wireshark 分组俘获。
  • 在浏览器的地址栏中输入以下 URL: http://today.hit.edu.cn/,在你的浏览器中重新输入相同的 URL 或单击浏览器中的“刷新”按钮。
  • 停止 Wireshark 分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的 HTTP 报文。



在这里插入图片描述

(1)分析你的浏览器向服务器发出的第一个 HTTP GET 请求的内容,在该请求报文中,是否有一行是: IF-MODIFIED-SINCE? 没有 (2)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?   明确返回了文件的内容,因为返回的状态码是200 (3)分析你的浏览器向服务器发出的较晚的“HTTP GET”请求,在该请求报文中是否有一行是: IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么? (4)服务器对较晚的 HTTP GET 请求的响应中的 HTTP 状态代码是多少?服务器是否明确返回了文件的内容?请解释。 状态码是304,明确返回了文件内容:If-Modified-Since: Mon, 29 Feb 2016 08:57:12 GMT。表示上一次文件修改的时间
三、TCP 分析

俘获大量的由本地主机到远程服务器的 TCP 分组



在这里插入图片描述

浏览追踪信息

(1) 向 http://gaia.cs.umass.edu 服务器传送文件的客户端主机的 IP 地址和 TCP 端口号是多少? 客户端主机的 IP 地址:172.20.23.25 TCP 端口号:54300 (2) http://Gaia.cs.umass.edu 服务器的 IP 地址是多少?对这一连接,它用来发送和接收 TCP 报文的端口号是多少? http://Gaia.cs.umass.edu 服务器的 IP 地址:128.119.245.12,端口号是:80
TCP 基础

(1) 客户服务器之间用于初始化 TCP 连接的 TCP SYN 报文段的序号 (sequence number)是多少?在该报文段中,是用什么来标示该报文段是 SYN 报文段的?



在这里插入图片描述

初始化 TCP 连接的 TCP SYN 报文段的序号是 0;通过Flags标志位来标示该报文段是 SYN 报文段的 (2) 服务器向客户端发送的 SYNACK 报文段序号是多少?该报文段中,Acknowledgement 字段的值是多少?http://Gaia.cs.umass.edu 服务器 是如何决定此值的?在该报文段中,是用什么来标示该报文段是 SYNACK 报文段的?
服务器端向客户端发送的报文段序号为 0;Acknowledgement字段的值是1,服务器根据上一次客户端发给服务器的序号seq+1 得到Acknowledgement字段的值; 通过Flags标志位中的SYN位和ACK位来确定该报文段是一个SYN ACK报文段的。
(3) 你能从捕获的数据包中分析出 tcp 三次握手过程吗? 客户端先向服务器发送 seq = 0 的建立连接的请求;然后服务器向客户端返回 seq = 0, ack = 1 的响应。 (4) 包含 HTTP POST 命令的 TCP 报文段的序号是多少?



在这里插入图片描述

序列号是 694 (5) 如果将包含 HTTP POST 命令的 TCP 报文段看作是 TCP 连接上的第一个报文段,那么该 TCP 连接上的第六个报文段的序号是多少?是何时发送的?该报文段所对应的 ACK 是何时接收的?



在这里插入图片描述

由上图可得,第六个报文段的序号是:7794 第六个报文段的发送时间是TCP建立后(Nov  6, 2019 22:36:36.848443000 中国标准时间) ACK 接收的时间是Nov  6, 2019 22:36:36.848775000 中国标准时间 (6) 前六个 TCP 报文段的长度各是多少?



在这里插入图片描述

前六个 TCP 报文段的长度依次是693、1460、1460、1460、1460和1460 bytes (7) 在整个跟踪过程中,接收端公示的最小的可用缓存空间是多少? 限制发送端的传输以后,接收端的缓存是否仍然不够用?



在这里插入图片描述

接收端公示的最小的可用缓存空间是131328,该窗口大小一直增大,说明限制发送端的传输以后接收端的缓存够用。 (8) 在跟踪文件中是否有重传的报文段?进行判断的依据是什么?  



在这里插入图片描述

没有重传,因为客户端发送的序列号没有重复。 (9) TCP 连接的 throughput (bytes transferred per unit time)是多少?请写出你的计算过程。 数据总长度:152685+10854=164422B   时间间隔:1.74586s 吞吐量:164422/1.74 = 9.6105bps
四、IP 分析

A. 通过执行 traceroute 执行捕获数据包 实验步骤: 1. 启动 Wireshark 并开始数据包捕获 2. 启动 pingplotter 并“Address to Trace Window”域中输入目的地址。在“# of times to Trace”域中输入“3”,这样就不过采集过多的数据。Edit->Options->Packet,将 Packet Size(in bytes,default=56)域设为 56,这样将发送一系列大小为 56 字节的包。 然后按下“Trace”按钮。得到的pingplotter 窗口如图所示。



在这里插入图片描述

3. Edit->Options->Packet,然后将 Packet Size(in bytes,default=56)域改为 2000,这样将发送一系列大小为 2000 字节的包。然后按下“Resume”按钮。 4. 最后,将 Packet Size(in bytes,default=56)域改为 3500,发送一系列大小为 3500 字节的包。然后按下“Resume”按钮。 5. 停止 Wireshark 的分组捕获。 B. 对捕获的数据包进行分析



在这里插入图片描述

(1) 你主机的IP地址是什么?
172.20.23.25 (2) 在IP数据包头中,上层协议(upper layer)字段的值是什么?
上层协议(upper layer)字段的值是01
(3) IP头有多少字节?该IP数据包的净载为多少字节?并解释你是怎样确定
IP 头有 20 字节 IP 包的净载为 Total Length-Header Length=56B-20B=46B (4) 该IP数据包的净载大小? 46B (5) 该IP数据包分片了吗?解释你是如何确定该P数据包是否进行了分片
没有分片, 因为分片的偏移量为0 (6) 你主机发出的一系列ICMP消息中IP数据报中哪些字段总是发生改变? TTL、ID鉴别码、头部校验和 (7) 哪些字段必须保持常量?哪些字段必须改变?为什么? 保持常量:IP版本等 必须改变:TTL、ID鉴别码、头部校验和 (8) 描述你看到的IP数据包Identification字段值的形式。 加一递增的16位 (9) Identification字段和TTL字段的值是什么?
Identification字段:16609 TTL字段的值:1 (10)    最近的路由器(第一跳)返回给你主机的ICMP Time-to-live exceeded消息中这些值是否保持不变?为什么? 不变,因为是第一跳的路由器返回的Time-to-live exceeded消息。因为是第⼀跳路由器发回的数据报。 B.单击Time列按钮,这样将对捕获的数据包按时间排序。找到在将包大小改为2000字节后你的主机发送的第一个ICMP Echo Request消息。思考下列问题:
(11)    该消息是否被分解成不止一个IP数据报?
该消息被分解成两个IP数据报 (12)    观察第一个IP分片,IP头部的哪些信息表明数据包被进行了分片?IP头部的哪些信息表明数据包是第一个而不是最后一个分片?该分片的长度是多少
IP头部的信息Don’t fragments、More fragments和Fragments offset表明数据包被进行了分片。若IP头部的More fragment= 1表明数据包是第一个而不是最后一个分片,否则表明数据包是最后一个分片。第一个分片长度是1480B,第二个分片长度是500B。 C. 找到在将包大小改为3500字节后你的主机发送的第一个ICMP Echo Request消息。 (13)    原始数据包被分成了多少片?



在这里插入图片描述

分为3片 (14)    这些分片中IP数据报头部哪些字段发生了变化? 前两片More fragments均为1,最后一片为0。且第二片的分片offest为1480,最后一片为2960。
五、抓取 ARP 数据包

1.利用 MS-DOS 命令: arp 或 c:\windows\system32\arp 查看主机上 ARP 缓存的内容。 2.在命令行模式下输入: ping 192.168.1.82(或其他 IP 地址) 3.启动 Wireshark,开始分组俘获。抓取的数据包大致如下图所示



在这里插入图片描述

4. 思考下面问题: (1) 利用 MS-DOS 命令:arp 或 c:\windows\system32\arp 查看主机 上 ARP 缓存的内容。说明 ARP 缓存中每一列的含义是什么?
从左到右,每一列依次是:每一个IP对应的Internet地址、物理地址和类型(动态地址) (2) 使用arp -d命令清除主机上ARP 缓存的内容,抓取 ping 命令时的数据包。ARP数据包的格式是怎样的?由几部分构成,各个部分所占的字节数是多少? 数据报格式:
9部分:硬件类型(2 字节),协议类型(2 字节),硬件地址长度(1 字节),协议地址长度(1 字节),OP(2 字节),发送端 MAC 地址(6 字节),发送端 IP 地址(4 字节),目的 MAC 地址(6 字节),目的 IP 地址(4字节) (3) 如何判断一个ARP数据是请求包还是应答包? 检测OP字段,当OP为0x0001时为请求包,OP为0x0002时为应答包。 请求包:  应答包: (4) 为什么ARP查询要在广播帧中传送,而ARP响应要在一个有着明确目的局域网地址的帧中传送? 因为ARP表中没有目的IP地址,不知道目的IP地址对应的MAC地址,所以ARP查询要在广播帧中传送。ARP响应时已经知道目的IP地址对应的MAC地址,并且局域网中的其他主机不需要此次查询的结果,所以在一个有着明确目的局域网地址的帧中传送。
六、抓取 UDP 数据包

(1)启动 Wireshark,开始分组捕获; (2)发送 QQ 消息给你的好友; (3)停止 Wireshark 组捕获; (4)在显示筛选规则中输入“udp”并展开数据包的细节  



在这里插入图片描述

(1) 消息是基于UDP的还是TCP的? UDP (2) 你的主机ip地址是什么?目的主机ip地址是什么? 主机ip地址:172.20.23.25 目的主机ip地址:223.166.151.93 (3) 你的主机发送QQ消息的端口号和QQ服务器的端口号分别是多少?  发送QQ消息的端口号:54733 QQ服务器的端口号:8000 (4) 数据报的格式是什么样的?都包含哪些字段,分别占多少字节? UDP数据报格式包括首部和数据,其中数据存放具体内容。首部有源端口号、目的端口号、数据报长度、校验和。分别占多少字节:源端口号占2个字节、目的端口号占2个字节、数据报长度占2个字节、校验和占2个字节。
(5) 为什么你发送一个ICQ数据包后,服务器又返回给你的主机一个 ICQ数据包?这UDP的不可靠数据传输有什么联系?对比前面的 TCP协议分析,你能看出UDP是无连接的吗? 服务器需返回接受的结果给客户端。 服务器仅提供一次返回的ACK,不能保证数据没有丢失。 UDP数据报没有序列号,过程中也没有三次握手发送数据,每次只发送一个数据报,然后等待响应。
七、利用 WireShark 进行 DNS 协议分析

(1)打开浏览器键入:http://www.baidu.com (2)打开 Wireshark,启动抓包. (3)在控制台回车执行完毕后停止抓包.Wireshark 捕获的 DNS 报文如图所示。



在这里插入图片描述

题目与源码

github代码链接
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云顶设计嘉兴有限公司模板设计.

免责声明:本站上数据均为演示站数据,如购买模板可以上DISCUZ应用中心购买,欢迎惠顾.

云顶官方站点:云顶设计 模板原创设计:云顶模板   Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表