IP分片,TCP分片

来源:互联网 发布:虚拟机网络电缆被拔出 编辑:程序博客网 时间:2024/05/16 01:09

http://baike.baidu.com/link?url=TNFjj1fmfbVF4H4O9pciFRxdaOeli88iwRUfykiimOg0laI2GxN2z2_cNag3wpaw

http://wenku.baidu.com/link?url=zTDz1cQj7MQhfKulcV2SD3WOBMlbaftEVBgBBsnLTAE60cIT_OQ2VUBQgUlson8QpzEuhNJi6J-WFHS-0OPzQqxGXFgKuvWFKNNcS9EgVyy

http://hi.baidu.com/_jiangming/item/400c0bc2ff66d445bdef6988


先列出总结:

1、TCP 分片后无需 IP 分片。TCP协议会尽量采用TCP分片,而不是IP分片。
2、TCP 分片也有可能丢失,但 TCP 协议有重传机制
3、UDP报文过大,会导致IP分片



IP分片技术
编辑

链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。

1产生原因编辑

以太网的MTU是1500,你可以用netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。

2技术信息编辑

IP首部包含了分片和重组所需的信息:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |R|DF|MF| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|<-------------16-------------->|<--3-->|<---------13---------->|
Identification:发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。
R:保留未用。
DF:Don't Fragment,“不分片”位,如果将这一比特置1 ,IP层将不对数据报进行分片。
MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。
Fragment Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8。
另外,当数据报被分片后,每个片的总长度值要改为该片的长度值

虽然数据可以分片,但是要尽量避免分片,因为IP层本身没有超时重传机制,由更高层来负责超时和重传(TCP有超时和重传机制).当某片报文丢失后,TCP在超时后会重发整个TCP报文段,而不是重传数据包文段的一个数据包片,分片还会增加丢包率,降低网络速度.


0 0
原创粉丝点击