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

计算机网络——06分组延时、丢失和吞吐量

分组延时、丢失和吞吐量

分组丢失和延时是怎样发生的

在路由器缓冲区的分组队列

  • 分组到达链路的速率超过了链路输出的能力
  • 分组等待排到队头、被传输

在这里插入图片描述

延时原因:

  • 当当前链路有别的分组进行传输,分组没有到达队首,就会进行排队,从而产生排队延迟
  • 丢失原因:分组到达的时候,队列满了,就会丢弃
  • 除了排队延时,还有传输延时

四种延时类型

  • 节点处理延时
    • 检查bit级差错
    • 检查分组首部和决定将分组导向何处
  • 排队延时
    • 在输出链路上等待传输的时间
    • 依赖于路由器的拥塞程度
  • 传输延时
    • R = 链路带宽(bps)
    • L = 分组长度(bits)
    • 将分组发送到链路上的时间 = L / R
    • 存储转发延时
  • 传播延时
    • d = 物理链路的长度
    • s = 在媒体上的传播速度( 2 ∗ 1 0 8 2 * 10^{8} 2108 m/sec)
    • 传播延时 = d/s

节点延时

在这里插入图片描述

排队延时

  • R = 链路带宽(bps)
  • L = 分组长度(bits)
  • a = 分组到达队列的平均速率

流量强度 = La / R

  • La / R ~ 0:平均排队延时很小
  • La / R -> 1:排队延时变得很大
  • La / R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队时间将趋向无穷大

系统设计时流量强度不能大于1

在这里插入图片描述

Internet的延时和路由

  • Internet 的延时和路由是怎样的?
    • Traceroute 诊断程序:提供从源端,经过路由器,到目的的延时测量
    • For all i:
      • 沿着目的的路径,向每个路由器发送3个探测分组
      • 路由器 i 将向发送方返回一个分组
      • 发送方对发送和回复之间间隔计时

在这里插入图片描述

Traceroute 是 利用 ICMP协议(互联网控制报文协议) 运作的
TTL的原理:

  • 假设源客户端是A,目标客户端是B,中间的路由器标号一次为 1 2 3 4 5
  • 在分组的头部header中有一个字段叫TTL(Time to leave)是整数,每经过一个路由器时路由器将TTL-1,如果TTL=0,则该路由器向原客户端发送消息,从而得到时间
  • A设置TTL=1,那么第一个路由器返回时间;设置TTL=2,那么第二个路由器返回时间

依次增大TTL,得到每个路由器返回的延时

  • 对于目标客户端B,设置TTL足够大能够达到B,但是设置端口号没有对应的服务,这样到达B之后找不到对应的端口号就又会向A返回时间,得到B的延时

  • 在Windows系统下

    • Tracert hostname
    • 如 Tracert www.gucas.ac.cn
  • 更完整的例子

    • tract [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
    • 请见帮助: http://www.linkwan.com/gb/broadmeter/article/trace -help.htm
  • 测试网址

    • www.traceroute.org
    • www.linkwan.com

分组丢失

  • 链路的队列缓冲区容量有限
  • 当分组到达一个满的队列时,该分组将会丢失
  • 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

在这里插入图片描述

吞吐量

  • 吞吐量:在源端和目标端之间传输的速率(数据量 / 单位时间)
    • 瞬间吞吐量:在一个时间点的速率
    • 平均吞吐量:在一个长时间内平均值

在这里插入图片描述

在这里插入图片描述

吞吐量取决于吞吐量最小的路径

在这里插入图片描述

吞吐量:互联网场景

在这里插入图片描述

  • 如图,可以看到R链路同时由多个连接共享,这样的话不同的连接就要平分带宽

  • 这样尽管R的带宽比 R s R_s Rs R c R_c Rc大,但是实际给AB的带宽是 1/n,最终比较的是 1/n 的大小


http://www.kler.cn/a/234950.html

相关文章:

  • ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程
  • Java游戏开发基础:从零开始制作一个简单的2D游戏
  • 《Qt Creator 4.11.1 教程》
  • Leetcode Hot 100 【二叉树】104. 二叉树的最大深度
  • lambda初探(一)
  • 感受野如何计算?
  • 编程中“游戏心切”心态的影响及其对策探讨
  • 3.10 Binance_interface APP U本位合约交易-市单价平仓
  • 第三节课[LangChain]作业
  • Java 数据结构篇-实现二叉搜索树的核心方法
  • 面试经典150题——三数之和
  • 华为问界M9:领跑未来智能交通的自动驾驶黑科技
  • python+flask+django农产品供销展销电子商务系统lkw43
  • AutoSAR(基础入门篇)8.5-C/S原理进阶
  • C/C++模板初阶
  • 【开源】SpringBoot框架开发APK检测管理系统
  • 前端学习的笔记第二篇
  • 开发板和单片机的比较
  • python-游戏篇-初级-超级画板
  • 线程-线程的创建方式与线程池基础知识
  • golang常用库之-操作数据库ORM:GORM 包介绍 | 一些 GORM 提示和注意事项
  • 3分钟部署完成Docker Registry及可视化管理工具Docker-UI
  • AI大模型学习笔记之四:生成式人工智能(AIGC)是如何工作的?
  • Java String源码剖析+面试题整理
  • 第三百一十回
  • 《21天精通IPv4 to IPv6》第10天:IPv6在物联网中的应用——如何在物联网中应用IPv4到IPv6?