无损以太网与网络拥塞管理(PFC、ECN)

news2024/11/26 13:46:06

无损以太网

无损以太网(Lossless Ethernet)是一种专门用于数据中心网络的网络技术,旨在提供低延迟、高吞吐量和可靠性的传输服务。它是在传统以太网的基础上进行了扩展,引入了新的拥塞管理机制,以避免数据包丢失和网络拥塞,在数据中心的应用中,通常使用无损以太网和RDMA结合,以实现高性能的无丢包数据传输。在无损以太网中,交换机可以使用PFC(Priority Flow Control)机制暂停低优先级流量,以确保高优先级流量的传输。而RDMA可以实现直接访问远程计算机的内存,不需要CPU的介入,从而减少了数据传输的延迟和CPU占用率。

RDMA(Remote Direct Memory Access)是一种高性能网络技术,可以实现直接访问远程计算机的内存,不需要CPU的介入。在数据中心网络中,RDMA可以提供低延迟、高吞吐量和低CPU占用的数据传输服务。

RDMA 对于网络丢包异常敏感,丢包引起的大量重传(Go-back-N)会导致吞吐性能急剧下降,而RoCE v2是一种基于无连接的UDP协议,缺乏完善的丢包保护机制。构建无损以太网数据中心RoCE在RoCE网络中,我们需要构建无损以太网用于保证数据中心网络传输过程中不丢包。构建无损以太网需支持以下关键特性:

RoCE融合InfiniBand的低时延与以太网的简单和向后兼容,实现零丢包、低时延、大带宽。

智能无损网络一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。

在这里插入图片描述

构建无损以太网示意图

图片引用自无损网络数据中心应用概述_通信世界网 (cww.net.cn)

流控发展:FC(整个链路流控)–>PFC(基于优先级流控)–>PFC+ECN(流控发生前避免拥塞)/PFC+ETS(分配带宽)+ECN;


网络拥塞管理(PFC、ECN)

网络拥塞管理 是指在网络通信中,通过一系列机制来控制网络拥塞的发生和影响,以保证网络的稳定性和服务质量。其中,PFC(Priority Flow Control)和ECN(Explicit Congestion Notification)是两种常见的拥塞管理机制。

PFC 是一种流量控制技术,它可以在网络拥塞时暂停低优先级流量,以确保高优先级流量的传输。PFC使用IEEE 802.1Qbb标准,该标准定义了一组帧头标记,用于识别数据包的优先级,并将低优先级数据包暂停,以确保高优先级数据包的传输。

ECN 是一种拥塞通知技术,它可以在网络拥塞时向数据包添加标记,以通知发件人和收件人网络的拥塞情况。当路由器检测到拥塞时,它会向数据包头部添加ECN标记,然后将其传输到下一个节点。当数据包到达目的地时,收件人会检查ECN标记,如果标记已设置,则收件人会通知发件人减少发送速率,以避免进一步拥塞。ECN使用 RFC 3168 标准。

PFC和ECN通常都用于数据中心网络中,以确保高质量的服务和低延迟。PFC主要用于保证数据包传输的优先级,而ECN则用于控制网络拥塞。这两种机制可以结合使用,以最大限度地减少网络拥塞和数据包丢失,提高网络的性能和可靠性。


PFC原理

PFC 是构建无损以太网的必选手段之一,能够逐跳提供基于优先级的流量控制。设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当某一优先级报文发送速率超过接收速率,导致接收方可用数据缓冲空间不足时,设备通过PFC PAUSE帧反馈给上一跳设备,上一跳设备收到PAUSE帧报文后停止发送本优先级报文,直到再收到PFC XON帧或经过一定的老化时间后才能恢复流量发送。通过使用PFC功能,使得某种类型的流量拥塞不会影响其他类型流量的正常转发,从而达到同一链路上不同类型的报文互不影响。

智能无损网络基于PFC机制提供了智能化拥塞控制技术,可以解决传统以太网络拥塞丢包、时延大的约束,为RoCEv2分布式应用提供“无丢包、低时延、高吞吐”的网络环境,满足分布式应用的高性能需求。

PFC(Priority-based Flow Control,基于优先级的流量控制)也称为 Per Priority PauseCBFC(Class Based Flow Control),是对 Pause 机制的一种增强。当前以太 Pause 机制(IEEE 802.3 Annex 31B)也能达到无丢包的要求,原理如下:当下游设备发现接收能力小于上游设备的发送能力时,会主动发 Pause 帧给上游设备,要求暂停流量的发送,等待一定时间后再继续发送数据。但是以太 Pause 机制的流量暂停是针对整个接口,即在出现拥塞时会将链路上所有的流量都暂停。

