TCP/IP原理、基础以及在Linux上的实现(四)

日期: 2008-06-19 来源:TechTarget中国

4.2 IP数据报的分段与重组

IP数据报是通过封装为物理帧来传输的。由于因特网是通过各种不同物理网络技术互连起来的,在因特网的不同部分,物理帧的大小(最大传输单元MTU)可能各不相同。为了最大程度的利用物理网络的能力,IP模块以所在的物理网络的MTU做为依据,来确定IP数据报的大小。当IP数据报在两个不同MTU的网络之间传输时,就可能出现IP数据报的分段与重组操作。


在IP头中控制分段和重组的IP头域有三个:标识域、标志域、分段偏移域。标识是源主机赋予IP数据报的标识符。目的主机根据标识域来判断收到的IP数据报分段属于哪一个数据报,以进行IP数据报重组。标志域中的DF位标识该IP数据报是否允许分段。当需要对IP数据报进行分段时,如果DF位置1,网关将会抛弃该IP数据报,并向源主机发送出错信息。标志域中的MF位标识该IP数据报分段是否是最后一个分段。分段偏移域记录了该IP数据报分段在原IP数据报中的偏移量。偏移量是8字节的整数倍。分段偏移域被用来确定该IP数据报分段在IP数据报重组时的顺序。


IP数据报在被传输过程中,一旦被分段,各段就作为独立的IP数据报进行传输,在到达目的主机之前有可能会被再次或多次分段。但是IP数据报分段的重组都只在目的主机进行。


4.3 IP对输入数据报的处理

IP对输入数据报的处理分为两种,一种是主机对数据报的处理,一种是网关对数据报的处理。


当IP数据报到达主机时,如果IP数据报的目的地址与主机地址匹配,IP接收该数据报并将它传给高级协议软件处理;否则抛弃该IP数据报。


网关则不同,当IP数据报到达网关IP层后,网关首先判断本机是否是数据报到达的目的主机。如果是,网关将接收到的IP数据报上传给高级协议软件处理。如果不是,网关将对接收到的IP数据报进行寻径,并随后将其转发出去。


4.4 IP对输出数据报的处理

IP对输出数据报的处理也分为两种,一种是主机对数据报的处理,一种是网关对数据报的处理。


对于网关来说,IP接收到IP数据报后,经过寻径,找到该IP数据报的传输路径。该路径实际上是全路径中的下一个网关的IP地址。然后,该网关将该IP数据报和寻径到的下一个网关的地址交给网络接口软件。网络接口软件收到IP数据报和下一个网关地址后,首先调用ARP完成下一个网关IP地址到物理地址的映射,然后将IP数据报封装成帧,最后由子网完成数据报的物理传输。


ICMP协议

ICMP(Internet Control Message Protocol)-因特网控制报文协议。ICMP主要用于差错信息和控制信息的构造及某些网络信息的获取。ICMP与IP 同属IP层,但ICMP报文是经IP封装后,作为IP数据报发送出去的。不把ICMP作为一个独立的协议层次,是因为ICMP不是上层协议的基础,在概念上构不成一个独立的层次。


ICMP消息包括以下类型:目的不可达、超时、参数问题、源端抑制、重定向、回声请求、回声应答、时间标记请求、时间标记应答。


目的不可达消息用来报告子网或路由器不能定位目的地,或设置了DF位的分组不能绕过”小分组”网络。


超时消息用来报告报文由于计时器为零而被丢弃。


参数问题消息表明在头部字段中发现了非法值。


源端抑制消息用来抑制发送过多分组的主机。当主机收到这个消息,就要减慢发送速度。


重定向消息在路由器发现可能出现了路由错误时发送。


回声请求和回声应答消息用来测试目的是否可达且正常运行。收到回声请求消息,目的端应该往回发一个回声应答消息。时间标记请求和时间标记应答与此类似,只是消息到达时间和应答发出时间应加入应答中,其好处是可以用来测试网络性能。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