第17章IP封装、分段与重组本章学习要求理解:IP数据报的封装理解:IP数据报的分段与重组1.数据报传输与帧当一个主机或路由器处理一个IP数据报时,IP软件首先选择数据报发往的下一跳N,然后通过物理网络将数据报传送给N。网络硬件并不了解数据报格式或Internet寻址方案,每种硬件技术定义了自己的帧格式和物理寻址方案,硬件只接收和传送符合特定帧格式以及适用特定的物理寻址方案的包。由于互联网中包含异构网络技术,穿过当前网络的帧格式与前一个网络的帧格式可能是不同的。2.封装实现IP数据报在互联网上进行传输的方案-封装:将一个IP数据报封装进一个帧,网络硬件通过传输帧的方式传输IP数据报。2.封装接收方通过帧头部中的帧类型字段来区分帧的数据区中含有IP数据报还是其他数据。2.封装为了实现网络传输,携带IP数据报的帧头部拥有该数据报去往的下一跳的计算机物理地址。3.在互联网上的传输在一次传输中封装只发生一次。发送方在选好下一跳之后,将数据报封装到一个帧中,并通过物理网络传给下一跳。帧到达下一跳时,接收软件从帧中取出数据报,然后丢弃这一帧。如果数据报必须通过另一个网络转发时,就会产生一个新的帧。注意:在互联网传输过程中,帧的头部没有积累。4.MTU、数据报尺寸和封装每一种硬件技术都规定了一帧所能携带的最大数据量,这一限制称为最大传输单元(maximumtransmissionunit,MTU)。网络硬件不允许数据量大于MTU允许范围的帧进行传输。一个数据报必须小于或等于一个网络的MTU,否则无法进行封装。4.MTU、数据报尺寸和封装在一个互联网中,包含各种异构的网络,MTU限制可能会导致一些问题。如果IP数据报的大小超过了MTU,就必须对它进行分段,到达目的地后再进行重组。4.MTU、数据报尺寸和封装IP数据报报头的identification标识数据报,flags标识是完整的数据报还是分段,offset标识第几个分段。4.MTU、数据报尺寸和封装在对一个数据报分段时,路由器使用相应网络的MTU和数据报头部尺寸来计算每段所能携带的最大数据量已经所需段的个数,然后生成这些段。路由器先为每一段生成一个原始数据报头部的副本作为段的头部,然后单独修改其中的一些字段,最后路由器从原数据报中复制相应的数据到每个段中,并开始传送。5.重组在所有的段的基础上重新产生原数据报的一个副本的过程叫重组。接收方能否进行重组在于所有的段是否都能成功地到达。只有最终目的地主机才具有重组段的能力。减少了路由器中状态信息的数量允许路径动态变化6.分段与重组的细节问题乱序包段丢失段的近一步分解6.1乱序包多个数据报的多个段由于网络问题导致以任意的次序到达目的地。解决方案:当一个路由器对一个数据报分段时,将一个唯一的标识复制到每一段中,接收方利用收到的段的标识和IP源地址来确定属于哪个数据报。另外,段偏移字段可以报告接收各段的次序。6.2段丢失由于IP并不确保传递的质量-如果底层网络遗失了包,则封装在其中的数据报或段也就遗失了。只有一个数据报的所有的段一起收到后,才能重组。对于只有部分段到达的情况,采用保留已到达段的方案进行解决。若在规定时间剩余段仍未到达,则丢弃已到达的段。没有任何机制可以使接收方告知发送方已收到哪些段。6.3段的进一步分解在路由器发送段的过程中,若遇到一个MTU值更小的网络时,段本身将再次被分段。接收方采用同等对待所有段的方式进行IP数据报的重组。同等对待所有段的优点:无需先重组子段再重组段,节省CPU时间,减少段头部的信息量。