Skip to content

IPv4 快速指南

我们生活在一个由数字技术主导的时代,计算机和联网设备从根本上改变了我们的生活。连接这些设备的能力使得全球范围内的数据和信息能够即时共享。

在计算领域,网络是相互连接的设备(主机)的集合,这些设备可以交换数据。这种连接可以通过有线介质(如以太网电缆或光纤)或无线介质(如 Wi-Fi 或蜂窝数据)建立。网络使主机能够共享资源并通信。网络的规模各不相同,从办公室的局域网 (LAN),到跨城市的城域网 (MAN),或跨越国家和大陆的广域网 (WAN)。

一个计算机网络可以像两台由电缆连接的设备一样简单,也可以像连接数十亿台设备的全球互联网一样复杂。随着网络的增长,它们会包含各种组件来实现其数据交换的主要目标。以下是关键网络组件的简要概述:

  • 主机 (Hosts):位于网络边缘、产生或消耗数据的设备。主机可以是用户的 PC、智能手机、Web 服务器、数据库服务器、IoT 设备等。
  • 介质 (Media):数据传输的物理或无线路径。有线介质包括铜缆(双绞线、同轴电缆)和光纤电缆。无线介质使用无线电频率(例如,Wi-Fi、蓝牙、蜂窝网络)。
  • 集线器 (Hub)(基本淘汰):一个基本的二层设备,它将信号中继到 LAN 段中所有连接的端口。由于效率低下和冲突问题,集线器如今很少使用,已被交换机取代。
  • 交换机 (Switch):一个二层设备(数据链路层),它根据 MAC 地址智能地将数据帧仅转发到目标端口。交换机是现代 LAN 的基础,提供比集线器更高的速度和效率。一些高级交换机(三层交换机)还可以执行路由功能。
  • 路由器 (Router):一个三层设备(网络层),连接不同的网络并根据 IP 地址做出路由决策,在它们之间转发数据包。路由器构成了互联网和大型私有网络的骨干。
  • 网关 (Gateway):一个设备或软件,用于启用使用不同协议或寻址方案的网络之间的通信。通常,路由器充当 LAN 中主机访问外部网络的默认网关。
  • 防火墙 (Firewall):一个安全设备(硬件或软件),根据预定义的安全性规则监控和控制进出网络流量。防火墙在可信的内部网络和不可信的外部网络(如互联网)之间建立屏障。

所有网络组件最终都促进了主机之间的通信。

为了使主机能够通信,它们必须能够相互识别。在单个本地网络段(如以太网 LAN)上,主机可以使用它们的 MAC (Media Access Control) 地址直接通信。

MAC 地址是由制造商烧录在网络接口卡 (NIC) 中的一个唯一的 48 位硬件地址。虽然 MAC 地址适用于本地通信,但连接到不同网络上的主机(例如,跨互联网)需要一种逻辑寻址方案。这由互联网协议 (IP) 提供。IP 地址是分配给连接到基于 IP 的网络的每个主机的逻辑地址,可实现跨不同网络的唯一标识和路由。

国际标准化组织 (International Organization for Standardization, ISO) 开发了开放系统互连 (Open Systems Interconnection, OSI) 模型。这个七层模型提供了一个概念框架,说明不同的网络协议和设备应如何交互以实现系统间的通信。每一层都有一个特定的作用,并且每一层的协议处理通信过程中的不同方面。例如,物理层处理数据传输的物理方面,如电缆、无线频率、电压和比特编码。

