socket 中数据报分片时会有什么后果?

wangweizhaoxin 2012-08-17 09:05:51
socket通信中,如果MSS大于MTU那数据报就分片发送,那分片发送有什么影响呢?越详细越好,谢谢!
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdl19881 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

从两个角度说:
实验角度说:

C:\>ping 10.1.1.1 -f -l 1373
Pinging 10.1.1.1 with 1373 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fr……
[/Quote]

ping是使用的icmp协议,不是tcp...所以你的第一个例子不成功。
titer1 2012-08-17
  • 打赏
  • 举报
回复
从两个角度说:
实验角度说:

C:\>ping 10.1.1.1 -f -l 1373
Pinging 10.1.1.1 with 1373 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Ping statistics for 10.1.1.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>ping 10.1.1.1 -f -l 1372
Pinging 10.1.1.1 with 1372 bytes of data:
Reply from 10.1.1.1: bytes=1372 time=53ms TTL=254
Reply from 10.1.1.1: bytes=1372 time=56ms TTL=254
Reply from 10.1.1.1: bytes=1372 time=56ms TTL=254
Reply from 10.1.1.1: bytes=1372 time=54ms TTL=254
Ping statistics for 10.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 53ms, Maximum = 56ms, Average = 54ms


第二用抓包软件看看:
http://www.net527.cn/a/luyoujiaohuan/Ciscojishu/2011/0623/18401.html
fdl19881 2012-08-17
  • 打赏
  • 举报
回复
tcp的MSS只是为了使用得tcp传输效率高些。同时重传的情况下损失少些。

分片后,到达对端后,会自动组装。从数据完整性上来说和不分片是一样的。
但是由于一个tcp包被分成了几片传输,那么当任意一片没收时,发送超时后,就会重传整个tcp包

假设发送前一个ip包包含的数据为5000字节,
传输过程中分片为5个包1000 ,1000.
对端只有在一定时间内收到5个包,然后将其组装成一个完整的ip包,然后再上传给传输层使用。
但是假设对端只收到了4个包,那么超时后,发送装就会重发这个5000字节的ip包,而不是重发1000字节的分片。

OK,,更详细的看书吧,那就不是几百字说的完的了,

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