关于路由相关

来源:互联网 发布:rpc java 编辑:程序博客网 时间:2024/05/01 10:31

路由:数据包从源地址到目的地址所需要经过的路径,由一系列节点组成。
路由节点:一个具有路由功能的主机或者路由器,维护一张路由表,通过查询路由表来决定向那个姐发送数据包。
路由表:由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接收和发送,其中最后一个是缺省路由条目。
路由条目:路由表中的每一行,每个条目主要由网络地址、子网掩码、下一跳地址、发送接收四部分组成,如果要发送的数据报的目的网络地址匹配到路由表中的某一行,就按照规定接受发送到下一跳。

路由器的初始化


任何一个路由器在刚进行建立的过程中,都必须首先获取一个初识的路由表。不同的操作系统,获取的方式不同,大概的方式有三种:

  1. 路由器启动的时候,从外存读取一个寻路径表,常驻内存使用,系统关闭,把路由表写回外存,下次使用再从外存当中进行调用。
  2. 提供一个空表,进行填充。
  3. 从相连接的网络地址当中,推导出一组初始路由。

路由算法能否岁网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大类,即静态路由选择策略和动态路由选择策略。

Linux中的路由表


Linux当中使用两个路由表,一个用于上传给本地上层协议,另一个用于转发。Linux使用多个路由表而不是一个,使得不同策略的路由存放在不同的表中,有效避免查找庞大的路由表,这样提高了效率。
我们在Linux下可以使用命令’route’来查看路由表。
这里写图片描述
Destination目的网络
Gateway下一跳
Genmask子网掩码
Flags 标记。一些可能的标记如下:U — 路由是活动的,H — 目标是一个主机,G — 路由指向网关,R — 恢复动态路由产生的表项,D — 由路由的后台程序动态地安装,M — 由路由的后台程序修改,! — 拒绝路由
Metric 设置路由跳数
Ref 路由项引用次数
Use 此路由项被路由软件查找的次数
Iface 使用接口

RIP协议


RIP协议也叫做内部网关协议,使用跳数来衡量到达目的地址的距离
距离向量算法当中,它认为,距离就是跳数,当没经过一个路由器,那么跳数就会+1,当你的跳数越少,那么你的算法越好。路由器直接连接的网络我们把跳数定义为0,RIP规定的路由器的跳数最多为15,所以相对来说RIP适用于小型的网络。

RIP协议的特点:
1. 仅仅和相邻的路由器进行交换信息。
2. 路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
3. 按照固定的时间间隔交换路由信息

路由器刚开始工作的时候,这个时候只知道与自己直接连接的网络的距离,然后和相邻的路由器交换路由信息,这样下来,最后所有的路由器就会知道到达自治系统中任何一个网络的最短距离和下一跳路由器的地址。

在路由表中,最通常进行记录的就是到达某一个网络的最短的距离,以及经过下一跳的地址。路由表更新的目的也就是找到每一个目的网络的最短距离,RIP协议使用距离向量算法更新路由表

距离向量算法


距离向量算法的初始化路由器方式是第三种。

每一个距离向量包括到达目的节点的最佳输出线路和到达目的节点所需时间或者距离。没过一段时间,路由器会向所有的邻居节点发送它到每个目的节点的距离表,同时她也接受每个邻居节点发来的距离表。这样经过一段时间就可以将网络当中每个路由器所获得的距离向量信息在各路由器上统一起来,这样个路由器只需要查看这个距离向量表就可以为不同来源分组找到一条最佳的路由。

距离向量算法的步骤:
1. 若原来的路由表中没有网络,则添加这个网络。
2. 如果收到更大的距离,下一跳有变化,则进行更新(更新最新消息)
3. 若收到的距离小于路由表中的,下一跳没有变化,则更新路由表。(更新最近的向量)
4. 距离变大了,下一跳不变,不用更新,距离不变,下一跳不变,也不更新。

1 0
原创粉丝点击