概览

RoCE可以实现lossless无损网络环境,在二层网络上做到可靠网络传输,从而对原本在光纤网络环境下的应用在以太网环境下提供相同的服务,而不必对应用逻辑和上层协议更改。实现无损的方法有Global Pause, PFC, Dropless Receive Queue。

1.什么是802.3x Flow Control(Global Pause)?

以太网标准(802.3)设计时是不可靠的网络。不保证网络包会到达目的地像上层协议(如TCP)设计的将会到达目的地一样。后来,IEEE 802.3x 流控制标准为那些在上层一些不能保证可靠性的应用制定了一套标准。它能够接收从接收方发给发送方的缓存回馈(buffer feedback,例如overflow)。暂停动作(XOFF)是一个由接收方发给发送方的控制帧,告诉它接收缓存空间出现压力并且在不久可能会溢出。发送方立刻停止发送任何新的数据包予以回应,直到接收方准备再次接收它们为止。这个暂停帧包含一个timeout值。发送方会在这个超时范围内等待,或者直到收到一个XON控制消息后,再开始发送。IEEE 802.3x存在一个基本的缺点:一旦链路被暂停了,发送方就不能再产生任何新的包。结果,在一个端口上使用Global Pause流控制时,以太网链路不能负载需要不同QoS行为的多条网络流。也就是说,它会在该端口上暂停类型任何包括高优先级的网络流。不仅如此,如果这条链路出现在网络中的两个交换机上时,这个暂停动作可能会阻塞那些不需要暂停的服务器之间的流,导致大面积瘫痪。

2.什么是802.1Qbb Priority Flow Control(PFC)?

IEEE 802.1Qbb PFC将基本的IEEE 802.3x扩展成8个类别。它使得需要流控制的应用和不需要流控制的应用可以在同一条链路上共存。PFC对8种不同类型的流都做了定义,可以达到流控制效果。在2层网络的情况下,PFC使用VLAN标签(IEEE 802.1q)中的PCP位来区分八种不同类型的网络流,使得它们可以享受到独立的流控制。

[注意:PFC和Global Pause不能同时运行在同一个网络接口上,二者只能存其一]

3.什么时候使用PFC,它和QoS的关系又是什么呢?

当应用需要无损网络环境时(也就是说当应用使用的上层网络协议不保证可靠性传输时),PFC应该被启用以防止网络丢包,这通常是针对从光纤网络迁移到以太网上的应用。

当网络上存在多条网络流,而且这些网络流需要有差别的服务时(比如延迟敏感),应该启用QoS特性。可见PFC与QoS并无直接关系,但是他们可以应用到同一个网络队列上。

4.PFC具体在硬件上怎么实现的?

每个网卡硬件上有8个硬件发送队列,用于接收从各个CPU上的软件发送队列中的数据包,这些队列命名为Traffic Class,分别为TC0,TC1,...,TC7。而PFC策略可以通过mlnx_qos命令来对每个TC进行设置,因此可以细粒度的对每个TC启用PFC,使得上层应用可以同时选择有流控制和没有流控制的网络服务。

5.什么是Dropless Receive Queue?

无丢包接收队列可以在当软件接收队列过载时,让驱动通知固件。这种情况发生在当软件接收队列的处理速度比硬件接收队列的处理速度慢时。当启用这种特性后,在接收队列满载时,新接收的网络包不会被立刻丢掉。固件会累积这些包,并且假设软件会很快放置新的WQEs。如果过了一个固定的时间段后,新的接收WQE仍然没有放置,缓存溢出计数器会增长,暗示网络数据包已经被丢掉了。这种特性默认是禁用的。如果要启用该特性,要确保上述的流控制特性也得启用了一个。

启用方式:ethtool --set-priv-flags <interface> dropless_rq on, 关闭方式是off

查看信息:ethtool --show-priv-flags <interface>

【RoCE】Flow Control相关推荐

  1. 蓝牙LL数据包交互【More Data多数据传输】【Acknowledgement and Flow Control】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...

  2. 【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D

    Zhang W, Zeng J, Yan Z, et al. Consensus control of multiple AUVs recovery system under switching to ...

  3. 【Python-5】Conditionals Control Flow

    第一节 1 介绍Python利用有6种比较的方式 == , != , > , >= , < , <= 2 比较后的结果是True或者是False 3 练习 1 把bool_on ...

  4. 浅谈 TypeScript【上】-- Flow 静态类型检查工具

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在[编程语言分类]中,我介绍到JavaScript是一种类型不安全语言,没有明确的数据类型声明,变量的类型可以随意的更改.为了解决这种问题,微软开发 ...

  5. 【引】Version Control System - SVN - Developing and Deploying with Branches

    引自: Developing and Deploying with Branches Deployments Best Practices Developing and Deploying with ...

  6. 【Paper】2007_Consensus control for a class of networks of dynamic agents 二阶静态一致性

    文章目录 3. Control Protocol and Network Dynamics 4. Network with Fixed Topology 定理 1 Remark 1 Lemma 2 证 ...

  7. 【Paper】2013_Cooperative control of multi-agent systems 二阶动态一致性

    Lewis F L, Zhang H, Hengster-Movric K, et al. Cooperative control of multi-agent systems: optimal an ...

  8. 【Paper】2017_Distributed control for high-speed trains movements

    Y. Zhao and T. Wang, "Distributed control for high-speed trains movements," 2017 29th Chin ...

  9. 【Paper】2006_Time-Optimal Control of a Hovering Quad-Rotor Helicopter

    Lai L C, Yang C C, Wu C J. Time-optimal control of a hovering quad-rotor helicopter[J]. Journal of I ...

最新文章

  1. 【camera】自动泊车-视觉车位检测相关资料汇总(论文、数据集、源代码、相关博客、演示demo)(1)
  2. Xilinx zynq-7000 SOC 设计导论
  3. MySQL IFNull 详解
  4. 2021年第3周推荐系统方向的周报
  5. 你写的代码扩展性高吗?快试试用Spring注入方式来解耦代码!
  6. 横幅新年促销海报PSD模板,拯救年底节日忙
  7. Android ActionBar的Overlay模式如何不遮盖顶部内容的问题
  8. 在python语言中定义私有成员变量的方法是_Python在类中有“私有”变量吗?
  9. 四步帮你分析用户流失原因 - 产品设计GAP模型
  10. DPDK学习1 -- DPDK环境搭建和测试helloword
  11. STM32L0系列单片机低功耗(STOP)使用+RTC唤醒+LPUART(DMA方式)唤醒+LPTIM唤醒
  12. DRV8833直流电机驱动模块代替 TB6612FNG电机驱动
  13. AIRIOT答疑第3期|如何使用物联网平台的可视化组态引擎?
  14. 制作字幕(一般方法)
  15. cf最低要求配置2021是什么
  16. Infor LN咨询服务市场报告-行业发展机遇、市场定位及主要驱动因素
  17. Another exception was thrown: The PrimaryScrollController is currently attached to more than one Scr
  18. 计算机的操作系统属于什么系统,操作系统是计算机系统中的什么?
  19. python chm模块_python3.7.0官方参考文档 最新api文档 chm
  20. 妥妥的世界第一:为什么MT4软件的地位无法撼动?

热门文章

  1. 校验码 汉明码 CRC码
  2. Editor.js 使用
  3. Jetson Xavier NX (11) -- NX介绍与系统烧录
  4. C++20 barrier
  5. factorial of n
  6. mpi_barrier
  7. python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件
  8. 阿里云LNMP环境搭建
  9. PMP考试冲刺敏捷专题
  10. word文档生成目录的方法,word生成目录之后怎么修改页码