OSI 模型包含以下七层,从上(面向用户)到下(面向硬件):

  • 应用层 (Application Layer)(第七层):与用户应用程序交互(例如,用于 Web 的 HTTP,用于电子邮件的 SMTP)。
  • 表示层 (Presentation Layer)(第六层):处理数据格式化、加密和压缩(例如,SSL/TLS,JPEG)。
  • 会话层 (Session Layer)(第五层):管理应用程序之间的连接(会话)(例如,NetBIOS)。
  • 传输层 (Transport Layer)(第四层):提供端到端数据传输、分段和可靠性(例如,TCP,UDP)。
  • 网络层 (Network Layer)(第三层):负责逻辑寻址(IP 地址)和数据包路由(例如,IPv4,IPv6)。路由器在此层运行。
  • 数据链路层 (Data Link Layer)(第二层):管理物理寻址(MAC 地址)和本地网络数据传输(例如,以太网,Wi-Fi)。交换机在此层运行。
  • 物理层 (Physical Layer)(第一层):定义数据传输的物理和电气规范(例如,电缆,无线电波,电压)。

网络层负责将数据包从一个主机传送到另一个跨越不同网络的主机。它为网络上的主机分配逻辑地址(IP 地址)以进行唯一标识,并确定数据包到达其目的地所经过的路径(路由)。路由器在此层运行,做出转发数据包的决策。

大多数互联网和现代网络都使用 TCP/IP 协议簇运行,也称为互联网协议簇。它是用于互联网和类似计算机网络的一组通信协议。虽然 OSI 模型是一个全面的参考,但 TCP/IP 模型是一个更实用、更具描述性的模型,它早于 OSI,并且与互联网协议的实现更紧密地对齐。它通常有四或五层,取决于解释方式。

TCP/IP 模型及其与 OSI 模型的近似映射的常见表示如下:

  • 应用层 (Application Layer) (TCP/IP):结合了 OSI 的应用层、表示层和会话层。它包括 HTTP、FTP、SMTP、DNS 等协议。
  • 传输层 (Transport Layer) (TCP/IP):对应 OSI 的传输层。关键协议是 TCP 和 UDP。
  • 互联网层 (Internet Layer) (TCP/IP):对应 OSI 的网络层。关键协议是 IP (IPv4, IPv6)、ICMP 和 ARP。
  • 网络接入层 (Network Access Layer)(或链路层 Link Layer)(TCP/IP):结合了 OSI 的数据链路层和物理层。它处理数据如何通过物理网络发送,包括 MAC 地址和设备驱动程序(例如,以太网,Wi-Fi)。

TCP/IP 模型被设计为独立于底层硬件(物理层技术)。这种灵活性使其能够在各种网络技术上实现。

互联网协议 (IP) 是 TCP/IP 协议簇中的核心协议,在互联网层(OSI 网络层)运行。IPv4 负责使用逻辑寻址方案识别主机以及在网络之间路由数据包。它提供“尽力而为”的交付服务,这意味着它不保证数据包的交付、顺序或完整性;这些通常由传输层协议(如 TCP)处理。IPv4 使用一个 32 位的逻辑地址。

IPv4 作为网络层协议,接收来自传输层的数据段(例如,TCP 或 UDP 段)并将其封装到 IP 数据包中。这个过程涉及在传输层数据(这成为 IP 有效载荷)前面添加一个 IP 头部。

IP 头部包含用于交付数据包的关键信息。标准 IPv4 头部(20 字节,不含选项)的文本表示通常如下所示:

IPv4 头部可视化(简化):

想象头部是一系列字段。第一行可能包含 Version, IHL, DSCP, ECN, 和 Total Length。第二行包含 Identification, Flags, 和 Fragment Offset。第三行包含 Time To Live, Protocol, 和 Header Checksum。第四行是 Source IP Address,第五行是 Destination IP Address。如果存在选项,它们会跟在目标地址后面。

