PFC与ECN的工作机制
应用介绍
NO.1
PFC
PFC 是构建无损以太网的必选手段之一, 能够逐跳提供基于优先级的流量控制。设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当某一优先级报文发送速率超过接收速率,导致接收方可用数据缓冲空间不足时, 设备通过PFC PAUSE 帧反馈给上一跳设备,上一跳设备收到 PAUSE 帧报文后停止发送本优先级报文,直到再收到PFC XON帧或经过一定的老化时间后才能恢复流量发送。通过使用 PFC功能,使得某种类型的流量拥塞不会影响其他类型流量的正常转发,从而达到同一链路上不同类型的报文互不影响。
1
PFC工作机制
PFC PAUSE帧生成机制
图1 PFC 功能 PAUSE 帧产生示意图
PAUSE 帧产生过程如图1所示:
(1)Device B 的端口1收到来自 Device A 的报文后, MMU(Memory Manage Unit,存储器管理单元)会为该报文分配 cell 资源(cell 资源:用来存储数据包的内容,端口会根据报文的实际大小占用相应大小的 cell 资源。比如一个 cell 资源是 208 字节,当发送的报文是 128 字节时,端口会给它分配一个 cell 资源,当发送的报文是 300 字节时,端口会给它分配两个 cell 资源。), 当设备的 PFC 功能处于开启状态时,会根据报文中的 dot1p优先级统计占用的 cell 资源。
(2)当Device B端口1的某个优先级的报文占用的 cell 资源统计计数达到设置的门限后, 再收到新的该优先级报文后,端口1会发送对应优先级的PFC PAUSE帧给Device A。
(3) Device A收到该优先级的PFC PAUSE帧后停止发送对应优先级的报文,对该优先级的报文进行缓存,如果触发了缓存门限,则也向其上游设备发送 PFC PAUSE 帧,如图2所示。
图2 多跳设备之间的PFC PAUSE帧处理
文优先级与队列映射关系
设备在进行报文转发时,将不同优先级的报文放入不同的队列中进行调度转发。 报文优先级与队列映射关系与设备配置的优先级映射方式有关。设备支持的优先级映射配置方式包括: 优先级信任模式方式、端口优先级方式。
ü 优先级信任模式方式:
配置端口的优先级信任模式后,设备将信任报文自身携带的优先级。通过优先级映射表,使用所信任的报文携带优先级进行优先级映射,根据映射关系完成对报文优先级的修改,以及实现报文在设备内部的调度。 端口的优先级信任模式分为:
- dot1p:信任报文自带的 802.1p 优先级,以此优先级进行优先级映射。
- dscp:信任 IP 报文自带的 DSCP 优先级,以此优先级进行优先级映射。
ü 端口优先级方式:
未配置端口的优先级信任模式时,设备会将端口优先级作为报文自身的优先级。通过优先级映射表,对报文进行映射。用户可以配置端口优先级,通过优先级映射,使不同端口收到的报文进入对应的队列,以此实现对不同端口收到报文的差异化调度。
接口配置 PFC 功能时,必须配置接口信任报文自带的 802.1p优先级或DSCP 优先级。接口收到以太网报文,根据优先级信任模式和报文的802.1Q标签状态, 设备为不同优先级的报文标记不同的本地优先级(LP),根据本地优先级进行队列调度,具体过程如图3所示。
图3 报文优先级与队列映射关系
需要注意的是:配置PFC功能时,必须配置接口信任报文自带的802.1p优先级或DSCP优先级,并且转发路径上所有端口的 802.1p 优先级与本地优先级映射关系以及 DSCP 优先级与 802.1p 优先级映射关系必须一致,否则 PFC 功能将无法正常工作。
2
PFC扩展功能
PFC门限设置
通过配置 PFC 缓存门限可以有效解决因缓冲空间不足和入流量队列数量过大, 导致发送数据缓冲区尾丢弃等问题。
我们先来了解一下接口的缓冲空间设置。接口的缓冲空间分为以下几种:
ü Guaranteed存储空间:固定缓冲区,为每一个优先级队列和端口提供最小的缓存保证。系统会根据用户的配置给队列预留指定大小的空间,即便该队列没有报文存储需求,其他队列也不能抢占。给队列预留的空间均分给每个端口的,即使某端口的某队列没有报文存储需求,其他端口也不能抢占。
ü Shared存储空间:共享缓冲区,当端口或优先级的固定缓冲区不够用时, 使用 Shared 存储空间,系统会根据用户配置以及实际需要收发报文的数量决定每个队列实际可占用的缓冲区的大小。如果某个队列没有报文存储需求,则其他队列会抢占该队列的配额。对于某个队列的缓冲区,所有端口接收或发送的报文采用抢占的方式,先到先得,如果资源耗尽,则后到达的报文将被丢弃。
ü Headroom存储空间:Headroom 缓冲区,当端口PFC功能生效并触发PFC反压帧门限后,本端设备发送PFC PAUSE帧到对端设备让对端停止流量发送的过程中,已经在途的这部分流量的缓存空间,设备需要这些缓冲空间来保证 PFC 流程的不丢包。
PFC 目前提供以下门限设置:
ü Headroom 缓存门限:Headroom 存储空间中某 802.1p优先级报文的最大使用cell资源。当达到使用的 cell 资源后,该接口会丢弃收到的报文。
ü 反压帧触发门限:Shared 存储空间中某 802.1p 优先级报文在该存储空间使用 cell 资源上限。达到上限后,会触发 PFC 功能发送 PAUSE 帧。反压帧触发门限又分为动态反压帧触发门限和静态反压帧触发门限:¡ 动态反压帧触发门限:设置某 802.1p 优先级报文触发 PFC PAUSE 帧的可用 cell 资源的百分比。¡ 静态反压帧触发门限:设置某 802.1p 优先级报文触发 PFC PAUSE 帧的可用 cell 资源门限为一个固定值。
ü 反压帧停止门限与触发门限间的偏移量:当某 802.1p优先级报文使用的 cell 资源减小了一个固定值时, 停止发送 PFC PAUSE 帧, 使对端设备恢复流量发送。
ü PFC 预留门限:Guaranteed存储空间中为某 802.1p优先级报文预留的cell资源。
ü Headroom最大可用的 cell 资源:配置某缓存池(pool,产品具体支持的poolID与产品型号有关,请以设备的实际情况为准) 中,分配给Headroom存储空间的cell资源的大小。
NO.2
ECN
ECN是构建无损以太网的必选手段之一。ECN定义了一种基于IP层及传输层的流量控制及端到端拥塞通知机制。ECN功能利用IP报文头中的DS域来标记报文传输路径上的拥塞状态。支持该功能的终端设备可以通过报文内容判断出传输路径上发生了拥塞,从而调整报文的发送方式,避免拥塞加剧。
3
ECN工作机制
ECN功能对IP报文头中DS域的最后两个比特位(称为ECN域)进行了如下定义:
• 比特位6用于标识发送端设备是否支持 ECN 功能,称为ECT位(ECN-Capable Transport)
• 比特位7用于标识报文在传输路径上是否经历过拥塞,称为CE位(Congestion Experienced)
图4 DS域位置信息
图5 ECN 域位置信息
常见的概率标记为RED(随机早期检测)方法。在设备上开启ECN功能后,拥塞管理功能将按如下方式对报文进行处理(如图6所示):
• 如果队列长度小于下限,不丢弃报文,也不对ECN域进行识别和标记。
• 如果队列长度在上限和下限之间,当设备根据丢弃概率计算出需要丢弃某个报文时,将检查该报文的 ECN 域。如果 ECN 域显示该报文由支持 ECN 的终端发出,设备会将报文的 ECT位和 CE 位都标记为 1,然后转发该报文;如果 ECN 域显示报文传输路径中已经经历过拥塞(即 ECT 和 CE 位都为 1),则设备直接转发该报文,不对 ECN 域进行重新标记;如果 ECT位和 CE 位都为 0,设备会将该报文丢弃。
图6 RED概率标记方法
• 如果队列长度超过上限,将队列中所有报文的 ECN 域都标记为11, 当队列长度达到队列尾丢弃门限后,报文将被丢弃。
图7 ECN工作机制示意图
ECN 功能工作机制:
(1) 发送端设置 ECN 域为 10,告知路径上的设备及接收端,发送端设备支持 ECN 功能。
(2) 中间设备发生拥塞并达到门限,拥塞设备将发生拥塞的报文 ECN 域设置为 11, 报文正常转发。
(3) 接收端收到 ECN 置位为 11 的报文,由传输层发送 CNP( Congestion Notification Packet,拥塞通知报文) 通知发送端。
(4) 发送端收到 CNP 报文,对对应的优先级的队列进行降速处理(常用的速率调节机制为DCQCN算法)。
(5) 经过一段可配置的时间或者发送一定数量数据,发送端恢复原来的速率。
NO.3
总结
RDMA网络通过在网络中部署PFC和ECN功能来实现无损保障。PFC技术让我们可以对链路上RDMA某个队列的流量进行控制,并在交换机入口(Ingress port)出现拥塞时对上游设备流量进行反压。但这种反压是比较刚性的,是不分区流和不同的流方向的,极易引起PFC风暴、死锁、活锁等各种问题。以微软为代表的业界非常好的实践是尽可能的在触发PFC之前降低网络的流量,亦即使用一些端到端的拥塞控制方法来对流量进行提前介入从而减少PFC的触发次数。ECN就是这样一种比较好的实践方式(配合DCQCN调速算法)。利用ECN技术我们可以实现端到端的拥塞控制,在交换机出口(Egress port)拥塞时,对数据包做ECN标记,并让流量发送端降低发送速率。
从充分发挥网络高性能转发的角度,一般建议通过调整ECN和PFC的buffer水线,让ECN快于PFC触发,即网络还是持续全速进行数据转发,让服务器主动降低发包速率。如果还不能解决问题,再通过PFC让上游交换机暂停报文发送,虽然整网吞吐性能降低,但是不会产生丢包。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: [email protected] 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » PFC与ECN的工作机制
文件列表(部分)
名称 | 大小 | 修改日期 |
---|
发表评论 取消回复