IP数据报及其路由表

来源:互联网 发布:复杂sql语句优化 编辑:程序博客网 时间:2024/04/28 06:41
IP数据报格式

16位标识
     IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段,但此标识并不是序号,因为IP是无连接服务,数据报不存在按序接受的问题。当数据报由于长度超过网络的MTU( MTU最大传输单元:数据帧中的有效载荷的最大长度,不包括首部的长度,若大于MTU,则需要分片,分片是由IP层完成的。组装也是由IP层自行完成。)而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,相同的标识字段的值使分片的各数据报片最后能正确的重装成为原来的数据报。

3位标志
     1、标志字段的最高位必须为0,该位必须复制到所有分组中。
     2、标志字段的中间一位:DF(Don't  Fragment),意为“不能分片”,当分组的长度超过MTU时又不可以分片,则丢弃,只有当DF为0时才允许分片。
     3、标志字段的最低位:MF,当MF为1时,表示接受的分片不是最后一个分片,后边还有分片的数据报,为0时表示这已经是若干数据报片中的最后一个。

片偏移(13位)
     较长的分组在分片后,某片在原分组中的相对位置,也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8字节为偏移单位。即每个分片的长度一定是8字节(64位)的整数倍。

分片
     当IP分组长度大于数据链路层MTU时,就必须对IP进行分片。

组装
     分组后数据报可能通过不同的传输路劲到达目的主机。属于同一个分组的不同片到达时会出现乱序,或者与其他的分组混合在一起。首先,根据标识字段将属于同一分组的所有片挑出来,主机在第一个分片到达时分配一个存储缓冲区,当数据报的后序分片到达时,数据根据片移位被复制到缓冲区存储器中的指定位置,当所有的分片到达时,原始数据报就恢复了。

     例如:一数据报的总长度为3820字节,其数据部分为3800字节(使用固定首部)。需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400、1400和1000字节。原始数据首部被复制为各数据报片的首部。但必须修改有关字段的值。如下图给出分片后的结果:


路由表:
     路由表是由很多路由条目组成的,每个条目都指明去往某个网络的数据包应该由那个接口发送,其中最后一个是缺省路由条目。
     注意:路由表仅指定从该路由器到目的路劲上的下一步,而不知道到达目的地的完整路劲。

路由条目
     路由表中的一行,每一个条目只要有路由的网络地址,子网掩码,下一跳地址,发送接口4部分组成。如果要发送的数据包的目的网络地址匹配路由表中的一行,就按规定发送到下一跳地址。

缺省路由
     路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表其他行都不匹配时,就按缺省路由条目规定的接口发送下一跳地址。

路由信息协议利用向量-距离算法

特点
     1、仅和相邻的路由器交换信息。不相邻的路由器不交换信息。
     2、路由器交换的信息是当前本路由器所知道的全部信息。即自己的路由表。
     3、按固定时间交换路由信息,如:每隔30秒,然后路由器根据收到的路由信息更新路由表。

     路由信息协议的”距离“也称为”跳数“,因为每经过一个路由器,跳数就就加1。路由信息协议认为好的路由就是他通过的路由器数目最少,即距离最短。它允许一条路劲最多只能包含15个路由器,因此距离为16时就相当于不可达。可见此协议只适用于小型网络。

0 0
原创粉丝点击