[HITCN]哈工大2020秋计算机网络复习笔记 (8)

本文介绍了网络层的路由算法,主要包括链路状态路由算法,如Dijkstra算法,以及距离向量路由算法,如RIP和OSPF。还讨论了层次路由的重要性以及Internet路由协议RIP、OSPF和BGP的工作原理和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4 网络层

4.9 路由算法

网络抽象:图G = (N, E),N = 路由器集合,E = 链路集合

费用(Costs):每段链路的费用可以总是1,或者是,带宽的倒数、拥塞程度等

图的抽象在网络领域应用很广泛 e.g.:P2P,其中,N是 peers集合,而E是TCP连接集合

关键问题:源到目的(如u到z)的最小费用路径是什么?

路由算法:寻找最小费用路径的算法

路由算法分类

  • 静态路由:手工配置;路由更新慢;优先级高

  • 动态路由:路由更新快;定期更新;及时响应链路费用或网络拓扑变化

  • 全局信息:所有路由器掌握完整的网络拓扑和链路费用信息。e.g. 链路状态(LS)路由算法

  • 分散(decentralized)信息:路由器只掌握物理相连的邻居以及链路费用,邻居间信息交换、运算的迭代过程。e.g. 距离向量(DV)路由算法

4.9.1 链路状态路由算法

Dijkstra 算法

  • 所有结点(路由器)掌握网络拓扑和链路费用:通过“链路状态广播”;所有结点拥有相同信息

  • 计算从一个结点(“源”)到达所有其他结点的最短路径:获得该结点的转发表

  • 迭代:k次迭代后,得到到达k个目的结点的最短路径

c(x,y):结点x到结点y链路费用;如果x和y不直接相连,则=∞

D(v):从源到目的v的当前路径费用值

p(v):沿从源到v的当前路径,v的前序结点

N’:已经找到最小费用路径的结点集合

初始化:
N' = {u}
for 所有结点v
	if v毗邻u
		then D(v) = c(u,v)
	else D(v) = ∞

Loop
	找出不在 N’中的w ,满足D(w)最小
	将w加入N'
	更新w的所有不在N’中的邻居v的D(v) :
 		D(v) = min( D(v), D(w) + c(w,v) )
	 /*到达v的新费用或者是原先到达v的费用,或者是已知的到达w的最短路径费用加上w到v的费用 */
until 所有结点在N’中

算法存在震荡(oscillations)可能:假设链路费用是该链路承载的通信量。初始为图1,此时会认为图2的代价更小,更新路由表为图2,又认为图3的代价更小,更新路由表为图3,又认为图2的代价更小,如此往复。如果一个B发往A的数据报恰好遇上了每次更新路由表,那么它将一直在B和B和D之间转发,直到TTL耗尽。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值