TCP/IP 之IP数据报ip分片ip分片过程 sock程序验证

sock程序下载,运行环境 centos 7.5. X64 

链接:https://pan.baidu.com/s/14zZ9rEefiRARsYkXqvHz7Q 
提取码:oelv 

sock源码下载:http://www.icir.org/christian/sock.html  在centos7 环境下编译可以使用。

用udp协议向服务端发送3000字节数据

[root@localhost src]# sock -u -i -n1 -w3000  192.168.1.197 echo

服务端加-s选项运行

[root@localhost src]# sock -u -s echo

tcpdump抓包命令行:

扫描二维码关注公众号,回复: 9219401 查看本文章

[root@localhost ~]# tcpdump -nn  -vvv  -w data_3000_udp.cap  src 192.168.1.196 and !  src  port 22  -i ens33 

data_3000_udp.cap

链接:https://pan.baidu.com/s/1GHlISaD-oPtIeSCC3e3OVQ 
提取码:bizs 

用wireshard打开data_3000_udp.cap,分析。

第一个分片:

第二个分片

第3个分片

 

根据https://cloud.tencent.com/developer/article/1193149文章计算。

总共给服务器发送3000字节数据。IP分组包文部长度L=3000+8+20=3028,以太网MTU为1500

一个最大分片可封装的数据应该是8的倍数, 因此, 一个最大分片可封装的数据为:((1500-20)/8 )*8=1480。

  • 需要的总片数为:n=(3028-20)/1480=2.032432432432432‬ ,需要分3片。

第一片的偏移字段

F1=(1480/8)*(1-1)=0,

第二片的偏移字段

F2=(1480/8)*(2-1)=185,

第三片的偏移字段

F3=(1480/8)*(3-1)=370。

第一片的总长度:1480 + 20 =1500

第二片的总长度:1480 + 20 =1500

第三片的总长度:3028 -(3-1)*1480 = 68。

发布了139 篇原创文章 · 获赞 38 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/tjjingpan/article/details/90752368