计算机网络:网络层

目录

网络层概述

数据平面

IPv4

数据报格式

分片

编址

分类编址

子网划分与子网掩码

无分类编址CIDR

虚拟专用网VPN

网络地址转换NAT

动态主机配置协议DHCP

网际控制报文协议ICMP

​编辑

IPv6

通用转发和SDN

控制平面

路由算法及路由协议概述

路由器基本结构

IP数据报的发送及转发过程

路由算法及路由协议

RIP协议

距离向量算法

RIP

路由选择环路及毒性逆转

OSPF协议

链路状态算法

OSPF

BGP协议

BGP

三种路由协议比较


网络层概述

网络层是计算机网络体系结构中负责跨网络端到端通信的层次,其核心是解决不同网络如何互联的问题,屏蔽底层物理网络(如以太网、WIFI、广域网)的差异,为传输层的segment 提供跨网络的端到端传递能力 。

网络层通过封装 - 解封装实现传输层段的传递:

  • 发送端封装:传输层将应用数据分段为segment后,交给网络层。网络层为其添加IP 头部,形成IP 数据报(segment 是数据报的数据部分)。
  • 接收端解封装:目的主机的网络层收到 IP 数据报后,校验头部,然后剥离 IP 头,将内部的segment交给传输层。

网络层协议需运行在所有参与 IP 通信的设备上,但主机与路由器的功能定位存在明确分工:

  • 主机作为通信的起点与终点 ,负责端到端数据的封装与解封装。同时维护本地路由表以决定自身发出数据报的下一跳,且实现网络层与上层协议栈的交互(如分片、重组)。
  • 路由器不参与通信的发起与终止 ,仅作为数据包的转发枢纽 。核心功能为查表转发 :接收 IP 数据报 → 检查目的 IP 地址 → 查询转发表 → 从相应接口转发。专注于跨网络的数据传递,不处理上层协议信息,仅负责网络层报文的路由与转发。同时还会处理 ICMP 等网络层控制报文以维护网络状态。

**因特网的网络层提供无连接、尽力而为的服务。**发送数据报前源和目的主机无需建立连接,每个数据报独立转发,路径可能不同。网络层不保证数据报的可靠到达(不确认、不重传)。若网络拥塞或故障,数据报可能丢失、延迟或乱序(这些可靠性由上层的 TCP 负责保障)。

数据平面与控制平面是网络层的两大核心功能平面:

  • 转发是网络层数据平面 的核心功能,路由器将到达输入接口的分组,通过查询基于控制平面生成的转发表, 确定该分组的出接口下一跳设备转发到合适输出接口,不参与路径决策
  • 路由是网络层控制平面 的核心功能,通过路由算法和协议,计算从源主机到目的主机的最优路径, 维护路由表并同步至转发表,为数据平面提供转发依据。路由选择算法 定义最优路径的计算逻辑,路由选择协议 负责设备间交换路由信息。

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

数据平面

IPv4

数据报格式

IPv4 头部由20 字节固定部分 + 可变长度的可选字段(40字节)组成:

分片

IP 分片是 IP 协议为适应不同链路**最大传输单元(MTU)差异而设计的机制。**

当 IPv4 数据报的总长度超过出接口的 MTU时,要将其分割为多个分片进行传输。若数据报超过链路 MTU 且不分片,路由器会直接丢弃该数据报,导致通信失败。

分片适应不同 MTU 的链路,实现异构网络互联互通,且无需源主机提前感知路径 MTU。但其增加了网络开销(总字节增加)。重组开销大,目的主机需缓存所有分片,直到收到最后一个分片。若分片丢失,整个数据报会被丢弃。同时也增加了安全风险(分片攻击)。

编址
分类编址

在 IPv4 中,有多种具有特殊用途的 IP 地址:其不用于常规的端到端通信,而是承担网络测试、管理、隔离等特定功能。

内网(专用)IP 地址(IPv4 私有 IP 地址): IP 地址空间中专门预留的部分,仅供局域网使用,不会作为公网地址分配。因此与互联网上的公网 IP 完全不重复,仅在局部网络中标识设备,对外网无意义。互联网中的路由器不会转发目标地址为专用 IP 的数据包,确保其仅在局域网内生效。

子网划分与子网掩码
无分类编址CIDR

核心关键机制:路由聚合与最长匹配原则

1. 路由聚合:减少路由表条目

由于地址按层级连续分配,上层路由器可将多个下层子网合并为一个聚合路由,大幅减少路由表记录。

例如某企业有 3 个子网192.168.1.0/24、192.168.2.0/24、192.168.3.0/24,它们的网络前缀前 22 位相同,因此可聚合为192.168.0.0/22(覆盖192.168.0.0~192.168.3.255)。使得原本需要 3 条路由记录聚合后只需 1 条,骨干网路由器的路由表条目可从百万级压缩到万级,极大提升转发效率。

2. 最长匹配原则:确保路由精准

当路由表中同时存在聚合路由和明细子网路由时,路由器会优先选择网络前缀最长(掩码最大) 的路由,保证数据包准确到达目标子网。