IPv4 头部中的关键字段包括:

  • Version (4 位):指定 IP 版本,IPv4 为 4。
  • IHL (Internet Header Length,互联网头部长度,4 位):IP 头部长度,以 32 位字为单位(最小值为 5,即 20 字节)。
  • DSCP (Differentiated Services Code Point,差分服务代码点,6 位):用于服务质量 (QoS),对数据包进行分类。
  • ECN (Explicit Congestion Notification,显式拥塞通知,2 位):提供网络拥塞通知而不丢弃数据包。
  • Total Length (总长度,16 位):整个 IP 数据包(头部 + 有效载荷)的长度,以字节为单位。
  • Identification (标识,16 位):如果发生分段,用于标识原始 IP 数据包的片段。
  • Flags (标志,3 位):与分段相关的控制标志(例如,不分段 - DF,更多片段 - MF)。
  • Fragment Offset (片偏移,13 位):指示特定片段在原始 IP 数据包中的位置。
  • Time to Live (TTL,生存时间,8 位):限制数据包的生命周期。每经过一个路由器 TTL 减 1;如果达到零,数据包被丢弃,以防止路由环路。
  • Protocol (协议,8 位):标识封装数据(有效载荷)的协议,例如,TCP (6),UDP (17),ICMP (1)。
  • Header Checksum (头部校验和,16 位):对头部字段计算的校验和,用于检测头部错误。
  • Source Address (源地址,32 位):发送方的 IPv4 地址。
  • Destination Address (目标地址,32 位):预期接收方的 IPv4 地址。
  • Options (选项,变长):可选字段,用于安全性、路由记录或时间戳等功能。如果存在,IHL 将大于 5。

IPv4 支持多种寻址模式:

单播寻址模式 (Unicast Addressing Mode):

Section titled “单播寻址模式 (Unicast Addressing Mode):”

数据从一个源主机发送到一个单独的目标主机。IP 数据包中的目标地址字段包含接收方的特定 32 位 IP 地址。这是最常见的 IP 通信形式。例如,当您的计算机从 Web 服务器请求网页时。

广播寻址模式 (Broadcast Addressing Mode):

Section titled “广播寻址模式 (Broadcast Addressing Mode):”

数据从一个源主机发送到特定网络段上的所有主机。目标地址字段包含一个特殊的广播地址(例如,某个子网的定向广播地址,如 192.168.1.0/24 网络的 192.168.1.255,或有限广播地址 255.255.255.255)。目标网络段上的所有主机都应该处理该数据包。用于 DHCP 发现或 ARP 请求等服务。

组播寻址模式 (Multicast Addressing Mode):

Section titled “组播寻址模式 (Multicast Addressing Mode):”

数据从一个或多个源发送到一组感兴趣的目标主机。主机通过订阅特定的组播 IP 地址(来自 D 类范围,224.0.0.0 到 239.255.255.255)来加入一个组播组。只有加入了该组的主机才会处理这些数据包。用于向多个接收者传输视频/音频或在线游戏等应用。

每个网络通常有两个保留的 IP 地址:一个用于网络地址本身(代表网络,例如 192.168.1.0),另一个用于广播地址(代表该网络中的所有主机,例如对于 /24 网络是 192.168.1.255)。这些地址不能分配给单个主机。

层次化寻址方案 (Hierarchical Addressing Scheme)

Section titled “层次化寻址方案 (Hierarchical Addressing Scheme)”

IPv4 使用一种层次化的寻址方案。一个 32 位 IP 地址被分成两个主要部分:网络部分 (NetID) 和主机部分 (HostID)。这种结构允许进行高效的路由,因为路由器主要查看网络部分来转发数据包。

例如,一个 IP 地址可以概念上视为:网络部分.主机部分。通过子网划分,它可以进一步细化为:网络部分.子网部分.主机部分。这种层次结构使得大型网络可以被分解为更小、更易于管理的子网络。

子网掩码是一个 32 位数字,用于区分 IP 地址的网络部分和主机部分。路由器和主机使用子网掩码来确定目标 IP 地址是在本地网络上还是在远程网络上。当一个 IP 地址与其子网掩码进行逻辑 AND 运算时,结果就是网络地址。

示例:IP 地址:192.168.1.152,子网掩码:255.255.255.0

二进制表示:

