《计算机网络-自顶向下方法》5.1 概述 读书笔记

目录


导语

  大家好呀~第4章我们学习了网络层的数据平面(Data Plane) ------搞懂了一个数据包到达路由器后,是怎么被查找转发表、交换到输出端口、然后发送出去的。但是有一个问题我们还没回答:路由器的转发表是怎么来的? 谁在维护这些转发表?这就是**控制平面(Control Plane)**要解决的问题。

  如果说数据平面是路由器的"手脚"------负责快速转发数据包,那控制平面就是路由器的"大脑"------负责计算路由、维护转发表。没有控制平面,路由器就是一个"瞎子",不知道该把包往哪送。控制平面决定了整个网络的拓扑结构和数据流向,是网络层真正的"灵魂"。

  第5章是整本书中理论性最强、也最精彩的一章。我们会学习两种经典的路由选择算法(链路状态和距离向量),然后看看它们在真实因特网中的应用------OSPF(自治系统内部)和BGP(自治系统之间),再了解SDN控制平面、ICMP协议和网络管理。准备好了吗?让我们走进网络层的"大脑"~


一、控制平面的作用

1. 控制平面 vs 数据平面

  回顾一下4.1节的内容:网络层分为数据平面和控制平面。

  • 数据平面:per-router,本地操作,微秒级。每个路由器根据转发表转发数据包,速度极快。
  • 控制平面:网络范围,全局操作,秒级甚至分钟级。所有路由器协同工作,计算和维护转发表。

  控制平面的核心任务就是:计算出从每个源到每个目的地的"好"路径,然后把这些路径信息下发到每个路由器的转发表中。

  通俗类比:数据平面就像每个路口的红绿灯------车辆到了路口,根据红绿灯指示快速通过。控制平面就像城市交通指挥中心------根据全市的车流量、道路状况,计算每个路口的红绿灯时长和转向规则,然后下发到每个路口。没有指挥中心,红绿灯就不知道该怎么设置。

2. 两种控制平面实现方式

  控制平面有两种典型的实现方式,我们在4.1节已经初步接触过:

方式一:传统方式------每台路由器自己算(分布式)

  每台路由器都运行路由选择协议,和邻居交换路由信息,自己计算到各个目的地的最短路径,然后生成转发表。这是传统因特网的方式------OSPF和BGP都属于这类。

  好处:分布式、容错性好,一台路由器挂了不影响其他路由器。坏处:每台路由器都要跑完整的路由协议,配置复杂,难以集中管理,新功能部署慢。

方式二:SDN方式------集中控制器算(集中式)

  把路由计算功能从路由器中抽出来,放到一个**远程控制器(controller)**中。控制器掌握全网拓扑,计算所有路由器的转发表,然后通过OpenFlow等协议下发给路由器。路由器只保留数据平面功能(转发),不再运行路由协议。

  好处:集中管理、灵活可编程、容易部署新功能。坏处:控制器可能成为单点故障(需要做集群),控制器和路由器之间的通信延迟可能影响路由收敛。

  这一章我们会同时学习这两种方式:5.2-5.4节讲传统的分布式路由选择(OSPF、BGP),5.5节讲SDN集中控制平面。

3. 路由选择算法的输入和输出

  不管是分布式还是集中式,路由选择算法的本质都是一样的:

  • 输入:网络拓扑图(节点=路由器,边=链路,边的权重=链路代价)
  • 输出:从每个源到每个目的地的最短路径(或"好"路径)
  • 最终产物:每个路由器的转发表(目的前缀→输出端口/下一跳)

  链路代价(link cost)可以是多种度量值:带宽、延迟、跳数、拥塞程度、金钱成本等。不同的路由协议使用不同的代价度量。比如RIP用跳数,OSPF可以用带宽,BGP用策略(AS路径长度等)。


二、路由选择算法的分类

  路由选择算法可以从多个维度分类:

1. 全局式 vs 分布式

  • 全局式路由选择算法(Global) :算法掌握全网拓扑和所有链路代价,然后计算最短路径。典型代表是链路状态算法(Link State,LS),比如OSPF。所有路由器都知道全网拓扑,各自用Dijkstra算法计算最短路径。
  • 分布式路由选择算法(Decentralized) :算法只掌握局部信息(邻居的代价和距离向量),通过迭代计算和邻居交换信息,逐步收敛到最短路径。典型代表是距离向量算法(Distance Vector,DV),比如RIP和BGP的基础。

2. 静态 vs 动态

  • 静态路由(Static):路由由人工手动配置,不会自动变化。适合小型网络或特殊场景(如默认路由)。简单但不灵活,拓扑变化时需要手动更新。
  • 动态路由(Dynamic):路由通过路由协议自动学习和更新,拓扑变化时自动收敛。适合大型网络。OSPF、BGP都是动态路由协议。

