当前位置: 首页 > news >正文

计算机网络自顶向下方法3——详解分组交换时延、丢包、吞吐量

详解分组交换网络性能三要素:时延、丢包与吞吐量

本文深入剖析分组交换网络中决定性能的关键指标,帮助你从本质上理解网络“快慢”的成因。

在分组交换网络中,数据被分割成一个个分组 独立传输。这种设计带来了高效,也引入了几个至关重要的性能概念。理解它们,是诊断网络问题、进行系统优化的基础。

一、时延:数据包从出发到抵达的总时间

时延是指一个分组从源端系统出发,到最终抵达目的端系统所经历的总时间。它并非单一因素造成,而是由以下四种主要时延叠加而成:

1. 处理时延
  • 定义:分组到达路由器后,路由器检查其首部、决定其转发方向所花费的时间。

  • 动作包括

    • 检查比特级错误。

    • 解析IP首部,提取目的IP地址。

    • 查询转发表,确定该分组应从哪个输出链路转发。

  • 影响因素:路由器的处理能力、网络层协议的处理复杂度。

  • 典型值:通常为微秒级别或更短。

  • 比喻邮局分拣员拿起一个信件,查看邮政编码(检查首部),然后根据邮编决定把它扔进哪个地区的篮子(查询转发表)。这个过程所花的时间就是处理时延。

2. 排队时延
  • 定义:分组在路由器的输出队列中等待被发送到链路上去的时间。

  • 这是时延中最复杂、变化最大的部分

  • 影响因素

    • 流量强度:这是关键因素。流量强度 = 分组到达速率 / 链路输出速率

    • 如果流量强度 > 1,意味着到达的速率持续高于发送的速率,队列将无限增长,排队时延趋于无穷大。

    • 如果流量强度 ≈ 1,队列持续繁忙,时延会很大。

    • 如果流量强度 < 1,到达过程是随机的,即使平均速率低于输出速率,也可能因为分组突发到达而产生排队时延。

  • 比喻:在高速公路收费站。即使收费站处理速度很快(高输出速率),但如果短时间内来了很多车(高到达速率),车辆也不得不在收费口排队等待。排队时间就是排队时延。

3. 传输时延
  • 定义:将分组的所有比特推上(传输到) 链路所需要的时间。

  • 计算公式传输时延 = 分组长度 / 链路带宽

  • 影响因素

    • 分组长度:分组越大,传输时延越长。

    • 链路带宽:链路速率越高,传输时延越短。

  • 比喻:一辆完整的货车通过一座桥。货车越长(分组越大),通过时间越长;桥面越宽,允许通行速度越快(带宽越高),通过时间越短。它只关心“把整个货车头到尾开上桥”的时间,不关心桥有多长。

4. 传播时延
  • 定义:一个比特从链路的起点传播到终点所需要的时间。

  • 计算公式传播时延 = 链路长度 / 传播速度

  • 影响因素

    • 物理距离:这是决定性因素。从北京到上海的光纤,传播时延远大于从你家到邻居家。

    • 传播介质:信号在介质中的传播速度(在光纤和铜线中约为光速的2/3,即 2 * 10^8 m/s)。

  • 比喻货车的第一节车厢从桥头开到桥尾所需要的时间。它只关心桥的长度和货车的行驶速度,不关心货车有多长。

关键辨析:传输时延 vs 传播时延
特性传输时延传播时延
关注点将分组推上链路比特在链路上传播
决定因素分组长度、链路带宽物理距离、传播速度
比喻车队通过收费站的时间车队从收费站开到下一个城市的时间
谁更主导?在局域网、短距离中在广域网、长距离中

总时延 = 处理时延 + 排队时延 + 传输时延 + 传播时延


二、丢包:当网络不堪重负

1. 丢包是如何发生的?

每台路由器的出口链路都有一个缓存队列。当分组到达路由器,发现输出链路正忙时,它会被放入这个队列中等待。

  • 队列溢出:由于路由器的缓存空间是有限的,如果分组到达的速率持续高于发送速率,队列将会被填满。后续到达的分组将无处容身,只能被丢弃。这就是丢包。

  • 主动队列管理:有时,为了向发送端发出“拥塞”信号,路由器甚至在队列满之前就会主动丢弃一些分组。

