一种PFC反压报文及其处理方法技术

技术编号:27829267 阅读:24 留言:0更新日期:2021-03-30 11:26
本发明专利技术揭示了一种PFC反压报文及其处理方法,所述PFC反压报文为基于UDP的PFC反压报文,其包括报文头部,报文头部包括MAC头部、IP头部和UDP头部。本发明专利技术通过对PFC反压报文进行扩展,借助路由转发直接对数据流的源端服务器进行流量的反压,能够简化PFC方案部署难度、解决现有的PFC死锁问题及避免芯片ACL资源的消耗。现有的PFC死锁问题及避免芯片ACL资源的消耗。现有的PFC死锁问题及避免芯片ACL资源的消耗。

【技术实现步骤摘要】
一种PFC反压报文及其处理方法


[0001]本专利技术涉及一种流量控制
,尤其是涉及一种PFC反压报文及其处理方法。

技术介绍

[0002]PFC(Priority

based Flow Control,基于优先级的流量控制)能够逐跳提供基于优先级的流量控制,PFC允许在一条以太网链路上创建8个优先级通道,允许单独停止和恢复其中任意一优先级通道,同时允许其它优先级通道的流量正常转发。
[0003]网络设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当某一优先级报文发送速率超过接收速率,导致接收方可用数据缓冲空间不足。当队列已使用的缓存超过PFC门限值时,则向上游发送PFC反压通知报文,通知上游设备停止发包;当队列已使用的缓存降低到PFC门限值以下时,则向上游发送PFC反压停止报文,通知上游设备重新发包,从而最终实现对源端服务器数据流的速率的控制,从而最终实现数据报文的无丢包和重传。
[0004]PFC虽然有助于实现网络流量的调控,但也会带来潜在的风险。如图1所示,如果网络中出现大量PFC Pause(暂停)帧,就极有可能诱发PFC死锁。当PFC指定优先级的报文形成环路时,会导致数据缓冲区内报文无法转发,设备间反复发送和接收PFC帧,导致设备接口的缓冲区资源一直被占用无法释放,此时设备进入PFC死锁状态。如果出现两个或多个队列发生永久堵塞,每个队列都在等待被其他队列占用并堵塞了的资源,最终导致网络系统性风险。
[0005]为解决上述PFC死锁问题,现有有通过网络芯片的PFC Watch Dog(看门狗)功能,该功能针对Pause帧进行周期性检测,如果发现一段时间该网络设备接收到大量的Pause帧,且该数量超过PFC死锁预警阈值,表示PFC死锁发生,并将PFC死锁检测结果通过DMA(Direct Memory Access,直接存储器访问)上报,网络设备系统软件支持下发配置来关闭PFC功能或者忽略对PFC XOFF帧的响应(PFC XOFF帧表示停止流量发送,PFC XON帧表示恢复流量的发送),以解决PFC死锁导致业务数据流无法在网络中正常转发的问题。但是该方案针对PFC的死锁检测,需要依赖芯片的支持,已有的传统芯片大部分尚未支持,同时,在已有支持PFC WatcDog功能的芯片,大部分网络设备与芯片能力只支持两个优先级的PFC死锁检测能力,而不是全部8个优先的PFC死锁检测能力。另外,PFC死锁的阈值配置存在经验成分,不合理的阈值配置会导致对PFC死锁是否真正发送出现误判。
[0006]另一种方案是根据网络拓扑来预先分析是否存在PFC死锁的可能,并在存在发生PFC死锁的网络设备上,预先下发ACL(Access Control List,访问控制列表)表项来匹配有可能导致PFC死锁发生的业务数据流,根据ACL匹配结果对该数据流的优先级进行修改,也就是当该数据流触发PFC死锁的同时,ACL会将触发PFC死锁的数据流从当前优先级切换到另一个不同优先级,以打破对该优先级PFC Pause帧的响应,从而解决PFC死锁。当是该方案不仅会消耗ACL表项,且针对不同的场景的网络,拓扑并不相同,导致每次部署方案对应的ACL配置也不相同,在实际应用中给管理和运维带来较大的挑战。

技术实现思路

