使用 wireshark 软件对协议进行还原
需要一些计算机网络的基础,还是比较容易分析的
实验基本信息:
实验环境:Windows10 x64 , WireShark3.6.2 先进行抓包,抓包过程在此不赘述,参考链接:https://blog.csdn.net/qq_44275213/article/details/118873256
(1) TCP协议分析
源IP: 172.20.120.252 | 目的IP:167.71.198.221 |
---|
源端口:59267 | 目的端口:443(https默认端口) | 源MAC:dc:71:96:5e:8a:e4 | 目的MAC:44:ec:ce:d2:ff:c3 |
一共四层:
层名 | 作用 |
---|
Frame:物理层 | 数据包概述 | Ethernet:链路层 | 双方的mac地址 | Internet Protocol:网络层 | 双方的IP地址 | Transmission Control Protocol:传输层 | TCP/UDP层,双方的端口 |
以太网帧结构:
链路层抓包(以太网头部):
其中,目的MAC(44:ec:ce:d2:ff:c3)六字节,源MAC(dc:71:96:5e:8a:e4)六字节,类型(0x0800)两字节,0x0800 表示 IPv4 协议
我们可以得到应该以IPv4的格式分析下面的数据 Ipv4数据报格式:
网络层抓包(IP数据头部):
结构名称 | 解释 | 在实例中的体现 |
---|
IP版本,首部长度 | 版本为4,头部长度为20字节(以4字节为一单位,故写5) | 0x45 | 区分服务 | 默认为0x00 | 0x00 | 总长度 | 总长度为52 | 0x0034 | Id | 50972 | 0xc71c | 三个标志位3bits+片位移13bits | 其中不得分片有效 | 0x40 | 生存时间TTL | 128 | 0x80 | 上层协议 | 6代表tcp协议 | 0x06 | 首部校验和 | 在此失效 | 0x0000 | 源IP | 172.20.120.252 | 0xac1478fc | 目的IP | 167.71.198.221 | 0xa74c6dd |
下面分析TCP报文段结构:
传输层抓包(TCP报文头部):
结构名称 | 解释 | 在实例中的体现 |
---|
源端口 | 59267 | 0xe783 | 目的端口 | 443(https默认端口) | 0x01bb | 序列号 | 436007830 | 0x19fcf396 | 确认号 | 0 | 0x00000000 | TCP首部长度 | 二进制1000 | 0x80 | 首部长度+保留+八个标志位(图中只有六个标志位) | ------ | 0x8002 | 窗口大小 | 64240 | 0xfaf0 | 检验和 | 0x935c | 0x935c | 紧急指针 | 0 | 0x0000 | 选项 | ------ | 0x020405b40103030801010402 |
到此,TCP头部结束
(2) UDP协议分析
随机抓取一个UDP包,物理层、链路层、网络层基本不变,除了蓝框里由TCP(06)变成了UDP(17)
下面分析不同的传输层 UDP报文段结构:
结构名称 | 解释 | 在实例中的体现 |
---|
源端口 | 8000 | 0x1f40 | 目的端口 | 4016 | 0x0fb0 | 长度 | 311 | 0x0137 | 校验和 | ---- | 0x5f05 |
后面全都是数据:
|