2. 丢包的后果
  • 可靠性机制触发:对于TCP这样的可靠传输协议,丢包意味着接收端没有收到数据,它会通过确认机制 通知发送端。

  • 重传:发送端检测到丢包后,会重新发送 那些丢失的分组。

  • 性能下降:重传意味着有效吞吐量的降低和时延的增加。严重的丢包会导致网络连接变得极其缓慢。

丢包是网络拥塞的典型标志。


三、吞吐量:网络的真实有效速度

1. 定义
  • 瞬时吞吐量:在某个瞬间,接收方接收到数据的速率。

  • 平均吞吐量:在一段时间内,接收到的总数据量除以总时间。

我们通常关心的是平均吞吐量。它衡量的是端到端连接的实际有效数据传输速率

2. 瓶颈链路原理

端到端的吞吐量不由路径上最快的链路决定,而是由最慢的链路决定。

经典比喻:水管系统
想象一组串联的水管,水流从最粗的水管流经一段细水管,再流入粗水管。

  • 整体流速完全由最细的那段水管的直径(带宽)决定。

  • 无论其他部分多粗,水流的速度都无法超过最细部分的极限。

3. 现实世界中的吞吐量

在你的上网体验中:

  • 服务器吞吐量:你从视频网站下载,其服务器可能连接着10Gbps的链路。

  • 你家的接入吞吐量:而你家的宽带是100Mbps。

  • 端到端吞吐量:那么,你下载的有效吞吐量最多就是100Mbps。你的接入链路就是瓶颈链路

即使你家有1000Mbps的宽带,如果你访问的服务器本身带宽不足或正在被大量用户访问,该服务器到其ISP的链路也可能成为新的瓶颈。

总结:三者间的内在联系

时延、丢包、吞吐量是相互关联的,共同描绘了网络的健康状况:

  1. 拥塞初期:随着流量增加,排队时延开始显著上升。

  2. 拥塞加剧:当队列开始被填满,丢包开始出现。

  3. 性能恶化:丢包触发重传,导致有效吞吐量下降,并且由于重传,总时延进一步增加。

理解这三者的关系和成因,是进行网络性能调优、应用程序开发(例如,为什么视频流要使用UDP而非TCP)以及系统架构设计的基础。下次当你遇到网络卡顿时,你就可以从这三个维度去思考问题的根源所在

http://www.dtcms.com/a/528164.html

相关文章:

  • 外贸 网站推广青岛胶南市城乡建设局网站
  • GitHub等平台形成的开源文化正在重塑推荐人
  • webrtc代码走读(六)-QOS-FEC冗余度配置
  • F036 vue+flask中医热性药知识图谱可视化系统vue+flask+echarts+mysql
  • 电脑效能跃升利器 金士顿KVR内存焕新机
  • Bootstrap UI 编辑器
  • MySQL联合查询详解
  • webrtc代码走读(五)-QOS-FEC原理
  • 车载诊断架构 ---DTC快照中DID大小顺序是怎么要求的?
  • Windows 10 下 VS Code 配置 C++ 开发环境(MinGW)
  • 天津低价网站建设怎样做淘宝联盟的网站
  • 福建网站建建设方案太原关键词优化报价
  • 深耕 Rust:核心技术解析、生态实践与高性能开发指南
  • 深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑
  • 北京网站建设管庄1天学会搭建营销网站
  • 基于SEH的异常捕获与MiniDumpWriteDump深度解析
  • C语言练习题
  • Postman应用实战
  • Vue-Loader 深度解析:原理、使用与最佳实践
  • HCIP第二次作业(VRRP/STP/VLAN/Eth-trunk/NAT)
  • 外国设计网站推荐自己学网站建设
  • ASP.NET Core中创建中间件的几种方式
  • Docker安装思源笔记使用指南
  • 需求登记网站怎么做免费高清图片素材网站推荐
  • SpringBoot集成Elasticsearch | Java High Level Rest Client(HLRC)方式
  • 《神领物流》day07-线路规划之线路管理_完整代码【简单易懂注释版】
  • 使用Ansys Polyflow对泡沫聚合物挤出进行建模
  • 【组成原理·硬件】6总线
  • Spring Boot3零基础教程,整合 SSM,笔记52
  • 序列化详解