一种网络中快速CNP拥塞通知的改进方法技术

技术编号:36553557 阅读:11 留言:0更新日期:2023-02-04 17:07
一种网络中快速CNP拥塞通知的改进方法,在交换机的出方向检测报文ECN字段,将检测到的报文发送给交换机的控制平面,控制平面分析出源端IP,并自动构建CNP报文;交换芯片会将标记的ECN报文再加一个特殊标记,目的服务器通过识别该标记,能判断出CNP报文已由中间交换机代发而不需要重复发送CNP报文;有益效果是:交换机能在检测到自己出现拥塞的时候,第一时间将CNP报文通告给源端服务器,将原来报文的ECN标记为11发送给目的服务器,目的服务器即知晓链路中间发生了拥塞,不会重复发送CNP报文,这样既快速地通过了拥塞事件,也避免了源端服务器重复收到CNP报文,降低了源端服务器对CNP报文处理的复杂度。对CNP报文处理的复杂度。对CNP报文处理的复杂度。

【技术实现步骤摘要】
一种网络中快速CNP拥塞通知的改进方法


[0001]本专利技术涉及一种网络通信技术,具体涉及一种网络中快速CNP拥塞通知的改进方法。

技术介绍

[0002]在网络交换机中,网络拥塞是一个经常发生的现象,常见的场景就是当多个入端口的流量同时转发到同一个出端口的时候,流量在出端口就会发生拥塞。拥塞发生的时间比较长的时候,交换机的流量耗尽其内部缓存的时候,就会出现丢包。丢包会使整个网络的性能降低,因为基于控制层协议,丢包就意味着重传,整个会话链接可能就要重来。为了防止这种拥塞导致的丢包,交换机一般都会开启流量控制的功能。但是通过流量控制来避免网络拥塞导致的丢包,同样也会带来其它问题;如图2所示,当switch1的A

E口都向G口转发流量的时候,G口肯定出现拥塞。假如此时,switch2的F进入的报文通过switch2的H口进入switch1的J口并且要转发到G口,而且同时switch2的X口进入的报文通过switch2的H口进入switch1的J口并且要转发到Y口。如果在switch1的J口开启流量控制,由于switch1 F口转发到switch2 G口的流量出现拥塞,switch1的J口会向switch2的H口发送PAUSE帧,让H口暂时停止发送流量。这个时候,switch2 X口转发到switch1Y口的流量就会因为H口暂停发送报文而无法转发。从结果看,X口转发到Y口的流量因为F到G的流量出现拥塞而无法正常转发。X到Y的流量和F到G的流量加起来也可能仅仅占用H端口带宽的10%或者1%,但是无法正常转发。这就是在端口开启流量控制的副作用;再看上述例子,其根本原因是A

F口转发到G口的流量出现了拥塞。现在网络中,为了避免端口流量控制,会限制端口A

F的注入速率,当A

F端口的注入速率被限制以后,J口不会触发流控,X转发到Y的流量就能正常转发。现在网络拥塞控制依赖显式拥塞通知(Explicit Congestion Notification, ECN)技术来降低A

F口的注入速率;ECN最初在RFC 3168文档为TCP/IP协议所定义,它通过在IP头部嵌入一个拥塞指示器和在TCP头部嵌入一个拥塞确认实现。当交换机检测到报文发生拥塞时,会将报文IP头部的ECN字段标记成11。IP头部如下图所示。ECN字段有两个bit,00表示源端不支持ECN,交换机正常转发无须标记ECN。01/10表示源端支持ECN。11表示已经出现拥塞。支持ECN的源端服务器发送数据报文的时候会默认将ECN置为10;在图3、图4、图5中,当源端服务器发送的报文在Device A出现拥塞而标记ECN field为11之后,通过Device B到达目标服务器之后,目标服务器发现该报文的ECN字段被标记为拥塞,就会向源端服务器发送CNP报文,源端服务器收到CNP报文之后,就会知道自己之前发送的报文在整个通信链路出现了拥塞,然后就会降低自己的发送速率。
[0003]但是报文拥塞出现在发送链路中的Device A,在源端服务器收到CNP报文之前,源端服务器会依旧按照原有的速率发送报文,在这个时间段,报文在Device A会持续出现拥塞,结果很可能会触发流控,甚至出现丢包。
[0004]为了让源端服务器快速收到CNP报文,目前有一种快速CNP的技术,该技术当Device B检测到入口有ECN被标记拥塞的报文的时候,由Device B直接发送CNP报文给源端服务器;根据以上所述,原有的快速CNP技术,存在两个问题;1.当拥塞发生在Device A,而CNP通知却要依靠Device B发送,这样就多了两个设备之间通信的开销。快速CNP需要专有的设备支持,很多交换机是不支持快速CNP的,Device A与第一个支持快速CNP的设备中间可能相距若干跳,这样的话,时间开销就直接加大了。而且,Device A与第一个支持快速CNP的设备之间的链路状况也无法保证。
[0005]2. 在上文的示例中,Device B是支持快速CNP的设备,当Device B检测到ECN报文并且向源端服务器发送CNP报文的时候,源端服务器虽然能降速,但是目的服务器依旧会收到ECN报文,并且依旧会向源端服务器发送CNP报文,这样就会导致源端服务器连续收到两个CNP报文,源端服务器必须忽略第二个CNP报文,否则会连续降速两次,直接影响通信链路的使用率。

