1、静态路由算法:

由网络管理人员手工配置;

2、动态路由算法:

        主要包括距离-向量路由算法和链路状态路由算法;

 2.1 距离向量路由算法:

     每个路由器会定期的向相邻路由器发送自己的路由表,路由器收到路由表后,做如下操作:

         ①如果该是一条新的路由,那么直接添加进去;

    ②如果发送来的路由信息中有一条到达某个目的地的路由,这个路由比当前使用的                     路由有较短的距离(这里的距离是一个抽象概念),那么这种情况下,就进行替换                   当前路由信息;

         最常见的距离向量算法是RIP算法,采用跳数作为距离的度量。

 2.2 链路状态路由算法:

         首先每个路由器会主动测试所有邻接结点的状态,然后将这些状态信息发送给所有其他结点,其他结点收到后进行更新自己的网络图,然后利用Dijsktra算法计算各个最短路径路由。

         注意只有当链路状态发送变化的时候,才会想所有路由器发送消息。

    常见的链路状态路由算法是OSPF。

 2.3 层次路由:

         最后为了防止网络规模扩大时,路由器的路由表增大到很大,从而消耗路由器的缓冲区以及用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息,所以出现按层次的方式进行路由。

         所谓层次路由是指,把互联网划分为多个较小的自治系统,每个自治系统内使用内部网关协议(IGP),主要有RIP和OSPF;自治系统之间使用外部网关协议(EGP),主要包括BGP;然后在自治系统内部,OSPF又将一个自治系统划分为多个区域,每个路由器只知道该区域内如何把分组路由到目的地,但不用知道其他区域内部结构。

参考:考研计算机网络2015年王道版