TCP/IP 数据包结构的重要性不言而喻,玩网络的人都会用到 tcpdump 抓取的数据,但是数据是以十六进制显示的,我们一般会用 Wireshark 分析 tcpdump 抓取的数据包,但是直接用肉眼去分析会更好。下面我们来看看 tcpdump 抓取的十六进制数据。
IP数据包结构:
上述数据是从 IP 数据包结构中逐一解释的,其中每个数字代表 4 位:
4:表示版本,占4位,即ipv4
5:表示IP头的长度,共占4位,表示数据包头包含多少个32位长整数,也就是包含多少个4字节的数据,如果是5的话,那么5*4=20字节
00:表示服务类型,占8位
00 3c:表示包的总长度,占16位。3c转换成十进制就是60
f2 47:表示重组标志,占16位。f247转换成十进制为62023。发送主机分配的标志,以便接收方可以重组碎片
4:表示标志,占3位,4的前3位二进制为010,即2
40 00:表示段偏移,占13位。除去前三位010,其余全为0。
40:表示生存期,占8位,每经过一个路由器减一tcp协议数据包结构,减到零就丢弃,转换为十六进制64
06:协议代码,占用8位,6=TCP,1=ICMP,UDP=17
4a 72:表示头部校验和,占16位
7f 00 00 01:表示原始地址,即127.0.0.1
7f 00 00 01:表示目的地址,即127.0.0.1
接下来是TCP数据包结构:
a7 6e:原始端口,十进制为42862。
22 b8:目标端口,十进制8888
8d a7 4e 5f:数据序列号
00 00 00 00:确认序列号
a:表偏移,也就是距离包头有多少个32位,也就是10tcp协议数据包结构,4*10=40(包头长度)
保留为0;U、A、P、R、S、F中任意一位为1表示
ff d7:表示滑动窗口
41 60:数据包验证和
00 00:紧急指针
为了方便您,我们对上面的每个数字都进行了分析。
学习地址:
暂无评论内容