1.4 分组交换网中的时延、丢包和吞吐量 | 计算机网络核心原理拆解

在计算机网络的世界里,我们常常会遇到这样的困惑:为什么明明带宽很高,打开网页却依然卡顿?为什么视频通话会突然出现马赛克和延迟?这一切的背后,都和分组交换网中的时延、丢包与吞吐量这三个核心概念息息相关。它们是衡量网络性能的基石,也是《计算机网络:自顶向下方法》中最关键的入门知识点之一。


1.4.1 分组交换网中的时延:数据旅行的 "时间账单"

当一个分组(Packet)从源主机出发,经过若干路由器,最终抵达目的主机时,它会在沿途的每一个节点(主机或路由器)上经历四种类型的时延,共同构成了数据传输的总时延。

1. 处理时延(Processing Delay)

当分组到达路由器时,路由器并不会立刻转发它,而是需要先 "验明正身":

  • 检查分组首部的比特级差错(比如传输过程中是否有比特位翻转)
  • 确定该分组应该被转发到哪一个输出链路
  • 查找转发表并决定下一跳地址

这部分操作由路由器的硬件或软件高速完成,通常在微秒级(µs)甚至纳秒级(ns),是四种时延中最短暂的一环。

2. 排队时延(Queuing Delay)

这是最具 "不确定性" 的时延。当分组处理完成后,它需要在路由器的输出队列中等待,直到前面的分组都被发送完毕。

  • 排队时延的长短高度依赖于网络的拥塞程度
    • 网络空闲时:队列中几乎没有等待的分组,排队时延趋近于 0
    • 网络繁忙时:大量分组涌入队列,排队时延会急剧增加,甚至达到毫秒级(ms)
  • 它是导致网络延迟波动的主要原因,也是我们感受 "网络卡顿" 的直接来源。

3. 传输时延(Transmission Delay)

这是将分组的所有比特推送到输出链路上所需要的时间。

  • 计算公式:传输时延 = 分组长度(比特) / 链路带宽(比特/秒)
  • 举个例子:一个长度为 10,000 比特的分组,在带宽为 10 Mbps(10^7 比特 / 秒)的链路上传输,传输时延为 10,000 / 10^7 = 0.001 秒 = 1 毫秒
  • 关键点:传输时延只与分组大小链路带宽有关,与两台设备之间的物理距离无关。

4. 传播时延(Propagation Delay)

