这一章研究的问题是一个Packet是如何经过路由从一端到另一端的。路由选择的依据是什么?

Flooding

topology 拓扑结构;

Flooding采用多播来传递Packet每个Router都会把包发给与它相连的每一个Router,这也导致了链路的高占用率,和形成环的可能性,一旦成环Packet将会在这个环里被一直转发。不过这种机制也有好处,因为每个Router肯定都会被遍历,所以如果目的端和某个Router相连,那Packet一定会被发送到目的端。当然Flooding实际上也不会导致包被永远转发因为TTL会限制被转发的次数。

Source Routing

Source Routing指的当源知道网络的拓部结构,自然它也知道要传Packet到目的端要经过哪些Router,所以它会在自己发出的包中指定每一跳的路径。

Forwarding Table

每个Router维护一张转发表,根据转发表来决定下一跳。

转发表听起来效率比较好,也是目前主要采用的转发流量的方法,但问题在于这张转发表该如何正确构建呢?

Bellman-Ford Algorithm

现在R1想构建一个到R8的转发表,那么得从R8开始扩散。此时是不知道以R8为起点到任何一个Router的代价的,所以第一张全为无穷。此后每一跳代表一次迭代以此来更新转发表,更新从R8开始每一跳要花费的代价,直到填充完转发表。

图中红色的R2 | 7,R5代表现在从R8到R2最好的选择是R8-》R5-》R2代价为7。在下一次迭代后该行变为R2 | 6,R4代表现在从R8到R2最好的方案是R8-》R4-》R2代价是6。