IP Address: 11000000.10101000.00000001.10011000

Subnet Mask: 11111111.11111111.11111111.00000000

AND Result (Network Address): 11000000.10101000.00000001.00000000 (也就是 192.168.1.0)

这表明 192.168.1.0 是网络地址,而 .152 是该网络上的主机部分。子网掩码 255.255.255.0 通常在 CIDR (Classless Inter-Domain Routing,无类别域间路由) 表示法中表示为 /24,意味着前 24 位用于网络部分。

一个 IPv4 地址长 32 位,通常写成四个由点分隔的十进制数字(八位字节组 Octets)(例如,192.168.1.1)。每个八位字节组是 8 位。要将八位字节组从二进制转换为十进制,将设置为 ‘1’ 的位的位值相加。

在一个 8 位八位字节组中,位值(从左,最高有效位 MSB,到右,最低有效位 LSB)分别是:128, 64, 32, 16, 8, 4, 2, 1。

示例:二进制八位字节组 11000000。‘1’ 出现在 128 和 64 的位置。所以,128 + 64 = 192。

示例:二进制八位字节组 10101000。128 + 0 + 32 + 0 + 8 + 0 + 0 + 0 = 168。

一些常见模式:00000000 = 0;11111111 = 255;10000000 = 128;00000001 = 1。

历史上,IPv4 地址被分为五类(A, B, C, D, E),由第一个八位字节组的前几个比特决定。虽然有类别寻址很大程度上已被无类别域间路由 (CIDR) 取代,但了解分类提供了历史背景,有助于理解一些旧的网络配置或保留范围。

互联网名称与数字地址分配机构 (Internet Corporation for Assigned Names and Numbers, ICANN) 通过其 IANA (Internet Assigned Numbers Authority) 职能和区域互联网注册机构 (Regional Internet Registries, RIRs) 管理 IP 地址分配。

第一个八位字节组是点分十进制表示法中最左边的(例如,在 A.B.C.D 中,‘A’ 是第一个八位字节组)。

历史分类(在 CIDR 占据主导地位之前)的关键特征:

  • 每个可分配网络中的两个 IP 地址(网络地址本身和广播地址)不能分配给主机。

第一个八位字节组的第一个比特是 ‘0’。范围:1.0.0.0 到 126.255.255.255。(0.x.x.x 保留,127.x.x.x 是环回)。默认子网掩码:255.0.0.0 (/8)。设计用于拥有许多主机的超大型网络。网络格式:0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH (N=网络位, H=主机位)。

第一个八位字节组的前两个比特是 ‘10’。范围:128.0.0.0 到 191.255.255.255。默认子网掩码:255.255.0.0 (/16)。适用于中到大型网络。网络格式:10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH。

第一个八位字节组的前三个比特是 ‘110’。范围:192.0.0.0 到 223.255.255.255。默认子网掩码:255.255.255.0 (/24)。适用于小型网络。网络格式:110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH。

第一个八位字节组的前四个比特是 ‘1110’。范围:224.0.0.0 到 239.255.255.255。保留用于 IP 组播。对于单播,不像 A、B、C 类那样有子网掩码或网络/主机部分的概念。

第一个八位字节组的前四个比特是 ‘1111’。范围:240.0.0.0 到 255.255.255.255 (255.255.255.255 是广播地址)。保留用于实验/未来使用;不在公共互联网上使用。

注意:有类别寻址僵化的结构导致 IP 地址使用效率低下。CIDR 被引入以实现更灵活的分配。

有类别寻址为每个类别固定了子网掩码,导致预定数量的网络和主机。这常常造成 IP 地址浪费。引入了无类别域间路由 (CIDR) 以提供更大的灵活性。CIDR 允许网络管理员从 IP 地址的主机部分“借用”比特来创建更多的网络比特,从而有效地在较大的分配块内创建更小的子网络(子网)。这通过斜杠后跟网络前缀的位数来表示(例如,192.168.1.0/24)。

