目录
- 导语
- [一、4.1.1 转发和路由选择:数据平面和控制平面](#一、4.1.1 转发和路由选择:数据平面和控制平面)
- [二、4.1.2 网络服务模型](#二、4.1.2 网络服务模型)
- 本节核心总结(必看)
- 结语
导语
大家好呀~经过前三章的学习,我们已经从应用层(第2章)走到了运输层(第3章),现在终于要进入网络的"核心地带"------网络层(Network Layer)!如果说应用层是"用户看到的界面",运输层是"端到端的快递员",那网络层就是"全国的高速公路网和交通指挥中心"------它负责把数据包从源主机经过无数路由器送到目的主机。
网络层是整个因特网最复杂、最核心的层次。教材把网络层分成了两章来讲:第4章是数据平面(Data Plane) ------关注每个路由器如何转发数据包;第5章是控制平面(Control Plane)------关注路由器之间如何协作、计算路由。这一章我们先学数据平面,搞懂一个数据包到达路由器后,是怎么被处理、怎么被转发出去的。
4.1节作为网络层的开篇,主要回答两个基本问题:第一,网络层到底要做什么?转发和路由选择有什么区别?数据平面和控制平面怎么划分?第二,网络层能提供什么样的服务?是可靠的还是不可靠的?是有连接的还是无连接的?准备好了吗?让我们开始网络层的旅程吧~

一、4.1.1 转发和路由选择:数据平面和控制平面
1. 网络层的作用------"把包送到目的地"
网络层的作用很简单:把数据报(datagram)从源主机经过一系列路由器,送到目的主机。注意,网络层传输的数据单元叫数据报(datagram),和运输层的"报文段(segment)"、链路层的"帧(frame)"是不同层次的叫法。
网络层的工作可以分解为两个核心功能:
- 转发(Forwarding) :当一个数据包到达路由器的输入端口时,路由器把它从合适的输出端口发出去。这是一个本地的、 per-router 的动作------每个路由器自己决定把这个包从哪个端口扔出去。
- 路由选择(Routing) :网络层需要确定数据包从源到目的地的路径(route/path) 。这是一个全局的、网络范围的动作------所有路由器协同工作,计算出整个网络的路由表。
通俗类比:转发就像你开车到了一个十字路口,根据路牌决定往左拐还是往右拐------这是每个路口的本地决策。路由选择就像出发前用导航软件规划整条路线------这是全局的路径规划。没有导航(路由选择),你到了路口不知道该往哪拐;没有路口转向(转发),规划好的路线也无法执行。两者缺一不可。

2. 数据平面和控制平面
为了更好地理解网络层,教材引入了**数据平面(Data Plane)和控制平面(Control Plane)**的划分:
- 数据平面 :路由器中负责转发 的部分。每个路由器根据自己的转发表(forwarding table),把到达的数据包从正确的端口发出去。数据平面的操作是毫秒级甚至微秒级的,需要非常快。
- 控制平面 :网络中负责路由选择 的部分。所有路由器运行路由选择协议(如OSPF、BGP),交换路由信息,计算出整个网络的路由表,然后下发到每个路由器的数据平面。控制平面的操作是秒级甚至分钟级的,不需要那么快。
继续用交通类比:数据平面就是路口的红绿灯和转向指示------每辆车到了路口,根据指示快速通过。控制平面就是城市交通规划中心------根据车流量、道路状况调整红绿灯时长、规划最优路线,更新路牌信息。

3. 两种实现控制平面的方式
控制平面有两种典型的实现方式:
方式一:传统方式------每个路由器自己算
在传统的因特网中,每个路由器都运行路由选择协议,和邻居交换路由信息,自己计算路由表。路由器既是"路口交警"(数据平面),又是"交通规划员"(控制平面)。这种方式的好处是分布式、容错性好------一个路由器挂了不影响其他路由器。坏处是每个路由器都要跑完整的路由协议,配置复杂,难以集中管理。
方式二:SDN方式------集中控制器算
**软件定义网络(Software-Defined Networking,SDN)是一种新的网络架构。它把控制平面从路由器中"抽"出来,放到一个集中控制器(controller)**中。路由器只保留数据平面(负责转发),控制平面的路由计算全部由远程控制器完成,然后通过OpenFlow等协议把转发表下发给路由器。
SDN的好处是:集中管理、灵活可编程、容易部署新功能。坏处是控制器成为单点故障(当然可以做集群),而且控制器和路由器之间的通信延迟可能影响路由收敛速度。4.4节我们会详细学习SDN和OpenFlow。
4. 转发表和路由表的区别
这里要区分两个容易混淆的概念:
- 路由表(Routing Table):控制平面的产物,包含到各个目的地的完整路由信息(下一跳、度量值、路由协议等)。
- 转发表(Forwarding Table):数据平面使用的表,由路由表推导而来,只包含"目的地址前缀→输出端口"的映射,用于快速查找转发。
路由表是"给人看的"------管理员可以查看路由表了解网络拓扑。转发表是"给硬件看的"------路由器硬件根据转发表快速转发数据包。在简单的路由器中,两者可能是同一张表;在高端路由器中,转发表会被压缩和优化,存放在高速TCAM(三态内容寻址存储器)中,实现线速转发。
二、4.1.2 网络服务模型
1. 网络层提供什么服务?
网络层在源主机和目的主机之间提供数据报传输服务。那这个服务质量如何呢?我们可以从几个维度来衡量:
- 可靠交付(Reliable Delivery):保证每个数据报都能到达目的地吗?
- 保序(In-order Packet Delivery):数据报会按发送顺序到达吗?
- 时延保证(Timing):数据报能在规定时间内到达吗?
- 带宽保证(Throughput):能保证一定的传输速率吗?
- 安全性(Security):数据报的内容会被加密或认证吗?
2. 因特网的网络服务模型------"尽力而为"
因特网的网络层(IP协议)提供的是尽力而为服务(Best-Effort Service)。这个名字听起来很"佛系"------我尽力了,但不保证结果。具体来说:
- 不保证可靠交付:数据报可能丢失、可能损坏、可能重复。
- 不保证保序:数据报可能乱序到达。
- 不保证时延:有的包快、有的包慢,没有统一的时延上限。
- 不保证带宽:你可能抢到100Mbps,也可能只有10kbps。
你可能会问:这么"不靠谱"的服务,怎么支撑起了整个因特网?答案是:可靠性由运输层(TCP)来保证 !网络层只负责"把包往前扔",丢了、乱了、慢了,由TCP在端系统层面来补救(重传、排序、流量控制)。这种"网络简单、端系统复杂"的设计哲学,叫做端到端原则(End-to-End Principle)------能在端系统做的事,就不要放到网络中间去做。
尽力而为服务的好处是:网络层非常简单,路由器只需要做转发,不需要维护连接状态、不需要做复杂的QoS调度,成本低、扩展性好。这也是因特网能从几十个节点扩展到几十亿节点的重要原因。

3. 其他网络服务模型------ATM的启示
并不是所有网络都采用尽力而为服务。在因特网发展的同时,电信行业曾大力推广**ATM(Asynchronous Transfer Mode,异步传输模式)**网络,它提供了更丰富的服务模型:
- CBR(Constant Bit Rate,恒定比特率):像电路交换一样,保证固定带宽和时延,用于电话。
- VBR(Variable Bit Rate,可变比特率):保证平均带宽和峰值带宽,用于视频会议。
- ABR(Available Bit Rate,可用比特率):只保证最小带宽,多余带宽可以抢占,用于文件传输。
- UBR(Unspecified Bit Rate,未指定比特率):和尽力而为差不多。
ATM还提供了面向连接的服务------传输数据前需要建立虚电路(Virtual Circuit,VC)。但最终,ATM在和IP的竞争中失败了。原因很复杂,但核心原因是:IP的尽力而为服务虽然简单,但足够灵活、足够便宜,再加上TCP在端系统补全了可靠性,最终赢得了市场。
不过,ATM的一些思想(如QoS、流量工程)后来也被IP网络吸收了。比如MPLS(多协议标签交换)就借鉴了虚电路的思想,在IP网络中实现了流量工程和VPN。
4. 为什么网络层不提供可靠服务?
这是一个经典的设计问题。如果网络层提供可靠服务,路由器就需要维护每个连接的状态、做确认和重传,这会大大增加路由器的复杂度和成本。而且,链路层已经有了差错检测,运输层也有了可靠传输,网络层再做一遍就是重复劳动。
更重要的是,端到端原则告诉我们:在端系统实现可靠性更灵活、更可扩展。应用可以根据自己的需求选择TCP(需要可靠)或UDP(不需要可靠),而不是被网络层强制绑定到某种服务模型上。
本节核心总结(必看)
这一节是网络层的入门,核心要点如下:
一、转发 vs 路由选择
- 转发(Forwarding):路由器本地动作,把到达的包从正确端口发出去,微秒级
- 路由选择(Routing):全局动作,计算源到目的地的路径,秒级
- 转发是"路口转向",路由选择是"导航规划路线"
二、数据平面 vs 控制平面
- 数据平面:负责转发,per-router,速度快,使用转发表
- 控制平面:负责路由选择,网络范围,速度慢,使用路由表
- 传统方式:每个路由器自己算路由;SDN方式:集中控制器算路由
三、网络服务模型
- 因特网IP提供尽力而为服务(Best-Effort):不保证可靠、不保证保序、不保证时延、不保证带宽
- 可靠性由运输层TCP保证,体现了端到端原则
- ATM曾提供CBR/VBR/ABR等QoS服务,但最终被IP的简单性击败
关键概念清单
- 网络层(Network Layer):负责端到端数据报传输
- 数据报(Datagram):网络层的数据单元
- 转发(Forwarding):单路由器的本地转发动作
- 路由选择(Routing):全网的路径计算
- 数据平面(Data Plane):路由器的转发功能
- 控制平面(Control Plane):路由计算功能
- 转发表(Forwarding Table):数据平面使用的快速查找表
- 路由表(Routing Table):控制平面计算的完整路由信息
- SDN(Software-Defined Networking):软件定义网络,集中控制
- 尽力而为服务(Best-Effort Service):IP网络的服务模型
- 端到端原则(End-to-End Principle):能在端系统做的事不放网络中间
结语
这一节我们建立了网络层的整体认知:网络层分为数据平面和控制平面,数据平面负责转发,控制平面负责路由选择;因特网的网络层提供尽力而为服务,可靠性交给运输层。理解了这些基本概念,后面学习路由器工作原理、IP协议、SDN就有了坚实的基础。
下一节4.2我们将深入路由器内部,看看一个数据包到达路由器后,经历了怎样的"旅程"------从输入端口处理,到交换结构,到输出端口处理,再到排队和调度。路由器是网络层的核心设备,理解它的工作原理对理解整个网络至关重要。
如果你觉得这篇笔记对你有帮助,欢迎点赞收藏~有问题也欢迎留言讨论,我们一起进步!