一、实验环境
1. 运行 Windows 操作系统的 PC 机一台;
2. Laptop连接无线局域网
3. The Wireshark Network Protocol Analyzer协议分析软件
二、操作步骤及结果
1.安装网络协议分析仪 Wireshark;
2.启动 Wireshark,并捕获数据,Wireshark 捕获界面如下所示;
3.保存捕获的数据包;
4.在命令行方式下运行 ping 命令发送数据包,ping命令后结果如下;
ICMP
ICMPV6 数据发送界面图
5.在 Wireshark 中进行协议分析,Wireshark 协议分析界面如下;
三、结果分析
(1)Ping 命令中,(ICMP协议是TCP/IP协议的一个分支)
应用层:在应用层ping www.douyin.com 使用的是DNS协议,Ping命令本身是一个应用程序,它使用ICMP协议来发送和接收数据包。
传输层:Ping命令使用的是基于UDP的ICMP协议,因此在传输层使用的是UDP协议。
网络层:Ping命令使用的是IP协议,因此在网络层使用的是IP协议。
数据链路层:Ping命令使用的是以太网协议
ICMP协议中的字段含义
类型(Type):表示ICMP消息的类型。
代码(Code):表示ICMP消息的子类型
校验和(Checksum):用于检测ICMP消息是否被篡改
标识符(Identifier):用于标识发送方的进程
序列号(Sequence Number):用于标识发送方发送的每个ICMP消息
1.发出ARP请求报文 ,目的MAC为全F广播,请求网关ARP;
2.收到网关的ARP响应报文,学习到网关ARP地址,形成ARP地址表;
3.发出DNS请求报文(UDP报文),目的IP为DNS服务器地址,目的MAC为网关MAC;
4.收到DNS服务器的响应报文(UDP),进而知道到ping的主机的IP地址;
5.(必须)发出ICMP Request报文(ICMP协议),目的IP是ping的主机,目的MAC为网关,源IP为本机IP,源MAC为本机MAC。
6.(必须)收到ICMP Response报文。
ICMP request 分析
ICMP reply 分析
(2)捕获及分析 HTTP 协议数据包
HTTP 协议数据单元HTTP协议数据单元使用了TCP/IP协议栈中的应用层协议HTTP协议,以及传输层协议TCP协议,HTTP协议负责定义客户端和服务器之间的通信格式和规则,而TCP协议则负责在网络上传输HTTP协议定义的数据单元。在TCP/IP协议栈中,HTTP协议位于应用层,而TCP协议则位于传输层。
请求与响应
数据段
分析
每层用的协议
应用层:HTTP协议
传输层:TCP协议
网络层:IP协议
数据链路层:ARP协议
物理层:
HTTP协议数据包中的各个字段含义
1.源端口和目的端口:源端口是发送方的端口号,目的端口是接收方的端口号。
2.序列号和确认号:序列号是发送方发送的第一个字节的序号,确认号是接收方期望收到的下一个字节的序号。
3.标志位:包括URG、ACK、PSH、RST、SYN和FIN六个标志位,用于控制TCP连接的建立、维护和关闭。
4.窗口大小:用于控制TCP流量的控制和流量控制。
5.Checksum:用于检验TCP头部和数据的完整性。
6.HTTP请求或响应:包括请求方法、请求URL、HTTP版本、请求头、请求体等字段,用于描述HTTP请求或响应的内容。
四、思考
1. 通过分析用 Wireshark 捕获到的数据,能得到哪些参数?
答:Wireshark可以捕获网络数据包,并显示数据包详细信息,通过分析这些信息,可以得到以下参数:
1.源IP地址和目标IP地址
2.源端口和目标端口
3.协议类型(TCP、UDP、HTTP、ARP、ICMP等各种协议)
4.数据包大小
5.时间戳
6.数据包内容
点开可以查看每个数据包的详细内容,包括各个字段的值和解释。