备注本文较多地参考了 计算机考研杂货铺 的相关内容,在此感谢这位大佬!
图片基本来自《计算机网络:自顶向下方法(第8版)》(Computer Networking: A Top-Down Approach 8th edition)的官方英文课件。
概述
| 概念 | 定义 |
|---|---|
| 网络 | 节点和边之间的无向关系 |
| 计算机网络 | 联网的计算机构成的系统,包括主机节点(Web应用)和数据交换节点 (路由器) |
| 互联网 | 许多网络通过互联方式联系在一起。 |
互联网是设备和协议的集合体。
从“组成结构”看互联网:
| 组成结构 | 定义 |
|---|---|
| 网络边缘(Internet edge) | 包括客户端和服务器,接入网和物理介质 |
| 网络核心(Internet core) | 互相连接的路由器,也称作“网络之网络” |
从“提供服务”看互联网:
| 提供服务 | 定义 |
|---|---|
| 协议(protocol) | 定义了网络实体之间发送和接收消息的格式、顺序以及在消息传输、接收时采取的动作 |
| 标准(RFC) | 由IETF制定,定义消息的格式、信息发送的顺序等内容 |
网络边缘
主机
包括客户端和服务器,任务是发送数据包。
数据包:将应用程序产生的消息分解成的较小的块称为数据包,长度通常记作 $L$,单位为比特。
记互联网的传输速率为 $R$(也称为链路容量或带宽,单位 $\text{bits/s}$),则可定义数据包传输延迟为将 $L$ 比特数据包传送到链路所需的时间
$$D = \frac{L}{R}$$接入网
接入网连接主机与边缘路由,包括以下几类:
| 类型 | 特点 |
|---|---|
| 线缆接入 | HFC(光纤/同轴电缆混合)连接。下行40Mbps-1.2Gbps,上行30-100Mbps |
| 数字接入 | 利用现有的有线电话线路连接。下行24-52Mbps,上行3.5-16Mbps |
| 无线接入 | 无线局域网(WLAN),范围不超过一个建筑物,速率在450Mbps 蜂窝网络:由运营商提供,范围在10km数量级,速率在10Mbps |
物理介质
| 概念 | 含义 |
|---|---|
| 物理链路 | 数据发送和接收端之间的物理连接 |
| 导向性介质 | 信号在固体介质中传播,如铜、光纤、同轴电缆 |
| 非导向性介质 | 信号自由传播,如无线电磁波 |
常用的物理介质
| 介质 | 特点 |
|---|---|
| 双绞线(TP) | 由两根绝缘铜线组成,之间呈螺旋形地绞在一起。五类线可达100Mbps-1Gbps,六类线可达10Gbps |
| 同轴电缆 | 由两个同心铜导体组成,可双向传输,拥有多个通道,每个通道可达100Mbps |
| 光纤 | 由玻璃纤维组成,利用光的反射来传递光信号。高速点对点传输速率可达10-100Gbps,且不受电磁干扰 |
| 电磁波 | 信号分布在电磁波的各个频段,受反射、遮挡、干扰的影响较大。常见的有WiFi、蜂窝网络、蓝牙、卫星信号等 |
网络核心
网络核心可以看作一系列互相连接的路由器,每个路由器都有多个输入端和输出端。网络核心不运行应用程序,只转发数据包。它包含两大基本功能:
- 转发(交换):将到达的数据包从路由器的输入链路移动到输出链路。
- 路由:规划数据包传输所需要经过的路径。

电路交换
电路交换为源到目的地的“呼叫”分配并预留端到端的资源,即为收发两端分配专用的、独占的资源。

电路交换常用于传统的电话中。通话时,两台电话之间分配了专用的通信资源,即使没有数据传输,在挂断之前资源不会被释放。
电路交换中,为了更好地利用资源,出现了FDM(频分)和TDM(时分)技术。
- FDM:将电磁频率划分为多个窄频段,并为每个呼叫分配专用频段,交换时以该频段的最大速率传输。
- TDM:将时间划分为多个时段,并为每个呼叫周期性地分配时段,在其所属时段可以电磁波的最大速率传输。

