做旅游网站的首页的图片,北京土巴兔装修公司电话,天津专业网站策划公司,jsp网站 值班本文目录什么是IP分片为什么会产生IP分片为什么要避免IP分片如何避免IP分片什么是IP分片
IP协议栈将TCP/UDP传输层要求它发送的#xff0c;但长度大于发送端口MTU的一个数据包#xff0c;分割成多个IP报文后分多次发送。这些分成多次发送的多个IP报文就是IP分片。
为什么会…
本文目录什么是IP分片为什么会产生IP分片为什么要避免IP分片如何避免IP分片什么是IP分片
IP协议栈将TCP/UDP传输层要求它发送的但长度大于发送端口MTU的一个数据包分割成多个IP报文后分多次发送。这些分成多次发送的多个IP报文就是IP分片。
为什么会产生IP分片
TCP/UDP是工作在传输层依赖于IP协议在网络层提供的服务。IP层又依赖于链路层提供的报文发送服务。链路层会根据链路层协议的不同会要限制每次发送数据帧的最大长度称之为Maximum Transmission Unit最大传输单元MTU。所以当TCP/UDP往IP层发送数据时相当于IP层从TCP/UDP传输层接收到一份要发送的IP数据报IP层要判断向本地哪个接口发送数据选路并查询该接口获得其MTU。IP把MTU与数据报长度进行比较如果太长了一次发送不下超过MTU则需要则需要将这个数据报文分割成多个IP报文后分多次发送就产生了IP分片。这就是IP分片产生的原因。因为路由器是工作在IP层负责IP报文的转发的所以分片可以发生在原始发送端主机上也可以发生在中间路由器上。
为什么要避免IP分片
IP分片产生了二个坏的影响
IP头部占用了更多的带宽 IP分片使得原来的一个IP报文变成了多个IP报文那么更多的IP报文就使得IP头部占用了更多的网络带宽网络传有效载荷的能力下降使得网络有效吞吐能力下降。增加了报文丢失率 IP分片发生在IP层不仅发送商端主机会进行分片中间的路由器也有可能分片因为不同的网络的MTU是不一样的如果传输路径上的某个网络的MTU比发送端网络的MTU要小路由器就可能对IP数据报再次进行分片。然而按照IP协议的定义IP分片数据的重组只会发生在目的端的IP层即当所有分片都正确到达目的端时目的端会将这些IP分片重组成一个完整的数据报文再提供给上层。如果注意这些分片报文中只有第一片才带有传输层协议的状况信息所以只要其中任何一个IP分片丢失或者超时就会引起所有IP分片报文的丢失。此时如果传输层是不支持重传的不可靠协议比如UDP那么整个报文就全部丢失了一个IP分片的丢失引发所有IP分片的丢弃这就增加了报文丢失率的使得网络有效吞吐能力下降。降低了重传效率降低 IP分片发生在IP层不仅发送商端主机会进行分片中间的路由器也有可能分片因为不同的网络的MTU是不一样的如果传输路径上的某个网络的MTU比发送端网络的MTU要小路由器就可能对IP数据报再次进行分片。然而按照IP协议的定义IP分片数据的重组只会发生在目的端的IP层即当所有分片都正确到达目的端时目的端会将这些IP分片重组成一个完整的数据报文再提供给上层。如果注意这些分片报文中只有第一片才带有传输层协议的状况信息所以只要其中任何一个IP分片丢失或者超时就会引起所有IP分片报文的丢失。此时如果传输层是支持重传的可靠协议比如TDP那么整个报文全部都需要重传一个IP分片的丢失引发所有IP分片的重传这就大大的降低的重传的效率使得网络有效吞吐能力下降。
如何避免IP分片 对于UDP 我们需要在应用层去限制每个包的大小应用层在往UDP层发送数据时就考虑链路上的最小MTU让自己发送的数据包IP头UDP头的总长度不要超过MTU。 对于TCP数据 应用层就不需要考虑这个问题了因为TCP已经帮我们做了。TCP用TCP的MSS的计算与详解来保证每次发送的TCP报文的数据都不会超过MSS也就保证了IP数据报不会超过MTU从而避免了IP分片。