自治系统与 BGP(进阶)
复习
- 链路状态路由:掌握全网拓扑后计算最短路径
- 距离向量路由:与邻居交换距离向量
- 路径选择问题:把网络抽象成带权图选路
本章为进阶内容,零基础读者可以跳过,不影响后续阅读。
TL;DR
- 互联网由许多独立的“自治系统”组成
- 域内路由与域间路由,是两套不同的问题
- BGP 在自治系统之间交换可达信息
- 域间更看重策略与商业关系,而非单纯最短
正文
前两章的路由算法,都默认整个网络可以用一张图表示、由同一套规则管理。可现实的互联网不是这样:它由成千上万个独立的组织各自运营,谁也不归谁管。
这些独立管理的网络,称为自治系统(AS,Autonomous System)。
为什么要分域
如果全世界只用一张图、跑一次最短路,会怎样?
- 规模太大:节点和链路数量惊人,任何一台路由器都难以保存和计算
- 管理边界:每个组织有自己的策略、成本和隐私,不愿把内部细节全公开
- 政策各异:两家运营商之间可能约定“不互相免费转发”,这不是技术最短能表达的
所以互联网被切成许多自治系统:每个系统内部自己管好,系统之间只交换“能不能到达”这样的粗粒度信息。
域内与域间
于是路由分成两个层次:
- 域内路由(IGP):在一个自治系统内部选路,前面讲的距离向量、链路状态都可以用在这里
- 域间路由(EGP):在自治系统之间交换可达信息,代表就是 BGP(边界网关协议)
BGP 交换的不是简单的距离,而是“去某个地址范围,要经过哪些自治系统”这样的路径信息。这样,各方都能看到一条宏观的路线。
策略优先于最短
域间路由最特别的一点是:它往往不选“最短”,而是选“最符合政策”。
因为自治系统之间常有商业关系:有的链路是付费的,有的免费,有的伙伴关系,有的竞争对手。路由器会优先走经济上更划算、合作更紧密的路径,哪怕绕一点。
这提醒我们:网络不只有技术约束,还有组织和经济约束。 理解了这一点,才能理解为什么真实的路由有时看起来“不合常理”。
到这里,跨网络的寻路告一段落。数据包终于快到达目的地主机了,可能它要交给主机上的哪个程序呢?这就需要下一组概念:端口与传输层。
思考题 1
为什么互联网要划分成许多自治系统,而不是用一张统一的地图?
思考题 2
域间路由为什么常常不按“最短路径”来选?
小结
知识点
- 互联网由许多自治系统组成
- 域内路由与域间路由分层解决
- BGP 交换自治系统之间的可达信息
- 域间路由更看重策略与商业关系
参考资料
- Wikipedia(zh):自治系统:由单一组织管理的一组网络
- Wikipedia(zh):边界网关协议:自治系统之间交换路由信息的协议
思考题答案(仅供参考)
思考题 1
因为单一地图在规模上不可行,也无法尊重各组织的管理边界、隐私和政策。划分成自治系统后,每个系统内部自行管理,系统之间只交换粗粒度的可达信息,既可行又尊重了各方权益。
思考题 2
因为自治系统之间存在商业与合作关系:有些链路付费、有些免费,有些是伙伴、有些是对手。选择路径时会优先考虑政策与经济利益,而不是单纯的距离或时延,所以常常不是最短的那条。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图

设计师 | 南国微雪