这是比特在物理介质(光纤、铜线、无线电波)中传播所花费的时间。

  • 计算公式:传播时延 = 链路物理长度(米) / 信号在介质中的传播速度(米/秒)
  • 信号传播速度接近光速(在光纤中约为 2×10^8 米/秒
  • 举个例子:一段长度为 2000 公里的光纤链路,传播时延约为 2×10^6 / 2×10^8 = 0.01 秒 = 10 毫秒
  • 关键点:传播时延只与物理距离介质类型有关,与分组大小、带宽无关。

直观对比:传输时延 vs 传播时延

想象你在向远方的朋友邮寄一箱书:

  • 传输时延:你把这箱书搬到卡车上所花费的时间(取决于箱子大小和你的力气)
  • 传播时延:卡车从你家开到朋友家路上行驶的时间(取决于距离和路况)

1.4.2 排队时延和丢包:网络拥塞的 "红绿灯"

排队时延是网络性能的 "晴雨表",而当排队时延达到极限时,就会引发丢包

1. 排队时延的本质

排队时延是一个随机变量 ,因为分组到达路由器的时间是不可预测的。我们通常用平均排队时延时延的方差来描述它的特性。

  • 当路由器的输入流量远小于输出链路的处理能力时,平均排队时延很小且稳定。
  • 当输入流量接近或超过输出链路带宽时,队列会迅速变长,平均排队时延呈指数级增长。

2. 丢包是如何发生的?

路由器的队列缓冲区容量是有限的。当新的分组到达时,如果队列已经被占满,路由器就会丢弃 这个新到达的分组,这就是丢包(Packet Loss)

  • 丢包是网络应对拥塞的一种 "自我保护" 机制,避免了队列无限膨胀导致的系统崩溃。
  • 被丢弃的分组需要由源端主机(或传输层协议,如 TCP)进行重传,这又会引入额外的时延和开销。

💡 核心认知

排队时延和丢包是分组交换网区别于电路交换网的核心特征。在电路交换中,资源被预先分配,不存在排队和丢包,但资源利用率低下;而分组交换通过统计复用提高了资源利用率,却也带来了时延波动和丢包的风险。


1.4.3 端到端时延:用户真实感受到的延迟

端到端时延(End-to-End Delay)是指一个分组从源主机出发,成功到达目的主机所经历的总时延。它是源主机、沿途所有路由器以及目的主机上各类时延的总和。

计算公式

对于一个经过 N 台路由器的路径:端到端时延 = N × (处理时延 + 排队时延 + 传输时延 + 传播时延)

简化理解

在大多数情况下,传播时延传输时延是端到端时延的主要组成部分,而处理时延通常可以忽略不计。排队时延则取决于网络的实时拥塞状况,是导致端到端时延波动的最大变量。

📌 举个例子

假设你在北京访问一台位于上海的服务器,两地物理距离约 1300 公里:

  • 传播时延:1.3×10^6 / 2×10^8 ≈ 6.5 毫秒
  • 传输时延:取决于你的带宽和分组大小,例如 100 Mbps 带宽下,1500 字节的分组传输时延约为 1500×8 / 10^8 = 0.12 毫秒
  • 端到端时延:通常在几十毫秒到几百毫秒之间,具体取决于中间路由器的排队情况。

1.4.4 计算机网络中的吞吐量:数据传输的 "速度表"

** 吞吐量(Throughput)** 是衡量网络在单位时间内能够成功从源端传输到目的端的数据量,单位通常是 比特 / 秒(bps)字节 / 秒(B/s)。它直接决定了用户能体验到的下载 / 上传速度。

1. 瓶颈链路:决定吞吐量的 "短板"

一条端到端路径的吞吐量,由路径中带宽最小的那一段链路 决定,这就是瓶颈链路(Bottleneck Link)

  • 就像一个由多段不同粗细水管组成的输水管道,最终的出水量由最细的那一段决定。
  • 例如:你的电脑连接到 1 Gbps 的家庭路由器,路由器通过 100 Mbps 的光纤连接到运营商,运营商再通过 10 Gbps 的骨干网连接到服务器。那么你的最大吞吐量就是 100 Mbps,因为家庭到运营商的链路是瓶颈。

2. 瞬时吞吐量 vs 平均吞吐量

  • 瞬时吞吐量:某一时刻的传输速率,可能会剧烈波动(比如视频加载时的速度变化)。
  • 平均吞吐量:在一段时间内的平均传输速率,更能反映网络的长期性能。

3. 吞吐量与带宽的区别

  • 带宽(Bandwidth) :链路的最大理论传输能力,是物理上限。
  • 吞吐量 :实际传输过程中能够达到的速率,通常小于或等于带宽,受限于瓶颈链路和网络拥塞。

✅ 本章核心总结

表格

核心概念 核心定义 关键影响因素
时延 数据从一端到另一端花费的时间 处理、排队、传输、传播
丢包 分组因队列溢出被丢弃的现象 网络拥塞、路由器缓冲区大小
吞吐量 单位时间内成功传输的数据量 瓶颈链路带宽、网络拥塞程度

理解了这三个概念,你就掌握了分析网络性能的核心工具:

  • 当你感觉网络延迟高时,要思考是传播时延 (距离远)还是排队时延(网络拥塞)在作祟。
  • 当你下载速度慢时,要找到路径中的瓶颈链路,它才是限制你速度的 "罪魁祸首"。
  • 当你遇到视频卡顿或数据丢失时,要明白这是丢包和重传机制在起作用。

这些知识不仅是《计算机网络:自顶向下方法》的基石,更是你成为一名优秀网络工程师或后端开发者的必备素养。


📌 下一节预告

1.5 协议层次及其服务模型 ------ 深入理解计算机网络的 "分层架构",看看我们熟悉的 TCP/IP 五层模型是如何工作的。

相关推荐
从零点2 小时前
ubuntu网络没有WiFi怎么办?网络配置解决步骤
linux·服务器·网络
芒果披萨2 小时前
http请求
网络·网络协议·http
Anastasiozzzz2 小时前
互联网的导航仪:深度解析 DNS 协议及其工作原理
网络·网络协议
Barkamin2 小时前
网络编程套接字
运维·服务器·网络
无籽西瓜a2 小时前
OSI 七层模型详解及面经
java·网络·后端
是梦终空1162 小时前
汽车电子中的Service31应用与协议详解
网络·汽车
czxyvX2 小时前
010-NAT-代理服务-内网穿透
网络
源远流长jerry3 小时前
RDMA Memory Region (MR) 机制详解:地址转换与内存保护
linux·服务器·网络·tcp/ip·架构·mr
徐子元竟然被占了!!3 小时前
ENSP学习-路由器
网络·学习