[0007]本专利技术的目的在于克服现有技术的缺陷,提供一种基于UDP的PFC反压报文及其处理方法。
[0008]为实现上述目的,本专利技术提出如下技术方案:一种PFC反压报文,所述PFC反压报文为基于UDP的PFC反压报文,所述PFC反压报文包括报文头部,所述报文头部包括MAC头部、IP头部和UDP头部。
[0009]优选地,所述PFC反压报文还包括数据字段,所述数据字段包括MAC控制操作码、反压使能向量和反压定时器。
[0010]本专利技术还揭示了另外一种技术方案:一种基于上述PFC反压报文的PFC反压报文的处理方法,所述方法包括:
[0011]S100,当当前设备的入口缓存超出预设的PFC阈值,则所述当前设备触发向其上游的下一跳设备发送所述PFC反压报文;
[0012]S200,当下一跳设备接收到所述PFC反压报文,则进行路由转发表项查找,根据查找结果将所述PFC反压报文继续转发下一跳或者直接处理所述PFC反压报文;
[0013]S300,每个下一跳设备执行步骤S200,直至将所述PFC反压报文转发到源服务器,所述源服务器处理所述PFC反压报文。
[0014]优选地,所述S200中,根据所述PFC反压报文的报文头部的目的IP地址查找所述路由转发表项。
[0015]优选地,若所述查找结果为所述PFC反压报文的目的IP地址与所述下一跳设备的IP地址不匹配,则将所述PFC反压报文继续转发下一跳。
[0016]优选地,若不匹配,则根据所述PFC反压报文的目的IP地址将所述PFC反压报文进行转发,并根据路由表项查找结果从下一跳设备的对应出口继续转发下一跳。
[0017]优选地,若所述查找结果为所述PFC反压报文的目的IP地址与所述下一跳设备的IP地址匹配,则表示当前下一跳设备为源服务器,当前下一跳设备直接处理所述PFC反压报文。
[0018]优选地,所述源服务器根据所述PFC反压报文的优先级和反压定时器停止对应优先级数据流的发送或者恢复对应优先级数据流的发送。
[0019]优选地,所述PFC反压报文每转发一跳,所述PFC反压报文中的TTL字段对应减一。
[0020]优选地,所述PFC反压报文中的TTL字段为0时,则丢弃所述PFC反压报文。
[0021]本专利技术的有益效果是:
[0022]1、本专利技术将传统基于MAC的PFC反压帧扩展为基于UDP的PFC反压帧,通过复用传统的路由转发机制,能够简化PFC方案部署难度,通过对PFC报文的扩展,还能很好的解决现有的PFC死锁问题,避免了因PFC死锁带来的芯片阈值检测不准,以及传统方案对芯片ACL资源的消耗,降低了在网络中部署的难度。
[0023]2、与传统基于MAC的PFC Pause帧是点到点逐跳进行流量反压方式不同的是,本专利技术基于UDP的PFC Pause帧可以借助路由转发直接对数据流的源端服务器进行流量的反压,沿途的中间设备只需要能够基于IPDA进行转发即可,从而直接由源服务器根据接收到的PFC Pause报文进行停止流量的发送或恢复流量的发送,不仅能够解决传统PFC逐跳反压带来的死锁问题,还实现了端到端的流控机制。
[0024]3、本专利技术借助PFC Pause帧的IP头部的TTL字段能够实现基于UDP的PFC Pause防环,因当三层PFC Pause帧的报文头部包含的TTL字段减少到0,则该PFC Pause报文就会被丢弃,也就彻底解决了PFC死锁无法打破的问题。
附图说明
[0025]图1是现有发生PFC死锁的原理示意图;
[0026]图2是本专利技术基于UDP的PFC Pause报文的报文格式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PFC反压报文,其特征在于,所述PFC反压报文为基于UDP的PFC反压报文,所述PFC反压报文包括报文头部,所述报文头部包括MAC头部、IP头部和UDP头部。2.根据权利要求1所述的一种PFC反压报文,其特征在于,所述PFC反压报文还包括数据字段,所述数据字段包括MAC控制操作码、反压使能向量和反压定时器。3.一种权利要求1或2所述的PFC反压报文的处理方法,其特征在于,所述方法包括:S100,当当前设备的入口缓存超出预设的PFC阈值,则所述当前设备触发向其上游的下一跳设备发送所述PFC反压报文;S200,当下一跳设备接收到所述PFC反压报文,则进行路由转发表项查找,根据查找结果将所述PFC反压报文继续转发下一跳或者直接处理所述PFC反压报文;S300,每个下一跳设备执行步骤S200,直至将所述PFC反压报文转发到源服务器,所述源服务器处理所述PFC反压报文。4.根据权利要求3所述的一种PFC反压报文的处理方法,其特征在于,所述S200中,根据所述PFC反压报文的报文头部的目的IP地址查找所述路由转发表项。5.根据权利要求3或4所述的一种PFC反压报文的处理方法,其特征在于,若所述...

【专利技术属性】
技术研发人员:成伟王俊杰
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1