LOADING
4128 words
21 minutes
网络层:IP协议与跨网络通信(三)

网络层

一、理解网络层的核心功能

物理层处理信号传输,数据链路层处理局域网内的帧传输。但为什么还需要网络层呢?

要理解网络层的必要性,我们可以用**“快递运输”**的生活场景类比,并结合一个实际通信案例来拆解三层分工:

1.三层分工的“快递类比”

层级类比角色核心任务
物理层卡车 + 公路/铁路负责“信号传输”:比如网线的电信号、Wi-Fi的无线电波(类似卡车在道路上运输货物)。
数据链路层本地仓库内部分拣负责“局域网内的帧传输”:比如你家路由器下的手机和电脑互传文件(类似仓库内部的包裹分拣)。
网络层全国快递的寻址与中转负责“跨网络的数据包转发”:比如从你家(网络A)给北京的朋友(网络B)寄快递,需要全国物流网络的寻址和中转(类似IP地址和路由器的路由功能)。

2.实际案例:手机在咖啡店访问公司服务器

假设你在咖啡店的Wi-Fi(网络A)中,用手机访问公司的OA系统服务器(网络B),数据传输过程如下:

  1. 物理层:手机的Wi-Fi模块将电信号转为无线电波,通过空气传输到咖啡店路由器(类似卡车把快递从你家运到本地快递站)。
  2. 数据链路层:咖啡店路由器的链路层将数据封装成“以太网帧”(局域网内的帧),在咖啡店的小网络里传输(类似本地快递站内部的包裹分拣)。
  3. 网络层的关键作用
    • 当数据包到达咖啡店路由器的出口时,数据链路层的“帧”无法直接跨越互联网到达公司网络(因为帧是“局域网内的地址”,出了咖啡店网络就失效了)。
    • 此时,网络层通过IP地址(类似快递的“收件人全国地址”)确定目标服务器的位置,并指导路由器将数据包转发到下一个网络节点(比如运营商的骨干网路由器)。
    • 经过多个路由器的“接力转发”(网络层的路由功能),数据包最终到达公司路由器,再通过公司的局域网(数据链路层)传给OA服务器。

3.网络层的核心功能

如果没有网络层,不同局域网之间的设备将无法通信(比如你在咖啡店永远连不上公司服务器)。网络层的核心功能是解决“跨网络通信”的问题,具体包括:

  1. IP寻址:给每个设备分配“跨网络的唯一地址”

    • 类似快递的“收件人姓名+电话+详细地址”,IP地址(如192.168.1.52001:db8::1)标识了设备在整个互联网中的位置,而非局限于某个局域网。
    • 例子:你的手机在咖啡店的IP是192.168.3.10(局域网内),但对外的公网IP可能是223.123.45.67(网络层通过NAT转换后的地址),公司服务器的公网IP是114.25.67.89——只有通过IP地址,数据包才能在互联网中定位到目标。
  2. 路由选择:指导数据包“跨越网络的转发路径”

    • 类似快递的“中转路线规划”,路由器通过路由协议(如OSPF、BGP)计算出“从源网络到目标网络的最佳路径”,并将数据包逐跳转发。
    • 例子:咖啡店的数据包要到公司服务器,可能需要经过“咖啡店路由器→运营商路由器A→运营商路由器B→公司路由器”,每一步都由网络层的路由功能决定。
  3. 异构网络互联:让不同类型的网络协同工作

    • 互联网由无数不同的局域网、广域网组成(比如以太网、Wi-Fi、4G/5G、卫星网络),网络层通过IP协议“统一封装”数据,屏蔽了底层网络的差异。
    • 例子:你的手机通过Wi-Fi(链路层协议)发数据,公司服务器通过以太网(链路层协议)收数据,网络层的IP包能在两种链路中透明传输。

4.一句话总结

物理层和数据链路层解决了“本地网络内的信号和帧传输”,但网络层通过IP寻址、路由选择和异构网络互联,实现了“全球范围内的跨网络通信”——这正是互联网能连接全世界的核心原因。

二、网络层的相关设备

核心设备:

路由器:基于IP地址转发数据包,实现路由选择;支持NAT、ACL等功能

