关于 400Gbps+ 场景的概括,参见:400Gbps 网络面临的挑战

首先定义规则:

  • 画坐标系,横轴为到达时间,纵轴为服务(处理)时间。
  • 每到达一个任务在横轴对应时间画一条垂直线。
  • 每处理一个任务在纵轴对应时间画一条水平线。
  • 任务到达时间是随机的(或差不多随机的)。
  • 任务处理时间是固定的(几乎是均匀的)。

然后看图:

若说到达率和服务率相等,在足够久的相同一段时间,垂直线和水平线的数量是相等的,但表示到达的垂直线是实在累加的,而表示处理的水平线中有很多空闲的浪费,所谓逝去时间不可追回。
删掉空闲水平线后,垂直线数量将大于水平线数量,二者的差值就是平均队列长度。因此有:

  • 到达率大于服务率,相同时间内垂直线多于水平线,算上删除的空闲水平线,队列长度趋向无穷。
  • 到达率等于服务率,相同时间内垂直线等于水平线,算上删除的空闲水平线,队列长度趋向无穷。
  • 到达率微小于服务率,相同时间内垂直线少于水平线,算上删除的空闲水平线,队列长度趋向无穷或有限但很大。
  • 到达率远小于服务率,相同时间内垂直线少于水平线,算上删除的空闲水平线,队列长度趋向 0 的速度视二者比值决定。

这大致直观诠释了排队论的那些个公式。有下图做统一展示:

看这个链接:Towards 800G and 1600G Ethernet,网卡的发展似乎比 DDRx 快,几乎有追赶 CPU 内存带宽的趋势,当网卡速率与 CPU 读写内存的速率趋同甚至超越时,按照上图展示的排队率原理,a >= b,没得玩了。

回到 CPU 处理 TCP 的问题。

TCP 必须保序,故在单 CPU 串行处理比 “多 CPU 并行 + 同步” 的总效能更高。但 CPU 处理 TCP 逻辑时间约定值,以 Linux Kernel TCP 为例,即 tcp_v4_rcv 函数的指令时间(包括内存拷贝时间)约定值,该时间很难压缩到 500ns 以内。

假设 TCP 报文的到达与 CPU 的处理已完全校准,统一达到 100Gbps 的速率。

TCP 报文的到达虽非完全随机分布,但一定不是均匀的,只要两次到达时间稍微错过 1 个处理周期,依照上图解释,排队即将无穷增加,为清空队列,TCP 只能降速。

为实现初始假设,CPU 处理 100Gbps 到达率,需在 100ns 内完成 tcp_v4_rcv 调用(除 CPU 执行冗长的指令,还要加入内存操作,batch 只降低 overhead,但内存时间也相应越久,ZeroCopy 也不例外,稍好,但不完全),CPU 很难完成该任务,初始假设都难,匡论后续随机过程。

难道不能提升 CPU 和内存的能力?当然可以,但 CPU 主频已经接近极限,内存带宽已经上百 GB,还能提升多少呢?正如大家说,不如上专门硬件,FPGA,SmartNIC,… 可为什么非要猛件迎合 TCP 呢?难道不是 TCP 自己的问题吗?

假设 TCP 可以乱序接收,就可以并行多路径传输并行处理 TCP 报文了,1 个 CPU 处理 25Gbps 绰绰有余,20 个 CPU 不就可以处理 500Gbps 了吗?问题不在硬件,问题在 TCP。

再给个形象的类比,工地上工人往楼上接力扔砖。

Linux Kernel TCP 就是如此这般扔砖接力,换个实现方式就好很多:

那么,以上就是乱序传输的好处,可以并行处理。然而 TCP 并不具备这能力。

这还不算拥塞控制的副作用,比如丢包,乱序带来的损耗,全在 TCP 保序约束。

放弃 TCP,人们一时半会儿不能接受,且不说新协议部署升级问题,人们从心理上也不能接受,但凡说了这话,大部分人都觉得此人在瞎咧咧,那就不再说,但 TCP 也不是什么都不能做:

  • 调大 MTU,降低 packet overhead。
  • 开启 TSO/LRO,卸载校验和计算,降低 packet overhead。
  • 合入 tcp: defer skb freeing after socket lock is released,减少串行工作量。
  • 合入 tcp: BIG TCP implementation,提高 batch 能力,降低 packet overhead。
  • 开启 Busy Polling,主动接砖(如上图)替换 put user。

单流 TCP 挑战 100Gbps+ 是难成功的,但 100Gbps+ 的网络根本就不是让单流跑满的,那么似乎多线程多流 TCP 跑满 100Gbps+ 也算。但是还有更有趣的,那就是不用 TCP,It’s Time to Replace TCP in the Datacenter 这篇不错,读后感也写过:It’s Time to Replace TCP in the Datacenter 读后 本文接着写点感想。

浙江温州皮鞋湿,下雨进水不会胖。