子网划分允许将单个 IP 地址块(如传统的 A、B 或 C 类范围,或 CIDR 块)划分为多个更小、更易于管理的逻辑网络。这提高了网络组织、安全性和流量管理。

使用 CIDR,您指定网络前缀长度。例如,一个 /25 网络有 25 个网络比特和 32 - 25 = 7 个主机比特。这允许拥有 2^7 - 2 = 126 个可用主机地址。

示例:对一个 /24 网络进行子网划分(例如,192.168.1.0/24,它有 254 个可用主机):

  • 如果我们想创建两个子网,我们可以从主机部分借用 1 位,使前缀变为 /25。这会创建两个 /25 子网:192.168.1.0/25(主机 1-126)和 192.168.1.128/25(主机 129-254)。每个 /25 子网有 2^(32-25) - 2 = 126 个可用主机 IP。子网掩码变为 255.255.255.128。
  • 如果我们借用 2 位,使前缀变为 /26,我们创建四个 /26 子网。每个 /26 子网有 2^(32-26) - 2 = 62 个可用主机 IP。子网掩码变为 255.255.255.192。这些子网将是 192.168.1.0/26、192.168.1.64/26、192.168.1.128/26 和 192.168.1.192/26。

通过借用 ‘n’ 位创建的子网数量是 2^n。拥有 ‘h’ 个主机位的每个子网的主机数量是 2^h - 2(减去网络地址和广播地址)。

表示子网掩码:

与有类别时期完整的子网掩码表不同,CIDR 使用前缀长度。以下是一些传统上是 C 类范围的常见示例:

  • /24: 255.255.255.0 (1个子网, 254个主机)
  • /25: 255.255.255.128 (2个子网, 每个126个主机)
  • /26: 255.255.255.192 (4个子网, 每个62个主机)
  • /27: 255.255.255.224 (8个子网, 每个30个主机)
  • /28: 255.255.255.240 (16个子网, 每个14个主机)
  • /29: 255.255.255.248 (32个子网, 每个6个主机)
  • /30: 255.255.255.252 (64个子网, 每个2个主机 - 通常用于点对点链路)

请记住,子网中的第一个 IP 是网络 ID,最后一个是广播 IP;两者都不能分配给主机。/31 前缀(1 个主机位)是用于点对点链路的特殊情况(RFC 3021),其中只需要两个 IP。/32 前缀指的是单个主机 IP 地址。

对于进一步的练习,在线子网计算器和教程非常有用。请搜索“CIDR subnetting examples”或“IP subnet calculator”。

可变长子网掩码 (Variable Length Subnet Masking, VLSM) 是一种技术,允许网络管理员使用不同的子网掩码对 IP 地址空间的不同子网进行划分。这是对旧的固定长度子网划分方法(与纯粹的有类别思想相关)的改进,在这些方法中所有子网必须大小相同。VLSM,作为 CIDR 工作方式的固有部分,通过根据特定需求调整子网大小,使得 IP 地址的使用效率大大提高。

考虑一位管理员拥有网络块 192.168.1.0/24。他们需要为不同主机数量的部门分配 IP:销售部(100 台计算机)、采购部(50 台计算机)、财务部(25 台计算机)和管理部(5 台计算机)。为所有部门使用单一的固定子网大小将是浪费的。

VLSM 允许优化分配:

按所需主机数量(加考虑增长空间)降序排列需求:

  • 销售部:100 个主机(至少需要 126 个可用 IP,所以需要一个 /25 子网)
  • 采购部:50 个主机(至少需要 62 个可用 IP,所以需要一个 /26 子网)
  • 财务部:25 个主机(至少需要 30 个可用 IP,所以需要一个 /27 子网)
  • 管理部:5 个主机(至少需要 6 个可用 IP,所以需要一个 /29 子网)

从 192.168.1.0/24 块中,首先分配最大的需求。

