深度分析数据中心之CN(Congestion Notification)技术

CN(Congestion Notification)背景介绍:

在前面几章DCB相关文章中是介绍到,CN(Congestion Notification,拥塞通告协议)也是DCB协议族中一个子协议,为IEEE数据中心桥接任务组开发的,用于提高以太网传输可靠性的协议。
在数据中心网络当中,有着以下三种流量:
(1)存储数据流:要求无丢包;
(2)高性能计算流:要求低延迟;
(2)以太网流:允许一定的丢包和时延。
由于对数据流的要求不同,如下图所示,传统的数据中心使用三种不同类型的网络承载不同的流。
这种方法在小型的数据中心当中还是可接受的。然而,随着数据中心规模的扩大,运行三种不同类型的网络,并不是经济的解决方案。一种可选的方法是:统一采用以太网承载三种不同类型的流,并定义附加机制,以使以太网能够满足三种不同类型网络的要求。为此,IEEE定义了以下等的规范:
(1)增强传输选择(ETS):用于避免一种流量类型的大规模流量猝发影响其它流量类型,为不同的流量类型提供最小带宽保证。一种流量类型只有在其它流量类型带宽不占用的情况下,才能使用分配带宽之外的额外带宽。这使多种流量类型可在同一网络中和谐共存。
(2)基于优先级的流量控制(PFC):用于满足三种流量在以太网中共存时,存储流量无丢包,且对其它的两种流量无影响的要求。
(3)拥塞通告(CN):用于降低引起拥塞的端点站的报文发送速率,从根源上避免拥塞,以保持网络的畅通,解决因拥塞引发报文重传或流量控制,导致报文时延增加的问题。
(4)数据中心交互协议(DCBX):它是基于LLDP(Link Layer Discovery Protocol)的扩展协议,用于在设备间自动协商并配置PFC、ETS及CN等。

工作原理:

CN就是其中的一种“附加机制”,它用于避免网络拥塞,以减少丢包和降低网络的延迟(拥塞会导致丢包,丢包后重传将增加报文的延迟)。为达到避免网络拥塞的目的,以太网交换机和端点站(在数据中心当中,通常指服务器)均需支持CN:
当以太网交换机检测到拥塞时,会向数据源端点站发送拥塞通告消息,要求数据源端点站降低报文的发送速率。
数据源端点站收到拥塞通告消息后,降低报文的发送速率,并周期性尝试增加报文的发送速率,如果此时拥塞已经消除,增加报文的发送速率并不会引起拥塞,也就不会再收到拥塞通告报文,报文的发送速率最终得以恢复到拥塞之前的值,以充分利用网络带宽。
当服务C与交换机连接的出口出现拥塞时,交换机会采样到产生拥塞的报文,取出产生拥塞报文的源mac,做为CN通告报文的目标mac(以此直接通告数据源),数据字段保留在cn通告报文中,再加上cn通告报文的其他字段封装成一个cn通告报文,交换机将这个报文通告给产生拥塞的数据源,假设是上图的服务器A,A收到这样报文就会根据cn通告报文中的相关参数将低发送速率,再结合前面提到的PFC两个功能,最终实现解除网络拥塞和实现不丢包的目的。
本文只是从CN的工作原理上介绍了CN的功能,如果想对cn功能有更深的了解可以和我进一步讨论,欢迎留言。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: