-
距离向量算法中,每个结点仅与它的直接相连的邻居交谈,但它为其邻居提供了从它自己到网络中 (它所知道的) 所有其他结点的最低费用估计。
-
链路状态算法中,每个结点 (经广播) 与所有其他结点交谈,但它仅告诉它们与它直接相连链路的费用。
-
报文复杂性
-
链路状态算法要求每个结点都知道网络中每条链路的费用。这就要求发送 O(NE) 个报文 (从某个点点亮全图,需要 O(E) 报文(最小生成树广播),既然需要从每个点点亮全图(因为需要让每个节点都能计算到所有其他节点的最短路径),那就是 O(NE)),而且无论何时一条链路的费用发生变化,必须向所有其他结点广播新的链路费用。
-
距离向量算法中,仅当链路费用的改变引起该链路相邻结点之间的最路径发生变化时,才传播已改变费用的路径。
-
-
收敛速度
-
链路状态算法需要发送 O(NE) 个报文,还需要执行 O(N^2) 以确定一条最短路径。
-
距离向量算法收敛比较慢,而且收敛时会遇到路由选择环路,以及无穷计数的问题。
-
-
健壮性
-
链路状态算法计算转发表是在每台路由器上独立进行的,因此比较健壮。
-
距离向量算法中,一个结点可向任意或所有目的结点通告不正确的最低费用路径。
-
- 将路由器组织进一个自洽系统内部的方法,然后在不同的自洽系统内部执行不同的路由选择算法,规模的问题得以解决。所有自洽系统间遵循相同的自洽系统间路由选择协议,这样再运行的路由算法不再以路由器为基本单位,而是以 AS 为基本单位。
- 不是必要的,因为自洽系统内部只要能相互连通,它爱怎么搞怎么搞,想采用什么路由算法随他开心。对外界来说,可以把它看成一个单独的路由器和其他 AS 互联。
- 不会改变。本来 D 知道,下一跳是 B 的路径有 7 跳,但是 A 告诉它,你要是经过我的话,下一跳是 C 再到 D 需要 11 跳,D 又不是傻逼,肯定不会修改自己的转发表去绕远路。
- RIP 包含了到达目的地的跳数以及下一跳路由器,RIP 实质是一个距离向量算法,因此每个路由器向邻居发送它到目前为止所知道的关于网络的所有信息。
- OSPF 包含了到每一个邻居的链路费用,OSPF 实质是一个链路状态算法,因此每个路由器向所有其他路由器发送它到自己的每个邻居的链路费用。
-
策略
- AS 间策略是重要的考虑因素,比如不想让流量发送到哪个 ISP,想控制在哪两个 AS 间发送的流量,而在 AS 内部,这些都不用考虑。
-
规模
- AS 内部路由器的数量很少,即使规模增大,大不了搞成两个互联的 AS,这样就解决了路由器太多导致每个路由器要用大量内存来存储其他路由器或链路费用信息,以及算法收敛不了的问题。
-
性能
- 在 AS 内部性能是主要考虑因素,在 AS 间并不是,即使某条路由路径更好,但也可能刻意绕远路,因为不想让流量经过某个 AS
-
子网
- 子网是一堆具有相同前缀的 IP 地址,它的边界由主机和路由器的接口来界定。
-
前缀
- 前缀是 CIDR 化的 IP 地址,一个前缀包含多个子网
-
BGP 路由
-
当路由器通过 BGP 会话通告一个前缀时,会在前缀中包含 BGP 属性,这种带有属性的前缀被称为一条路由
- AS-PATH 用来防止和检测循环通告,当有多条路由可供路由器选择时,一条 BGP 路由的 AS-PATH 的长短也作为路由的一个筛选条件。
- NEXT-HOP 如下图所示,至于它到底怎么配置路由表的。。。看书没看懂。
- 比如 ISP A B C 两两互联,但 A 不想承载 B 到 C 的流量,那么 A 就会向 B 通告没有到 C 的路径,也向 C 通告没有到 B 的路径。
- 通过多个单播实现的广播抽象有如下缺点:
- 1、源需要复制 N 个分组的副本
- 2、源需要知道所有副本的目的 IP 地址
- 3、源将会在一条出链路上发送 N 个分组副本,导致其他正常的分组都经历巨大的排队时延会被丢弃。
-
a.
- 无控制洪泛 ✅
- 受控洪泛 ✅
- 生成树广播 ❌
-
b.
- 无控制洪泛 ✅
- 受控洪泛 ❌
- 生成树广播 ❌
- 不用改变自己的 IP 地址,只需要通过 IGMP 协议和多播组路由器协商就能加入多播组。
- IGMP 是一个仅仅运行在主机和它的第一跳路由器之间的协议
- IGMP 允许主机向它的第一跳路由器指定它要加入的多播组
- 之后广域多播路由协议运行在这些有主机加入多播组的路由器之间,让多播流量能够顺利转发到最后一跳路由器,再由最后一跳转发到主机
- 对于一棵组共享的树,所有发送者的多播流量都会经过同一棵多播树
- 对于一棵基于源的树,每个发送者的多播流量流经的多播树都是基于这个源来构造的,路由器会追踪不同的基于源的多播树。