销售部(100 个主机):分配 192.168.1.0/25。这个子网使用从 192.168.1.0 到 192.168.1.127 的 IP。网络 ID:192.168.1.0。广播 ID:192.168.1.127。可用 IP:192.168.1.1 - 192.168.1.126。子网掩码:255.255.255.128。

剩余地址空间:192.168.1.128 到 192.168.1.255。

采购部(50 个主机):从剩余的块(从 192.168.1.128 开始)中,分配 192.168.1.128/26。这个子网使用从 192.168.1.128 到 192.168.1.191 的 IP。网络 ID:192.168.1.128。广播 ID:192.168.1.191。可用 IP:192.168.1.129 - 192.168.1.190。子网掩码:255.255.255.192。

剩余地址空间:192.168.1.192 到 192.168.1.255。

财务部(25 个主机):从剩余的块(从 192.168.1.192 开始)中,分配 192.168.1.192/27。这个子网使用从 192.168.1.192 到 192.168.1.223 的 IP。网络 ID:192.168.1.192。广播 ID:192.168.1.223。可用 IP:192.168.1.193 - 192.168.1.222。子网掩码:255.255.255.224。

剩余地址空间:192.168.1.224 到 192.168.1.255。

管理部(5 个主机):从剩余的块(从 192.168.1.224 开始)中,分配 192.168.1.224/29。这个子网使用从 192.1668.1.224 到 192.168.1.231 的 IP。网络 ID:192.168.1.224。广播 ID:192.168.1.231。可用 IP:192.168.1.225 - 192.168.1.230。子网掩码:255.255.255.248。

剩余地址空间:192.168.1.232 到 192.168.1.255(可以进一步子网划分或保留)。

VLSM,作为 CIDR 的核心部分,通过使子网大小适应实际需求,最大程度地减少了 IP 地址浪费,这与旧的固定大小子网划分方法不同。

某些 IPv4 地址范围被保留用于特殊目的,并且不能在公共互联网上路由。正确使用这些地址对于网络功能和安全性至关重要。

这些范围被指定用于私有网络(例如,家庭、办公室、组织)内部,且在全球范围内不唯一。公共互联网上的路由器被配置为丢弃源或目标地址为私有 IP 的数据包。这使得组织可以在内部使用这些 IP,而无需为每个设备分配全球唯一的地址。

私有 IP 地址范围是:

  • 10.0.0.0 到 10.255.255.255 (10.0.0.0/8 前缀)
  • 172.16.0.0 到 172.31.255.255 (172.16.0.0/12 前缀)
  • 192.168.0.0 到 192.168.255.255 (192.168.0.0/16 前缀)

为了与互联网通信,使用私有 IP 的设备通常需要通过一个网络地址转换 (Network Address Translation, NAT) 设备(通常是路由器),该设备将私有 IP 转换为公共 IP,或者使用代理服务器。

私有寻址显著减少了对全球唯一的 IPv4 地址的需求,有助于延迟 IPv4 地址枯竭。组织可以根据自己的规模选择一个范围,并在内部进一步进行子网划分。

范围 127.0.0.0 到 127.255.255.255 (127.0.0.0/8 前缀) 保留用于回环。最常用的回环地址是 127.0.0.1,通常命名为 ‘localhost’。当主机发送数据包到回环地址时,操作系统会将其路由回同一主机的 IP 栈,而不会将其发送到网络上。这用于在单台机器上测试网络应用程序(客户端和服务器在同一主机上)以及验证 TCP/IP 栈是否正常工作。

Section titled “链路本地地址 (Link-local Addresses) (APIPA)”

范围 169.254.0.0 到 169.254.255.255 (169.254.0.0/16 前缀) 保留用于链路本地寻址,在 Windows 环境中通常称为自动私有 IP 寻址 (Automatic Private IP Addressing, APIPA) (RFC 3927)。如果主机配置为 DHCP 但无法到达 DHCP 服务器,它可能会自动从该范围内分配一个 IP 地址。这使得同一本地网络段上的设备无需手动 IP 配置或 DHCP 服务器即可通信,但这些地址不可路由,不能用于访问互联网。

