在具体介绍IP首部的详细结构之前,可以先设想一下,对于一个IP数据报的控制信息来说,它应该具备哪些功能呢?
首先,控制信息需要包括IP路由寻址所需要的目的地址和源地址。如果没有这些信息,那么IP数据报的数据信息就犹如一封没有填写邮寄地址的信笺,既不可能发出,也不可能收到。
其次,IP路由选择是逐跳进行的。所有的IP路由选择只提供下一站路由器的IP地址。如果IP数据报在互联网络层传送中发生错误,使它无法到达指定的目的地,那么,它是不是就会在互联网中无休止地巡游下去呢?当然,这是用户所不希望的,因为用户不想看到本就紧张的网络通道被无数无家可归的“游魂”数据所塞满。因此,就有必要为数据报标识一个生存期。一旦超出了生存期,这个数据报就会被无情地丢弃。设置生存期最直接的方式自然是设定时间。但这就要求路由器知道这个数据报通过上一个路由器时经过了多长时间,显然这需要一个较为复杂的全局时钟机制。一种更为简单的方式就是使用跳数计数器。也就是当数据报经过一个路由器时,就简单地将这个计数器减一,减到零就丢弃数据报。
此外,数据报在互联网络层的传输还会遇到分片的问题。那么,什么是分片呢?所谓IP分片是网络上传输IP数据报的一种技术手段。IP协议在传输数据包时,将数据报文分为若干更小的数据单元进行传输,这一过程称为分片。IP分片发生在要传输的IP数据报大小超过物理网络最大传输单元MTU的情况。比如说,在以太网环境中可传输的最大IP数据报大小为1500字节。如果要传输的数据报大小超过1500字节,则需要分片之后才能进行传输。
与分片相对应的就是重装。最终,分片的数据必须被重新装配。重装的时机有两种选择:在终点执行重装和允许中间路由器重装。当然,两者的缺点都同样明显:在终点执行重装会随着数据在互联网中的不断前进,数据报片只会越分越小,损害某些网络的效率。而如果允许中间路由器重装的话,一方面,路由器就需要很大的缓存空间来保存不完整的数据报;另一方面,如果允许中间路由器重装就意味着一个数据报的所有分片必须通过相同的路由器,因此排除了动态路由选择的使用,也就使得互联网络层失去了无连接——即每个数据报都是独立地进行路由的特点。最终,IP协议选择了在终点执行重装。(www.daowen.com)
既然,互联网络层不可避免地会发生分片和重装。因此IP数据报的控制部分自然要包括能将分片重装为原数据报的恢复信息。那么,这些恢复信息都包括哪些呢?
首先,是数据长度,这是不必说的。接着,需要的是能够用来唯一标识一个由端系统生成的数据报的标识符。这样,在重装时才能确定哪些分片是属于该原始数据报的。再者,既然各个分片是独立选择路由,那么就有可能出现各个分片在终点并不按发送时的次序到达,这样在重装时就需要各分片中包含前后顺序的相关信息。在IP协议中,是用偏移量来记录的,也就是在原数据报中的数据字段中,该数据分片所在的起始位置。这样重装时通过偏移量就能将各个分片的先后顺序确定下来。另外,当终点端系统接收到分片时,会等待接收其他分片进行重装,那么如何确定已经接收到所有的分片,可以开始重装了呢?因此,还需要一个后续标志来记录分片是否有后续。到这里,就为分片重新组装提供了足够的信息。
IP数据报中应该具有的控制信息:源地址、目的地址、生存期、数据长度、数据单元标识符、偏移量、后续标志等。下面就来具体看看在IP首部中是否包括所分析的这些控制信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。