报文交换
报文交换与分组交换类似,只不过把整个报文作为一个单元传输,节点存储并转发整个报文:
- 报文发送:发送方将完整的数据消息(大小可变,可能包含文本、文件等)发送到网络中的第一个节点(通常是交换机或路由器)。
- 存储转发:每个节点接收整个报文,存储在缓冲区,检查目标地址后,选择下一跳节点转发。报文在网络中逐跳传输,直到到达接收方。
- 接收与处理:接收方收到完整报文后,进行处理或存储。
报文交换主要用于早期的电报和一些数据网络中。
分组交换
分组交换是对电路交换的改进,它的基本原理和过程如下:
- 数据分割:主机将应用数据拆分成数据包。
- 路由转发:数据包通过源到目标路径的一条链路,从一个路由器转发到下一个路由器。
- 分组传输:每个数据包在链路上的传输互相独立。
- 存储转发:整个数据包必须完整到达路由器后才能转发到下一条链路上。
传输延迟:以 $R$ $\text{bps}$ 在链路上传输 $L$ $\text{bit}$ 需要时间 $\displaystyle \frac{L}{R}$ 秒,这段时间称为传输延迟。一般地,若端到端之间有 $n$ 条链路,每条链路的传输速率为 $R_{i}$ $\text{bps}$,则传输大小为 $L$ $\text{bit}$ 的数据包需要的总延迟为 $\displaystyle \sum_{i=1}^{n} \frac{L}{R_i}$ 秒
排队与丢包:如果一段时间内到达链路的速率超过链路的传输速率,则数据包将会在路由器上的缓冲区排队。若缓冲区已满,多余的数据包则可能被丢弃,称为丢包。
发生丢包时,对于丢失的数据包可能进行如下操作,具体则与使用的网络协议有关:
- 由上一个节点重传。
- 由源主机重新发送。
- 完全不进行响应。

排队与丢包
假设 $n$ 名用户共享一条带宽为 $10 \text{Mbps}$ 的链路,每一名用户需要 $200 \text{kbps}$ 的带宽传输数据,并且每个用户仅有 $10\%$ 的时间用于传输数据,其他时间空闲。
- 若使用电路交换,最多同时支持的用户数为 $$\frac{10 \text{Mbps}}{200 \text{kbps}} = \frac{10 \times 10^6}{200 \times 10^3} = 50$$
- 若使用分组交换,对于任意一个用户,他在这段时间内任意一个时刻传输数据的概率为 $p$。则有 $m$ 名用户同时使用这条链路的概率为 $$\mathrm{C}_n^m p^n (1-p)^{n-m}$$故有多于 $m$ 名用户同时使用这条链路的概率为 $$1- \sum_{i=0}^n \mathrm{C}_m^i p^i (1-p)^{m-i}$$当 $n$ 足够大时,二项分布可近似为正态分布。则同时使用链路的用户数目服从正态分布 $$X \sim N(np, np(1-p))$$在上例中,若 $n = 120$,则 $np = 120 \times 0.1 = 12$,$np(1-p) = 10.8$,则有 50 名及以上用户同时转发数据的概率为 $$1 - P\left(X \leqslant 50\right) = 1 - \varPhi\left(\frac{X - \mu}{\sigma} \leqslant \frac{50 - 12}{\sqrt{10.8}}\right) = 1 - \varPhi(11.87) \approx 0$$
因此使用分组交换,最多支持的用户数可远大于 $50$。因为用户数峰值比 $50$ 更多的情况几乎不存在。分组交换能够在容纳更多用户的同时达到和电路交换差不多的性能。
ISP与互联网
主机通过接入互联网服务提供商(ISP)连接到互联网,不同的ISP必须互相连接。由此形成复杂的网络结构。