PFC 允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个优先等级,允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。

在这里插入图片描述

PFC工作机制

图片引用自PFC优先级流量控制 - CloudEngine 12800, 12800E V200R005C10 配置指南-智能无损网络 - 华为 (huawei.com)

如上图所示,DeviceA 发送接口分成了8个优先级队列,DeviceB 接收接口有8个接收缓存(buffer),两者一一对应(报文优先级和接口队列存在着一一对应的映射关系),形成了网络中 8 个虚拟化通道,缓存大小不同使得各队列有不同的数据缓存能力。

当 DeviceB 的接口上某个接收缓存产生拥塞时,即某个设备的队列缓存消耗较快,超过一定阈值(可设定为端口队列缓存的 1/2、3/4 等比例),DeviceB 即向数据进入的方向(上游设备 DeviceA)发送反压信号“STOP”。

DeviceA 接收到反压信号,会根据反压信号指示停止发送对应优先级队列的报文,并将数据存储在本地接口缓存。如果 DeviceA 本地接口缓存消耗超过阈值,则继续向上游反压,如此一级级反压,直到网络终端设备,从而消除网络节点因拥塞造成的丢包。

PFC(Priority based Flow Control)是在交换机入口(ingress port)发起的拥塞管理机制。在通常无拥塞情况下,交换机的入口 buffer 不需要存储数据。当交换机出口(egress port)的 buffer 达到一定的阈值时,交换机的入口 buffer 开始积累,当入口 buffer 达到我们设定的阈值时,交换机入口开始主动的迫使它的上级端口降速。由于 PFC 是基于优先级的控制,所以这种反压可能导致同样优先级的应用都受到影响。如图7所示。

PFC 协议

PFC 允许在每个优先级的基础上执行链路流量控制。 特别地,PFC 用于抑制在指定时间段内传输与一个或多个优先级相关的数据帧。 可以对链路上的某些优先级启用 PFC,而对其他优先级禁用 PFC。

PFC 帧格式

在这里插入图片描述

PFC帧格式
描述
Destination address目的MAC地址,取值固定为01-80-c2-00-00-01。
Source address源MAC地址。
Ethertype以太网帧类型,取值为8808。
Control opcode控制码,取值为0101。
Priority enable vector反压使能向量。
Time(0)~Time(7)其中E(n)和优先级队列n对应,表示优先级队列n是否需要反压。当E(n)=1时,表示优先级队列n需要反压,反压时间为Time(n);当E(n)=0时,则表示该优先级队列不需要反压。
Pad预留。传输时为0。
CRC循环冗余校验。

在这里插入图片描述

ECN原理

ECN 是构建无损以太网的必选手段之一。ECN定义了一种基于 IP层及传输层 的流量控制及端到端拥塞通知机制。ECN功能 利用IP报文头中的DS域来标记报文传输路径上的拥塞状态 。支持该功能的终端设备可以通过报文内容判断出传输路径上发生了拥塞,从而调整报文的发送方式,避免拥塞加剧。

ECN(Explicit Congestion Notification) 是在交换机出口(egress port)发起的拥塞控制机制。当交换机的出口 buffer 达到我们设定的阈值时,交换机会改变数据包头中的 ECN 位来给数据打上 ECN 标签,当带 ECN 标签的数据到达接收端以后,接收端会生成 CNP(Congestion Notification Packet)并将它发送给发送端,CNP 包含了导致拥塞的 flow 或 QP 的信息,当接收端收到 CNP 后,会采取措施降低发送速度。可见 ECN 是基于TCP flow 或 RDMA QP 的拥塞控制机制,它只对导致拥塞的 fow 或 QP 起作用,不会影响到其他的应用。

在这里插入图片描述

IP 报文 DS 域位置信息

图片引用自H3C无损网络最佳实践-6W100-新华三集团-H3C

在这里插入图片描述

ECN域位置信息

图片引用自H3C无损网络最佳实践-6W100-新华三集团-H3C

ECN 功能对IP报文头中DS域的最后两个比特位(称为ECN域)进行了如下定义:

  • 比特位6用于标识发送端设备是否支持ECN功能,称为ECT位(ECN-Capable Transport);

  • 比特位7用于标识报文在传输路径上是否经历过拥塞,称为CE位(Congestion Experienced);

ECN 含义:

ECTCE含义
00不支持ECN
01支持ECN
10支持ECN
11发送拥塞

