TCP,UDP和IP分片

本文介绍了IP分片的概念,包括IP头中的标识、标志和片偏移字段,以及IP层如何处理超过MTU的数据包。强调了IP分片的透明性、乱序到达和重传机制。此外,讨论了UDP不涉及分片,其长度受限于MTU和API、内核限制。最后,阐述了TCP如何分块传输数据,强调TCP不对内容解释,接收端可以灵活接收数据。

1.  IP分片

 

IP头的一部分为

++++++++++++++++++++++++++++++++++++++++++++++++

|           16 bit  标识              | 3 bit 标志 |  13 bit 片偏移                        |

++++++++++++++++++++++++++++++++++++++++++++++++

 

对于IP层来说,收到上层(UDP/TCP)发过来的数据,会先检查链路层的MTU: 1)如果 “上层数据+IP头” 的总长度没有超过MTU,则直接进行发送。 2)如果长度超过了MTU,则要进行分片,根据IP头部的格式,有一个16位的标识,分片的时候会把这个标识复制到所有的分片中去,也就是说同一个IP的分片,他们的标识是一样的;然后3bit标志中有一位是表示是否最后一片,除了最后一片为0,其它片这个标识位都为1;修改IP的长度为分片中实际数据的长度;片偏移量是该片偏移原始数据的位置。 接收端根据 标识,是否为最后一片,各个片的长度,偏移量就可以把分片的包重新组装起来。

 

在3位标识中还有一位是表示是否允许分片,如果该位是1,而且长度又大于MTU,那么,IP层不对数据进行分片,而是把包丢弃,然后发送一个ICMP消息给起始端。

 

note:

1) 经过每一个路由或网络都有可能对原来的IP包进行分片,也就是说起始端并不清楚具体的分片情况,因为中间的过程中可能又产生了很多分片。

2) 因为分片可以选

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值