计算机网络 - 基础概念
目录
目录
一、什么是互联网(Internet)
1.1 从组成角度看
互联网是由数十亿台终端设备(end system / host) 通过通信链路(communication link) 和分组交换机(packet switch) 互联而成的全球性网络。
| 组成要素 | 说明 | 举例 |
|---|---|---|
| 终端设备(Host) | 网络边缘的设备,运行网络应用 | PC、手机、服务器、IoT 设备 |
| 通信链路(Link) | 物理传输介质 | 光纤、铜线、无线电波、卫星 |
| 分组交换机 | 转发数据分组的设备 | 路由器(router)、链路层交换机(switch) |
| ISP | 互联网服务提供商,为终端接入互联网 | 中国电信、Comcast、AT&T |
核心思想:终端设备之间并非直连,而是通过层层交换机接力转发数据——这就引出了后面的交换方式问题。
1.2 从服务角度看
互联网是为网络应用提供通信基础设施的平台。应用程序通过 API(Socket 接口) 使用网络服务,而无需关心底层如何传输数据。
类比:互联网就像邮政系统,你写好信(数据)、贴上地址(IP),剩下的事交给邮局(网络基础设施)。
1.3 协议(Protocol)
网络中任何通信都遵循协议——即通信双方对消息格式、顺序、动作的约定。
人类类比:打电话时先说"喂?"→ 对方回"你好"→ 才开始说正事。如果一方不遵守约定(比如直接挂断),通信就中断了。
二、网络边缘(Network Edge)
边缘网络(Edge Network) 是指靠近终端用户的那部分网络,包括终端设备(手机、PC、服务器等)以及将它们连接到网络核心的接入网络。它与网络核心(Network Core) 相对——核心负责长距离转发数据,边缘负责产生和消费数据。
2.1 终端设备的两种角色
| 角色 | 说明 |
|---|---|
| 客户端(Client) | 发起请求的设备(浏览器、手机 App) |
| 服务器(Server) | 响应请求、提供服务的设备(通常在数据中心) |
2.2 接入网络(Access Network)
接入网络是将终端设备连接到第一个路由器(边缘路由器) 的物理链路。
| 接入方式 | 典型带宽 | 特点 |
|---|---|---|
| DSL(数字用户线) | 下行 24 Mbps / 上行 2.5 Mbps | 利用已有电话线,上下行不对称 |
| 电缆(Cable) | 下行 30 Mbps / 上行 2 Mbps | HFC(光纤同轴混合),共享带宽 |
| FTTH(光纤到户) | 上下行可达 Gbps | 光纤直接入户,最高速 |
| 无线(WiFi / 蜂窝) | 变化大 | WiFi 局域、4G/5G 广域 |
| 以太网(Ethernet) | 100 Mbps ~ 10 Gbps | 企业 / 校园 LAN |
关键概念:带宽(bandwidth) = 链路的最大数据传输速率,单位 bps(bits per second)。
2.3 物理介质(Physical Media)
| 介质类型 | 分类 | 说明 |
|---|---|---|
| 双绞铜线(Twisted Pair) | 导引型 | 最常见的 LAN 线缆(Cat 5e/6),传输距离有限 |
| 同轴电缆(Coaxial Cable) | 导引型 | 有线电视网络常用 |
| 光纤(Fiber Optic) | 导引型 | 速度最快、距离最远、抗干扰 |
| 无线电波(Radio) | 非导引型 | WiFi、蜂窝、卫星 |
导引型(guided)= 信号沿物理介质传播;非导引型(unguided)= 信号在空气/太空中传播。
三、互联网结构:ISP 层级与互联互通
互联网并非一张单一的网络,而是由成千上万个 ISP(Internet Service Provider,互联网服务提供商) 互联互通而形成的网络的网络(network of networks)。
3.1 ISP 层级结构
ISP 按覆盖范围和在互联网中的位置分为三个层级:
| 层级 | 名称 | 覆盖范围 | 特点 | 举例 |
|---|---|---|---|---|
| Tier-1 | 一级 ISP(全球骨干) | 全球 | 互相免费对等互联(settlement-free peering),不向任何 ISP 付费购买转接 | AT&T、NTT、Lumen、Telia |
| Tier-2 | 二级 ISP(区域性) | 区域 / 国家 | 向 Tier-1 付费购买转接(transit),也可能与其他 Tier-2 对等互联 | 中国电信、中国联通、Cogent |
| Tier-3 / Access ISP | 三级 ISP(接入层) | 本地 | 最末端,直接为终端用户提供接入服务 | 校园网、小区宽带、本地运营商 |
graph TD
T1A["Tier-1 ISP A"] <-->|"对等互联(免费)"| T1B["Tier-1 ISP B"]
T1A -->|"转接(付费)"| T2C["Tier-2 ISP C"]
T1B -->|"转接(付费)"| T2D["Tier-2 ISP D"]
T2C <-->|"可能对等互联"| T2D
T2C --> T3A["Tier-3 / Access ISP"]
T2D --> T3B["Tier-3 / Access ISP"]
T3A --> U1["用户终端"]
T3B --> U2["用户终端"]
转接(Transit):下级 ISP 向上级 ISP 付费,上级 ISP 帮助其数据到达互联网的任何地方。类比:你付给快递公司运费,快递公司帮你把包裹送到全国各地。
3.2 对等互联(Peering)与互联网交换点(IXP)
对等互联(Peering)与 AS 间流量不对等
两个 ISP(或自治系统 AS)之间直接互联交换流量,不经过第三方、不付转接费,这被称为免费对等互联(settlement-free peering)。
为什么要 Peering? 如果两个 Tier-2 ISP 的用户之间有大量通信,走 Tier-1 转接既慢又贵。直接互联可以降低延迟、降低成本。
如何实现互联?
这依赖于互联网的核心路由协议——BGP(Border Gateway Protocol,边界网关协议)。BGP 让不同的网络(AS,Autonomous System)能够互相宣告"我这能通往哪些 IP",从而在宏观层面上把一个个孤岛连接成全球互联网。
现实中的流量不对等问题(Traffic Asymmetry)
免费 Peering 的前提是"双方流量大致相等"。但现实中,往往是内容提供商(如视频网站)单向向受众 ISP(如家庭宽带)发送海量数据。
- 当流量严重不对等时:接收端 ISP(宽带运营商)会觉得自己吃亏了(我要花大价钱升级我的骨干网来替你传视频)。
- 结局:接收端 ISP 可能会向发送端收取对等互联费用(Paid Peering),或者发生断网纠纷(例如著名的 Netflix 与 ISP 的争端)。这也是促使内容提供商大力发展 CDN 的原因之一。
互联网交换点(IXP,Internet Exchange Point)
一个物理基础设施(通常是大型数据中心),多家 ISP 在此汇聚并互相交换流量。
| 特点 | 说明 |
|---|---|
| 本质 | 一个共享的交换平台(通常是高速以太网交换机) |
| 参与者 | Tier-1、Tier-2、CDN、大型内容提供商等 |
| 好处 | 降低转接成本、减少延迟、提高可靠性 |
| 知名 IXP | DE-CIX(法兰克福)、AMS-IX(阿姆斯特丹)、LINX(伦敦) |
graph LR
A["ISP A"] --- IXP["IXP 交换平台"]
B["ISP B"] --- IXP
C["ISP C"] --- IXP
CDN["CDN X"] --- IXP
G["Google"] --- IXP
IXP --- D["ISP D"]
IXP --- E["ISP E"]
IXP --- F["ISP F"]
PoP(Point of Presence,入网点)
ISP 在各地设置的接入机房,内含路由器、交换机等设备,是下级 ISP 或客户接入该 ISP 网络的物理连接点。一个 ISP 可以有多个 PoP 分布在不同城市。
PoP vs IXP:PoP 是单个 ISP 的接入点("我的大门");IXP 是多家 ISP 共享的交换平台("公共集市")。下级 ISP 在上级 ISP 的 PoP 处接入并购买转接服务,而在 IXP 处则是多方平等互联。
现实联想:家里路由器做 PPPoE"拨号上网"时,你的认证请求就是发往 ISP 最近的 PoP——那里的设备(BRAS/BNG)验证你的账号密码、分配 IP。所以 PoP 就是你拨号时"对面接电话的机房"。
3.3 多宿主(Multi-homing)
一个 ISP 或企业同时连接多个上游 ISP,以提高可靠性和性能。
类比:就像一栋楼同时接了电信和联通两条宽带。如果电信线路故障,还能通过联通上网。
- 几乎所有 Tier-2 ISP 都会连接多个 Tier-1
- 大型企业也常采用多宿主策略
3.4 内容提供商网络 & CDN
内容提供商自建网络
Google、Microsoft、Meta 等大型内容提供商建设了自己的全球专用网络,绕过公共互联网的层级结构,直接与各级 ISP 和 IXP 互联。
这些公司的流量占互联网的很大比例,自建网络可以降低成本、控制用户体验。
CDN(Content Delivery Network,内容分发网络)
CDN 在全球部署大量边缘服务器(edge server),将内容缓存到离用户最近的节点,从而加速内容传输。
| 概念 | 说明 |
|---|---|
| 核心思想 | 把内容"搬"到离用户近的地方,而不是让用户去远处取 |
| 工作方式 | 用户请求内容 → DNS 将请求引导到最近的 CDN 节点 → 边缘服务器返回缓存内容 |
| 部署策略 | Enter Deep(深入部署到接入 ISP)vs Bring Home(部署在少数 IXP/大型数据中心) |
| 典型厂商 | Akamai、Cloudflare、AWS CloudFront、Google Cloud CDN |
graph TD
Origin["源站服务器 (Origin)"] -->|"内容分发"| Asia["CDN 节点(亚洲)"]
Origin -->|"内容分发"| Europe["CDN 节点(欧洲)"]
Origin -->|"内容分发"| America["CDN 节点(美洲)"]
Asia -->|"就近访问"| U1["亚洲用户"]
Europe -->|"就近访问"| U2["欧洲用户"]
America -->|"就近访问"| U3["美洲用户"]
CDN 的价值:如果你在中国访问一个美国网站,没有 CDN 时数据要跨越太平洋。有了 CDN,第一次访问后内容被缓存到中国的边缘节点,后续访问直接从本地获取,延迟从 200ms 降到 20ms。
3.5 互联网结构总览
graph TD
subgraph "全球骨干"
T1A["Tier-1 ISP"] <-->|"对等互联"| T1B["Tier-1 ISP"]
end
subgraph "区域运营商"
T2A["Tier-2 ISP"] ~~~ T2B["Tier-2 ISP"]
end
subgraph "接入层"
A1["Access ISP"] ~~~ A2["Access ISP"]
end
subgraph "交换 / 缓存"
IXP1["IXP"] --- CDN["CDN"] --- IXP2["IXP"]
end
subgraph "内容源"
CP["内容提供商自建网络(Google, Meta…)"]
end
T1A --> T2A
T1B --> T2B
T2A --> A1
T2B --> A2
A1 --- IXP1
A2 --- IXP2
CP --- IXP1
CP --- IXP2
今天的互联网远非简单的层级树状结构,而是一张错综复杂的网——Tier-1 之间互相对等、Tier-2 跨层直连 IXP、大型内容提供商建设全球专网、CDN 节点深入到每个城市。理解这个结构,有助于理解为什么你访问不同网站的速度差异巨大。
四、网络核心(Network Core):交换方式
网络核心的本质问题是:如何把数据从源端搬运到目的端? 有两种根本不同的思路。
3.1 电路交换(Circuit Switching)
核心思想
在通信开始前,先在源和目的之间建立一条专用的端到端通路,该通路在整个通信期间独占资源,即使某一时刻没有数据在传,资源也不会让给别人。
类比:就像打传统电话——拨通后,你和对方之间有一条"专线"。即使你沉默不说话,线路也被你占着,别人不能用。
工作流程
① 建立连接(setup):沿途每个交换机预留资源
↓
② 通信(data transfer):数据沿专用路径传输,无需排队
↓
③ 拆除连接(teardown):释放预留的资源
资源复用方式
一条物理链路如何同时承载多路通话?两种经典方案:
频分复用(FDM,Frequency Division Multiplexing)
将链路的频率带宽划分为多个频段(frequency band),每路通信独占一个频段。
频率 ↑
│ ┌──── 用户 4 ────┐
│ ├──── 用户 3 ────┤
│ ├──── 用户 2 ────┤
│ └──── 用户 1 ────┘
└─────────────────────→ 时间
每个用户始终占用自己的频段
每个用户分到的带宽 = 总带宽 / 用户数。例如:链路总带宽 1 MHz,分 4 路,每路 250 kHz。
时分复用(TDM,Time Division Multiplexing)
将时间划分为等长的帧(frame),每帧再分成若干时隙(slot),每路通信在每帧中占用固定时隙。
时间 →
帧1: [用户1][用户2][用户3][用户4]
帧2: [用户1][用户2][用户3][用户4]
帧3: [用户1][用户2][用户3][用户4]
└─── 每个用户在每帧中占一个时隙 ───┘
每个用户分到的传输速率 = 链路总速率 / 用户数。例如:链路 1.536 Mbps,24 路 TDM,每路 64 kbps。
电路交换的计算例题
典型例题:一条 1.536 Mbps 的链路使用 TDM 分成 24 个时隙。每路用户的可用带宽是多少?传输 640,000 bit 的文件需要多长时间?另外建立连接需要 500 ms。
解:
- 每路带宽 = 1.536 Mbps ÷ 24 = 64 kbps
- 传输时间 = 640,000 bit ÷ 64,000 bps = 10 s
- 总时间 = 建立连接 0.5 s + 传输 10 s = 10.5 s
优缺点
| 优点 | 缺点 |
|---|---|
| 传输延迟稳定、有保障 | 资源利用率低(静默期浪费) |
| 适合实时通信(如传统电话) | 建立连接有延迟 |
| 无拥塞(资源已预留) | 不灵活,用户数受限于时隙/频段数 |
3.2 分组交换(Packet Switching)
核心思想
数据被切分成一个个小的分组(packet),每个分组独立地在网络中转发,不需要预先建立连接,各分组可能走不同的路径。路由器对每个分组存储-转发(store-and-forward)。
类比:就像寄快递——每个包裹(分组)独立投递,走哪条路、什么时候到都是独立的。你不需要提前"预定"一条专用路线。
存储-转发(Store-and-Forward)
分组交换机(路由器)必须完整接收一个分组之后,才能开始向下一段链路转发该分组。
源 ───[L bit]──→ 路由器 ───[L bit]──→ 目的
R bps R bps
传输延迟 = L/R(一跳)
经过 N 段链路的总延迟 = N × L/R(忽略传播延迟和排队延迟时)
为什么要存储-转发? 因为路由器需要完整收到分组后才能检查目的地址、查路由表,决定往哪个端口转发。这里的转发和生活中发快递类似——快递站要先收到你的包裹,核验地址后再发往下一站。
排队与丢包
每个路由器为每条输出链路维护一个输出队列(output queue / buffer)。当分组到达速率暂时超过输出链路的传输速率时,分组就在队列中排队等待。
到达 输出链路
分组 ──→ [□□□□□] ──→ (R bps)
↑ 排队缓冲区
· 若缓冲区满 → 到达的分组被丢弃(packet loss)
· 排队中的分组经历排队延迟(queuing delay)
丢包的根本原因:路由器缓冲区容量有限。当网络拥塞时,分组到达速率 > 链路传输速率,缓冲区溢出,分组被丢弃(dropped / lost)。丢失的分组可由上层协议(如 TCP)重传。
统计复用(Statistical Multiplexing)
分组交换的资源共享方式与电路交换截然不同——它采用统计复用:
- 不预留资源,所有用户共享全部链路带宽
- 谁有数据就发,没数据就不占资源
- 按需使用,适合突发性(bursty)流量
为什么分组交换更高效? 因为大多数网络流量是突发性的——用户并非时刻都在传数据。电路交换为每个用户永久预留带宽,大量时间空闲浪费;分组交换让空闲带宽被其他用户利用。
分组交换 vs 电路交换:经典对比例题
例题:一条 1 Mbps 的链路。电路交换方案中每个用户需要 100 kbps,那么最多支持 10 个用户。
如果改用分组交换:假设每个用户只有 10% 的时间在活跃传输(p = 0.1),那么 35 个用户同时有 >10 个活跃的概率 < 0.0004(极低)。
→ 分组交换能让 35 个用户 共享同一条链路而几乎不受影响,电路交换只能支持 10 个。
综合对比:
| 电路交换 | 分组交换 | |
|---|---|---|
| 资源分配 | 预留、独占 | 按需、共享 |
| 建立连接 | 需要 | 不需要 |
| 资源利用率 | 低(静默浪费) | 高(统计复用) |
| 延迟特性 | 稳定、可预测 | 变化、有排队延迟 |
| 丢包 | 不会 | 拥塞时可能丢包 |
| 适合场景 | 传统电话网 | 互联网(数据通信) |
| 用户数 | 受限于时隙/频段数 | 可支持更多突发用户 |
结论:互联网选择了分组交换,因为数据流量的突发性特点让分组交换的统计复用优势远大于电路交换的稳定性优势。
五、延迟、丢包与吞吐量
5.1 分组延迟的四个组成部分
一个分组从一个路由器节点到下一个路由器节点,经历的总延迟(nodal delay):
| 延迟分量 | 名称 | 含义 | 典型量级 |
|---|---|---|---|
| 处理延迟(Processing Delay) | 检查分组头部、查路由表、检错 | 微秒级 | |
| 排队延迟(Queuing Delay) | 在输出队列中等待被传输 | 微秒 ~ 毫秒(取决于拥塞程度) | |
| 传输延迟(Transmission Delay) | 把分组的所有比特推上链路 | 与分组长度和链路带宽有关 | |
| 传播延迟(Propagation Delay) | 比特在物理介质中从 A 传到 B | 与物理距离和传播速度有关 |
传输延迟 vs 传播延迟(最易混淆!)
这是考试和理解中最容易搞混的一对概念:
| 传输延迟 | 传播延迟 | |
|---|---|---|
| 公式 | ||
| L | 分组长度(bit) | — |
| R | 链路带宽(bps) | — |
| d | — | 物理链路长度(m) |
| s | — | 信号传播速度(约 m/s) |
| 类比 | 收费站放行所有车辆所需的时间 | 车辆从收费站跑到下一站的时间 |
| 取决于 | 分组大小 和 带宽 | 物理距离 和 介质 |
收费站类比:一队 10 辆车(= 分组的 10 个 bit)过收费站。
- 传输延迟 = 收费站把 10 辆车全部放行的时间(每辆 12 秒 → 共 120 秒)
- 传播延迟 = 每辆车从这个收费站开到下一个收费站的时间(100km ÷ 100km/h = 1 小时)
两者完全独立:传输延迟取决于"车队多大、放行多快",传播延迟取决于"路有多长、车跑多快"。
如何减少四种延迟?
每种延迟的瓶颈不同,对应的优化策略也有所区别:
| 延迟类型 | 主要优化方向 | 现实中的解决手段举例 |
|---|---|---|
| 处理延迟 | 提升网络设备(路由器/交换机)的算力 | 购买更高性能的路由器;采用专用硬件芯片(ASIC)加速查表 |
| 排队延迟 | 缓解拥塞,或者让关键流量插队 | 升级带宽缓解拥挤;配置 QoS(服务质量) 给语音/游戏流量高优先级 |
| 传输延迟 | 提高链路带宽(买更粗的"水管") | 家宽从百兆升级到千兆;骨干网升级到 400G 光口 |
| 传播延迟 | 缩短物理距离(光速是物理极限,无法突破) | 尽量把服务器放到离用户近的地方(CDN 的核心意义) |
5.2 排队延迟与流量强度
排队延迟是四种延迟中变化最大的,取决于网络的拥塞程度。用流量强度(traffic intensity) 来衡量:
其中:
- = 分组长度(bit)
- = 分组平均到达速率(分组/秒)
- = 链路传输速率(bps)
| 流量强度范围 | 排队延迟状态 |
|---|---|
| 几乎无排队延迟 | |
| 排队延迟急剧增大(趋向无穷) | |
| 到达速率超过服务速率,队列无限增长 → 丢包 |
设计准则:系统不应在 的状态下运行。实际工程中通常要求流量强度远小于 1(如 ≤ 0.7),以保证延迟在可接受范围。
排队延迟
↑
│ ╱
│ ╱
│ ╱
│ ──╱
│ ╱
│╱
└──────────────→ 流量强度 La/R
0 1
当 La/R → 1 时,延迟趋于无穷大
5.3 排队论基础(Queuing Theory)
排队论(Queuing Theory)是分析分组交换网络中排队延迟和丢包的数学工具。
基本模型:M/M/1 队列
最简单的排队模型,用于直观理解网络节点的排队行为:
| 符号 | 含义 |
|---|---|
| M(第一个) | 到达过程服从泊松分布(Poisson)(即到达间隔服从指数分布) |
| M(第二个) | 服务时间服从指数分布 |
| 1 | 只有 1 个服务器(一条输出链路) |
参数定义:
| 参数 | 含义 | 单位 |
|---|---|---|
| 平均到达速率(分组/秒) | pkt/s | |
| 平均服务速率(分组/秒) | pkt/s | |
| 服务器利用率(= 流量强度 ) | 无量纲 |
稳定条件:(即 ),否则队列无限增长。
M/M/1 的关键公式:
Little's Law(利特尔定律)——排队论中最著名的公式:
公式含义:系统中的平均分组数 () = 到达速率 () × 平均逗留时间 ()。
奶茶店类比:
假设一家奶茶店平均每分钟进店 2 个客人(到达速率 ),每个客人从排队点单到拿到奶茶离开平均需要花费 10 分钟(逗留时间 )。
那么这个时候往店里看去,平时店里平均会有多少个客人?答案是 个人(系统中的总人数 )。为什么它很重要? 这个公式极其强大,因为它不依赖于任何复杂的概率分布假设。不管是路由器的缓冲区、奶茶店还是银行排队,只要系统是稳定的(进出平衡),这个定律永远成立。
感觉little's law在现实的应用也就是给直觉的排队估计给了一份理论性依据……
排队论例题
例题:路由器输出链路带宽 R = 1 Mbps,分组平均长度 L = 1000 bit,分组以泊松过程到达,平均到达速率 = 500 pkt/s。
解:
- 服务速率 pkt/s
- 利用率
- 平均系统逗留时间 ms
- 平均排队等待时间 ms
- 系统中平均分组数
其他常见排队模型与 M/D/1
在 坎德尔记号(Kendall's notation) 中,字母分别代表:到达过程 / 服务时间分布 / 服务器数量。
以 M/D/1 为例可以很好地理解这种拆分:
- M (Markovian):客人(分组)什么时间到达是完全随机的(泊松分布/无记忆性)。
- D (Deterministic):服务时间是绝对固定的(方差为0)。在真实的计算机网络中,这对应于所有网络包长度一模一样的场景(比如早期的 ATM 网络规定所有信元必须是死死的 53 字节)。既然每个包长度 恒定、链路带宽 恒定,那么发送器把它推出去的时间(传输延迟 )也就绝对恒定。
- 1:只有 1 个服务窗口(即 1 条输出链路)。
直观理解:“客人完全随机涌进店里,但我们只有一条生产线,且每次加工绝对准时分秒不差。”这种高度的确切性大大缓解了排队压力。
M/D/1 的平均排队等待时间恰好是 M/M/1(服务时间也随机)的一半:。这说明服务时间越确定(方差越小),排队延迟越小。
| 模型 | 到达过程 | 服务时间 | 服务器数 | 适用场景 |
|---|---|---|---|---|
| M/M/1 | 泊松 | 指数 | 1 | 基础分析 |
| M/D/1 | 泊松 | 固定长度 | 1 | 定长分组(如 ATM 信元) |
| M/M/c | 泊松 | 指数 | c 个 | 多链路/多服务器系统 |
| M/G/1 | 泊松 | 一般分布 | 1 | 变长分组的更精确建模(G = General) |
M/M/c vs c 个 M/M/1(银行排队启示):
现实中一个非常经典的排队论推论是:"大长队统一排"永远优于"分散去排队"。
- 分散排队(超市收银):大家都挑一条队伍排(相当于 个独立的 M/M/1 队列)。一旦你前面遇到一个人结账特慢(比如疯狂翻硬币找零,即服务时间波动大),这一整条队伍就会完全停滞!即便隔壁队伍的收银员闲着也帮不了你。这就是典型的队头阻塞(HOL Blocking)。
- 统一排队(银行取号 / 机场安检蛇形阵):所有人排在一个总队列,前面有 个窗口(这就叫 M/M/c 模型)。只要任何一个窗口空闲下来,总队列的最前面那个人就立刻过去。绝对不会出现某个员工闲着发呆而客户还在苦等的现象,实现了资源利用率的最大化。
结论:在降低平均等待时间 上,单一主队列统筹分配(M/M/c)完美吊打分散多队列( 个 M/M/1)!这也是为何现代服务大厅几乎全改成了取号系统的根本数学原理。
5.4 丢包(Packet Loss)
路由器缓冲区容量有限(有限队列长度)。当队列已满时,新到达的分组被丢弃。
丢失的分组可能:
- 被发送端重传(TCP 的可靠传输机制)
- 永远丢失(UDP 不提供重传保障)
5.5 端到端延迟
经过 段链路( 个路由器)的端到端延迟:
在无拥塞、忽略排队的理想情况下:
Traceroute:实际测量端到端路径延迟的工具。发送 TTL 递增的探测分组,沿途每个路由器返回 ICMP 超时报文,从而暴露出每一跳的 IP 和往返时延(RTT)。
5.6 吞吐量(Throughput)
吞吐量:单位时间内目的端实际接收到的数据量(bps)。
- 瞬时吞吐量:某一时刻的传输速率
- 平均吞吐量:传输 bit 的文件耗时 秒 → 平均吞吐量 = bps
瓶颈链路(Bottleneck Link)
端到端吞吐量取决于路径上速率最低的那条链路:
源 ──[Rs]──→ 路由器 ──[Rc]──→ 目的
吞吐量 = min(Rs, Rc)
当多条流共享一条链路时,每条流分到的吞吐量 = 链路带宽 / 流的数量。例如 10 条流共享 R bps 的骨干链路 → 每条流约 R/10 bps。
六、协议分层(Protocol Layering)
6.1 为什么要分层?
网络通信极其复杂,分层是将复杂系统分解为可管理的模块的方法。每层只关注自己的功能,通过定义良好的接口与上下层交互。
类比:航空运输系统也是分层的——售票、行李托运、登机口、跑道起飞、航线控制——每一层各司其职,独立变化而不影响其他层。
6.2 五层因特网协议栈
| 层级 | 名称 | 功能 | 协议示例 | PDU 名称 |
|---|---|---|---|---|
| 5 | 应用层(Application) | 为用户应用提供网络服务 | HTTP、SMTP、DNS、FTP | 报文(Message) |
| 4 | 传输层(Transport) | 进程到进程的数据传输 | TCP、UDP | 报文段(Segment) |
| 3 | 网络层(Network) | 主机到主机的数据路由 | IP、ICMP | 数据报(Datagram) |
| 2 | 链路层(Data Link) | 相邻节点间的帧传输 | Ethernet、WiFi | 帧(Frame) |
| 1 | 物理层(Physical) | 比特流在物理介质上传输 | 电气/光学信号规范 | 比特(Bit) |
PDU(Protocol Data Unit):每一层对数据的称呼不同——应用层叫报文,传输层叫段,网络层叫数据报,链路层叫帧。
6.3 封装(Encapsulation)
数据从应用层向下传递时,每经过一层都会加上该层的头部(header),这个过程叫封装:
应用层: [ 数据 ]
↓ 加传输层头部
传输层: [Ht][ 数据 ]
↓ 加网络层头部
网络层: [Hn][Ht][ 数据 ]
↓ 加链路层头部和尾部
链路层:[Hl][Hn][Ht][ 数据 ][尾]
↓
物理层: 01101001101010110...(比特流)
接收端则逐层拆封(解封装),每层读取并去掉自己的头部,把剩余数据交给上层。
信封类比:写信(应用层数据)→ 装入信封写地址(传输层)→ 装入大信封贴邮票(网络层)→ 放进邮袋(链路层)。每个中间环节只看自己那层的"信封"信息。
6.4 ISO/OSI 七层模型 vs 五层模型
| OSI 七层 | 因特网五层 | 说明 |
|---|---|---|
| 应用层 | 应用层 | 合并 |
| 表示层 | ↑ | 数据格式转换、加密(在因特网中由应用层处理) |
| 会话层 | ↑ | 会话管理(在因特网中由应用层处理) |
| 传输层 | 传输层 | 相同 |
| 网络层 | 网络层 | 相同 |
| 数据链路层 | 链路层 | 相同 |
| 物理层 | 物理层 | 相同 |
实际的因特网采用五层模型,OSI 七层是理论参考模型。表示层和会话层的功能在因特网中由应用自行实现(如 SSL/TLS 加密)。
七、网络性能度量指标汇总
| 指标 | 定义 | 公式 / 单位 |
|---|---|---|
| 带宽(Bandwidth) | 链路最大传输速率 | bps |
| 吞吐量(Throughput) | 实际接收到的数据速率 | bps |
| 延迟(Delay / Latency) | 分组从源到目的所需时间 | 秒 |
| RTT(往返时延) | 分组从源到目的再返回的时间 | 秒 |
| 丢包率(Packet Loss Rate) | 丢弃分组占总分组的比例 | % |
| 时延带宽积 | 链路上能容纳的最大比特数 | (bit) |
时延带宽积的直觉:把链路想象成一根管道,传播延迟决定管道长度,带宽决定管道粗细。时延带宽积就是管道的"容量"——传输时链路上同时在传的比特总数。
八、关键术语速查
| 英文 | 中文 | 一句话解释 |
|---|---|---|
| Packet Switching | 分组交换 | 数据切成小包独立转发,按需共享链路 |
| Circuit Switching | 电路交换 | 先建专用通路,通信期间独占资源 |
| Store-and-Forward | 存储转发 | 收完整个分组后才转发到下一跳 |
| Statistical Multiplexing | 统计复用 | 按需共享带宽,不预留 |
| FDM | 频分复用 | 按频率划分信道 |
| TDM | 时分复用 | 按时间片划分信道 |
| ISP | 互联网服务提供商 | 为终端用户或下级网络提供互联网接入 |
| Tier-1 ISP | 一级 ISP | 全球骨干网络,互相免费对等互联 |
| Tier-2 ISP | 二级 ISP | 区域性 ISP,向 Tier-1 付费购买转接 |
| IXP | 互联网交换点 | 多家 ISP 汇聚并交换流量的物理设施 |
| Peering | 对等互联 | 两个 ISP 直接互联交换流量,不付转接费 |
| Transit | 转接 | 下级 ISP 向上级付费获取全网可达性 |
| Multi-homing | 多宿主 | 同时连接多个上游 ISP 以提高可靠性 |
| CDN | 内容分发网络 | 在全球部署边缘服务器缓存内容,就近服务用户 |
| AS | 自治系统 | 拥有统一路由策略的独立网络(通常对应一个 ISP) |
| BGP | 边界网关协议 | AS 之间交换路由信息的互联网核心协议 |
| Traffic Intensity | 流量强度 | ,衡量拥塞程度 |
| Queuing Delay | 排队延迟 | 分组在路由器缓冲区中等待的时间 |
| Propagation Delay | 传播延迟 | 信号在物理链路上传播的时间 |
| Transmission Delay | 传输延迟 | 把分组所有比特推上链路的时间 |
| Throughput | 吞吐量 | 单位时间实际传输的数据量 |
| Bottleneck Link | 瓶颈链路 | 路径上速率最低的链路 |
| Protocol Stack | 协议栈 | 各层协议的集合 |
| Encapsulation | 封装 | 下层为上层数据添加头部 |
| Little's Law | 利特尔定律 | ,排队论基本定律 |