跳至内容

网络层

网络层负责跨网络的端到端寻址与选路,核心是 IP 协议。这篇讲 IP 报文头部、IP 地址与子网掩码、地址分类、子网划分的计算方法,以及 ICMP 和 ARP 两个重要的辅助协议。

IP 报文头部

IP 报文头部主要字段:

字段含义
Version版本(IPv4 / IPv6)
Header Length头部长度
DS Field服务类型及优先级
Total Length总长度,最大 65535
Identification标识
Flags标记
Fragment Offset分片偏移
Time to Live生存周期(TTL)
Protocol上层协议字段
Header Checksum头部校验
Source IP Address源 IP
Destination IP Address目的 IP
IP Options可选项

其中 Protocol 字段标识上层协议,常见协议编号:

协议编号
ICMP1
TCP6
UDP17
EIGRP88
OSPF89

TTL 为每个 IP 报文设定生存时间,每经过一个三层设备减 1,减到 0 则丢弃,默认值常见为 255。

IP 地址与子网掩码

通信依靠 IP 地址进行。

  • IP 地址:32 个二进制位,由网络部分主机部分组成,使用子网掩码区分。通常以十进制表示,用点号隔开分为 4 段,每段 8 位。
  • 子网掩码:32 个二进制位,必须由连续的 1 和连续的 0 组成。掩码中 1 的个数越多,0 越少,主机位越少,可用主机数也越少。

区分网络位和主机位的方法:子网掩码中 1 对应 IP 的网络部分,0 对应 IP 的主机部分

在一个地址块中,地址分为三部分:

  • 网络地址:主机位全为 0,代表本网络本身。
  • 广播地址:主机位全为 1,代表本网络中的所有主机。
  • 可用主机地址:排除首尾两个地址之后的其余地址。

IP 地址分类

类别地址范围二进制标识用途私有地址默认掩码CIDR
A1.0.0.0 ~ 126.255.255.2550xxxxxxx大型网络10.0.0.0/8255.0.0.0/8
B128.0.0.0 ~ 191.255.255.25510xxxxxx中型网络172.16.0.0 ~ 172.31.255.255255.255.0.0/16
C192.0.0.0 ~ 223.255.255.255110xxxxx小型网络192.168.0.0/16255.255.255.0/24
D224.0.0.0 ~ 239.255.255.2551110xxxx组播
E240.0.0.0 ~ 255.255.255.2541111xxxx实验室保留

各类的网络数与主机数(H 表示主机位):

  • A 类:网络数 \(2^7-2\),主机数 \(2^{24}-2\)。
  • B 类:网络数 \(2^{14}\),主机数 \(2^{16}-2\)。
  • C 类:网络数 \(2^{21}\),主机数 \(2^8-2\)。

特殊地址

地址含义
0.0.0.0代表任意地址
127.0.0.0 ~ 127.255.255.255本地回环地址(测试 TCP/IP 协议栈自身)
169.254.0.0 ~ 169.254.255.255DHCP 保留(自动私有地址 APIPA)
255.255.255.255有限广播地址,代表本地所有主机

广播地址分两种:有限广播(255.255.255.255)和直接广播(目标网段主机位全 1)。路由器一般会隔离有限广播。

有类与无类地址

  • 有类地址:把 IP 严格归到 A/B/C 类,使用各类的默认掩码。
  • 无类地址:相对于有类地址,掩码是变长的,更灵活。

CIDR 与 VLSM 的区别

CIDR(无类别域间路由,Classless Inter-Domain Routing) 取消 IP 地址的分类结构,将多个地址块聚合成一个更大的网络,通过路由聚合使路由表表项变少,减轻 Internet 路由器负担。方向是"合"。

VLSM(可变长子网掩码) 用来划分子网,把单一网络划分成几个网段,用主机地址做子网掩码,以便最有效地利用现有地址空间。方向是"分"。如果没有 VLSM,一个子网掩码只能供给一个网络。

子网划分

划分子网的核心思想:从主机位"借"若干位作为子网位。

  • 一个网络能划分出的子网数 = \(2^{\text{子网位}}\),其中子网位 = 新网络位 − 原网络位。
  • 子网位从全 0 变到全 1,有多少种变化就有多少个子网。

划分子网的步骤:

  1. 确定需要的主机数。
  2. 确定网络地址。
  3. 确定子网掩码。

关键公式:

  • 可用主机数需满足 \(2^n - 2 \ge \text{所需主机数}\)(n 为主机位数),减 2 是因为主机位全 0 是网络地址、全 1 是广播地址,不能分配给主机。
  • 网络位数(即子网掩码长度)= \(32 - n\)。
  • 第一个可用主机地址 = 网络地址 + 1;最后一个可用主机地址 = 广播地址 − 1。

子网划分实例

需求:给公司分配的地址是 200.0.0.0/24,财务部 7 台、销售部 60 台、市场部 120 台、网络部 20 台电脑。各部门各自一个子网,如何规划?

采用 VLSM,从主机数最多的部门开始依次划分。

第一步:市场部(120 台)

  • 网络号照写:200.0.0.0
  • 求主机位 n:\(2^n - 2 \ge 120 \Rightarrow n = 7\)。
  • 掩码长度 = \(32 - 7 = 25\)。
  • 市场部地址:200.0.0.0/25,地址范围 200.0.0.0 ~ 200.0.0.127(网络地址 .0,广播地址 .127)。

第二步:销售部(60 台)

  • 网络地址从市场部之后开始:市场部广播地址 + 1 = 200.0.0.128(也可用 200.0.0.0 + 2^7 = 200.0.0.128)。
  • 求主机位:\(2^n - 2 \ge 60 \Rightarrow n = 6\),掩码长度 = \(32 - 6 = 26\)。
  • 销售部地址:200.0.0.128/26

第三步:网络部、财务部

依此类推,继续从上一个子网之后分配地址,分别按 \(2^n-2 \ge 20\)、\(2^n-2 \ge 7\) 求主机位即可。

ICMP

**ICMP(Internet Control Message Protocol)**用来传递差错、控制、查询等信息,与 IP 位于同一层,用来传送 IP 的控制信息。

主要功能:

  • ICMP 重定向:通知主机一条通向目的地的更优路径。
  • ICMP 差错检测 / 错误报告:如 Unreachable(不可达)信息指出路径有问题;当路径不可用时,ICMP 可以使 TCP 连接"体面地"终止。

最常用的基于 ICMP 的服务是 PING

ARP

**ARP(Address Resolution Protocol,地址解析协议)**用于把 IP 地址解析为 MAC 地址。

要点:

  • ARP 报文不能穿越路由器,不会被转发到其他网段。
  • IP 地址分为网络部分和主机部分:网络地址的主机位全 0,广播地址的主机位全 1。
  • 区分网络位/主机位的方法仍是子网掩码:1 对应网络部分,0 对应主机部分。
最后更新于