还存在其他保留范围,例如用于文档(RFC 5737)或组播(D 类)的地址。有关详细列表,请搜索“IANA IPv4 Special-Purpose Address Registry”。

本节说明了设备在 IPv4 网络上通常如何通信。

网络中的数据包流程 (Packet Flow in a Network)

Section titled “网络中的数据包流程 (Packet Flow in a Network)”

IPv4 网络上的主机使用唯一的 IP 地址。当主机想要向同一本地网络上的另一台主机发送数据时,它需要目标主机的物理 (MAC) 地址。它使用地址解析协议 (Address Resolution Protocol, ARP):源主机广播一个包含目标 IP 的 ARP 请求,询问“谁拥有这个 IP 地址?请告诉我你的 MAC 地址。”拥有该 IP 的主机回复其 MAC 地址。发送方随后将数据封装在帧中,并使用目标 MAC 地址发送出去。

如果目标 IP 在不同的网络上,源主机将数据包发送到其配置的默认网关(通常是路由器)。如果不知道网关的 MAC 地址,源主机将 ARP 请求发送给网关的 IP 地址。网关回复其 MAC 地址。然后,PC 创建一个 IP 数据包,将其自身的 IP 作为源地址,93.184.216.34 作为目标地址。这个 IP 数据包被封装在以太网帧中,帧的源 MAC 是 PC 的 MAC,目标 MAC 是网关的 MAC。数据包被发送到网关。

网关路由器接收到帧,解封装 IP 数据包,检查其路由表,并将数据包转发到通往目标网络的下一跳路由器。这个过程在互联网上的多个路由器之间重复进行。如果在用户的网关处使用了 NAT,数据包的源 IP 会在发送到互联网之前从私有 IP 转换为网关的公共 IP。

在数据包穿越互联网的整个过程中,IP 数据包中的源和目标 IP 地址通常保持不变。然而,二层(Layer 2)的源和目标 MAC 地址在每一跳(路由器到路由器)都会改变。

关键协议和服务:

  • MAC 地址 (MAC Address):一个 48 位硬件地址,每个网络接口唯一,用于本地网段上的二层通信。
  • ARP (Address Resolution Protocol):ARP (地址解析协议)。在本地网络上将 IP 地址解析为 MAC 地址。
  • 代理服务器 (Proxy Server)(目前通用浏览较少使用,但仍有用途):充当客户端中间服务器。历史上用于 Web 访问控制和缓存。现代安全通常使用透明代理或 Web 网关。
  • DHCP (Dynamic Host Configuration Protocol):DHCP (动态主机配置协议)。自动为主机分配 IP 地址及其他网络配置(子网掩码、网关、DNS 服务器),简化网络管理。
  • DNS (Domain Name System):DNS (域名系统)。将人类可读的域名(例如,www.example.com)转换为计算机用于连接的 IP 地址。
  • NAT (Network Address Translation):NAT (网络地址转换)。允许私有网络中的多个设备(使用私有 IP)共享一个或少量公共 IP 地址来访问互联网。对于 IPv4 地址资源的节省至关重要。

示例场景:访问 www.TutorialsPoint.com

用户想要从连接到具有互联网连接的家庭/办公室网络的 PC 访问 www.TutorialsPoint.com。

PC 启动并广播 DHCPDISCOVER 消息。本地网络上的 DHCP 服务器(通常集成在路由器中)通过 DHCPOFFER 响应(IP 地址、租期、网关 IP、DNS 服务器 IP)。PC 发送 DHCPREQUEST 请求提供的 IP。DHCP 服务器通过 DHCPACK 确认。现在 PC 获得了 IP 配置。(或者,也可以使用静态 IP 配置)。