三层交换机:结合交换机的高速数据交换和路由器的IP路由功能。支持VLAN间路由

防火墙:根据IP地址、端口号等规则允许或阻断流量,跟踪连接状态,这部分可能会设计传输层,但核心功能仍以网络层为基础

三、IP协议与报文结构

1. IP地址基础

IP地址是网络中设备的唯一标识,用于跨网络定位和通信。目前主流的是IPv4(32位)和IPv6(128位),以下以IPv4为核心展开(IPv6后续单独说明)。

(1)IPv4地址的表示形式

IPv4地址是32位二进制数,为了便于人类阅读,通常拆分为4个8位(1字节)的二进制段,每段转换为十进制后用“.”连接,称为“点分十进制”。

  • 二进制:11000000.10101000.00000001.01100100
  • 点分十进制:192.168.1.100(每段范围0-255,因为8位二进制最大为255)
(2)子网与子网掩码

一个IP地址由“网络位”和“主机位”两部分组成:

  • 网络位:标识设备所在的网络(类似“街道地址”);
  • 主机位:标识网络内的具体设备(类似“门牌号”)。

子网掩码是一个32位的二进制数,用于区分IP地址的网络位和主机位:

  • 子网掩码中“1”对应的IP地址位为网络位;
  • 子网掩码中“0”对应的IP地址位为主机位。

