前言
计算机网络是计算机考研(408)和校招面试的必考科目。本文围绕性能指标 和分层结构两大核心主题,整理了计算机网络中最基础、最高频的概念和公式,适合复习巩固和面试前快速过一遍。
一、计算机网络性能指标
性能指标用来衡量网络的质量和效率,理解每个指标的含义和公式是分析网络问题的基础。
1.1 速率(Rate)
速率是指单位时间内传输的比特数,也叫数据率或比特率。
-
单位:
bps(bit/s,比特每秒) -
常用换算: K = 10³, M = 10⁶, G = 10⁹, T = 10¹²
1 Kbps = 10³ bps
1 Mbps = 10⁶ bps
1 Gbps = 10⁹ bps
1 Tbps = 10¹² bps
注意区分 bit 和 Byte: 1 Byte = 8 bit。网络速率用
bps,文件大小和存储用Byte。下载速度 1 MB/s 对应带宽约 8 Mbps。这是装机师傅说"100 兆宽带",实际下载最高约 12.5 MB/s 的原因。
1.2 带宽(Bandwidth)
带宽原本指信号占用的频率范围(单位 Hz),在计算机网络中引申为:
信道所能通过的最高数据率,即信道允许的最大传输速率,单位也是 bps。
带宽与通信原理的联系: 根据奈奎斯特定理(无噪声信道)和香农定理(有噪声信道),信道的最大数据率由带宽和信噪比等物理特性决定。
| 定理 | 公式 | 适用场景 |
|---|---|---|
| 奈奎斯特(Nyquist) | 最大数据率 = 2W·log₂V | 理想无噪声信道 |
| 香农(Shannon) | 最大数据率 = W·log₂(1 + S/N) | 有噪声信道(更贴近实际) |
W = 信道带宽(Hz),V = 信号离散等级数,S/N = 信噪比(常用分贝 dB 表示:dB = 10·log₁₀(S/N))
1.3 吞吐量(Throughput)
单位时间内实际通过某个网络接口的数据量,受带宽限制。
吞吐量 ≤ 带宽。带宽是理论上限,吞吐量是实际表现------就像水管的最大流量 vs 实际流出的水量。
1.4 时延(Delay / Latency)
数据从网络一端传送到另一端所需的时间。总时延由四部分组成:
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
(1)发送时延(Transmission Delay)
数据从主机进入信道所花的时间------把数据"推"到链路上需要多久。
发送时延 = 数据长度(bit)/ 发送速率(bps)
影响因素: 数据量大小和发送速率。与信道长度无关。
(2)传播时延(Propagation Delay)
电磁波在信道中传播所花的时间------比特在链路"跑"多久。
传播时延 = 信道长度(m)/ 电磁波传播速率(m/s)
- 光纤中:约 2.0 × 10⁸ m/s
- 铜线中:约 2.3 × 10⁸ m/s
- 真空中:3.0 × 10⁸ m/s
影响因素: 仅取决于物理距离和介质,与数据量无关。
(3)处理时延
路由器/交换机分析分组头部、查表转发所花的时间。通常很小(微秒级),一般可忽略。
(4)排队时延
分组在路由器缓存队列中排队等待转发的时间。网络拥塞时最主要的时延来源,变化最大、最难预测。
经典面试题: "发送时延 vs 传播时延的区别?" ------ 发送时延取决于数据量和带宽,传播时延取决于距离。打个比方:车队过收费站(发送时延)vs 车在高速路上跑(传播时延)。
1.5 时延带宽积(Delay-Bandwidth Product)
时延带宽积 = 传播时延 × 带宽
表示链路上最多能容纳多少比特(即"管道"的容量)。单位是 bit。
意义: 发送方在收到接收方确认之前,最多可以连续发送这么多数据而不发生拥塞。这个值越大,意味着可以发越多的数据再等待确认。
1.6 往返时延(RTT, Round-Trip Time)
从发送方发出数据开始,到发送方收到接收方的确认信息为止,总共经历的时间。
RTT = 发送时延 + 传播时延(往返)+ 中间节点处理时间 + 确认发送时间
通常简化为:
RTT ≈ 2 × 传播时延(忽略处理和排队)
实际中常用 ping 命令测量 RTT。
1.7 信道利用率
有数据通过的时间占总时间的比例。
信道利用率 = 有效传输时间 / 总时间
- 利用率为 0:信道空闲,浪费资源。
- 利用率接近 1:极易造成网络拥塞,排队时延剧增。
- 实际情况的理想值约在 0.5~0.8 之间,具体取决于网络状况。
二、计算机网络的分层结构
分层是计算机网络设计的核心思想------把复杂问题分解为若干个相对独立的子问题,每层只负责本层的功能,向上层提供服务。
2.1 OSI 七层模型(理论标准)
| 层次 | 名称 | 功能概述 | 典型协议/设备 |
|---|---|---|---|
| 7 | 应用层 | 直接为应用程序提供服务 | HTTP, DNS, FTP, SMTP |
| 6 | 表示层 | 数据格式转换、加密、压缩 | JPEG, ASCII, SSL/TLS |
| 5 | 会话层 | 建立、管理、终止会话 | RPC, SQL |
| 4 | 传输层 | 端到端可靠/不可靠传输、差错控制、流量控制 | TCP, UDP |
| 3 | 网络层 | 路由选择、逻辑寻址、拥塞控制 | IP, ICMP, 路由器 |
| 2 | 数据链路层 | 成帧、物理寻址(MAC)、差错检测 | Ethernet, PPP, 交换机/网桥 |
| 1 | 物理层 | 比特流传输、定义电气/机械接口规范 | 集线器/中继器 |
记忆口诀: "物链网传会表应" ------ 从下往上记。或英文 "Please Do Not Throw Sausage Pizza Away"(Physical, Data Link, Network, Transport, Session, Presentation, Application)。
2.2 TCP/IP 四层模型(实际标准)
互联网实际采用的协议栈,将 OSI 的上三层合并为"应用层":
| 层次 | 名称 | 对应 OSI | 典型协议 |
|---|---|---|---|
| 4 | 应用层 | 5~7 层 | HTTP, DNS, FTP, SMTP |
| 3 | 传输层 | 4 层 | TCP, UDP |
| 2 | 网际层(网络层) | 3 层 | IP, ICMP, ARP, IGMP |
| 1 | 网络接口层 | 1~2 层 | Ethernet, PPP, Wi-Fi |
国内教材常用的五层模型是将网络接口层再拆为数据链路层和物理层,结合了 OSI 的清晰性和 TCP/IP 的实用性,408 考研以此为准。
2.3 各层传输单位名称
越往上层,数据"包装"越多(每层加上自己的头部/尾部):
| 层次 | 传输单位名称 |
|---|---|
| 应用层 | 报文(Message) |
| 传输层 | 报文段 (Segment, TCP)/ 用户数据报(Datagram, UDP) |
| 网络层 | 数据报 / 分组(Packet / Datagram) |
| 数据链路层 | 帧(Frame) |
| 物理层 | 比特(Bit) |
2.4 各层核心设备
| 设备 | 工作层次 | 功能 |
|---|---|---|
| 集线器(Hub) | 物理层 | 广播方式转发比特,所有端口共享带宽 |
| 交换机(Switch) | 数据链路层 | 基于 MAC 地址转发帧,每个端口独享带宽 |
| 路由器(Router) | 网络层 | 基于 IP 地址转发分组,连接不同网络 |
| 网关(Gateway) | 传输层及以上 | 协议转换,连接异构网络 |
判断设备工作层次的口诀: 看设备处理的是哪个传输单位------处理比特的是物理层设备,处理帧的是链路层设备,处理分组的是网络层设备。
三、核心公式速查表
| 公式 | 说明 |
|---|---|
| 总时延 = 发送 + 传播 + 处理 + 排队 | 四种时延的构成 |
| 发送时延 = 数据长度 / 发送速率 | 受数据量和带宽影响 |
| 传播时延 = 信道长度 / 传播速率 | 仅受距离和介质影响 |
| 时延带宽积 = 传播时延 × 带宽 | 链路的"管道容量" |
| RTT ≈ 2 × 传播时延 | 往返时间简化公式 |
| 信道利用率 = 有效传输时间 / 总时间 | 高利用率易拥塞 |
| 奈奎斯特最大速率 = 2W·log₂V | 无噪声信道极限 |
| 香农最大速率 = W·log₂(1 + S/N) | 有噪声信道极限 |
| dB = 10·log₁₀(S/N) | 信噪比单位换算 |
四、常见面试题
Q1: 浏览器输入 URL 到显示页面,发生了什么?
这题几乎必考,涉及全部层次:
- 应用层:DNS 解析域名 → IP;浏览器构造 HTTP 请求报文
- 传输层:TCP 三次握手建立连接;将 HTTP 报文分段,加上 TCP 头部
- 网络层:IP 路由选择,逐跳转发分组到达服务器
- 数据链路层:每段链路上封装成帧,根据 MAC 地址转发
- 物理层:比特流在物理介质上传输
- 服务器收到后按相反顺序逐层解封装、处理、返回响应
- 浏览器收到响应后渲染页面
Q2: TCP 和 UDP 的区别?
| TCP | UDP |
|---|---|
| 面向连接(三次握手) | 无连接 |
| 可靠传输(确认、重传) | 尽力而为(不保证送达) |
| 有流量控制和拥塞控制 | 无控制,发送速率不受限 |
| 面向字节流 | 面向报文 |
| 头部 20~60 字节 | 头部仅 8 字节 |
| 适用:HTTP、文件传输、邮件 | 适用:视频直播、语音通话、DNS |
Q3: 电路交换 vs 分组交换?
- 电路交换:通信前先建立专用物理通路,通信期间独占资源。代表:传统电话网。
- 分组交换:将数据切分为分组,逐段链路独立转发,不独占资源,统计复用。代表:互联网。
Q4: 为什么发送时延和传播时延要分开考虑?
它们是相互独立的过程:发送时延是"把数据推入链路"的时间(受带宽限制),传播时延是"数据在链路中前进"的时间(受距离限制)。两者可以并行进行------当第一个比特已经在链路上传播时,发送方还在继续发送后面的比特。
总结
计算机网络的学习核心在于两条线:
- 横向(性能指标线):速率 → 带宽 → 吞吐量 → 时延 → 时延带宽积 → RTT → 利用率。这七个指标环环相扣,从不同角度描述网络质量。
- 纵向(分层结构线):物理层 → 数据链路层 → 网络层 → 传输层 → 应用层。每层有独立的协议、设备、传输单位,层层封装、对等通信。
把这两条线串起来,计算机网络的基础框架就建立了。