用户在浏览器中输入 www.w3.com。PC 需要该域名的 IP 地址。它向配置的 DNS 服务器(通过 DHCP 获得)发送 DNS 查询。DNS 服务器(或一系列 DNS 服务器)解析域名并返回对应的 IP 地址(例如,93.184.216.34 - 这是一个示例 IP)。

PC 确定目标 IP(例如,93.184.216.34)在远程网络上。它需要将数据包发送到其默认网关。如果网关的 MAC 地址不在 PC 的 ARP 缓存中,PC 会发送一个 ARP 请求以获取网关的 IP 地址。网关回复其 MAC 地址。然后,PC 创建一个 IP 数据包,将其自身的 IP 作为源地址,93.184.216.34 作为目标地址。这个 IP 数据包被封装在以太网帧中,帧的源 MAC 是 PC 的 MAC,目标 MAC 是网关的 MAC。数据包被发送到网关。

网关路由器接收到帧,解封装 IP 数据包,检查其路由表,并将数据包转发到通往目标网络的下一跳路由器。这个过程在互联网上的多个路由器之间重复进行。如果在用户的网关处使用了 NAT,数据包的源 IP 会在发送到互联网之前从私有 IP 转换为网关的公共 IP。

在数据包穿越互联网的整个过程中,IP 数据包中的源和目标 IP 地址通常保持不变。然而,二层(Layer 2)的源和目标 MAC 地址在每一跳(路由器到路由器)都会改变。

IPv4,凭借其 32 位地址空间,旨在分配约 43 亿个唯一地址。在互联网早期,这似乎是充足的供应。然而,互联网用户和联网设备(PC、智能手机、服务器、IoT 设备)的爆炸性增长导致可用 IPv4 地址枯竭。

全球 IPv4 地址分配由互联网名称与数字地址分配机构 (IANA) 管理,该机构将地址块分发给区域互联网注册机构 (RIRs)。这些 RIRs 随后将其区域内的地址分配给 ISP 和大型组织。所有 RIRs 都已基本耗尽其免费可用的 IPv4 地址池。

缓解 IPv4 枯竭的措施包括:

  • 私有 IP 地址 (RFC 1918):允许内部使用非唯一的地址,减少对公共 IP 的需求。
  • NAT (Network Address Translation):使多个设备能够共享一个公共 IP 地址。
  • 回收未使用的公共 IP 地址块。

尽管采取了这些措施,根本限制仍然是 32 位地址空间。

长期解决方案:互联网协议 v6 (IPv6)

Section titled “长期解决方案:互联网协议 v6 (IPv6)”

互联网工程任务组 (Internet Engineering Task Force, IETF) 开发了 IPv6 来解决 IPv4 的局限性,主要是地址短缺。IPv6 使用 128 位地址空间,提供了几乎取之不尽的唯一 IP 地址数量(约 3.4 x 10^38 个地址)。IPv6 还包括其他改进,如简化的头部格式、更好的安全性支持(IPsec 是强制性的)和增强的服务质量 (QoS) 功能。

将整个互联网从 IPv4 过渡到 IPv6 是一个渐进且复杂的过程。在很多年里,IPv4 和 IPv6 将共存。有几种机制促进这种共存和过渡:

  • 双栈 (Dual Stack):设备和网络同时运行 IPv4 和 IPv6 协议栈。
  • 隧道技术 (Tunneling):将 IPv6 数据包封装在 IPv4 数据包中以穿越仅支持 IPv4 的网络(例如,6to4, Teredo, ISATAP),或反之亦然。
  • 翻译机制 (Translation Mechanisms):允许仅支持 IPv6 的主机与仅支持 IPv4 的主机/服务通信(例如,NAT64 与 DNS64 结合使用)。

虽然 IPv4 在一段时间内仍将保持相关性,但互联网的未来越来越依赖于 IPv6 的普及。