路由协议01-路由协议需要解决的一些问题
路由器解决的是不同网络之间的互通问题,每个路由器需要根据自己的路由表进行路由转发,实现不同网络之间的通信。
所以路由协议需要至少完成以下三个核心功能:
1. 共享和更新网络信息
2. 根据接收到的网络信息生成路由表,
3. 如何根据路由表做出最佳路由决策
因此在实践中演化出了两种类型的路由协议:距离矢量 & 链路状态
在路由选择协议的设计层面需要满足六大以下特性:
1. 正确和完整性:沿着各个路由表所指引的路径,分组一定可以到达目的主机
2.计算简单:减少开销
3.自适应性:适应网络变化
4.稳定性:不能不收敛或经常变化
5.公平:对所有用户平等,除高优先级用户外
6. 最佳:以最低的代价实现路由算法
在第六大特性中,引申出了另一个路由算法的核心问题。
提到的最低的代价是如何评估的?如何判断一个路由是最佳的,算法是最优的?此问题其实是核心功能2的一部分
当有多条路径到达相同的目标网络时,需要一种机制来计算最优路径。
在实践中,是通过度量值Metric或代价cost来进行计算的,度量值或代价越小则路由越优。
Metric和cost是由一个或几个因素综合决定的,一般是受以下因素有关
1.跳数
2.链路带宽
3.链路负载
4.时延
5.可靠性
6.链路出错率
在第4大特性中,也引申出了另一个路由算法的问题:如何快速使所有路由表都达到一致状态,也就是收敛。收敛时间是信息共享和计算最佳路由生成路由表的时间之和。
在实践中,还有两个问题也需要在路由协议设计中需要考虑
1. 互联网规模特别大,几百万上千万路由器连接在一起,如果所有路由器都知道所有的网络怎样到达,则路由表将非常大,仅仅路由交换信息就会让互联网饱和。
2. 很多公司单位是不愿意把自己内部的网络细节对外公开的,但是还希望能连上互联网。
因此实践中将互联网分成了很多小的自制域AS,每个行政单位就是一个AS。AS内部运行的路由选择协议和AS之间运行的路由选择协议是不相关的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义