3. 负载敏感 vs 负载迟钝

  • 负载敏感(Load-Sensitive):链路代价会根据当前拥塞程度动态变化。早期的ARPAnet使用这种方式,但因为路由振荡(route oscillation)问题被放弃了。
  • 负载迟钝(Load-Insensitive):链路代价不随拥塞变化,只和带宽、跳数等静态因素有关。现在的因特网路由协议(OSPF、BGP)都是负载迟钝的,避免了路由振荡。

4. 本章重点学习的两种算法

  5.2节我们会深入学习两种最经典的路由选择算法:

  • 链路状态算法(LS):全局式,用Dijkstra最短路径算法。所有路由器泛洪链路状态信息,每个路由器独立计算最短路径树。
  • 距离向量算法(DV):分布式,用Bellman-Ford方程。每个路由器维护一个距离向量,和邻居交换,迭代更新。有"好消息传得快,坏消息传得慢"的特点,可能出现计数到无穷问题。

  这两种算法是理解所有现代路由协议的基础。OSPF是LS算法的工程实现,RIP是DV算法的工程实现,BGP则是DV算法的策略增强版。


三、本章内容导航

  第5章内容丰富,我们按以下顺序学习:

  1. 5.1 概述(本节):控制平面的作用、路由选择算法分类。
  2. 5.2 路由选择算法:链路状态算法(Dijkstra)和距离向量算法(Bellman-Ford),理论基础。
  3. 5.3 OSPF:因特网自治系统内部的路由选择协议,LS算法的实际应用。
  4. 5.4 BGP:ISP之间的路由选择协议,因特网的" glue ",策略路由。
  5. 5.5 SDN控制平面:集中式控制平面,SDN控制器和OpenFlow协议。
  6. 5.6 ICMP:因特网控制报文协议,ping和traceroute的底层原理。
  7. 5.7 网络管理:SNMP、NETCONF/YANG,如何管理和监控网络设备。
  8. 5.8 小结与实验:全章总结、课后习题、Wireshark ICMP实验。

本节核心总结(必看)

  5.1节是控制平面的入门,核心要点:

一、控制平面的作用

  • 数据平面是"手脚"(转发,微秒级),控制平面是"大脑"(计算路由,秒级)
  • 控制平面的核心任务:计算最短路径,生成和维护转发表
  • 两种实现:传统分布式(每台路由器自己算)vs SDN集中式(控制器统一算)

二、路由选择算法分类

  • 全局式(LS/Dijkstra)vs 分布式(DV/Bellman-Ford)
  • 静态 vs 动态
  • 负载敏感 vs 负载迟钝(现代协议都是负载迟钝)
  • 链路代价可以是带宽、延迟、跳数、策略等

三、本章路线

  • 5.2理论算法 → 5.3 OSPF(AS内)→ 5.4 BGP(AS间)→ 5.5 SDN → 5.6 ICMP → 5.7网络管理 → 5.8总结

关键概念清单

  • 控制平面(Control Plane):计算和维护转发表的网络功能
  • 路由选择算法(Routing Algorithm):计算最短路径的算法
  • 链路状态(Link State,LS):全局式路由算法
  • 距离向量(Distance Vector,DV):分布式路由算法
  • 链路代价(Link Cost):链路的度量值
  • 转发表(Forwarding Table):数据平面使用的快速查找表
  • 自治系统(Autonomous System,AS):统一管理的一组路由器

结语

  这一节我们建立了控制平面的整体认知:控制平面是网络的"大脑",负责计算路由和维护转发表;路由选择算法分为全局式(LS)和分布式(DV)两大类;传统因特网用分布式路由,SDN用集中式控制。

  理解了这些基本概念后,下一节5.2我们将深入两种最经典的路由选择算法------链路状态算法和距离向量算法。这两种算法是整个网络层控制平面的理论基石,OSPF、RIP、BGP等所有实际路由协议都建立在它们之上。Dijkstra算法和Bellman-Ford方程也是面试和考试的绝对高频考点,让我们带着期待进入下一节吧!

  如果你觉得这篇笔记对你有帮助,欢迎点赞收藏~有问题也欢迎留言讨论,我们一起进步!

相关推荐
Polevne1 小时前
C# 上位机UDP/TCP连接外部设备
网络·tcp/ip·udp
木井巳1 小时前
【网络原理】TCP/IP 协议栈
网络·网络协议·tcp/ip·udp
++==2 小时前
RPC:grpc的使用与安装、server和client的使用示例、lsb_relese、自定制协议(LVC)+protobuf的RPC调用框架的实现
网络·网络协议·rpc
luj_17682 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
河北之花2 小时前
计算机三级:RIP表格
计算机网络·智能路由器
青瓦梦滋2 小时前
NAT技术
linux·服务器·网络·网络协议·tcp/ip
RobinDevNotes3 小时前
RoCEv2如何扛起大模型训练网络
linux·网络·ai·网络linux
keyipatience4 小时前
IP网络层
服务器·网络·网络协议·ubuntu·http