Skip to content

Commit e8ff78e

Browse files
committed
feat: 新增带宽 时延等文章
1 parent 86eeeee commit e8ff78e

File tree

2 files changed

+185
-2
lines changed

2 files changed

+185
-2
lines changed

docs/network/overview/40-data-package.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: 网络数据单元:报文、帧、包的区别
3-
shortTitle: 网络网络数据单元:报文、帧、包的区别
2+
title: 网络数据包:报文、帧、包的区别
3+
shortTitle: 数据包:报文、帧、包的区别
44
description: 本文详细解析了计算机网络中不同层级的数据单元(报文Message、包Packet、帧Frame)的区别、封装过程及其在网络通信中的作用,帮助你理解网络数据传输的基本原理。
55
head:
66
- - meta
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
---
2+
title: 如何理解计算机网络中的带宽、吞吐量与时延?
3+
shortTitle: 带宽 VS 吞吐量 VS 时延
4+
description:
5+
head:
6+
- - meta
7+
- name: keywords
8+
content: 带宽, 吞吐量, 时延, 网络性能, 传播时延, 传输时延, 处理时延, 排队时延, 网络拥塞, TCP协议
9+
---
10+
11+
---
12+
13+
## 如何理解计算机网络中的带宽、吞吐量与时延?
14+
15+
大家好,我是小北。
16+
17+
带宽、吞吐量、时延是网络中经常用来量化的指标,比如我们经常说网速好快、网络好卡、延迟好大等等。
18+
19+
这几个概念之间有一定关系,但是也经常容易混为一谈。
20+
21+
今天就让我们一起来理清这些概念。
22+
23+
24+
因为网络其实和道路交通有一定相似性,所以我们就用高速公路来类比网络,这样方便理解。
25+
26+
27+
## 一、带宽(Bandwidth)
28+
29+
**带宽指的是网络的传输能力,表示单位时间内能够传输的最大数据量。**
30+
31+
通常使用比特/秒(b/s)作为单位,常见的还有 Kb/s、Mb/s、Gb/s 等。
32+
33+
34+
带宽呢,就像是高速公路的车道数:
35+
36+
* 2车道的公路(小带宽)一次能通过的车辆少
37+
* 8车道的公路(大带宽)一次能通过的车辆多
38+
39+
举个例子:如果你的网络带宽是 100 Mbps,理论上每秒最多可以传输 100 兆比特的数据。
40+
41+
> 这里要补充下,我们日常生活经常说办的宽带是 100M、1000M,这里的单位是 bit 比特,而平常 MB/s 则是 Byte
42+
> 而 1 Byte = 8 bit,所以 100 M 的宽带,1s 最多下载 100/8 = 12.5 MB
43+
44+
45+
但是要注意,**带宽是一个理论上的最大值**,实际中很难达到这个值。
46+
47+
因为实际速度可能会受到网络拥塞、路由器性能等大打折扣,如同高峰期的八车道高速仍会堵车。
48+
49+
50+
## 二、吞吐量(Throughput)
51+
52+
**吞吐量是指实际单位时间内成功传输的数据量。**
53+
54+
也是使用比特/秒(b/s)作为单位。
55+
56+
如果说带宽是高速公路的最大通行能力,那么吞吐量就是实际通过的车流量:
57+
58+
即使是8车道高速,如果遇到交通管制、事故,实际通过的车辆数量也会减少。
59+
60+
同样,即使网络带宽很大,但受到网络拥塞、服务器性能、路由器处理能力等因素影响,实际吞吐量往往小于带宽
61+
62+
吞吐量 ≤ 带宽,在理想情况下,吞吐量可以接近带宽,但实际中通常会小于带宽。
63+
64+
举个例子,大家平常用百度网盘下载的时候,刚开始速度非常快,10MB/s,但是如果你没有充值会员,速度将会逐渐降低到 几十 KB/s。
65+
66+
下载文件时速度从10MB/s掉到 几十 KB/s 就是吞吐量下降。
67+
68+
一般原因可能是:路由器过热、ISP限速、服务器过载...
69+
70+
也可能是你没充值。。。。。
71+
72+
73+
## 三、时延(Delay/Latency)
74+
75+
**时延是指数据从源主机传输到目标主机所需的时间,通常以毫秒(ms)为单位。**
76+
77+
比如我们用一些网络工具的时候就特别在意它的时延:
78+
79+
![](https://cdn.how2cs.cn/gzh/2025-04-26-083934.png)
80+
81+
82+
83+
时延并不是一个单独的指标,在《计算机网络: 自顶向下》 这本书中,提到时延由以下几部分组成:
84+
85+
* **1. 发送时延:主机将数据包的所有比特推向传输介质所需的时间**
86+
87+
计算公式:发送时延 = 数据帧长度(bit) / 发送速率(bit/s)
88+
89+
90+
* **2. 传播时延:电磁信号在链路上传播所需的时间**
91+
92+
计算公式:传播时延 = 链路长度 / 信号传播速度
93+
电磁波在真空中的传播速度约为3×10^8 m/s,在铜线或光纤中会略慢
94+
95+
* **3. 处理时延:路由器或交换机等设备处理数据包所需的时间,包括检查头部、查找路由表等**
96+
97+
98+
* **4. 排队时延:数据包在网络设备缓冲区中等待被处理的时间**
99+
100+
101+
> 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
102+
103+
104+
反正就是数据包在整个网络设备中,每一步都有对应的耗时,总结起来大概是这么几块。
105+
106+
107+
我们还是用高速路来类比:
108+
109+
| 时延类型 | 类比 | 影响因素 |
110+
| --- | --- | --- |
111+
| 传输时延 | 装车时间(数据发到链路上) | 数据大小/带宽 |
112+
| 传播时延 | 卡车行驶时间 | 物理距离/介质速度 |
113+
| 处理时延 | 分拣中心处理时间 | 路由器/交换机的性能 |
114+
| 排队时延 | 高速收费站堵车时间 | 网络拥塞程度 |
115+
116+
117+
### RTT(往返时延)
118+
119+
RTT(Round-Trip Time)是指数据包从源主机发送到目标主机,再返回到源主机所需的总时间。
120+
121+
因为日常生成中打开网页、视频通话等应用都是给对方发送请求,然后服务器处理后返回响应,所以 RTT 在实际中应用更加广泛。
122+
123+
比如我们经常用ping命令测试的就是RTT。
124+
125+
### 延迟带宽积(BDP)
126+
127+
为了后面更好理解这三者的关系,这里再引入一个**延迟带宽积**的概念
128+
129+
延迟带宽积(Bandwidth-Delay Product,简称BDP),顾名思义,是指链路的传播时延与带宽的乘积。
130+
131+
132+
那这个指标到底是啥意思呢?
133+
134+
其实很好理解,想象一条横跨大洋的光缆:
135+
136+
带宽:光缆的粗细(每秒能传输多少数据)
137+
138+
往返时延(RTT):数据从一端到另一端再回来的时间
139+
140+
延迟带宽积(BDP):BDP = 带宽 × RTT也就是这条光缆能同时容纳多少 **“在途中的数据”**
141+
142+
所以 带宽 × 时延也就等于网络管道的「容积」。
143+
144+
就好像水管总容量 = 水流速度(升/秒) × 水流循环时间(秒)
145+
146+
若水流速度是10升/秒,水流循环一周需5秒 → 水管总容量 = 50升
147+
148+
那这个有啥实际应用呢?
149+
150+
**传输窗口设计:**
151+
152+
153+
在TCP协议中,发送窗口其实就是允许最大未确认(在途)的数据包,那么这个窗口也应该至少等于延迟带宽积。
154+
155+
否则,如果窗口小于延迟带宽积,会造成带宽浪费(在途数据包填不满链路,发送方就暂停发送了)
156+
157+
而如果窗口过大,则可能导致网络拥塞。
158+
159+
160+
161+
## 四、这些指标之间的关系
162+
163+
1. **带宽与吞吐量**
164+
165+
* 高带宽为吞吐量提供了上限保证,提高带宽可能会提升吞吐量,但不一定成正比,因为实际吞吐量受时延和丢包制约。
166+
167+
2 **带宽与时延**
168+
169+
* 带宽的增加不一定会减少时延(比如深圳开车回四川,在都不堵车的情况下,你即便是把高速路扩容到 20 车道,也不会降低回家的耗时)
170+
* 对于小数据包,时延主要受传播时延和处理时延影响,与带宽关系不大(毕竟你都填不满网络)
171+
* 对于大文件传输,带宽越大,发送时延越小(可以想象高速路收费站,入口越多,把同样的车辆送上高速路也就越快)
172+
173+
3. **时延与吞吐量**
174+
175+
* 在某些协议下,较高的时延可能导致吞吐量下降
176+
* 例如在 TCP 协议中,较高的 RTT 会降低传输效率
177+
178+
179+
## 总结
180+
181+
用图片来总结下:
182+
183+
![](https://cdn.how2cs.cn/gzh/2025-04-26-network-metrics-diagram.svg)

0 commit comments

Comments
 (0)