ISP与互联网
网络协议
为什么采用分层结构?
- 有利于识别系统各组成部分及其相互关系。
- 分层结构有利于系统维护和更新。
| 协议栈 | 概念 | 协议数据单元(PDU) |
|---|---|---|
| 应用层(application) | 支持网络应用 | 消息 |
| 传输层(transport) | 进程间的数据传输 | TCP 段 / UDP 数据报 |
| 网络层(network) | 规划数据从源到目的地的路线 | 分组 |
| 链路层(link) | 相邻网络结点之间的数据传输 | 帧 |
| 物理层(physical) | 传输字节信息 | 比特 |
网络评价指标
速率与带宽
速率(Rate):连接到计算机网络上的节点在数字信道上传送数据的速率,也称数据传输速率、数据率或比特率,单位为 $\text{b/s}$ 或 $\text{bit/s}$(有时也写为 $\text{bps}$ )。
当数据率较高时,可用 $\text{kb/s}$、$\text{Mb/s}$ 或 $\text{Gb/s}$ 表示。
备注通常 $1 \text{Gbps} = 10^{3} \text{Mbps} = 10^{6} \text{kbps} = 10^{9} \text{bps}$。
同时需要特别注意 “比特($\text{bit}$)” 和 “字节($\text{B}$)”的区别。$1 \text{B} = 8 \text{bit}$,常出现在文件大小和传输速率的单位换算中。
通常把最高数据传输速率称为带宽。
例如,如果家用宽带的带宽是 $100\text{Mb/s}$,表示网络在理想情况下,每秒最多可以传输 $\text{100 Mb}$ 的数据,相当于大约 $12.5 \text{MB/s}$ 的下载速度。
延迟
延迟(Delay)指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需要的总时间。
| 延迟来源 | 记号 | 内容 |
|---|---|---|
| 处理延迟 | $d_{\text{proc}}$ | 检查字节错误、确定输出链路带来的延迟 |
| 排队延迟 | $d_{\text{queue}}$ | 数据包在队列中等待传输带来的延迟 |
| 传输延迟 | $d_{\text{trans}}$ | 数据包转发(将分组的所有字节推向链路)带来的延迟,通常为 $\displaystyle \frac{L}{R}$。也可表示为从发送分组的第一个比特到该分组的最后一个比特发送完毕所需的时间 $\Delta t$ |
| 传播延迟 | $d_{\text{prop}}$ | 数据包在链路上传输带来的延迟,通常为 $\displaystyle \frac{d}{s}$。也可表示为一个比特从链路的一端传播到另一端所需的时间 $\Delta t$ |
备注
- 传输延迟是路由器将分组推出所需的时间,等于分组长度 / 链路传输速率。
- 传播延迟是一个比特从一台路由器传播至另一台路由器所需的时间,等于两台路由器之间距离 / 电磁波在信道上的传播速率。与分组长度或链路传输速率无关。
总延迟(端到端延迟)为以上4个延迟来源之和,即:
$$d_{\text{nobal}} = d_{\text{proc}} + d_{\text{queue}} + d_{\text{trans}} + d_{\text{prop}}$$备注对于传输延迟,每两个节点之间都需要 $\displaystyle \frac{L}{R}$ 的时间。若中间节点不存储而直接转发,则只需要考虑首尾节点即可。
延迟带宽积(Bandwidth-Delay Product,BDP):发送端发送的第一个比特即将到达终点时,发送端已经发出的字节数量,因此又称以比特为单位的链路长度,即
$$\text{BDP} = \text{传播延迟} \times \text{信道带宽}$$考虑一个代表链路的圆柱形管道,其长度表示链路的传播时延,横截面积表示链路带宽,则 延迟带宽积表示该管道可以容纳的比特数量。
例如,下图中两段链路的数据传输速率均为 $100\text{Mbps}$,延迟带宽积均为 $1000\text{bit}$,路由器 $R$ 需要进行存储转发。若 $H_1$ 向 $H_2$ 发送一个大小为 $1 \text{MB}$、分组长度为 $1000\text{B}$ 的文件,则从 $H_1$ 开始发送时刻起到 $H_2$ 收到文件全部数据时刻止,所需的时间可以这样考虑:

以该文件的最后一个 $\text{bit}$ 为参照点。当这个比特到达 $B$ 时,则可认为文件发送完毕。
- $H_1$ 推送一个比特用时(传输延迟): $$t_{\text{trans}} = \frac{L}{R} = \frac{1000 \text{B}}{100 \text{Mbps}} = 0.08 \text{ms}$$将所有数据推向链路的时间: $$t = \frac{1 \times 8\text{Mb}}{100 \text{Mbps}} = 80 \text{ms}$$因此最后一个 $\text{bit}$ 在 $80 \text{ms}$ 时离开 $H_1$。
- 由延迟带宽积为 $1000\text{bit}$ 可知传播延迟 $$t_{\text{proc}} = \frac{1000 \text{bit}}{100 \text{Mbps}} = 0.01 \text{ms}$$因此最后一个 $\text{bit}$ 经过了 $0.01 \text{ms}$ 到达 $R$,即用时 $80.01 \text{ms}$。
- $R$ 对该文件进行存储转发,需要用时 $t_{\text{trans}}$,故最后一个 $\text{bit}$ 在 $80.09 \text{ms}$ 离开 $R$。
- 最后从 $R$ 到 $H_2$ 仍需要一个 $t_{\text{proc}}$。因此最后一个 $\text{bit}$ 在 $80.10 \text{ms}$ 到达 $B$,文件传输完成。
综上,文件传输用时 $80.10 \text{ms}$。
吞吐量
发送端向接收端发送比特的速率,通常记作 $R$,单位为 $\text{bit/s}$
若发送端到接收端有多段链路,则称限制吞吐量的链路为瓶颈链路(即吞吐量最小的链路)。
分层结构
在 ISO/OSI 参考模型中,网络一共分为7层,自下而上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层:
| 分层 | 功能 |
|---|---|
| 物理层 | 在物理媒介上为数据端设备透明地传输原始比特流 |
| 数据链路层 | 传输单位是帧,将物理层提供的可能出错的物理连接改造为尽可能可靠的数据链路。 |
| 网络层 | 对数据报进行路由选择 |
| 传输层 | 为端到端连接提供可靠的传输服务,包括流量控制(端到端)、差错控制、服务质量、数据传输管理等服务 |
| 应用层 | 应用层为特定类型的网络应用提供访问 OSI 参考模型环境的手段。应用层采用不同的协议解决不同类型的需求,因此应用层是最复杂的一层,使用的协议也最多 |
上表为互联网使用的协议层级,实际上参考模型还包括:
- 会话层:负责管理主机间的会话进程,包括建立、管理及终止进程间的检查点机制来维持可靠会话。
- 表示层:采用抽象的标准方法定义数据结构,并采用标准的编码形式使不同表示方法的数据和信息之间能互相交换。
各层协议的具体内容如下:
各层协议总结
Internet中,各层的协议整体上呈现“两头粗,中间细”的特点。

应用层协议最多,常见的有以下内容:
- HTTP/HTTPS:超文本传输协议,用于网页浏览。通常使用端口 80/443,依赖TCP协议(HTTP/3 使用UDP)。
- FTP:文件传输协议,用于文件上传与下载。依赖 TCP。
- DNS:域名系统,将域名解析为 IP 地址。主要依赖 UDP。
- DHCP:动态主机配置协议,用于自动分配 IP 地址及其他网络参数。依赖 UDP 协议。
传输层协议只有两个,分别为 TCP 和 UDP:
网络层协议主要为与 IP 相关的协议:
- IP:不可靠的无连接协议,提供数据报服务,是整个互联网的核心协议。
- NAT:网络地址转换,用于在私网和公网之间转换 IP 地址。
- RIP/OSPF/BGP:路由选择协议,主要用于自治系统内部(RIP、OSPF)或之间(BGP)的路由计算。
数据链路层协议:
- ARP:地址解析协议,用于将 IP 地址解析为对应的 MAC 地址。