随心录,随笔录

聊聊RTT

RTT,往返时延这小玩意在计算机早已家喻户晓。

工人熟练得用他搭建城墙,用他打造云梯,做着和网络关系的花样武器。

即便别人对他有多熟悉,我还是想着围绕他写点东西,发散神经的跟他说句你好,RTT。

网络的度量维度从来没有太多,包数、时延和速率。RTT在网络系统上扮演了重要角色,这个缘由,在于人对时间很敏感。

我并不想照本宣科的解读RTT,但我还是想对RTT拆解下,这样也方便我下面想写的话。


实际上,Net这里也有很多细节,以后再补充。

RTT有处理时延、本地排队时延、传输时延和传播时延四个部分。
传输时延:
transmission=packsize/NICsendtransmission = pack_{size}/NIC_{send}transmission=packsize​/NICsend​
传播时延:
propagation=distance/mediumpropagation = distance/mediumpropagation=distance/medium

还依稀记得这是书本上的东西。

结合实际,再想想,RTT是什么。如果想计算RTT,RTT还可以这么分,“拥塞时延”,拥塞路径的传播时延、端的传输时延和阻塞排队时延之和;最小RTT,这是我们常见的RmR_mRm​,包括非拥塞路径的传播时延、端传输时延;最后是端上(每个终端)的初始时延,也可以叫做“非拥塞时延”,涵盖端的处理时延和排队时延。

它们就是RTT,这样区分可以明显的看出RTT的好和坏。痛点在哪呢?拥塞时延和非拥塞时延,拥塞时延的问题自然是阻塞,阻塞意味着时间的拉大,想象在一直堵的高速上,你可以直观感受到这种差感;非拥塞时延,可能这么说不太受众,换句话说,“网络抖动”。网络抖动是端上一系列导致RTT大的问题,原因就在于端处理数据包的时延变长了,直接影响了RTT。

端也囊括交换机、路由器等中间设备。

网络抖动

两个数据包时延不一致,就叫网络抖动了,往往说网络抖动时会扯掉网络拥塞,因为拥塞引发的时间上的差很难叫做抖动,拥塞触发的RTT升高动但不抖,妙极妙极。

抖动的原因很多,需要逐步排查。对于时间要求高的应用,网络抖动是个大问题,而RTT一般是保证应用网络质量的标准,维持在一个收敛的区间是重要的。

再回RTT

理想的RTT是这样的,拥塞算法的目的之一是尽可能在复杂的网络上靠近这个理想折线。

所以,以时延为度量的CCA可以更准确的达到这个目标,RTT也是重要的标准。

说说Delay-based拥塞

忽而想到了拥塞算法,于是乎趁机会有写下点什么。

基于丢包的拥塞算法已经渐渐失去了地位,关键在于共网上的噪音太大了,不具备抗噪的拥塞注定会被替代。当然Cubic仍然在被使用,一在于保守,二在于只管自己,三就是简单干净,符合数学探测模型规律。

但现在的互联网已经开始脱离这类算法,基于时延的拥塞算法开始更具有竞争力。两个点,一是抗噪,二是不会以牺牲bloating delay为代价,提高资源的利用率。

基于时延的拥塞算法渐渐又衍生出基于速率的拥控,这与基于窗口的类型相区分,使得降低网络里可能的突发流量。(网络对于突发实际上很敏感,因为突发打破了平衡,会导致很多的意外)并且,基于速率的拥塞实际上和时延关系紧密,当发送速率(受系统、网络的影响)收敛到一个平衡的区间时,时延也会达到理想的收敛,两者持负相关的关系。

至于基于时延的拥控不公平问题,需要更多的洞察力,“拥控不能让传播的信道饥饿”,怎么解决端到端的饥饿问题,是拥控领域公平性的重要课题。

今天就到底为止吧,笔停文终。

