计算机网络原理
本文系统介绍计算机网络原理,包括分层架构、常见协议、寻址与路由、传输与拥塞控制、性能指标以及网络拓扑与设计折衷,为理解和设计现代网络系统提供基础。

图 1 : OSI 各层及其相对职责范围示意。

图 2 :光纤链路中传播时延与距离关系示意。

图 3 :在固定 64 KB 窗口下 TCP 吞吐量与 RTT 关系示意。

图 4 :简单网络拓扑的节点数与链路数示意。
|---------------------|------------------|-------------------------|
| OSI 层 | TCP/IP 层 | 示例协议/ 功能 |
| 应用层(第7 层) | 应用层 | HTTP、FTP、DNS、SMTP、TLS等。 |
| 表示层(第6 层) | 应用层 | 编码、压缩、加密等。 |
| 会话层(第5 层) | 应用层 | 会话管理、RPC等。 |
| 传输层(第4 层) | 传输层 | TCP、UDP、QUIC等。 |
| 网络层(第3 层) | 互联网层 | IPv4/IPv6、ICMP及路由协议。 |
| 数据链路层(第2 层) | 链路层 | 以太网、Wi-Fi MAC、PPP等。 |
| 物理层(第1 层) | 链路/物理层 | 铜线、光纤、无线射频及PHY层。 |
表1:OSI分层与TCP/IP协议栈的对应关系及示例协议。
|---------|------------------|---------------------------|---------------------|
| 层次 | 主要职责 | 典型协议 | 关键概念 |
| 应用层 | 提供面向用户的服务和应用逻辑。 | HTTP/HTTPS、FTP、DNS、SMTP等。 | 请求/响应、无状态与有状态、URI等。 |
| 传输层 | 端到端传输与多路复用。 | TCP、UDP、QUIC等。 | 端口、可靠性、流量/拥塞控制。 |
| 网络层 | 逻辑寻址与路由转发。 | IPv4/IPv6、ICMP、BGP、OSPF等。 | IP地址、子网、路由表。 |
| 链路层 | 在单条链路上完成本地传输和成帧。 | 以太网、Wi-Fi、PPP等。 | MAC地址、帧结构、链路层ARQ等。 |
表2:按层次划分的典型网络协议及关键概念。
|------------|---------------------|---------------|-------------------------|
| 路由方式 | 基本原理 | 典型协议 | 特点 |
| 距离向量路由 | 路由器交换目标可达性及到达代价。 | RIP等部分内部路由协议。 | 实现简单,收敛较慢,存在计数到无穷问题。 |
| 链路状态路由 | 路由器泛洪链路状态信息并计算最短路径。 | OSPF、IS-IS等。 | 收敛较快、状态较多,使用Dijkstra算法。 |
| 路径向量路由 | 路由器交换完整的自治系统级路径信息。 | BGP。 | 支持基于策略的路由,通过路径信息避免环路。 |
| 静态路由 | 通过人工配置路由。 | 小型网络、默认路由等。 | 结构简单、无收敛过程,但难以扩展。 |
表3:主要路由算法家族及其特点对比。
1. 分层网络架构
计算机网络通常采用分层架构来划分职责、简化设计。OSI模型将网络功能划分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层七层;TCP/IP模型则更关注链路层、互联网层、传输层和应用层。
每一层为上层提供服务,并依赖下层的能力。例如,传输层(TCP、UDP)利用网络层(IP)实现端到端传输,而应用层协议(如HTTP、DNS)则基于传输层提供的可靠或尽力而为的服务构建应用逻辑。分层结构有助于模块化设计、协议互通以及在单层内进行创新而不破坏整体系统。
2. 物理层与数据链路层
物理层负责在介质上传输原始比特,包括在铜线上的电信号、光纤中的光信号以及无线场景中的射频信号。其定义了信号形式、码型、比特率、电平和调制编码方案。数据链路层在物理层之上提供成帧、本地寻址和差错检测,保证在单条链路上的可靠传输。
以太网和Wi-Fi是典型的数据链路层技术,定义了MAC地址、帧格式以及介质访问控制算法(如经典以太网中的CSMA/CD以及Wi-Fi中的CSMA/CA)。某些链路层协议还引入链路级ARQ机制,通过确认和重传进一步提升链路可靠性。
3. 网络层与路由
网络层提供逻辑寻址和跨链路路由。IP协议定义地址格式和转发语义,路由器根据路由表和转发表决定数据包的下一跳。在大规模网络中,OSPF、IS-IS和BGP等路由协议交换可达性信息并构建一致的转发结构。
路由算法可大致分为距离向量、链路状态和路径向量三类。距离向量协议交换目的地的最短路径距离及下一跳信息;链路状态协议通过泛洪链路状态信息并在本地运行最短路算法;路径向量协议则交换完整的自治系统路径,支持基于策略的路由。静态路由在小型网络或默认路径场景中也广泛使用。
4. 传输层与拥塞控制
传输层为应用提供端到端的传输服务。TCP提供可靠、有序的字节流传输,并实现流量控制和拥塞控制;UDP提供轻量级的无连接数据报服务,不内置可靠性机制;QUIC在UDP之上构建可靠传输和安全功能,适用于现代Web应用。
流量控制防止快速发送端淹没缓慢接收端,拥塞控制则防止过多流量压垮网络。TCP通过窗口机制和拥塞控制算法(如Reno、Cubic、BBR等)根据丢包、时延或显式拥塞信号调整发送速率。RTT和带宽-时延积对可达吞吐量和窗口设计有重要影响。
5. 应用层协议
应用层协议在传输和网络层之上实现具体服务。HTTP/HTTPS支撑Web业务;DNS负责将域名解析为IP地址;SMTP和IMAP支持电子邮件;SSH提供安全的远程登录。每个协议定义了消息格式、状态机和错误处理机制,以适应其业务场景。
应用层协议多采用请求-响应模式,但流媒体和发布/订阅(pub/sub)模式也非常常见。TLS等安全机制通常位于传输层与应用层之间,为应用数据提供机密性、完整性和认证能力。
6. 寻址、命名与端口
网络中的寻址和命名用于定位设备和服务。IP地址在网络层标识接口或主机,MAC地址在链路层标识接口。子网划分和CIDR(无类域间路由)用于组织地址空间并实现高效路由。
端口在传输层标识主机上具体应用或服务。域名为人类提供友好的标识,并通过DNS映射到IP地址。地址、名称和端口共同构成灵活可扩展的网络标识和通信机制。
7. 性能指标与设计折衷
计算机网络中的关键性能指标包括时延、吞吐量、抖动、丢包率、可靠性和公平性等。端到端时延由传播时延、传输时延、处理时延和排队时延共同决定;带宽和协议开销影响可达吞吐量;TCP行为、队列管理和调度策略决定负载下的性能表现。
网络设计需要在低时延与高吞吐、效率与公平性、鲁棒性与复杂度之间进行权衡。拓扑结构、路由策略、缓冲区大小、拥塞控制算法和QoS机制等选择都会影响这些指标。理解底层原理有助于工程师在设计中避免缓冲膨胀(bufferbloat)和持续拥塞等问题。
8. 网络拓扑与设计实践
网络拓扑描述节点的连接方式。总线、环形、星型和网状拓扑在成本、容错能力和可扩展性方面各有特点。现实网络通常采用分层和混合设计,结合多种拓扑模式以实现目标覆盖和冗余。
数据中心网络常采用Clos(fat-tree)和spine-leaf架构,以提供较高的双向带宽和冗余能力。广域网络则依赖骨干环和网状结构,通过多重备份路径提高可靠性。设计原则强调模块化、冗余和明确的故障域,以简化运维和故障排查。
9. 总结
计算机网络原理涵盖分层架构、协议体系、寻址与路由、传输与拥塞控制、性能指标以及拓扑设计等多个方面,这些基础支撑着互联网和各类专用网络。系统掌握这些原理,对于网络系统的设计、运行和演进至关重要。