一个简单的科普-延迟与RT时间

一个,简单,科普,延迟,rt,时间 · 浏览次数 : 111

小编点评

**Skylink 网络延迟低,还是走光纤网络延迟低?** 网络延迟是指数据从发送端到接收端的平均时间。网络的响应时间是指从发送数据到响应数据之间平均时间。 在网络延迟低的情况下,数据可以更快地从发送端传输到接收端。这可以通过以下因素提高网络延迟: * **网络线路的长度:**光纤网络的距离通常比走地网络的距离更长,因此数据需要更长时间才能从发送端传输到接收端。 * **网络设备的性能:**光纤网络通常使用专用的设备,这些设备可能比走地网络的设备性能更强大。 * **协议的处理时间:**协议层处理的时间可能会消耗许多时间,尤其是在网络拥塞的情况下。 然而,当网络延迟低的时候,数据可以更快地从发送端传输到接收端。这可以通过以下因素提高网络响应时间: * **网络线路的长度:**走地网络的距离通常比光纤网络的距离更短,因此数据可以更快地从发送端传输到接收端。 * **网络设备的性能:**走地网络上的设备通常比光纤网络的设备性能更强大。 * **协议的处理时间:**协议层处理的时间通常比光纤网络的协议层处理的时间更短。 所以,在网络延迟低的情况下,**走光纤网络的延迟可能比走地网络的延迟低**。

正文

一个简单的科普-延迟与RT时间


背景

发现稍微一复杂就没人看.
这次像是写一个简单的科普文章.
主要说一下网络延迟还有网络的响应时间.
这里想通过一个题目进行引申. 

如果Skylink全球商用:
中国与美国之间的网络是走海底光纤延迟低,还是走skylink延迟低? 

关于时延的理解

我认为: 走skylink的网络延迟低. 

原因: 
海底光纤的走的是玻璃介质的光信号. 玻璃的反射率一般是1.5
那么光速就是真空光速的三分之二. 也就是20万公里秒. 

skylink走的是太空路线. 他的总链路理论上会多一些
上下线的 500km 累计1000公里的链路. 
地球半径是 6400公里,中美之间的举例应该是 pi*radius 
也就是 20096公里.
其实光纤的举例肯定比20000公里要长,因为没有光纤是走之下的.
但是简单估算按照 最短路径来估算的的话就是
20000公里.
因为走太空理论上半径应该按照 7000公里计算
距离应该是: 21980公里 加上上下行的链路合计
22000公里

所以如果是走光纤, 一次round trip 的时间是 40000公里/200000(公里/秒钟) 
也就是 200ms的时间. 

如果走skylink的话 就是 44000公里/300000(公里/秒)
不超过 150ms的时间.

所以理论上 skylink的round trip的时延会短一些. 

引申

时延就是 距离/速度. 
软件系统的时延就是
我开始要数据, 到给我数据的时间. 
B/S结构来说. 就是我click一个按钮之后, 到展现给我结果的时间. 

所有的操作都有时延. 
CPU的寄存器, 各级缓存, 内存, 磁盘, 网络都有时延. 
时延是性能的最大的敌人. 
降低时延能够提高客户的感受. 加快处理效率. 
关于网络的时延和IO的时延的理解主要在是三部分组成
1. 排队. 2.传输 3. 处理.

磁盘IO时延的理解

网络IO和磁盘IO在CPU看来其实都是IO
CPU和内存的改善主要是通过算力和带宽来表示. 
网络和磁盘的IO 考虑三方面主要是:
磁盘IO: 
1. 排队时间: 昨天提到的有一个 nr_requests 队列越长, 等待时间越长. 
2. 处理. queue_depth 队列深度的系统处理能力. 
3. 传输. 总线, SATA接口AHCI协议,或者是PCI-E,走NVMe协议的带宽以及速度. 

提高IO性能的方法就是 降低三个的时间. 

实际上IO的时间还是IOWAIT的时间. 
IOWAIT 其实包含 操作系统内核进行线程切换的部分时间, 以及SVCTIME. 
SVCTIME主要是硬件性能和压力来决定. 操作系统的上下文切换,线程切换主要是考验系统的压力和CPU的能力. 

网络IO时延的理解

网络时延其实也包含协议层处理,网卡处理, 网络传输, 业务处理等等步骤. 
本次不考虑 业务处理的步骤, 因为这个很难去评判. 

网络实验的IO可以从内核的像是zero copy ; sendfile的地方开始介入考虑. 
nginx等可以通过减少内存中的copy来提高响应速度. 当然也可以讲这一步理解为磁盘IO和内存IO. 

