[ 计算机网络 | 第四章 ] 网络层 01 概述

前言

这一层网络层是整个计算机网络的核心,十分重要,我们在这篇文章中将粗略地了解网络层的重要性和网络层是什么,所以这篇文章很简单。

网络层概述:从隔壁房间,到世界的另一端

数据链路层 已经解决了"相邻节点之间怎么可靠传帧"的问题。PPP让两台直连的设备能通信,CSMA/CD让共享一根线的多台设备不会乱套,交换机让冲突域缩小到每个端口,VLAN在逻辑上隔开了广播域。

但是都有同一个问题:它们都只能在一个网络内部工作。

同一个以太网 里的设备,通过MAC地址互相找到对方,没有问题。

但如果你想访问一台地球另一端的服务器,你的电脑怎么知道数据该往哪走?中间要经过多少个路由器?每个路由器凭什么知道下一跳该转发给谁?

数据链路层的世界是一个"直连"的世界。而互联网是一个"跨越无数中间网络"的世界。这就是网络层要解决的根本问题。


链路层的局限:只能在一个网络内部通信

数据链路层解决的是"相邻节点"之间的通信。两台设备直接连在同一根线上,或者通过交换机连在同一个局域网里,它们通过MAC地址互相寻址。

MAC地址就像房间里的别人的名字。在同一房间里,喊名字就能找到人。但如果你想找的人不在这个房间里(另一栋楼、另一个城市、另一个国家)------那么 MAC地址就完全不够用了。

原因很简单 :MAC地址是平面地址 。它不包含任何位置信息。00:1A:2B:3C:4D:5E这个地址,你完全看不出这台设备在地球上的哪个角落。

如果一个路由器想根据MAC地址来转发数据,它就需要维护一张全球所有设备的MAC地址表------这张表会有几十亿条记录,而且每台设备移动一次位置就得更新。

这可能吗?当然不行。所以数据链路层只能在一个有限的广播域内工作。这个局限不是设计失误,而是设计分工------链路层只管"相邻节点",跨网络的事交给上一层。


核心矛盾:局域网直连 vs 互联网跨网

于是,网络层的核心矛盾就浮现了:

数据链路层只能在一个网络内部通信 vs 需要让全球任意两台设备跨网络通信

这个大矛盾可以分解为两个小问题:

第一,寻址问题。

我们需要一套全球通用的地址体系。这个地址必须能支持大规模路由,必须具备层级结构------就像邮政地址用"国家/省/市/街道"来组织,路由器不需要知道每个具体门牌号,只需要根据地址前缀来判断"去这个方向走哪个接口"。

第二,路径问题。

从源地址到目的地址,可能存在多条可能的路径。哪条路径是当前最优的?它可能取决于跳数、带宽、延迟,甚至网络运营商的商业协议。你需要一套机制来计算和选择路径。

这两个问题,对应了网络层的两大核心任务。


网络层的两大核心任务:分组转发与路由选择

网络层的工作可以概括为两件事:转发路由。它们不是同一个概念。

维度 分组转发 路由选择
是什么 路由器收到一个IP数据报,查表,从某个接口转发出去 确定数据报从源到目的经过的路径
作用范围 局部------单个路由器的一次操作 全局------全网路由器协同计算
时间尺度 纳秒到微秒级 秒到分钟级
实现方式 硬件(转发表查找) 软件(路由协议计算)
类比 在高速路口,收费员告诉你下一个出口往哪走 出发前,你用导航软件规划了整条路线

分组转发发生在每一个中间路由器的每一次数据报到达时。路由器检查IP数据报的目的地址,查找自己的转发表,决定从哪个接口发出去。这个过程必须极快,通常由专用硬件完成。

路由选择则是一个更"宏观"的过程。它不处理单个数据报,而是决定"到达某个网络,应该走哪条路"。路由协议(比如RIP、OSPF、BGP)负责在路由器之间交换信息,计算出最优路径,然后把这些路径信息填入转发表。

两者的关系是:路由选择负责"铺路"和"更新地图",分组转发负责"按图索骥"。 没有路由选择,转发表就是空的,分组转发无从进行。没有分组转发,路由选择算出来的路径永远不会被用到。


网络层向上层提供两种服务

网络层向上面的传输层提供服务。历史上,网络层可以向上提供两种截然不同的服务,由此延伸出了无连接服务和面向连接服务之争。

服务一:无连接服务(数据报服务)

这种服务不事先建立连接

每个数据报独立处理,携带完整的目的地址,在网络中独立路由。不同数据报可能走不同的路径,到达顺序可能与发送顺序不同。网络层只负责"尽力而为"地交付,不保证可靠------(不保证一定送到 ,不保证按序到达 ,不保证不重复)。

服务二:面向连接服务(虚电路服务)

这种服务要求在通信之前先建立一条"虚电路"。

虚电路不是物理专线,而是一条逻辑上 的路径,沿途路由器为它预留表项。建立之后,所有数据报都沿着同一条虚电路传输,按序到达。网络层保证可靠交付。

两者的核心区别:

对比 数据报服务 虚电路服务
连接建立 不需要 必须先建立
地址 每个数据报携带完整目的地址 数据报只携带虚电路号
路径 每个数据报独立选路 同一虚电路的所有数据报走同一路径
顺序 不保证按序到达 保证按序到达
可靠性 不保证,交给传输层 网络层自己保证
路由器状态 不保存连接状态 需要为每条虚电路保存状态
容错性 高------路由器故障,数据报绕路 低------沿途一个节点故障,整条虚电路中断

谁赢了?数据报服务。

因特网选择了无连接的数据报服务。这个选择不是偶然的。虚电路要求沿途所有路由器都支持虚电路机制,这在全球范围内根本做不到。更重要的是,数据报服务把可靠性交给端系统(传输层的TCP),让网络层保持简单------这就是"端到端原则":网络核心尽量简单,智能放在边缘。

ATM(异步传输模式)曾经试图用虚电路统一网络层,但它失败了。复杂的网络层协议难以在全球范围内部署和维护。IP协议的"尽力而为"看似简陋,反而因为简单而获得了最大的成功------它可以在任何链路层之上运行,可以连接任何异构网络,可以为任何上层协议服务。

📌 小结:网络层要解决的根本矛盾,是数据链路层的"局域网局限"和互联网的"全球互通需求"之间的矛盾。为此,网络层有两项核心任务:分组转发(局部操作,查表转发)和路由选择(全局计算,规划路径)。网络层向上提供两种服务模式------无连接的数据报服务和面向连接的虚电路服务------因特网选择了前者,把复杂性交给端系统,让网络核心保持简单。正是这个选择,奠定了今天互联网可扩展、可互联的基础。

相关推荐
艾莉丝努力练剑2 小时前
【Linux网络】Linux 网络编程:传输层TCP(二)
linux·运维·服务器·网络·tcp/ip·计算机网络
2301_8090511410 小时前
Linux 网络编程 学习笔记
linux·网络·学习
星恒讯工业路由器12 小时前
Wi‑Fi DCM 双载波调制解析
网络·信息与通信·wifi7·wifi6·wi‑fi dcm 双载波调制
IP搭子来一个13 小时前
爬虫采集大量返回 403、429,到底卡在哪一环?
网络·爬虫·python
之歆13 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化
IT大白鼠14 小时前
ICMP协议详解:从基础原理到网络应用实践
网络
云登指纹浏览器15 小时前
静态IP和动态IP哪个好:跨境电商代理选型指南
网络·网络协议·tcp/ip
不昀17 小时前
VOOHU沃虎:音频变压器的频率响应范围是多少?如何影响音质?
网络
H Journey17 小时前
防火墙基本原理、开发部署概述
网络·防火墙