单流 TCP 100Gbps+ 难题的直观解释相关推荐

  1. 拉格朗日乘子法——从单约束到多约束的直观翻译

    拉格朗日乘数法--从单约束条件到多约束条件的空间直观解释 拉格朗日乘数法的用处 拉格朗日乘数法用于约束条件并不容易用于消元的情况.这时候,就需要用拉格朗日乘数法进行约束条件和目标函数的统一,便于计算极 ...

  2. 拉格朗日乘数法和KKT条件的直观解释

    拉格朗日乘数法和KKT条件的直观解释 标签(空格分隔): 机器学习 linbin 2018-05-10 Abstract 在SVM的推导中,最优化问题是其中的核心,这里我们简单介绍下最优化问题,特别是 ...

  3. 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)| CSDN博文精选

    作者 | Michael Ye 翻译 | 陈雨琳,校对 | 吴金笛 来源 | 数据派THU(ID:DatapiTHU) 百度于今年早些时候发布了其最新的NLP架构ERNIE 2.0,在GLUE基准测试 ...

  4. 独家 | 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)

    作者:Michael Ye 翻译:陈雨琳 校对:吴金笛 本文约1500字,建议阅读7分钟. 本文将介绍多任务学习. 科技巨头百度于今年早些时候发布了其最新的NLP架构ERNIE 2.0,在GLUE基准 ...

  5. 独立成分分析ICA系列3:直观解释与理解

    服从均匀分布的独立成分sl和s2的联合分布.其中横坐标表示s1,纵坐标表示s2 为了进一步解释ICA的统计模型,考虑服从下列均匀密度分布的两个互相独立的随机变量: 这个联合分布是在一个方形上均匀分布的 ...

  6. SemVLP 单流和双流Transformer哪个好?阿里:我全都要!提出带可插拔模块的Transformer结构...

    关注公众号,发现CV技术之美 1 写在前面 大规模图像-文本对的视觉语言预训练(VLP)在跨模态表征的学习方面取得了快速的进展.现有的预训练方法要么直接将特征级的图像表示和文本表示连接起来作为sing ...

  7. 复数基础——复数的绝对值,复数的极坐标形式的直观解释练习_8

    目录 复数的绝对值 复数的极坐标形式的直观解释练习 复数的绝对值 已知复数,我把它在复平面上标出来了: 实部是3,也就是实轴上标注3,虚部是-4,纵轴向下4,这就是已知复数点 ,我们要求的是.不管是实 ...

  8. SVD 与 PCA 的直观解释(2): 特征值与特征向量

    这一部分主要讲特征值和特征向量背后的物理或者几何方面的直观解释. 参考地址:http://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E5%90%91%E9%87 ...

  9. PHP使用声网的页面录制、合流录制、单流录制

    为了写着三个录制,发了N多个工单,坑有点大 直接上正文 公共部分 页面录制 合流录制 单流录制 结束录制 结语 直接上正文 公共部分 /*** 获取声网ResourceId* @param $stud ...

最新文章

  1. DRF 商城项目 - 用户操作(收藏, 留言, 收货地址)
  2. Can not get new positive sample
  3. CSAPC08台湾邀请赛_T1_skyline
  4. STM32 BOOT0连接不当造成死机
  5. 精通 TensorFlow 1.x 中文版(初稿)
  6. kong 自建一个具有健康检查功能的http/tcp负载均衡器,配置流量权重,自动/手动目标健康,流量统一认证、鉴权、限流限速、修正,监控、日志等功能
  7. C++文件操作之写文件
  8. 手机端链接拼多多的商品主图和视频抓取方法
  9. EXIF 方向参数 Orientation
  10. CSDN日报191021:我与CSDN的这十年——笔耕不辍,青春热血
  11. 网络数据里的身份证实名认证接口,你了解多少?
  12. 为什么只看重结果_只注重结果不注重过程的话
  13. chart.js报错“Canvas is already in use. Chart ...must be destroyed before the canvas can be reused ”
  14. 人际沟通中的亲密关系
  15. anaconda的python目录在哪里_python – Anaconda安装到主目录
  16. android view.gone 动画,android – 如何动画View.setVisibility(GONE)
  17. mac电脑打不开html文件怎么处理,苹果电脑Mac打不开网页怎么办?Mac打不开网页的解决方法...
  18. 修复Windows7引导文件工具(最新mbrfix工具,使用Windows7)
  19. Xshell里面查看文件中文乱码问题
  20. 20款户外阳光滤镜质感LR调色预设 20-anime-world-lightroom-presets-luts

热门文章

  1. OpenWrt之时区设置(夏令时设置)
  2. 欧几里得算法 C语言
  3. 快速搭建 物联网电力检测,web SCADA 工控组态
  4. 招商银行掌上生活还款服务个人信息处理授权书
  5. 最全的十大计算机交流论坛和社区
  6. 2022.12.27号笔记 解决 npm run serve 项目起不来问题 解决 npm run serve 项目起不来问题
  7. 1024.视频拼接-中等-贪心算法
  8. window7电脑调亮度的四种方法
  9. Python 协程详解
  10. Python实战项目(二)写一个枪林弹雨的辅助外挂