进入协议层之后, 主要是协议的打包封装的效率,这一块一般要考虑CPU的性能. 能否快速实现打包验证等. 
协议层里面也会涉及很多内核参数, 比如TCP/IP的拥塞检查,慢启动,滑动窗口,SACK等等特性影响性能. 

进入网卡.要看一下网卡是否支持类似于TSO,GSO,LRO,GRO的一些配置. 对性能的影响等. 
追求吞吐量,响应时间可能会降低 因为将小包进行和合并到一个大的包的处理.
追求响应时间可能就会影响吞吐量, 因为网络中可能充斥着很多低负载的包. 

网络的性能主要是看包转发率和传输速度的. 
不同的交换机性能, 网卡性能, 网线质量, 电磁环境都会影响.具体的网络性能

与一个简单的科普-延迟与RT时间相似的内容:

一个简单的科普-延迟与RT时间

# 一个简单的科普-延迟与RT时间 ## 背景 ``` 发现稍微一复杂就没人看. 这次像是写一个简单的科普文章. 主要说一下网络延迟还有网络的响应时间. 这里想通过一个题目进行引申. 如果Skylink全球商用: 中国与美国之间的网络是走海底光纤延迟低,还是走skylink延迟低? ``` ## 关

[转帖]一个简单的内核参数优化

一个简单的内核参数优化 作者:孤风孤影 https://www.bilibili.com/read/cv15200947/ 出处:bilibili net.ipv4.tcp_keepalive_time=600 #此参数表示TCP发送keepalive探测消息的间隔时间(秒) net.ipv4.tc

实现一个简单的在浏览器运行Dotnet编辑器

之前已经实现过Blazor在线编译了,现在我们 实现一个简单的在浏览器运行的编辑器,并且让他可以编译我们的C#代码, 技术栈: Roslyn 用于编译c#代码 [monaco](microsoft/monaco-editor: A browser based code editor (github.

【开源】最近写了一个简单的网址导航网站

前言 随着团队的成长,要管理的项目或使用的内部系统越来越多,很多内部系统都没有域名,使用IP+端口,很难记。 为了解决这个痛点,我抽空写了个导航网站~ 目前用下来效果还不错,可以基本完美的解决这个问题。 项目名称是 SiteDirectory ,代码在 Github 开源了: https://git

shell补遗_一个巨简单的保证服务存活的脚本

Shell补遗 背景 公司一台机器总是会在没有更新补丁的情况下启动失败. 查看所有的配置都没有问题. 但是就是不启动 没办法,准备写一个检查进行启动. 最近写shell很少. 所以总结一下. 思路 判断有没有 服务进程. 如果没有服务进程. 调用启动服务进程 如果有服务进程, 那就不做任何操作. 所

使用TorchLens可视化一个简单的神经网络

TorchLens:可用于可视化任何PyTorch模型,一个包用于在一行代码中提取和映射PyTorch模型中每个张量运算的结果。TorchLens功能非常强大,如果能够熟练掌握,算是可视化PyTorch模型的一把利剑。本文通过TorchLens可视化一个简单神经网络,算是抛砖引玉吧。 一.定义一个简

用C++编写一个简单的发布者和订阅者

摘要:节点(Node)是通过 ROS 图进行通信的可执行进程。 本文分享自华为云社区《编写一个简单的发布者和订阅者》,作者: MAVER1CK 。 @[toc] 参考官方文档:Writing a simple publisher and subscriber (C++) 背景 节点(Node)是通过

Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板,以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Explore 很适合这

我的第一个项目(二):使用Vue做一个登录注册界面

好家伙, 顶不住了,太多的bug, 本来是想把背景用canvas做成动态的,但是,出现了各种问题 为了不耽误进度,我们先把一个简单的登录注册界面做出来 来看看效果: (看上去还不错) 本界面使用Vue2(新建项目的时候记得把less勾上,项目里有用到) 1.项目目录: 2.MyLogin.vue组件

[转帖]Jmeter创建简单的HTTP(S)请求测试-3

在上一章节中,介绍了Jmeter基本的组成组件,那么我们如何使用这些组件去完成测试呢,以下将通过创建一个简单的HTTP(S)测试进行说明,另外,除JDBC请求外,Jmeter进行测试构建的步骤大同小异,所以不再一一赘述。 3.1 添加线程组 每个JMeter测试计划进行的第一步是添加一个线程组。线程