例如路由表中有两条路由:192.168.0.0/22(聚合路由)和192.168.1.0/24(明细路由)。当目标 IP 为192.168.1.10时,路由器会匹配/24的明细路由(前缀更长),而非/22的聚合路由,确保数据包准确转发到192.168.1.0/24子网。

虚拟专用网VPN

网络地址转换NAT

NAT设备会维护一张转换表,记录私有IP + 端口与公网 IP +端口的对应关系,实现地址 + 端口的内外网双向通信:

NAT穿越

NAT 穿越指的是两个位于不同 NAT 设备后的内网设备,试图直接建立通信连接时遇到的困难。

NAT 的核心功能是隐藏内网IP,用公网IP代理通信,但这也导致了一个矛盾:

  • NAT 对外屏蔽内网信息:内网设备的私有 IP不会被外网看到,外网只能看到 NAT 设备的公网 IP。
  • NAT 的单向连接特性:NAT 的转换表通常是基于内网主动发起连接建立的。如果外网设备主动向内网设备发送数据,NAT 设备会因为转换表中没有对应记录而直接丢弃数据包(视为非法流量)。

当两个设备都在 NAT 后面时,双方都处于被 NAT 屏蔽的状态,彼此不知道对方的内网 IP,且各自的 NAT 设备会拦截对方主动发来的连接请求 -- 这就是 NAT 穿越问题的根源。

NAT 会阻碍外网设备主动连接内网设备,因此依赖双向通信的 P2P 应用需要专门设计NAT 穿越机制,利用UPnP/STUN/TURN 等协议自动打通 NAT 映射,或手动配置端口转发

并且NAT 的设计与网络端到端原则存在冲突

  • 端到端原则:网络的复杂性应放在边缘设备(如主机),中间设备仅做简单转发,这样数据可在两端直接通信,无需中转和特殊处理。
  • NAT的越层处理:路由器本应只处理第 3 层(网络层,IP 地址),但 NAT 为了实现地址转换,额外处理了第 4 层(传输层,端口号),打破了分层职责的设计。因此被认为违反了端到端原则。

动态主机配置协议DHCP

网际控制报文协议ICMP

ICMP 差错报告报文的封装逻辑与内容组成

当路由器/主机收到一个存在错误的 IP 数据报(比如目的不可达、超时)时,会生成 ICMP 差错报告报文:

先截取原始错误 IP 数据报的IP 首部+ 数据字段的前 8 字节 :这部分是为了让接收 ICMP 报文的源主机能通过原始 IP 首部 定位到出问题的 IP 数据报,通过数据前 8 字节 (通常包含 TCP/UDP 的端口号)定位到对应的应用进程。 这部分内容作为ICMP 差错报告报文的数据部分 ,再加上 ICMP 自身的首部(固定 8 字节),组成完整的 ICMP 差错报告报文。最后 这个 ICMP 报文会被封装到一个新的 IP 数据报的数据字段中,通过 IP 协议发送给原始 IP 数据报的源主机。

IPv6

IPv4 采用 32 位地址,总容量约 43 亿个。随着物联网设备、移动终端、云服务的爆发式增长,IPv4 地址在 2011 年已基本耗尽(IANA 分配完最后一批地址)。 IPv6 采用128位地址,总容量约 3.4*10^38个--这个数量级意味着给地球上每一粒沙子分配 thousands 个 IP 地址都绰绰有余,从根本上消除了地址短缺的隐患。

IPv6 报头固定为 40 字节,包含 8 个核心字段

IPv6 对报头结构的改造,核心是简化路由器负担,提升转发效率:

固定长度的报头可让路由器快速按需解析。通过Next Header字段标识是否存在扩展报头及类型。

TTL → 跳数限制(Hop Limit)、移除头部校验和(Checksum)、分片机制优化仅源端分片、新增流标签字段标识具有相同服务需求的数据流......

通用转发和SDN

SDN

传统网络中,路由器/交换机的控制平面和数据平面是紧耦合在硬件设备中的,导致网络配置、故障排除复杂、扩展困难。

除路由器/交换机外,网络中存在种类繁多的中间盒设备,每种设备对应特定网络功能。这种每种功能依赖专用设备的模式,带来了显著的运维与扩展瓶颈。

这些痛点正是网络功能虚拟化(NFV) 技术诞生的核心驱动力。

**SDN方法将控制平面从硬件中剥离,由集中式 SDN 控制器承担网络管理。**SDN 采用三层逻辑架构,各层分工明确且通过标准化接口交互:

每个路由器都包含一个流表,定义了路由器的匹配+行动规则,被逻辑上集中的控制器计算和分发。

通用转发
通用转发是一种高度灵活可编程的数据包转发机制,打破基于固定协议的传统转发限制,支持根据任意数据包字段进行匹配,并执行自定义处理动作。它是SDN和可编程网络的核心技术之一。

字段匹配 + 动作执行 这种模型的关键是可编程,转发规则不再由设备硬件/固定协议固化 ,而是可以通过软件动态定义更新,从而适配复杂多变的网络需求。

OpenFlow

