计算机网络扫盲(4)——时延

news2025/1/12 13:35:41

一、概述

        在这里,我们考虑分组交换网的情况,因特网可以被看成是一种基础设施,该基础设施为运行在端系统上的分布式应用提供服务。在理想情况下,我们希望因特网服务能够在任意两个端系统之间随心所欲地移动数据而没有任何数据地丢失。然而,这是一个极高的目标,实践中几乎无法达到。与之相反,计算机网络必须限制在端系统之间的吞吐量(每秒能够传送的数据量),在端系统之间引入时延,而且必定会丢失分组。

二、时延分类

        分组从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。当分组从一个节点(主机或者路由器)沿着这条路径到后继节点(主机或者路由器),该分组在沿途的每个节点经受了几种不同类型的时延。这些时延最为重要的是:

  • 节点处理时延(nodal processing delay)
  • 排队时延(queuing delay)
  • 传输时延(transmission delay)
  • 传播时延(propagation delay)

        这些时延总体累加起来是节点总时延(total nodal delay)。许多因特网应用,如搜索、Web浏览、电子邮件、地图、即时讯息和IP语音,它们的性能受网络时延的影响很大。为了深入理解分组交换和计算机网络,我们必须理解这些时延的性质和重要性。

        我们来探讨一下下图环境中的这些时延。作为源和目的地之间的端到端路由的一部分,一个分组从上游节点通过路由器A向路由器B发送。我们的目标是在路由器A刻画出节点时延。值得注意的是,路由器A具有通往路由器B的出链路。该链路前面有一个队列(也称为缓存)。当分组从上游节点到达路由器A时,路由器A检查该分组的首部以决定它的适当出链路,并将该分组导向该链路。在这个例子中,对该分组的出链路是通向路由器B的那条链路。仅当在该链路没有其他分组正在传输并且没有其他分组排在该队列前面时,才能在这条链路上传输该分组;如果该链路当前正繁忙或有其他分组已经在该链路上排队,则新到达的分组将加入排队。

2.1 处理时延

        检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。处理时延也能够包括其他因素,如检查比特级别的差错所需要的时间,该差错出现在从上游节点向路由器A传输这些分组比特的过程中。高速路由器的处理时延通常是微秒或更低的数量级。在这种节点处理之后,路由器将该分组引向通往路由器B链路之前的队列。

2.2 排队时延

        在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度将取决于先期到达的正在排队等待向链路传输的分组数量。如果该队列是空的,并且当前没有其他分组正在传输,则该分组的排队时延为0。另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很长。我们将很快看到,到达分组期待发现的分组数量是到达该队列的流量的强度和性质的函数。实际的排队时延可以是毫秒到微秒量级。

2.3 传输时延

        假定分组以先到先服务方式传输——这在分组交换网中是常见的方式,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用L比特表示该分组的长度,用R bps (即b/s)表示从路由器A到路由器B的链路传输速率。例如,对于一条10Mbps的以太网链路,速率R=10Mbps;对于100Mbps 的以太网链路,速率 R=100Mbps。传输时延是L/R。这是将所有分组的比特推向链路(即传输,或者说发射)所需要的时间。实际的传输时延通常在毫秒到微秒量级。

2.4 传播时延

        一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。该传播速率取决于链路的物理媒体(即光纤、双绞铜线等)。该传播时延等于两台路由器之间的距离除以传播速率。即传播时延是d/s,d是路由器A和路由器B之间的距离,s是该链路的传播速率。一旦该分组的最后比特传播到节点B,该比特及前面的所有比特被存储于路由器B。整个过程将随着路由器B执行转发而持续下去,在广域网中,传播时延为毫秒级。

