System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于多路复用连接的无头端阻塞协议制造技术_技高网

用于多路复用连接的无头端阻塞协议制造技术

技术编号:41408826 阅读:4 留言:0更新日期:2024-05-20 19:35
本发明专利技术涉及一种发送器和接收器,所述发送器和接收器分别用于发送和接收来自多路复用到所述接收器与所述发送器之间的连接上的多个流的消息的数据包。例如,所述接收器与所述发送器之间的所述连接可以是远程直接内存访问(remote direct memory access,RDMA)连接。所述接收器可以丢弃从所述发送器接收的第一接收数据包。所述接收器可以相应地通过NACK数据包通知所述发送器。所述接收器还可以在特定条件下丢弃从所述发送器接收的第二接收数据包,例如,如果所述第二接收数据包不具有特定PSN。在接收到所述NACK数据包时,所述发送器可以向所述接收器发送第二发送数据包,其中所述第二发送数据包具有所述特定PSN。

【技术实现步骤摘要】
【国外来华专利技术】

本专利技术涉及一种发送器和接收器,所述发送器和接收器分别用于发送和接收来自多路复用到接收器与发送器之间的连接上的多个流的消息的数据包。例如,接收器与发送器之间的连接可以是远程直接内存访问(remote direct memory access,rdma)连接。本专利技术提供了一种用于在这种多路复用连接上发送和接收数据包的协议,其中所述协议是无头端(head-of-the-line,hol)阻塞的。


技术介绍

1、rdma是一种广泛用于现代数据中心和计算机集群的实现低延迟和高带宽联网的技术。rdma基于将内存操作从核心处理单元(core processing unit,cpu)卸载到rdma网络接口卡(rdma network interface card,rnic),所述rnic直接访问内存。这种卸载节省了cpu时间,使得cpu可以自由执行其它任务。rdma协议引入了真正的零拷贝发送,其中用户缓冲区直接拷贝到网络中,途中没有任何拷贝。

2、rdma协议的软件层使用所谓的“动词”来执行各种rdma操作,然后这些操作被转换为写入rnic队列的工作请求。这种工作请求称为工作队列元素(work queue element,wqe)。rdma操作要么带标签(单边写入/读取/原子),要么不带标签(双边发送/接收)。rdma操作的最大数据长度可以为2gb,并通过下划线fabric以多个数据包的形式发送。

3、rdma对等端通过提供各种传输服务的队列对(queue-pair,qp)进行通信。常见的qp类型有:可靠连接(reliable connection,rc);可靠数据报(reliable datagram,rd)、扩展可靠连接(extended reliable connection,xrc);不可靠数据报(unreliabledatagram,ud);和不可靠连接(unreliable connection,uc)。

4、不同的公司也具有专有的qp类型,这些类型允许多路复用不同的目的地或应用程序,以实现更高的可靠服务规模。例如,可扩展可靠数据报(scalable reliable datagram,srd)允许应用程序多路复用作为可靠数据报服务,动态连接(dynamic connection,dc)或动态连接传输(dynamically connected transport,dct)允许目的地多路复用作为每个目的地的可靠连接服务。


技术实现思路

1、多路复用连接(例如,rdma rd qp类型)可以遭受大幅降低性能的限制。具体地,多路复用连接可以遭受所谓的hol阻塞。当数据包被阻塞数据包阻挡在队列中时,就会发生hol阻塞。例如,如果有单个队列的数据包等待被发送,并且队列(线)头处的数据包由于拥塞或由于无法处理该数据包而无法向前移动,就会发生hol阻塞,即使该数据包后面的其它数据包可以向前移动。hol阻塞使上述rdma rd qp类型等成为在行业中没有实现的服务。

2、因此,本专利技术的目的是提供一种用于将多个逻辑连接多路复用到单个物理连接中(即,用于多路复用连接)的改进的传输协议。另一个目的是传输协议是可靠的并且避免hol阻塞问题。另一个目的是为多路复用到多路复用连接上的多个流中的每一个维护顺序。

3、在此上下文中,“可靠传输”表示包括一个或多个数据包的消息保证正好只交换一次。多路复用多个逻辑连接表示到特定目的地节点的所有消息都使用单个连接来管理和交换。多个目的地表示每个消息都包括其自身的目的地信息,例如,与rdma rc操作不同,在rdma rc操作中,qp上下文保持这种信息,并且所有消息都会前往同一目的地。