OpenFlow 是SDN的核心南向协议 ,用于实现 SDN 控制器与数据平面设备的通信,数据平面设备通过流表存储转发规则,由SDN控制器集中下发和管理。

OpenFlow 通过匹配特定字段 + 执行自定义动作 的统一模型,将路由器、交换机、防火墙、NAT 等不同网络设备的功能标准化 。无论设备功能多复杂,都可拆解为:哪些字段需要匹配匹配后执行什么操作两个核心环节,从而实现协议/设备无关的可编程转发。

目前几乎所有的网络设备都可以在这个匹配 + 行动模式框架进行描述。

控制平面

路由算法及路由协议概述

路由器基本结构

路由器的基本结构可分为路由选择部分分组转发部分

路由器中输入/输出队列产生溢出是造成路由器中分组丢失的重要诱因。

当分组到达的速率超过了端口的处理或转发速率时,对应队列的缓存空间会逐渐耗尽,后续到达的分组因无存储空间只能被丢弃。

交换结构作为路由器内部的转发通道,连接输入输出端口与分组处理模块,实现数据的内部传输。

分组处理模块 内置转发表 ,数据转发的依据源于路由表,但实际使用转发表(由路由表衍生)执行转发决策,确定数据对应的输出端口。

路由选择处理机 运行路由选择协议,维护**路由表。**当网络拓扑变化时,需随网络拓扑变化动态计算最优路由,并将路由表信息同步更新至转发表。

IP数据报的发送及转发过程
路由算法及路由协议

路由算法是计算最优路由的逻辑方法,路由协议是实现了特定路由算法的、具体的通信规则和报文格式

路由器通过路由协议交换信息,执行路由算法生成路由表,最终实现数据的正确转发。

RIP协议

距离向量算法

距离向量算法(Distance-Vector Algorithm,简称 DV 算法) 是一种分布式的动态路由算法 ,核心逻辑是路由器仅与直接相连的邻居交换路由信息,通过迭代计算逐步收敛到全网的最优路径

每个路由器都会维护一张距离向量表

目的网络 距离(跳数) 下一跳路由器

核心数学公式

路由器 i 到 d 的最优路径,一定是先到某个邻居 j,再沿 j 到 d 的最优路径到达 d------ 因此 i 会计算到每个邻居的成本 + 邻居到 d 的成本,并选择其中最小的那个,作为自己到 d 的新距离。

RIP
路由选择环路及毒性逆转

路由选择环路是指数据包在网络中多个路由器之间无限循环转发,永远无法到达目的网络的现象。本质是路由器之间的路由信息不同步,导致错误的下一跳配置。

以距离向量算法为例 ,距离向量算法的慢收敛特性是环路产生的根本原因:网络拓扑变化后,路由器之间的路由信息需要时间同步,在此期间可能出现错误路由传递:

路由器仅依赖邻居的路由信息更新自己的表,无法感知全网拓扑。拓扑变化(如链路断开)的不可达信息传递速度,慢于错误的可达信息传递速度。

水平分割(基础防环机制):路由器不会把从邻居 X 学到的路由,再原封不动发回给 X(避免简单环路)。

毒性逆转是距离向量算法中用于防止路由环路 的核心机制:路由器从同一个 Interface X 接口向该邻居发送路由更新时,会故意将该路由的度量值(距离)设为协议规定的无穷大,主动将这条路由标记为不可达(有毒)并回传给该邻居。

毒性逆转是水平分割的增强版。相比水平分割的不回传,毒性逆转通过主动告知不可达更明确地阻断了路由回传的可能,从而更高效地避免路由环路。

OSPF协议

链路状态算法

链路状态算法(Link-State Algorithm,简称 LS 算法)是一种全局集中式的动态路由算法,核心逻辑是 每个路由器获取全网完整拓扑信息,独立计算到所有目的网络的最短路径。 每个路由器会收集自己的链路状态。

OSPF

BGP协议

BGP
三种路由协议比较

😼😼😼.

相关推荐
不染尘.3 小时前
TCP客户服务器编程模型
linux·服务器·网络·网络协议·tcp/ip·计算机网络·ssh
Ccjf酷儿3 小时前
计算机网络 (郑烇) 4 网络层:数据平面
网络·计算机网络·平面
闲人不梦卿4 小时前
计算机网络
计算机网络
框架主义者5 小时前
N2N Maid - 一个开源多端的 N2N 图形界面
计算机网络·rust
Ancelin安心5 小时前
关于代理的一些网络知识复盘
linux·运维·网络·计算机网络·web安全·ubuntu·网络安全
阑梦清川6 小时前
26考研408计算机网络真题---非官方解析
计算机网络·考研
Kendra9198 小时前
计算机网络--- TCP/IP协议簇
网络协议·tcp/ip·计算机网络
yenggd1 天前
企业总部-分支-门点-数据中心使用骨干网SRv6 BE互联互通整体架构配置案例
运维·网络·计算机网络·华为·架构
梁辰兴1 天前
计算机网络基础:局域网的数据链路层
网络·网络协议·计算机网络·计算机·数据链路层·局域网·梁辰兴