三、传输时延和传播时延的比较

        计算机网络领域的新手有时难以理解传输时延和传播时延之间的差异。该差异是微然而重要的。传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。另一方面,传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。

        一个类比可以阐明传输时延和传播时延的概念。考虑一条公路每100km有一个收费站,可认为收费站间的公路段是链路,收费站是路由器。假定汽车100km/h的速度(也就是说当一辆汽车离开一个收费站时,它立即加速到100km/h并在收费站间维持该速度)在该公路上行驶(即传播)。假定这时有10 辆汽车作为一个车队在行驶,并且这10辆汽车以固定的顺序互相跟随。可以认为每辆汽车是一个比特,该车队是一个分组。同时假定每个收费站以每辆车12s 的速度服务(即传输)一辆汽车,并且由于时间是深夜,因此该车队是公路上唯一一批汽车。最后,假定无论该车队的第一辆汽车何时到达收费站,它在入口处等待,直到其他9辆汽车到达并整队依次前行。(因此,整个车队在它能够"转发"之前,必须存储在收费站。)收费站将整个车队推向公路所需要的时间是(10辆车)/(5辆车/min)=2min。该时间类比于一台路由器中的传输时延。一辆汽车从一个收费站出口行驶到下一个收费站所需要的时间是100km/(100km/h)=1h。这个时间类比于传播时延。因此,从该车队存储在收费站前到该车队存储在下一个收费站前的时间是"传输时延"与"传播时间"总和,在本例中为62min。

四、小结        

        在端到端的传输过程中,时延是不可避免的,其中主要的几种类型有节点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(transmission delay)、传播时延(propagation delay) 。其中需要注意区分传播时延和传输时延的区别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1281845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海洋捕食者算法4.实验参数设定5.算法结果…

已解决:虚拟机集群xsehll连接不上

问题描述: hadoop102能连上,hadoop103、hadoop104无法连接,以前都能连上,今天突然就连不上了 解决方案: 使用ifconfig命令查看有没有ens33 如果没有的话那就证明你的问题和我一样 依次使用以下命令: sys…

Docker 简介,Docker 安装——3

目录: Docker 简介 什么是虚拟化、容器化?为什么要虚拟化、容器化?虚拟化实现方式 应用程序执行环境分层虚拟化常见类别 虚拟机容器JVM 之类的虚拟机常见虚拟化实现 主机虚拟化(虚拟机)实现容器虚拟化实现 容器虚拟化实现原理容器虚拟化基础…

SSM新闻发布管理系统

SSM毕设分享 序号1:SSM新闻发布管理系统 1 项目简介 Hi,各位同学好,这里是郑师兄! 今天向大家分享一个毕业设计项目作品【SSM新闻发布管理系统】 师兄根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数…

人工智能发展史

人工智能(AI)的发展史是一段跨越数十年的旅程,涵盖了从早期理论探索到现代技术革新的广泛内容。人工智能的发展历程展示了从最初的概念探索到现代技术突破的演变。尽管经历了多次起伏,但AI领域持续进步,不断拓展其应用…

unordered_map与unordered_set的实现(含迭代器)

unordered_map与unordered_set的实现 文章目录 unordered_map与unordered_set的实现前言一、问题一HashTable.h 二、问题二&问题三1.封装时如何取出key2.不同类型key如何建立对应关系 三、问题四&问题五问题四问题五 四、实现代码MyUnorderedSet.hMyUnorderedMap.hHash…

C 语言实现TCP 通信,以及地址复用

