面向无损数据中心网络的快速精确拥塞反馈方法

文档序号:36803273发布日期:2024-01-23 12:30阅读:16来源:国知局
本发明属于无损数据中心网络优化,具体的说是涉及一种面向无损数据中心网络的快速精确拥塞反馈方法。
背景技术
::1、无损以太网(lossless ethernet)是一种专门用于数据中心网络的网络技术,旨在提供低延迟、高吞吐量和可靠性的传输服务。在数据中心的应用中,通常使用无损以太网和rdma结合,以实现高性能的无丢包数据传输。rdma可以实现直接访问远程计算机的内存,不需要cpu的介入,从而减少了数据传输的延迟和cpu占用率。在无损以太网中,交换机可以使用pfc(priority flow control)机制暂停低优先级流量,以确保高优先级流量的传输。同时需要使用端到端的拥塞控制技术,以避免数据包丢失和网络拥塞。2、但传统的基于ecn的拥塞控制方案并未考虑到端到端的拥塞控制与逐跳的流量控制之间的相互作用,这种不恰当的拥塞检测方案无法识别导致拥塞的流量以及仅受逐跳流量控制影响的流量。同时,端到端的拥塞控制方案还存在控制链路过长,拥塞反馈不及时,发送端速率收敛较慢等缺陷。技术实现思路1、为了解决上述技术问题,本发明提供了一种面向无损数据中心网络的快速精确拥塞反馈方法,该方法为现有的拥塞控制方案提供了快速、精确的拥塞通知反馈,在交换机中发生数据堆积时精确识别真正导致拥塞的流量,并在真正的拥塞发生时为发送端提供快速的拥塞反馈,通过与现有的拥塞控制算法相结合,帮助发送端快速收敛速率,消除瓶颈链路的拥塞。2、为了达到上述目的,本发明是通过以下技术方案实现的:3、本发明是一个面向无损数据中心网络的快速精确拥塞反馈方法,包括步骤如下:4、步骤1:在无损数据中心网络中部署基于优先级的流量控制(pfc)与端到端的拥塞控制算法dcqcn。同时,对交换机中的每个端口,维护一个端口状态表porttable,当交换机收到暂停帧时,记录端口收到暂停帧的时刻pausetime、暂停的持续时间、暂停期间到达出口队列的数据量rxbyte。5、步骤1-1:在交换机的每个端口维护一个端口状态表porttable,其中表中分别记录了端口收到暂停帧时,收到暂停帧的时刻pausetime、暂停的持续时间、暂停期间到达出口队列的数据量rxbyte。收到暂停帧后,使用pausetime属性记录当前时间戳,为了实时统计暂停后端口收到的数据量,需重置rxbyte。具体进行如下操作:6、;7、步骤1-2:在端口暂停期间,每当一个数据包到达出口队列,进行如下操作:8、;9、步骤1-3:当端口由收到一个恢复帧后,记录当前的时间戳,并进行如下操作:10、;11、步骤1-4:比较端口的接收速率与发送速率。交换机默认以链路带宽作为其发送数据包的速率。根据暂停期间到达出口队列的数据量rxbyte及暂停持续时间,由以下公式计算端口接收速率:12、,13、因此,与分别表示端口的接收速率大于发送速率与端口的接收速率小于等于发送速率。为简单起见,上述判定公式变形为与。14、步骤2:定义每个端口有2类状态:确定(determined)状态和不确定(undetermined)状态,其中,确定状态的端口又可分为拥塞态和非拥塞态。在交换机受到pfc影响后,使用porttable计算端口当前状态。对于不确定状态的端口,持续跟踪队列长度的变化,直到端口状态恢复为确定状态。对于确定的拥塞端口,对经过此端口的数据流进行拥塞通知。对于确定的非拥塞端口,对经过此端口的数据流不进行处理。15、确定状态:端口未受到pfc的影响,能够明确判断当前端口处于拥塞或非拥塞。对于确定状态的端口,当队列存在堆积时,表明端口出现了拥塞,此时需要通过向发送端发送cnp报文,通知发送端降速。16、不确定状态:端口受到了pfc影响,此时出口队列虽然存在队列堆积,但无法判断队列堆积的原因是由于真正的端口拥塞还是pfc暂停蔓延引起的暂时的队列堆积,此时端口属于不确定状态。端口只有在存在队列堆积时才有可能处于不确定状态。对于不确定状态的端口,我们暂时不做处理,以免造成不必要的吞吐量下降。17、步骤2-1:所有端口初始时全部定义为确定状态。在出口队列经过暂停-恢复切换后,通过队列长度及端口状态表porttable判断端口是否需要从确定状态切换为不确定状态。18、步骤2-2:如果出口队列长度qlength和阈值threshold之间满足qlength <threshold,表示出口队列并没有因为暂时的暂停导致数据堆积,端口依旧是非拥塞状态,此时端口继续保持确定状态,不再执行后序步骤。19、步骤2-3:如果出口队列长度qlength和阈值threshold之间满足qlength ≥threshold,表示出口队列存在一定的堆积,通过读取端口状态表porttable,继续比较入端口数据包接收速率与发送速率,进一步判断该端口是真正的拥塞端口,还是受到pfc影响队列暂时堆积的端口。20、步骤2-4:如果出口队列的数据接收速率porttable.rxbyte,链路带宽,端口暂停时间之间满足,表示端口的接收速率大于发送速率,可以明确判断当前端口发生拥塞,将端口状态切换为确定状态,并向发送端发送添加了窗口信息的cnp报文。21、步骤2-5:如果出口队列的数据接收速率porttable.rxbyte,链路带宽,端口暂停时间之间满足,表示端口的接收速率小于发送速率,虽然队列长度暂时超过阈值,但在端口恢复发送后数据包已经在持续排空。当前端口可能只是因为受到pfc影响而产生了暂时的队列堆积,因此无法确定当前端口的实际状态。我们将端口设置为undetermined,端口将保持不确定状态,并进一步跟踪队列演化规律,直到端口状态变为确定状态。22、步骤2-6:对于非确定状态的端口,若队列长度qlength与threshold之间满足qlength≥threshold,且队列长度qlength不断减小,则端口继续维持不确定状态。对于不确定状态的端口,我们不对数据包做任何处理。23、步骤2-7:对于非确定状态的端口,若队列长度qlength与threshold之间满足qlength≥threshold,且队列长度qlength增加,则将端口状态更新为确定状态,并向发送端发送cnp报文。此时表明端口数据在继续堆积,端口存在拥塞,需要及时结束不确定状态并尽快向发送端返回cnp报文,通知源端进行降速。24、步骤2-8:若队列长度qlength与threshold之间满足qlength<threshold,则端口状态更新为确定状态。此时表明端口受到暂停帧影响而导致堆积的数据包已经排空,端口恢复到非拥塞状态。25、步骤3:对交换机维护一个流表flowtable,记录通过端口的 每一条数据流的源ip地址(sip)、目的ip地址(dip)、堆积的数据量(data)等信息。对于确定的拥塞端口,我们维护的流表flowtable,为通过此端口的每条数据流显式分配一个窗口,并将此窗口值由cnp报文携带,从拥塞点直接发送至发送端。发送端收到cnp报文,更新窗口值并降速。26、步骤3-1: 对交换机维护一个流表flowtable,记录通过端口的每一条数据流的源ip地址(sip)、目的ip地址(dip)、堆积的数据量。27、当数据包到达出口队列时,对流表项进行更新。使用flowtable[sip,dip]确定唯一一条流,并使用如下公式更新流表项中流对应的数据包数量:28、,29、在数据包离开出口队列时,使用如下公式更新流表项中流对应的数据包数量:30、,31、当时,表明交换机中没有这条流的数据包,则删除对应的流表项以节省交换机中的内存空间。32、步骤3-2:对于真正拥塞的端口,使用流表flowtable计算出一个窗口值win,并通过cnp报文将窗口值携带回发送端,从而借助窗口控制链路中的inflight数据包数量,实现快速显式的窗口分配。窗口值win的具体计算公式为:33、;34、其中,是流表中所有流表项的数据量的总和,是链路带宽,sip、dip是对应数据包所属数据流的源地址、目的地址。是往返时延,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延。定义为当流没有遇到任何拥塞时数据包的。在当前常见的数据中心网络中,因为拓扑的规则性,大多数服务器对之间的十分接近,因此在常见的网络拓扑中,可以看成是一个定值。35、步骤3-3:发送端在收到携带有窗口值的cnp报文后,对报文进行解析,并针对链路中的拥塞结点做出如下操作。36、使用端到端的拥塞控制算法dcqcn调节发送速率,并将对应流的窗口大小限制为cnp报文中所携带的窗口大小。在dcqcn算法进入速率恢复阶段时,将窗口大小重新恢复为初始值。窗口大小初始值使用如下方式计算得出:37、。38、本发明的有益效果是:本发明是从无损数据中心网络低时延、高吞吐的需求角度出发用于无损数据中心拥塞控制的快速、精确的拥塞反馈方法框架;具体具有如下优势:39、(1)拥塞发生时,在拥塞点直接向发送方返回cnp报文,不需要通知接收方,可以有效缩短链路反馈时延,使拥塞反馈更加快速,发送方能够更早获取链路拥塞信息并收敛速率。40、(2)为通过拥塞端口的每条数据流显式分配一个窗口,并将此窗口值由cnp报文携带发送端。快速控制链路中的inflight数据包数量,尽早排空链路中堆积的数据包,消除拥塞。41、(3)采用基于队列预测的精准的拥塞检测,能够快速判断当前端口状态,精确区分真正的拥塞端口和仅受逐跳流量控制影响的端口。42、(4)能够与现有的端到端的拥塞控制方法如dcqcn兼容,并且几乎不需要修改发送端的任何内容,便于部署。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1