前言
在数字化时代,计算机网络是信息交互的核心载体,小到个人设备通信,大到全球范围数据传输,都依赖各类网络技术的协同支撑。 本文围绕计算机网络核心技术展开:
- 解析数据链路层帧头的底层支撑;
- 路由表的选路指引;
- MTU 与 MSS 对传输效率的控制;
- ARP 协议的地址解析机制;
- 阐释 NAT 技术突破 IPv4 地址瓶颈的逻辑;
- 代理服务器(正向与反向代理)在访问优化和服务架构中的作用;
- 补充 DNS 的域名解析、ICMP 的网络控制与故障诊断价值。
期望通过对这些技术的梳理,助力读者理解网络通信原理,以及各技术如何协同构建稳定高效的网络环境。
一、数据链路层的报头 (帧头)
数据链路层用来解决直接相连的主机之间进行数据交互的问题。
如下是数据链路层的报文结构:

关于数据链路层的报头结构比较简单:
- 在报头中有两个地址:源地址表示发送主机的 MAC 地址,目的地址表示目标主机的 MAC 地址;
- 通过顶层报头,可以直接将报文与报头进行分离;
- 4 位类型字段,告诉接收方将报文的有效载荷交付给上层网络层的哪一个协议。
在数据进行跨网段传输的过程中,不能直接将数据交给对方,而需要先将数据交给路由器,由路由器向外进行交付。因此跨网段传输报文肯定需要多次跳转。
那么在跨网段传输中,如何知道将当前报文交付给局域网中的哪一台主机,即如何知道下一跳的 IP 地址?
此时就需要使用路由表。
二、路由表
在每一台主机中都有一个自己的路由表,路由表是用来指引报文下一跳的位置的。
在 Linux 中可以通过 route 命令来查看路由表的信息:

- Destination:表示网络路由的目标地址,可以是网络地址(如
10.1.24.0)、单主机地址(如183.60.82.98),或默认路由(default,匹配所有未明确指定的流量); - Gateway:路由的下一跳网关的 IP 地址。若为
0.0.0.0,表示目标是本地直连网络(无需网关,直接通过网卡可达);若为_gateway,是系统的默认网关; - Genmask:路由的子网掩码(网络掩码)。用于区分 Destination 是'网络'还是'单主机'。
主机获取下一跳的 IP 地址思路:
- 拿着目标 IP 与路由表中每一行的 Genmask 进行按位与,看是否与 Destination 一样;
- 如果一样,下一跳的 IP 地址就是该行上的 Gateway;
- 如果目标地址与路由表中其他行都不匹配,就走第一行的 default 对应的默认路由。
根据上面的路由表,我们可以大致总结出,主机 A 将数据跨网段传输给主机 B 要经历的主要步骤:
- 主机 A 将要发送的数据进行封装;
- 到网络层时,根据目标地址查路由表,找到下一跳的主机 IP 地址;
- 在数据链路层,根据下一跳的 IP 地址,封装 MAC 地址;
- 将封装好的报文发送给局域网中的所有主机;