在设备上开启 ECN 功能后,拥塞管理功能将按如下方式对报文进行处理:

  • 如果队列长度小于下限,不丢弃报文,也不对 ECN 域进行识别和标记。
  • 如果队列长度在上限和下限之间,当设备根据丢弃概率计算出需要丢弃某个报文时,将检查该报文的ECN域。如果ECN域显示该报文由支持ECN的终端发出,设备会将报文的ECT位和CE位都标记为1,然后转发该报文;如果ECN域显示报文传输路径中已经经历过拥塞(即ECT和CE位都为1),则设备直接转发该报文,不对ECN域进行重新标记;如果ECT位和CE位都为0,设备会将该报文丢弃。
  • 如果队列长度超过上限,将队列中所有报文的ECN域都标记为11,当队列长度达到队列尾丢弃门限后,报文将被丢弃。

注意:在实际应用中,设备将 ECT 位为1、CE 位为0的报文,以及 ECT 位为0,CE 位为1的报文都识别为由支持 ECN 功能的终端发出的报文。

ECN交互过程

  • 发送端设置 ECN 域为 10,告知路径上的设备及接收端,发送端设备支持 ECN 功能。
  • 中间设备发生拥塞并达到门限,拥塞设备将发生拥塞的报文 ECN 域设置为11,报文正常转发。
  • 接收端收到 ECN 置位为 11 的报文,由传输层发送 CNP(Congestion Notification Packet,拥塞通知报文)通知发送端。
  • 发送端收到 CNP 报文,对对应的优先级的队列进行降速处理。
  • 经过一段可配置的时间或者发送一定数量数据,发送端恢复原来的速率。

在这里插入图片描述

ECN工作机制示意图

图片引用自H3C无损网络最佳实践-6W100-新华三集团-H3C

总的来说,ECN 技术能够对于拥塞流量进行精确标记以便于精准降速,同时降速可做到较为温和平稳,但是本身反应速度较慢,因此当网络中存在比较高的微突发和剧烈的拥塞时,可能来不及降速已经出现了丢包,因此通常需要使能 Fast ECN、Fast CNP 等辅助技术。PFC 技术则降速反应较快,能够迅速解除拥塞情况,但由于其只能基于优先级进行降速,容易影响和拥塞无关的 Victim 流量且会造成大范围流量震荡,存在 HOL 和 PFC 死锁等问题,一般在网络配置中应尽量少的触发 PFC 机制,仅将其作为最后的保障手段。在此基础上,PFC 和 ECN 的水线设置同样需要根据具体场景进行确定。以 ECN 为例,当拥塞较少且较为轻微时,ECN 水线设置过低会导致更多的报文被标记,导致源端过度降速,吞吐指标劣化。而当突发和拥塞较为严重时,如果 ECN 水线设置过高,可能导致降速不及时而出现丢包或触发 PFC机制,同时队列深度较深,会使得时延指标劣化。


🎢
🥘
🚀


参考

无损网络数据中心应用概述_通信世界网 (cww.net.cn)

互联网技术详解 | 智能无损以太网助力分布式存储的部署与创新(三)-新华三集团-H3C

PFC优先级流量控制 - CloudEngine 12800, 12800E V200R005C10 配置指南-智能无损网络 - 华为 (huawei.com)

RDMA之无损网络_咸鱼弟的博客-CSDN博客_ecn qp

统一的以太无损网络测试技术白皮书v2.0-2020.11.19 - 道客巴巴 (doc88.com)

Priority Flow control (PFC) PFC time class含义讲解。

【PFC】pfctest PFC测试工具_bandaoyu的博客-CSDN博客_%ce’pfcinstalltest’不能检索。

Priority Flow Control (PFC) - Onyx v3.9.1014 - NVIDIA Networking Docs 迈络思交换机PFC配置手册

802.1Qbb-2011 - IEEE Standard for Local and metropolitan area networks–Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks–Amendment 17: Priority-based Flow Control | IEEE Standard | IEEE Xplore IEEE 802.1qbb 协议规范

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索【Stable-Diffusion WEBUI】的插件:ControlNet 1.1