服务端 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <arpa/inet.h>int main() {//监听套接字文件描述符int listenFd -1;//连接套接字的文件描述符int connFd -1;//服务器的地址结构st…

python scipy.spatial.distance.pdist学习详记——(待完善)

1.Python scipy.spatial.distance.pdist用法及代码示例

《许犁庭与柔性世界》第二十九章 掷红鸟

“没事&#xff0c;其实我也想到了你会走&#xff0c;谁能在那又臭又脏的烟囱里待那么久。所以我就急匆匆地出去找你&#xff0c;找遍了附近都找不着&#xff0c;却突然在大屏幕上看到你正受着陆捋须的折磨。” “唔~~~” “这死家伙可真过分&#xff01;难怪学院里那么多人讨厌…

继续画图带你学习TCP 其他 7 大特性

四、滑动窗口机制 五、流量控制 六、拥塞控制 (安全机制) 七、延迟应答 (效率机制) 八、捎带应答 (效率机制) 九、粘包问题 十、保活机制 TCP总结 四、滑动窗口机制 滑动窗口机制&#xff0c;是在可靠性的前提下&#xff0c;进一步地提高传输效率 认识滑动窗口 一发一收…

24.Python 网络编程之socket编程

目录 1.认识TCP/IP2.socket编程2.1 使用socket2.2 使用socketserver 1.认识TCP/IP 计算机网络就是把各个计算机连接在一起&#xff0c;在网络中的计算机可以互相通信。 网络编程是如何在程序中实现两台计算机的通信。 网络通信是两台计算机上的两个进程之间的通信。 为了把…

第十一节HarmonyOS 常用容器组件3-Tabs

一、Tabs 1、概述 我们经常使用时&#xff0c;会出现试图切换的场景&#xff0c;比如底部有多个菜单&#xff0c;“首页”、 “我的”等。 两个内容容器的切换&#xff1a; ArkUI开发框架提供了一种页签容器组件Tabs&#xff0c;开发者通过Tabs组件可以很容易的实现内容视图…

目标检测算法改进系列之添加变核卷积AKConv模块

AKConv变核卷积 KConv的主要思想&#xff1a;AKConv&#xff08;可变核卷积&#xff09;主要提供一种灵活的卷积机制&#xff0c;允许卷积核具有任意数量的参数和采样形状。这种方法突破了传统卷积局限于固定局部窗口和固定采样形状的限制&#xff0c;从而使得卷积操作能够更加…

C# OpenVINO 直接读取百度Paddle模型实现物体检测( yolov3_darknet)

目录 效果 项目 代码 下载 C# OpenVINO 直接读取百度Paddle模型实现物体检测( yolov3_darknet) 效果 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using Sdcb.OpenVINO.Natives; using System; using System.Collections.Generic; using System.Diagnostics; usi…

Micropython for QNX编译过程

Micropython for QNX编译过程 执行步骤 1. https://github.com/micropython/micropython select tag 1.20.0 git clone micropython 2. make -C mpy-cross 3. 修改py/mkenv.mk CROSS_COMPILE ntoaarch64- 注意如果这步必须在make -C mpy-cross 之后执行&#xff0c;如果需要重…

什么?居然可以免费使用Jetbrains?!

JetBrains是一家捷克的软件开发公司&#xff0c;该公司位于捷克的布拉格&#xff0c;并在俄罗斯的圣彼得堡及美国麻州波士顿都设有办公室&#xff0c;该公司最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境&#xff1a;IntelliJ IDEA。 如下是jetbrains旗下的产…

Ps:使用 Emoji 字符

Emoji 字符是一种在数字通讯中广泛使用的小图像或表情符号&#xff0c;用于表达情感、活动、物体、地点、天气情况等。 Emoji 源自日本&#xff0c;但现已成为全球数字沟通的一部分。这些字符通常是彩色的&#xff0c;并且能够在不同的设备和平台上保持一致性。 通常&#xff0…

以用户为中心的前端性能

1. 简介 前端性能跟用户体验息息相关。举个栗子&#xff0c;当你打开乘车码扫码进站&#xff0c;网页白屏了很久才加载出来&#xff0c;延误了乘车时间&#xff1b;当你在微信抢红包时&#xff0c;点击按钮后延迟了一会才开始转圈圈&#xff0c;最终没抢到红包。当出现这样的情…

python自学之《艾伯特用Python做科学计算》(1)——(待完善)

好吧&#xff0c;刚开始就打了一波而广告 啄木鸟社区的Python图书概览&#xff1a; http://wiki.woodpecker.org.cn/moin/PyBooks &#xff08;22/388&#xff09;

pytorch 模型量化quantization

pytorch 模型量化quantization 1.workflow1.1 PTQ1.2 QAT 2. demo2.1 构建resnet101_quantization模型2.2 PTQ2.3 QAT 参考文献 pytorch框架提供了三种量化方法&#xff0c;包括&#xff1a; Dynamic QuantizationPost-Training Static Quantization&#xff08;PTQ&#xff0…