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

一、概述

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

二、时延分类

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

  • 节点处理时延(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) 。其中需要注意区分传播时延和传输时延的区别。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软信天成:数据泄露日趋严重 “资产”保护何去何从

随着数据应用的逐渐深入,越来越多的企业意识到:数据作为信息的载体,可以成为企业知识产权、收益流和具备竞争优势的基础资产。然而,当包含大量敏感信息的数据被视作资产时,亦将直面信息被“窃取”、“泄露”和“滥用”…

CrapApi部署手册( maven+tomcat+idea)

目录 一、本章节所用到的资源共享,嫌麻烦的可以直接下载本地配置好运行使用二、idea maven tomcat启动,我的maven和tomcat的配置三、遇到的问题四、项目运行后效果图转载请标明出处,写作不易如果有用请给个赞~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

跨网文件摆渡系统:安全、可控的数字传输桥梁

在企业高度信息化的时代,数据的流通与共享已经成为企业、组织乃至个人之间不可或缺的沟通方式。然而,在数据流通的过程中,我们经常会遇到各种难题和挑战,尤其是当涉及到不同网络环境之间的文件传输。这不仅需要保证文件的安全性&a…

基于Java SSM框架实现人才小区公寓社区物业管理系统项目【项目源码+论文说明】

基于java的SSM框架实现人才小区公寓社区物业管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个人才公寓管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff…

MySQL练习题,学生成绩查询练习题,附带答案

题目 (一) 新建以下几个表 student(学生表): snosnamesexdeptbirthagePhone 其中约束如下: (1) 学号不能存在相同的 sno int auto_increment primary key (2) 名字为非空 sname varchar(20) not nu…

Excel如何设置在未打印时显示虚线打印时不显示虚线

记得之前分享过一个BOM表模板,但是在我打印时,发现明明是留空白的地方却打印出来的虚线 后来,看了自己的页面布局,原来是网格线设置错误了 当我设置为查看时显示网格线,打印时不显示网格线,这样就正常了

二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

一、目的 在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后,发现HDFS文件中没问题,但是ODS层表中字段的数据却有问题,字段中的JSON数据不全 二、Hive处理JSON数据方式 (一)将Flume采集Kafka的JSON数据…

maven篇---第二篇

系列文章目录 文章目录 系列文章目录前言一、什么是Maven的坐标?二、讲一下maven的生命周期三、说说你熟悉哪些maven命令?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的…

C# OpenVINO 模型信息查看工具

目录 效果 支持模型 项目 代码 下载 C# OpenVINO 模型信息查看工具 效果 支持模型 ONNX format (*.onnx) PDPD (*.pdmodel) TF (*.pb) TFLite (*.tflite) 项目 代码 using Sdcb.OpenVINO; using System; using System.Collections.Generic; using System.Text; using…

怎么理解回流和重绘?

回流(reflow)和 重绘(repaint)是浏览器渲染过程中的两个关键概念。 一、概念: 回流指的是浏览器在计算文档流布局(layout)时,重新计算元素的位置和大小的过程。当页面中的元素发生尺…

spring boot 事件机制

目录 概述实践监听spring boot ready事件代码 源码初始化流程调用流程 结束 概述 spring boot 版本为 2.7.17 。 整体看一下spring及spring boot 相关事件。 根据下文所给的源码关键处,打上断点,可以进行快速调试。降低源码阅读难度。 实践 spring…

传媒行业CRM:打造高效客户管理,提升品牌影响力

传媒行业充满竞争和变化,传媒企业面临着客户管理不透明、业务流程混乱、销售数据分析不足,无法优化营销策略和运营管理等问题。CRM系统是企业实现数智化管理的神器,可以有效解决这些问题。下面说说,传媒行业CRM系统推荐。 1、建立…

webGL开发VR和AR应用

开发 WebVR(虚拟现实)和 WebAR(增强现实) 应用需要使用 WebXR 技术,结合 WebGL 以实现高质量的图形渲染。以下是开发这类应用的一般技术方案,希望对大家有所帮助。 1.WebXR API: 使用 WebXR API&#xff0…

基于Java SSM框架+Vue实现企业公寓后勤管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现企业宿舍后勤管理网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所…

陪玩圈子系统:打破单身孤独,展开精彩社交旅程,APP小程序H5,源码交付,支持二开!

近年来,随着社交网络的快速发展,越来越多的人开始寻求各种方式来解决单身孤独的问题。而陪玩圈子系统便应运而生,在为用户提供社交服务的同时也促进了人与人之间的互动和交流。在这个拥有庞大用户数量和各种丰富活动的平台上,你将…

【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)

文章目录 刷题前唠嗑题目:从二叉搜索树到更大和树题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 题目:从二叉搜索树到更大和树 题目链接:1038. 从二叉搜索树到更大和树 题目描述…

HarmonyOS4.0之安装DevEco Studio开发工具

第一步 打开网址:https://developer.huawei.com/consumer/cn/ 点击后是这样的界面 第二步 鼠标移入到开发点击DevEco Studio 第三步 我们往下滑动找到以下界面 我们根据自己的需要点击下载图标 这里演示Window系统 下载好后解压文件 我们解压文件后 第四步…

如何批量修改ppt中的字体?

ppt制作已经属于是复杂的操作了,当我们想要更换ppt中的字体,有没有什么快捷的方法呢?今天分享两个方法,一键修改ppt文件字体。 方法一: 找到功能栏中的编辑选项卡,点击替换 – 替换字体,在里面…

面试题:为什么数据库连接池不采用 IO 多路复用?

今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用? 这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时,还是经常性采用c3p0,tomcat connection pool等技术来与 D…

C++基础 -37- 模板函数与普通函数调用规则

当模板函数比普通函数更好匹配形参的时候&#xff0c;会优先调用模板函数 #include "iostream"using namespace std;template <class T> void show(T a, T b) {cout << a << endl;cout << b << endl;cout << "temp show&…