文章目录 (零)前言(二)ControlNet(v1.1)(2.1)模型(2.2)新版界面(2.3)预处理器 (三)偷懒 (零&#…

机器学习与深度学习——通过决策树算法分类鸢尾花数据集iris求出错误率画出决策树并进行可视化

什么是决策树? 决策树是一种常用的机器学习算法,它可以对数据集进行分类或回归分析。决策树的结构类似于一棵树,由节点和边组成。每个节点代表一个特征或属性,每个边代表一个判断或决策。从根节点开始,根据特征的不同…

list的使用介绍---C++

一、list简介 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。…

计算机网络第一章(谢希仁第8版学习)

作者:爱塔居 专栏:计算机网络 作者简介:大三学生,希望和大家一起加油 文章目录 目录 文章目录 一、网络、互连网、互联网(因特网)的概念 二、因特网的组成 三、交换方式 3.1 电路交换 3.2 分组交换 3.3 电路…

详解c++---list介绍

目录标题 list介绍list定义list遍历list数据插入push_backpush_frontinsert list删除pop_backpop_fronterase list排序list去重list合并list转移list其他函数emptysizefrontbackassignswapresizeclear list排序效率问题 list介绍 list是可以在常数范围内在任意位置进行插入和删…

【Java笔试强训 22】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥小易的升…

【Java笔试强训 21】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥 洗牌 &…

免费搭建Plex家庭影音中心 - 打造超级多媒体中心【公网远程访问】

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

java+jsp企业物流货运快递管理系统servlet

功能需求具体描述: (1)用户功能模块包括用户登录注册,用户信息的修改,用户发布货物信息,给客服人员留言,对运输公司进行评价。 (2)企业功能模块包括企业注册登录,企业信息的修改,受理用户发布的…

c#笔记-代码格式

格式 为了让编译器能看懂。我们编写的源码必须符合一定的规范。 区分大小写 c#是大小写敏感语言。A1和a1是不同的东西。 不区分空白字符 c#对空白字符(空格,制表符,换行)不敏感。只要不截断单词,可以任意地使用空…

Java 基础进阶篇(二)—— 面向对象的三大特征之二:继承

文章目录 一、继承概述二、内存运行原理 ★三、继承的特点四、继承后:成员变量和方法的访问特点五、继承后:方法重写六、继承后:子类构造器的特点七、继承后:子类构造器访问父类有参构造器八、this、super 总结 一、继承概述 Jav…

TiDB实战篇-TiDB集群常用的监控指标

TiDB Server相关指标 Duration(延迟) 总体延迟 SQL不同的类型延迟 不同实例延迟 QPS(每秒钟查询次数) 总览 CPS(一次请求多个sql,上面的QPS每一次就是一个记录) 事务相关 延迟 影响性能的大事务 CPU 内存(下图…

面试官:谈谈你对死锁的理解

1. 什么是死锁 比如上一次讲到 synchronized 的时候,一个线程,对同一个对象连续加锁两次,如果出现阻塞等待,代表这个锁是不可重入锁,这样的线程,也就称为死锁! 一旦程序进入死锁了就会导致线程僵…

PromQL,让你轻松实现监控可视化!快来了解一下吧!

Prometheus 中的一些关键设计,比如注重标准和生态、监控目标动态发现机制、PromQL等。 PromQL 是 Prometheus 的查询语言,使用灵活方便,但很多人不知道如何更好利用它,发挥不出优势。 PromQL主要用于时序数据的查询和二次计算场…

【Docker】4、Docker 数据卷

目录 一、数据卷介绍二、数据卷相关命令三、创建一个数据卷,并查看数据卷在宿主机的目录位置四、数据卷挂载到容器五、数据卷挂载练习(MySQL)(1) 加载 MySQL 镜像(2) 根据镜像创建容器 一、数据卷介绍 🎄 数据卷(volum…

Lychee图床 - 本地配置属于自己的相册管理系统并远程访问

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…

HCIA-RS实验-路由配置-配置RIPv1 和RIPv2

书接上回。。。这篇主要以实验为主,实验的主要目标也是理解RIP路由协议的防环机制 ,掌握RIPv1和v2的配置方法;大致拓扑图如下: 拓扑图: 配置对应的IP: R1.2.3 测试R1与R2间的连通性。 配置IP后测试连通性…

设计模式——设计模式简介和七大原则

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线设计模式牛客面试题 目录 一、通过经典面试题掌握重点 二、设计模式的目的和核心原则 三、设计模式七大原则 3.1 单一职责原则(Single Respo…

Linux 安装 NFS 实现文件目录共享

一、背景介绍 项目中,之前是单节点部署服务,关于文件的上传和下载,只要配置好路径即可。 而当集群化部署后,就会有问题。比如:文件上传的时候,访问的是主机1,而想要现在文件的时候&#xff0c…

【MST】ABC235 E - MST + 1

一开始想的是分类讨论,看那条边加了之后成不成环,如果不成环且权值在前n-1,则一定在MST里,不在前n-1则不在MST里;如果成环了,如果权值不在前n-1,则不在MST里,如果权值在前n-1&#x…