例如:

  • IP地址:192.168.1.100(二进制:11000000.10101000.00000001.01100100
  • 子网掩码:255.255.255.0(二进制:11111111.11111111.11111111.00000000
  • 网络位:前24位(子网掩码前24位为1),主机位:后8位(子网掩码后8位为0)。
(3)子网容纳设备数计算

子网中可容纳的有效设备数由“主机位数量”决定:

  • 公式:有效设备数 = 2^n - 2(n为主机位位数)
    • 减2的原因:排除“网络地址”(主机位全为0,标识整个网络)和“广播地址”(主机位全为1,用于向网络内所有设备发送消息)。
(4)IP地址换算示例

以下通过3个典型例子,演示IP地址、子网掩码的二进制转换,以及网络地址、广播地址、可用IP范围的计算。

示例1:基础子网(掩码255.255.255.0) 已知:IP地址 192.168.1.100,子网掩码 255.255.255.0 步骤1:转换为二进制

  • IP:11000000.10101000.00000001.01100100
  • 掩码:11111111.11111111.11111111.00000000

步骤2:确定网络位和主机位

  • 网络位:前24位(掩码前24位为1)
  • 主机位:后8位(掩码后8位为0)

步骤3:计算网络地址(主机位全为0)

  • 网络地址:11000000.10101000.00000001.00000000192.168.1.0

步骤4:计算广播地址(主机位全为1)

  • 广播地址:11000000.10101000.00000001.11111111192.168.1.255

步骤5:计算可用IP范围和设备数

  • 可用IP:网络地址+1 到 广播地址-1 → 192.168.1.1 ~ 192.168.1.254
  • 设备数:2^8 - 2 = 254(符合公式)

示例2:较大子网(掩码255.255.0.0) 已知:IP地址 10.0.5.88,子网掩码 255.255.0.0 步骤1:二进制转换

  • IP:00001010.00000000.00000101.01011000
  • 掩码:11111111.11111111.00000000.00000000

步骤2:网络位和主机位

  • 网络位:前16位,主机位:后16位

步骤3:网络地址

  • 主机位全为0 → 00001010.00000000.00000000.0000000010.0.0.0

步骤4:广播地址

  • 主机位全为1 → 00001010.00000000.11111111.1111111110.0.255.255

步骤5:可用范围和设备数

  • 可用IP:10.0.0.1 ~ 10.0.255.254
  • 设备数:2^16 - 2 = 65534

示例3:子网划分(将大网络拆分为小网络) 需求:将 192.168.1.0/24(默认掩码255.255.255.0,24位网络位)划分为4个小子网,每个子网需容纳至少50台设备。

步骤1:确定所需主机位

  • 需容纳50台设备 → 满足 2^n - 2 ≥ 50 → n=6(2^6-2=62 ≥50),即主机位需6位。

步骤2:计算网络位和子网掩码

  • 原网络位24位,主机位8位;
  • 划分4个子网需借用主机位:2^m ≥4 → m=2(借2位主机位作为子网位);
  • 新网络位:24+2=26位,新主机位:8-2=6位;
  • 子网掩码:前26位为1 → 二进制 11111111.11111111.11111111.11000000 → 十进制 255.255.255.192

步骤3:计算4个子网的范围

  • 子网1:网络位26位,子网位00

    • 网络地址:192.168.1.0(主机位000000)
    • 广播地址:192.168.1.63(主机位111111)
    • 可用IP:192.168.1.1 ~ 192.168.1.62(62台设备)
  • 子网2:子网位01

    • 网络地址:192.168.1.64
    • 广播地址:192.168.1.127
    • 可用IP:192.168.1.65 ~ 192.168.1.126
  • 子网3:子网位10

    • 网络地址:192.168.1.128
    • 广播地址:192.168.1.191
    • 可用IP:192.168.1.129 ~ 192.168.1.190
  • 子网4:子网位11

    • 网络地址:192.168.1.192
    • 广播地址:192.168.1.255
    • 可用IP:192.168.1.193 ~ 192.168.1.254

2. IPv4协议

(1)IPv4报文结构(重点字段)

IPv4报文由“首部”和“数据”两部分组成,首部固定20字节(可选字段最多40字节),包含以下核心字段:

字段长度作用说明
版本(Version)4位标识IP版本(IPv4为4,IPv6为6),确保接收方按对应版本解析报文。
首部长度4位单位为32位(4字节),表示首部总长度(如值为5 → 5×4=20字节,无可选字段)。
TTL(生存时间)8位限制数据包传输跳数(每经过1个路由器减1,到0则丢弃并返回ICMP超时消息),防止数据包无限循环。
协议(Protocol)8位标识上层协议(6=TCP,17=UDP,1=ICMP),告知接收方如何处理后续数据。
源IP地址32位发送方IP地址(如192.168.1.1)。
目的IP地址32位接收方IP地址(如10.0.0.2)。
(2)地址分配方式
  • 静态分配:手动在设备上配置IP地址、子网掩码、网关等参数(如服务器、路由器)。 优点:地址固定,便于管理;缺点:需手动维护,适合小规模网络。

  • 动态分配:通过DHCP(动态主机配置协议)自动分配。 流程:

    1. 客户端发送“DHCP发现”广播(寻找DHCP服务器);
    2. 服务器回复“DHCP提供”(分配IP、掩码、租期等);
    3. 客户端发送“DHCP请求”(确认使用该IP);
    4. 服务器回复“DHCP确认”(正式分配)。 优点:自动管理,减少人工操作;缺点:IP可能动态变化(如家用电脑每次联网IP可能不同)。
(3)分片与重组

当IP数据包大小超过链路的“最大传输单元(MTU)”时,会被拆分为多个“分片”传输,到达目标后重组为完整数据包。

  • MTU:链路层规定的最大帧大小(如以太网MTU为1500字节,PPP链路可能为576字节)。
  • 分片示例: 一个2000字节的IP包(首部20字节,数据1980字节)通过以太网(MTU=1500)传输:
    • 分片1:首部20字节 + 数据1480字节(总1500字节);
    • 分片2:首部20字节 + 数据500字节(总520字节); 每个分片包含“标识”(同一数据包的分片标识相同)、“标志”(是否最后一个分片)、“片偏移”(分片在原数据中的位置),目标端据此重组。

3. IPv6协议

(1)地址结构与表示

IPv6地址是128位二进制数,分为8个16位段,用冒号“:”分隔,每个段用十六进制表示(0-9、A-F),例如:

  • 完整形式:2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 简化规则:
    • 前导零可省略(如0db8db8);
    • 连续的零段可用“::”代替(仅一次),如上述地址可简化为 2001:db8:85a3::8a2e:370:7334
(2)优势与不足
  • 优势

    • 地址空间极大(2^128个地址,解决IPv4地址枯竭问题);
    • 内置安全性(支持IPsec加密和认证);
    • 自动配置(无需DHCP,设备可自动生成全球唯一地址);
    • 简化首部(固定40字节,无分片字段,提高转发效率)。
  • 不足

    • 与IPv4不兼容(需过渡技术);
    • 部署成本高(设备、应用需升级支持)。
(3)IPv4到IPv6的迁移技术
  • 双栈技术:设备同时支持IPv4和IPv6协议栈,根据目标地址自动选择协议(如电脑同时配置IPv4和IPv6地址)。
  • 隧道技术:将IPv6数据包封装在IPv4包中传输(适用于IPv4网络中传输IPv6数据),如“6to4隧道”“ISATAP隧道”。
  • NAT64:通过转换服务器实现IPv6与IPv4地址映射(如IPv6主机访问IPv4服务器时,NAT64将IPv6地址转换为IPv4地址)。

四、网络层其他协议

1. ICMP(网际控制报文协议)

ICMP是IP协议的辅助协议,用于在IP网络中传递控制消息(如诊断、错误报告),不用于传输用户数据。

(1)核心功能
  • 网络诊断:测试主机连通性、路径跟踪;
  • 错误报告:当数据包传输异常时,向源端反馈错误原因。
(2)常见应用
  • ping命令:测试主机间连通性。 原理:

    1. 源主机发送ICMP“回显请求”报文(含随机数据);
    2. 目标主机收到后,返回ICMP“回显应答”报文(携带相同数据);
    3. 若源主机收到应答,说明连通正常,同时计算往返时间(RTT)。 示例:ping www.baidu.com → 输出是否可达及响应时间。
  • traceroute命令(Windows为tracert):跟踪数据包从源到目标的传输路径。 原理:

    1. 源主机向目标发送一系列TTL递增的数据包(初始TTL=1);
    2. 第1个路由器收到TTL=1的包,TTL减为0后丢弃,返回ICMP“超时”消息(包含路由器IP);
    3. 源主机递增TTL(=2),重复步骤,直到数据包到达目标,目标返回“端口不可达”消息;
    4. 收集所有中间路由器IP,形成完整路径。 示例:tracert www.baidu.com → 输出经过的每一跳路由器IP及响应时间。
(3)常见ICMP错误报文
  • 目标不可达(Type=3):如“网络不可达”(子网掩码错误)、“主机不可达”(目标主机未开机)、“端口不可达”(目标端口未开放)。
  • 超时(Type=11):数据包TTL减为0时,路由器返回此消息(traceroute依赖该报文)。

2. ARP(地址解析协议)

ARP用于局域网内将IP地址转换为MAC地址(数据链路层的物理地址),因为局域网内通信依赖MAC地址而非IP地址。

(1)工作流程(以主机A向主机B发送数据为例)
  1. 主机A已知主机B的IP地址(如192.168.1.2),但不知道其MAC地址,先查本地“ARP缓存表”(存储IP与MAC的映射);
  2. 若缓存中无记录,主机A发送ARP请求广播(MAC地址为FF:FF:FF:FF:FF:FF,局域网内所有设备均可接收):“谁的IP是192.168.1.2?请回复你的MAC地址到192.168.1.1(主机A的IP)”;
  3. 主机B收到广播后,发现目标IP是自己,发送ARP应答单播给主机A:“我的IP是192.168.1.2,MAC地址是00:11:22:33:44:55”;
  4. 主机A收到应答后,将IP与MAC的映射存入ARP缓存(老化时间约15-300秒),后续通信直接使用MAC地址。
(2)ARP缓存查看
  • Windows:arp -a(查看所有缓存条目);
  • Linux/macOS:arp -n

五、实践技能目标

使用Fiddler、Wireshark等工具抓包分析IP报文:

  1. 过滤IP协议报文(如Wireshark中输入ip);
  2. 查看首部字段:版本(确认是IPv4/IPv6)、TTL(判断经过的路由器数量)、源/目的IP(定位通信双方);
  3. 分析ICMP报文:ping时的“回显请求/应答”,traceroute时的“超时”报文。

通过以上内容,可系统掌握IP协议的核心概念、地址换算、报文结构及相关辅助协议的工作原理,结合示例和实践能更深入理解网络层的通信机制。

网络层总结

网络层:IP协议与跨网络通信(三)
/posts/2026-7-7/3-网络层/
Author
Atopos
Published at
2026-07-07
License
CC BY-NC-SA 4.0

Some information may be outdated