当前位置: 代码迷 >> 电信IT应用开发 >> 有关TCP/IP的一个有关问题
  详细解决方案

有关TCP/IP的一个有关问题

热度:4196   发布时间:2013-02-26 00:00:00.0
有关TCP/IP的一个问题
我有两个问题:
(1)对数据报分片是在IP层还是数据链路层实现的?
(2)假如一个数据发送经过几个网络,每个网络的MTU都不相同,那么分片的时候是以最小的MTU为依据吗?

------解决方案--------------------------------------------------------
1 在网络层进行分片,即是IP层
2 以最小的MTU为依据
------解决方案--------------------------------------------------------
在ip层,以最小的MTU为单位
------解决方案--------------------------------------------------------
(1)对数据报分片是在IP层还是数据链路层实现的? 
如果你是做应用层网络编程,你只要记住是ip层就可以了.
但是,如果你做网络设备研发就是不够的,因为这两层都有实现分片.
分片(fragmentation),在ip层的特点(缺点)是接收端必须重组;如果丢失,整个包(不是数据报)必须重传.

在link layer 使用 fragmentation可以提升速度,以较小MTU在跳跃点之间传送数据.(如Mult-link PPP,RFC 1990所采用的方式).另外802.11,家里的无线wifi路由器,利用fragmentation来避免干扰.无线电波干扰通常会以瞬间高能量的形式出现.并且常与AC电源线同步.进行fragmentation可以保护大部分的帧不被破坏.
-----------------------
另外如tcp的握手协议,在link layer也有类似的东西.

------解决方案--------------------------------------------------------
分片 应该是动态的 因为 在数据传输的过程中 所要经过的网络是不确定的,所MTU的值你是不可能知道的 所以应该是 在某个路由器上(这个路由器发现你的数据报长度大于该网段的MTU)进行分片
  相关解决方案