RTT 发散思维写点随笔录相关推荐

  1. rtt面向对象oopc——3.对官方IO设备模型框架图的补充绘图

    该补充图有幸得到rt thread官方认可,gitee上已提交PR,且通过了官方评审,已被合并到<IO设备模型>章节末尾的<补充说明>小节里了rt-thread官方文档gite ...

  2. 跟着微信后台团队学习分布式一致性协议

    目录 什么是Paxos 一致性协议 分布式环境 提议者 Paxos是用来干什么的 确定一个值 确定多个值 有序的确定多个值 实例的对齐(Learn) 如何应用Paxos 状态机 工程化 我们需要多个角 ...

  3. 新唐单片机移植RT-Thread,Finsh组件的接口函数编写

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.RTT的移植 二.具体函数代码 1.rt_hw_console_output的编写 2.rt_hw_console ...

  4. 重新认识软件测试,去掉这些标签

    低技术 写这篇是出于近期招聘工作.与兄弟团队闲聊有感而发.我们在筛简历的时候总结两个现象: 很多 985.211 的 CS.CE 毕业生优先投开发岗 简历基本面较好看的测试同学,要么是开发转测试,要么 ...

  5. 计算机工作过程的流程图,电脑画流程图工具哪个好?迅捷画图5分钟快速制作流程图...

    原标题:电脑画流程图工具哪个好?迅捷画图5分钟快速制作流程图 电脑画流程图软件哪个好?不知大家在工作中要不要绘制流程图,它通过一些符号来记录工作事项,描述工作要点,能清晰展示在某项工作中某个步骤的位置 ...

  6. 截取年月日在hana中怎么写_写完作业就不学了怎么办?焦虑中的家长不妨先低头看看...

    相信有不少家长都遇到了孩子每天写完作业之后,明明还有很长的时间可以利用起来再学点别的,比如某些科目还需要拓展一下,比如有些知识点还需要巩固一下等等,但是孩子就是不听,怎么说也不听. 一直都想写写对这件 ...

  7. HBase性能优化方法总结(3):写表操作

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第二部分内容:写表操作相关的优化方法 ...

  8. vue 使用fs_模仿vue-cli,手写一个脚手架

    vue-cli 在vue的开发的过程中,经常会使用到vue-cli脚手架工具去生成一个项目.在终端运行命令vue create hello-world后,就会有许多自动的脚本运行. 为什么会这样运行呢 ...

  9. HBase性能优化方法总结(二):写表操作

    2. 写表操作 2.1 多HTable并发写 创建多个HTable客户端用于写操作,提高写数据的吞吐量,一个例子: static final Configuration conf = HBaseCon ...

最新文章

  1. python导出csv不带引号的句子_python csv writer在不需要时添加引号
  2. Handler消息机制(六):Looper.loop()为什么不会阻塞主线程?
  3. 解决wamp、vertrigo等集成环境安装后apache不能启动的问题
  4. CSS定位(postion)和移动(float)
  5. 最优非对称加密填充(OAEP)
  6. P3170-[CQOI2015]标识设计【插头dp】
  7. 这月跳槽的多吗?月薪多少才正常
  8. 无需写代码!谷歌推出机器学习模型分析神器,代号What-If
  9. C语言动态链表数据结构
  10. Matplotlib简介和pyplot的简单使用——subplot
  11. 树莓派基础实验13:雨滴探测传感器实验
  12. android 2d 漫画界面,宅男舔屏必备!动漫人物Live2d壁纸App
  13. 华为交换机调试软件_无忌之谈华为005丨 “华为系”黄埔军校诞生记
  14. 关系网络lbs的应用_基于LBS的陌生人社交APP
  15. 教程:这个难到几乎无人通关的游戏,在它面前就是渣!
  16. PDF转CAD在线怎么转换?分享个在线转换的方法
  17. Xilinx Bit文件格式详解
  18. Ae 中英文版本切换批处理文件
  19. 计算机教室英语怎么读音,电脑教室,computer teaching room,音标,读音,翻译,英文例句,英语词典...
  20. 6代u笔记本完美支持win7_华硕飞行堡垒六代笔记本安装win7系统的操作教程

热门文章

  1. 用c语言elgamal共密钥密码加密算法,北京航空航天大学2020年考研840网络空间安全专业综合考试大纲...
  2. html5 css3 将长方形图片 切成 直角梯形显示
  3. SuperMap超图使用简单笔记
  4. 20-1.系统启动和内核管理centos6(grub,chkconfig,proc,lsmod)
  5. 五子棋项目结束总结_五子棋比赛总结
  6. json特殊符号 java_java 中JSON数据特殊字符的处理
  7. C语言:计算球体积和表面积(含注释,可复制)
  8. 模式十四: 生成器模式
  9. airplay协议开发第3部(mdnsd注册airplay服务)
  10. 带孩子们做环球旅行的读后感_宝妈带宝宝的兼职说说 带孩子宝妈能做什么兼职...