使用 wireshark 抓取到的包:
主要分为五层:
-
Frame:物理层的数据帧概况
- wireshark 抓取的报文没有该层的数据,猜测和网卡有关,其中定义了数据链路层使用的协议
- 回环地址使用的是:NULL/Loopback ,其他常见还有 Ethernet
-
Ethernet II: 数据链路层以太网帧头部信息
- wireshark 抓取到的包从该层开始: 用来显示源 mac 地址、目标 mac 地址
- 回环协议该层占用:4 位 16 进制数据(02 00 00 00)
- Ethernet 占用: 12 位 16 进制数据(c0 61 18 f5 3e 62 58 fb 84 09 65 a5)
- 前 6 位目标 mac 地址,后 6 位源 mac 地址 最后 2 位表示互联网层用的协议 ipv4 :0x0800 表示使用 IP 协议
-
互联网层 IP 包头信息:
---------------------------------------------------
|0 4 8 16 31|
--------------------------------------------------
| 版本 | 首部长度 | 区分服务 | 总长度 |
--------------------------------------------------
| 标识 | 标志| 片 偏移 |
---------------------------------------------------
|生存时间|协议(tcp)| 首部校验和 |
---------------------------------------------------
| 源地址 |
---------------------------------------------------
| 目标地址 |
---------------------------------------------------
| 可选字段(长度可变) | 填充 |
---------------------------------------------------
| 数据 |
---------------------------------------------------
-
版本:4bit 表示(4 位二进制,example: 0100 ) --> ipv4 or ipv6
-
首部长度: 用 4bit 表示:
- 这个字段表示的数的单位是 32bit(4 个字节)
- 表示含义为 ip 包的包头长度,是指从"版本" 到"目的 IP 地址"结束(可能还会有填充,32bit 为单位的关系)
-
区分服务:占 8bit ,不关心具体内容,跳过
-
总长度: ip 包的总长度
- 从"版本"开始,一直到数据包的末尾.
- 单位是 8bit (一个字节)
-
源 IP 地址:
-
目标 IP 地址:
-
传输层 tcp 数据信息: 也就是"互联网层"中的"数据"
- tcp 首部(tcp 头部):固定 20 个字节
- 开头是原端口和目标端口
- 原端口: 16bit
- 目标端口: 16 bit
- 20 个字节后就是 tcp 真正的数据了
案例分析:
tcpdump 详解:
https://www.cnblogs.com/f-ck-need-u/p/7064286.html
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于