技术实现思路

[0006]根据本专利技术提供一种网络中快速CNP拥塞通知的改进方法,能够解决
技术介绍
中提及的问题;当网络出现拥塞的时候,该方法能向源端服务器更加快速的提供CNP拥塞通知,而且能避免源端服务器重复收到CNP报文,具有很好的推广应用前景。
[0007]本专利技术解决上述技术问题的技术方案是:本专利技术会在交换机的出方向检测报文ECN字段,将检测到的报文发送给交换机的控制平面,控制平面分析出源端IP,并自动构建CNP报文。同时,交换芯片会将标记的ECN报文再加一个特殊标记,目的服务器通过识别该标记,能判断出CNP报文已由中间交换机代发而不需要重复发送CNP报文。
[0008]1. 控制平面会建立一个线程,当发现数据平面有收到一个ECN被标记拥塞的报文之后,会解析报文中的源MAC和源IP,构造一个CNP报文发送给源IP,CNP报文的出口能通过查询路由表和MAC表获得。
[0009]2. 交换芯片内部建立一个loopback口,出方向的报文如果出口是oopback口,能再次走一遍芯片的处理流程。
[0010]3. 在出方向创建ACL,出方向ACL的规则就是匹配ECN字段为11的报文,动作就是将该报文镜像到步骤2中的loopback口,并且将IP头部的Flag字段的第一个bit修改为1,该bit作为一个标记,告知目的服务器无须发送CNP报文。
[0011]4. 入方向创建ACL规则,该规则匹配入口为loopback口并且ECN字段为11的报文,动作则是重定向到CPU。
[0012]5. 控制平面收到入方向ACL上送的ECN被标记的报文,解析报文结构,发送CNP报文给源端服务器。
[0013]6. 目的服务器收到一个IP头部Flag字段第一个bit为1,且ECN为11的报文,则正常解析报文中的数据,不再向源IP发送CNP报文。
[0014]此方案中,交换机能在检测到自己出现拥塞的时候,第一时间将CNP报文通告给源端服务器,并且依旧能将原来报文的ECN标记为11发送给目的服务器,目的服务器即能知晓链路中间发生了拥塞,也不会重复发送CNP报文。
[0015]进一步的, 本专利技术会在交换机的入方向和出方向创建ACL,出方向ACL检测ECN为11的报文并且将其镜像到芯片内部的loopback端口,并且将IP头部的Flag字段的第一个bit置为1,入方向将loopback口发送过来的ECN为11的报文直接重定向到CPU。控制平面收到此种报文之后,构造CNP报文,发送给源端服务器。。
[0016]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络中快速CNP拥塞通知的改进方法,包括,在交换机的出方向检测报文ECN字段,将检测到的报文发送给交换机的控制平面,控制平面分析出源端IP,并自动构建CNP报文;同时,交换芯片会将标记的ECN报文再加一个特殊标记,目的服务器通过识别该标记,能判断出CNP报文已由中间交换机代发而不需要重复发送CNP报文;其特征在于:步骤一、控制平面会建立一个线程,当发现数据平面有收到一个ECN被标记拥塞的报文之后,会解析报文中的源MAC和源IP,构造一个CNP报文发送给源IP,CNP报文的出口能通过查询路由表和MAC表获得;步骤二、交换芯片内部建立一个loopback口,出方向的报文如果出口是oopback口,能再次走一遍芯片的处理流程;步骤三、在出方向创建ACL,出方向ACL的规则就是匹配ECN字段为11的报文,动作就是将该报文镜像到步骤2中的lo...

【专利技术属性】
技术研发人员:樊立鹏陈清华
申请(专利权)人:杭州云合智网技术有限公司
类型:发明
国别省市:

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

1