4、这些和其它目的通过所附独立权利要求中描述的本专利技术的解决方案来实现。有利的实现方式在从属权利要求中描述。

5、本专利技术的第一方面提供了一种接收器,所述接收器用于接收来自多路复用到所述接收器与发送器之间的连接上的多个流的消息的数据包;其中每个数据包至少指示其所属的所述流及其数据包序列号(packet sequence number,psn),其中每个消息的初始数据包至少指示所述消息的数据包总数。所述接收器用于从所述发送器接收第一接收数据包,所述第一接收数据包是第一流的第一消息的初始数据包;如果所述第一消息无法被所述接收器处理,则丢弃所述第一接收数据包;从所述发送器接收第二接收数据包;以及在以下条件中的每一个下丢弃所述第二接收数据包:所述第二接收数据包属于所述第一消息;所述第二接收数据包属于第二消息并且属于所述第一流;所述第二接收数据包属于第三消息并且不属于所述第一流,并且所述第二接收数据包的所述psn不等于所述第一接收数据包的所述psn加上所述第一消息的所述数据包总数加上在丢弃所述第一接收数据包后丢弃的属于任何流的任何消息的所述数据包总数之和。

6、由于第一方面的接收器忽略第二接收数据包所处的这些条件,在发送器与接收器之间的(多路复用)连接上发送数据包是无hol阻塞的。第一接收数据包(即使无法被处理)和第二接收数据包不会阻挡可以向前移动的其它数据包。因此,本专利技术提供了一种用于多路复用连接的改进的可靠传输协议。

7、在第一方面的一种实现形式中,所述接收器还用于维护指示所述多个流中的一个或多个阻塞流的流状态信息;以及根据所述流状态信息,在所述第二接收数据包属于作为阻塞流的第二流的所述条件下丢弃所述第二接收数据包。

8、流状态信息允许接收器跟踪阻塞流以及将此信息提供给发送器。例如,可以向发送器提供包含每个阻塞流的第一丢弃消息的列表。然后,发送器可以可选地基于其本地数据结构从此列表中导出流状态信息。这对无hol阻塞协议是有益的。

9、在第一方面的一种实现形式中,如果所述第一消息无法被所述接收器处理,则所述接收器还用于修改所述流状态信息以指示所述第一流为阻塞流。

10、因此,接收器可以更新指示阻塞流的信息,并且更新的信息可以与发送器共享。

11、在第一方面的一种实现形式中,所述接收器还用于维护psn信息,所述psn信息指示预期下一个从所述发送器接收的预期数据包的所述psn;在所述第二接收数据包的所述psn不等于由所述psn信息指示的所述预期数据包的所述psn的所述条件下丢弃所述第二接收数据包;以及在所述第二接收数据包属于第三流的所述条件下,如果所述第二接收数据包的所述psn等于由所述psn信息指示的所述预期数据包的所述psn,并且如果所述第三消息可以被所述接收器处理,则不丢弃所述第二接收数据包,其中所述第三流具有一个状态,根据所述流状态信息,所述状态指示所述第三流未被阻塞。

12、这允许为多路复用到多路复用连接上的多个流中的每一个维护消息顺序。

13、在第一方面的一种实现形式中,所述接收器还用于:如果所述第一消息无法被所述接收器处理,则将所述预期数据包的所述psn增加所述第一消息的所述数据包总数加上在丢弃所述第一接收数据包后丢弃的属于所述第一流的任何第二本文档来自技高网...

【技术保护点】

1.一种接收器(100),其特征在于,用于接收来自多路复用到所述接收器(100)与发送器(110)之间的连接上的多个流的消息的数据包;

2.根据权利要求1所述的接收器(100),其特征在于,还用于:

3.根据权利要求2所述的接收器(100),其特征在于,如果所述第一消息无法被所述接收器(100)处理,则所述接收器(100)还用于修改所述流状态信息以指示所述第一流为阻塞流。

4.根据权利要求1至3中任一项所述的接收器(100),其特征在于,还用于:

5.根据权利要求4所述的接收器(100),其特征在于,还用于:如果所述第一消息无法被所述接收器(100)处理:

6.根据权利要求1至5中任一项所述的接收器(100),其特征在于,每个消息都与消息序列号(message sequence number,MSN)相关联,并且所述接收器(100)还用于:

7.根据权利要求6所述的接收器(100),其特征在于,还用于:对于在丢弃所述第一接收数据包(101)后丢弃的属于所述第一流的每个第二消息,将由所述MSN信息(202)指示的所述MSN增加一。

8.根据权利要求5至7中任一项所述的接收器(100),其特征在于,还用于:

9.根据权利要求4至8中任一项所述的接收器(100),其特征在于,还用于:

10.根据权利要求4至9中任一项所述的接收器,其特征在于,还用于:

11.根据权利要求9或10所述的接收器(100),其特征在于,所述第一NACK数据包(103)和所述第二NACK数据包包括无法被所述接收器(100)处理的所述第一消息的所述MSN。

12.根据权利要求11所述的接收器(100),其特征在于,

13.根据权利要求5至12中任一项所述的接收器(100),其特征在于,还用于:

14.根据权利要求2至13中任一项所述的接收器(100),其特征在于,还用于:

15.根据权利要求14所述的接收器(100),其特征在于,

16.根据权利要求1至15中任一项所述的接收器(100),其特征在于,所述接收器(100)与所述发送器(110)之间的所述连接是远程直接内存访问(Remote Direct MemoryAccess,RDMA)连接和/或可靠数据报(Reliable Datagram,RD)连接。

17.一种发送器(110),其特征在于,用于在多路复用到所述发送器与接收器(100)之间的连接上的多个流上发送消息的数据包;

18.根据权利要求17所述的发送器(110),其特征在于,所述NACK数据包(103)包括MSN列表,对于每个阻塞流,所述MSN列表包括无法被所述接收器处理或被所述接收器(110)丢弃的所述第一消息的所述MSN,并且所述发送器(110)还用于:

19.根据权利要求17或18中任一项所述的发送器(110),其特征在于,还用于:

20.根据权利要求18和19所述的发送器(110),其特征在于,还用于:如果第三消息计划在所述第二消息之前被发送但被跳过,则将所述第二消息与所述第三消息的所述MSN相关联。

21.一种用于接收来自多路复用到接收器(100)与发送器(110)之间的连接上的多个流的消息的数据包的方法(500),其特征在于,

22.一种用于在多路复用到接收器(100)与发送器(110)之间的连接上的多个流上发送消息的数据包的方法(600),其特征在于,

23.一种计算机程序,其特征在于,包括指令,当所述程序被计算机执行时,所述指令使得所述计算机执行根据权利要求21或22所述的方法(500、600)。

...

【技术特征摘要】
【国外来华专利技术】

1.一种接收器(100),其特征在于,用于接收来自多路复用到所述接收器(100)与发送器(110)之间的连接上的多个流的消息的数据包;

2.根据权利要求1所述的接收器(100),其特征在于,还用于:

3.根据权利要求2所述的接收器(100),其特征在于,如果所述第一消息无法被所述接收器(100)处理,则所述接收器(100)还用于修改所述流状态信息以指示所述第一流为阻塞流。

4.根据权利要求1至3中任一项所述的接收器(100),其特征在于,还用于:

5.根据权利要求4所述的接收器(100),其特征在于,还用于:如果所述第一消息无法被所述接收器(100)处理:

6.根据权利要求1至5中任一项所述的接收器(100),其特征在于,每个消息都与消息序列号(message sequence number,msn)相关联,并且所述接收器(100)还用于:

7.根据权利要求6所述的接收器(100),其特征在于,还用于:对于在丢弃所述第一接收数据包(101)后丢弃的属于所述第一流的每个第二消息,将由所述msn信息(202)指示的所述msn增加一。

8.根据权利要求5至7中任一项所述的接收器(100),其特征在于,还用于:

9.根据权利要求4至8中任一项所述的接收器(100),其特征在于,还用于:

10.根据权利要求4至9中任一项所述的接收器,其特征在于,还用于:

11.根据权利要求9或10所述的接收器(100),其特征在于,所述第一nack数据包(103)和所述第二nack数据包包括无法被所述接收器(100)处理的所述第一消息的所述msn。

12.根据权利要求11所述的接收器(100),其特征在于,

13.根据权利要求5至12中任一项所述的接收器(100)...

【专利技术属性】
技术研发人员:阿米特·杰伦本沙哈尔·贝尔彻大卫·加诺鲁文·科恩
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1