【技术实现步骤摘要】
多路径路由场景下的接收端乱序重排方法
本专利技术属于计算网络
,特别涉及一种接收端乱序重排方法,可用于高性能计算网络对多路径路由场景下的接收端数据处理。
技术介绍
高性能计算HPC网络虽然极力保证无丢包,但在多路径路由场景下,先被发送的数据包仍然可能晚于后被发送的数据包到达接收端,进而导致数据包乱序问题。当前HPC网络采用go-back-N机制处理数据包乱序问题,接收端一旦判定某个到达的数据包为乱序包,即到达的数据包的序列号与接收端的期待接收号不匹配,则立即丢弃该数据包,并向发送端反馈一个NACK包。发送端收到NACK包后,不仅重传该NACK包指示的序列号对应的数据,而且重传该序列号之后的所有数据,将带来大量的冗余重传。Go-back-N机制对于乱序数据包的处理机制过于激烈,会触发严重的网络开销,YuanweiLu等人在其发表的文章“Multi-PathTransportforRDMAinDatacenters”(15thUSENIXSymposiumonNetworkedSystemsDesignan ...
【技术保护点】
1.一种多路径路由场景下的接收端乱序重排方法,其特征在于,包括如下:/n(1)在每个网络节点的网卡中构建一张接收位图链表,并在该表中为每个处于活动状态的接收队列分配一个位图条目,用以记录接收队列的请求包到达状态;/n(2)在每个网络节点的网卡中构建一张发送位图链表,并在该表中为每个处于活动状态的发送队列分配一个位图条目,用以记录发送队列的响应包到达状态;/n(3)根据网卡在网络中的位置,对网卡中的每个发送端和每个响应端分别执行不同的的操作:/n对接收端,执行(4);/n对发送端,执行(5);/n(4)在请求包到达接收端的网卡时,接收端将累积已执行的响应包数目作为响应包的响应 ...
【技术特征摘要】
1.一种多路径路由场景下的接收端乱序重排方法,其特征在于,包括如下:
(1)在每个网络节点的网卡中构建一张接收位图链表,并在该表中为每个处于活动状态的接收队列分配一个位图条目,用以记录接收队列的请求包到达状态;
(2)在每个网络节点的网卡中构建一张发送位图链表,并在该表中为每个处于活动状态的发送队列分配一个位图条目,用以记录发送队列的响应包到达状态;
(3)根据网卡在网络中的位置,对网卡中的每个发送端和每个响应端分别执行不同的的操作:
对接收端,执行(4);
对发送端,执行(5);
(4)在请求包到达接收端的网卡时,接收端将累积已执行的响应包数目作为响应包的响应序列号APSN,并将接收队列的期待接收序列号eRPSN与请求包请求序列号RPSN进行比较,根据比较结果对请求包进行缓存或执行或丢弃操作;
(5)在响应包到达发送端的网卡时,发送端将累积已发出的请求包数目作为请求包的请求序列号RPSN,并根据响应包类型、响应包的MSN消息号和发送队列对应的位图条目,决定对该响应包进行二选一操作,即丢弃,或按照发送端可完成的MSN消息号编辑工作队列元素WQE。
2.根据权利要求1所述的方法,其中(2)中的接收队列:
每个网卡有多个接收端,每个接收端维护一个接收队列,用以记录接收到的请求包的相关信息;
每个接收队列各自维护next_APSN和MSN多个变量:
所述next_APSN变量,用于封装响应包的序列号字段;
该MSN变量,在响应包从接收端发出时,接收端将其赋值给响应包首部的MSN字段,以将接收端的MSN变量信息通过响应包传递至发送端,该MSN变量的值也作为响应包MSN消息号使用。
3.根据权利要求1所述的方法,其中(2)中的每个接收端位图条目,由接收队列标识、接收位图空隙数组和接收位图首部这三部分组成,其中:
所述接收队列标识,用于标记对应位图条目,方便后续操作在接收位图链表中索引该位图条目;
所述接收位图空隙数组,包含N个位图空隙元素,N≥1,用于记录到达接收端的数据包的到达状态,每个位图空隙元素占2比特,其值为“00”时,表示空隙记录状态为空,对应数据包未到达;其值为“01”时,表示对应数据包已到达;其值为“10”时,表示尾部数据包已到达;所有位图空隙元素的初始值均置为“00”,尾部数据包是指WriteLast请求包或ReadLast响应包;
所述接收位图首部,始终指向该接收队列期待接收序列号eRPSN对应的位图空隙元素。
4.根据权利要求1所述的方法,其中(3)中的每个发送队列,各自维护next_RPSN、MSN_max、MSN_min和SSN_first_read多种变量和一个Read操作信息表:
所述next_RPSN变量,用于封装请求包首部的序列号字段,且无论当前Read请求包的请求数据长度有多大,该Read请求包后续的任何请求包的RPSN只递增1;
所述MSN_max变量,为接收端已累积确认的消息序号,即接收端已释放的序列号,其中,ACK类型响应包的MSN一定不超过MSN_max变量值;
所述MSN_min变量,为发送端当前最大可完成的消息序号,Response类型响应包的MSN一定不小于MSN_min变量值;
所述SSN_first_read变量,为发送端已发送但尚未释放存储空间的含Read请求包的消息中,第一个Read消息的消息序号;
所述Read操作信息表,用于为每个Read操作的请求包分配一个信息表条目,每个信息表条目包含四项元素,分别为:发送序列号、响应包的起始响应序列号start_APSN、响应包数目和虚拟地址。
5.根据权利要求1所述的方法,其中(3)中的每个发送端位图条目,由发送队列标识、发送位图空隙数组、eR_APSN变量和发送位图首部这四部分组成:
所述发送队列标识,用于标记对应位图条目,方便后续操作在发送位图链表中索引该位图条目;
所述发送位图空隙数组,包含N个位图空隙元素,N≥1,用于记录到达发送端的数据包的到达状态,每个位图空隙元素占2比特,其值为“00”时,表示空隙记录状态为空,对应数据包未到达;其值为“01”时,表示对应数据包已到达;其值为“10”时,表示尾部数据包已到达;所有位图空隙元素的初始值均置为“00”,尾部数据包是指WriteLast请求包或ReadLast响应包;
所述eR_APSN变量,用于表示该发送队列期待接收的Read请求的响应包序列号;
所述发送位图首部,始终指向该发送队列期待接收的Read请求的响应包序列号对应的位图空隙元素。
6.根据权利要求1所述的方法,其中(4)中所述的请求包,包括Read请求包和Write请求包,其中:
Read请求包根据其首部OpCode字段的值进一步细分为ReadFirst请求包、ReadMiddle请求包、ReadOnly请求包、ReadLast请求包多种类型;
Write请求包根据其首部OpCode字段的值进一步细分为WriteFirst请求包、WriteMiddle请求包、WriteOnly请求包和WriteLast请求包多种类型。
7.根据权利要求1所述的方法,其中(4)中的根据接收端接收队列的期待接收序列号eRPSN与请求包的请求序列号RPSN比较的结果,对请求包进行不同的操作,实现如下:
(4a)判断该请求包的请求序列号RPSN是否超出位图条目Ki能记录的范围:
若是,则直接丢弃该请求包;否则,执行(4b);
(4b)判断该请求包的请求序列号RPSN与接收端接收队列的期待接收序列号eRPSN大小:
若RPSN<eRPSN,则执行(4c);
若RPSN>eRPSN,则说明该请求包提前到达接收队列,执行(4d);
若RPSN=eRPSN,则说明该请求包按序到达接收队列,执行(4j);
(4c)接收队列丢弃该请求包;
(4d)判断RPSN、eRPSN两者之差与位图条目Ki中位图空隙数组长度N的大小:
若RPSN-eRPSN>N,则执行(4c);
若RPSN-eRPSN≤N,则执行(4e);
(4e)进一步判断该请求包首部的OpCode字段值:
若该请求包首部OpCode字段的值为“ReadReque...
【专利技术属性】
技术研发人员:顾华玺,刁兴龙,相希睿,余晓杉,朱李晶,徐晓琪,马天阳,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。