技术新讯 > 电子通信装置的制造及其应用技术 > 报文传输方法、装置、芯片、设备、存储介质及程序产品与流程  >  正文

报文传输方法、装置、芯片、设备、存储介质及程序产品与流程

  • 国知局
  • 2024-08-02 14:01:20

本技术涉及芯片,特别是涉及一种报文传输方法、装置、芯片、设备、存储介质及程序产品。

背景技术:

1、远程直接内存访问(remote direct memory access,rdma)是一种用于在网络中高效传输数据的技术。通过rdma,可以直接在不同节点之间进行数据传输,而无需涉及中央处理器(central processing unit,cpu)的参与,从而减少数据传输的延迟和cpu的负担。

2、相关技术中,rdma基于队列对(queue pair,qp)的流量控速方式通常是采用令牌(token)的方式实现。固件或微码可以基于一定的拥塞算法和系统配置计算出qp允许发送的数据量,并通过token把qp允许发送的数据量下发到专用集成电路(applicationspecific integrated circuit,asic)硬件逻辑中,从而通知asic硬件逻辑qp允许发送的数据量。

3、然而,由于需要源源不断的通过token事件来通知asic硬件逻辑qp允许发送的数据量,需要占用运行固件或微码的cpu核的资源和输出带宽,这造成了资源和带宽的大量消耗。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够降低资源和带宽消耗的报文传输方法、装置、芯片、设备、存储介质及程序产品。

2、第一方面,本技术提供了一种报文传输方法。所述源端设备包括用于组装和发送报文的发送流水线,所述方法包括:

3、所述发送流水线响应于报文传输任务的触发消息,获取消息队列的可用窗口值,所述可用窗口值用于表征所述消息队列当前允许发送的最大数据量;

4、所述发送流水线根据所述消息队列的可用窗口值,向目的端设备发送所述消息队列的窗口受控报文;

5、所述源端设备根据已发送的所述窗口受控报文的数据量,更新所述消息队列的可用窗口值。

6、在其中一个实施例中,所述发送流水线根据所述消息队列的可用窗口值,向目的端设备发送所述消息队列的窗口受控报文,包括:

7、所述发送流水线确定所述消息队列的可用窗口值是否大于等于窗口阈值;

8、若所述消息队列的可用窗口值大于等于窗口阈值,则所述发送流水线向目的端设备发送所述消息队列的窗口受控报文。

9、在其中一个实施例中,在所述发送流水线确定所述消息队列的可用窗口值是否大于等于窗口阈值之后,所述方法还包括:

10、若所述消息队列的可用窗口值小于所述窗口阈值,则所述发送流水线暂停向目的端设备发送所述消息队列的窗口受控报文。

11、在其中一个实施例中,所述源端设备还包括用于接收和解析报文的接收流水线,在所述源端设备根据已发送的所述窗口受控报文的数据量,更新所述消息队列的可用窗口值之后,所述方法还包括:

12、所述接收流水线接收所述目的端设备发送的应答报文,所述应答报文中包括有所述消息队列的窗口受控报文的累积数据量;

13、所述接收流水线获取所述消息队列的窗口受控报文的已恢复数据量;

14、所述接收流水线根据所述累积数据量和所述已恢复数据量,确定所述消息队列的窗口受控报文的待恢复数据量;

15、所述接收流水线根据所述待恢复数据量,更新所述消息队列的可用窗口值。

16、在其中一个实施例中,所述累积数据量承载于所述窗口受控报文和所述应答报文的扩展报文头中。

17、在其中一个实施例中,所述源端设备还包括拥塞控制处理器和高速片上缓存,所述方法还包括:

18、所述拥塞控制处理器调整所述消息队列的可用窗口值的极值,并将所述可用窗口值的极值发送至所述高速片上缓存;

19、所述高速片上缓存接收并根据所述可用窗口值对应的极值,更新所述消息队列的可用窗口值。

20、在其中一个实施例中,在所述发送流水线根据所述消息队列的可用窗口值,向目的端设备通过发送所述消息队列的窗口受控报文之后,所述方法还包括:

21、所述发送流水线向拥塞控制处理器发送报文发送事件。

22、在其中一个实施例中,在所述接收流水线接收所述目的端设备发送的应答报文之后,所述方法还包括:

23、所述接收流水线向拥塞控制处理器发送报文接收事件。

24、第二方面,本技术提供了一种报文传输方法。应用于目的端设备,所述方法包括:

25、接收源端设备的发送流水线根据消息队列的可用窗口值发送的窗口受控报文,所述可用窗口值用于表征所述消息队列当前允许发送的最大数据量;

26、向所述源端设备发送所述窗口受控报文的应答报文。

27、在其中一个实施例中,所述窗口受控报文中包括有所述消息队列的窗口受控报文的累积数据量;

28、所述向所述源端设备发送所述窗口受控报文的应答报文,包括:

29、从所述窗口受控报文中提取所述累积数据量并在所述应答报文中添加所述累积数据量;

30、将包含所述累积数据量的应答报文发送给所述源端设备。

31、在其中一个实施例中,所述累积数据量承载于所述窗口受控报文和所述应答报文的扩展报文头中。

32、第三方面,本技术还提供了一种报文传输装置。所述报文传输装置配置于源端设备,所述源端设备包括用于组装和发送报文的发送流水线,所述装置包括:

33、获取模块,用于通过所述发送流水线响应于报文传输任务的触发消息,获取消息队列的可用窗口值,所述可用窗口值用于表征所述消息队列当前允许发送的最大数据量;

34、第一发送模块,用于通过所述发送流水线根据所述消息队列的可用窗口值,向目的端设备发送所述消息队列的窗口受控报文;

35、处理模块,用于根据已发送的所述窗口受控报文的数据量,更新所述消息队列的可用窗口值。

36、在其中一个实施例中,所述处理模块,还用于通过所述发送流水线确定所述消息队列的可用窗口值是否大于等于窗口阈值;

37、所述第一发送模块,还用于若所述消息队列的可用窗口值大于等于窗口阈值,则通过所述发送流水线向目的端设备发送所述消息队列的窗口受控报文。

38、在其中一个实施例中,所述处理模块,还用于若所述消息队列的可用窗口值小于所述窗口阈值,则通过所述发送流水线暂停向目的端设备发送所述消息队列的窗口受控报文。

39、在其中一个实施例中,所述报文传输装置还包括:

40、第二接收模块,用于通过所述接收流水线接收所述目的端设备发送的应答报文,所述应答报文中包括有所述消息队列的窗口受控报文的累积数据量;

41、所述获取模块,还用于通过所述接收流水线获取所述消息队列的窗口受控报文的已恢复数据量;

42、所述处理模块,还用于通过所述接收流水线根据所述累积数据量和所述已恢复数据量,确定所述消息队列的窗口受控报文的待恢复数据量;通过所述接收流水线根据所述待恢复数据量,更新所述消息队列的可用窗口值。

43、在其中一个实施例中,所述累积数据量承载于所述窗口受控报文和所述应答报文的扩展报文头中。

44、在其中一个实施例中,所述源端设备还包括拥塞控制处理器和高速片上缓存,所述处理模块,还用于通过所述拥塞控制处理器调整所述消息队列的可用窗口值的极值,并将所述可用窗口值的极值发送至所述高速片上缓存;通过所述高速片上缓存接收并根据所述可用窗口值对应的极值,更新所述消息队列的可用窗口值。

45、在其中一个实施例中,所述第一发送模块,还用于通过所述发送流水线向拥塞控制处理器发送报文发送事件。

46、在其中一个实施例中,所述第一发送模块,还用于所述接收流水线向拥塞控制处理器发送报文接收事件。

47、第四方面,本技术还提供了一种报文传输装置。所述装置包括:

48、第一接收模块,用于接收源端设备的发送流水线根据消息队列的可用窗口值发送的窗口受控报文,所述可用窗口值用于表征所述消息队列当前允许发送的最大数据量;

49、第二发送模块,用于向所述源端设备发送所述窗口受控报文的应答报文。

50、在其中一个实施例中,所述窗口受控报文中包括有所述消息队列发送的窗口受控报文的累积数据量;

51、所述第二发送模块,还用于向所述源端设备发送所述窗口受控报文的应答报文;将包含所述累积数据量的应答报文发送给所述源端设备。

52、在其中一个实施例中,所述累积数据量承载于所述窗口受控报文和所述应答报文的扩展报文头中。

53、第五方面,本技术还提供了一种芯片。包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面或第二方面所述的报文传输方法。

54、第六方面,本技术还提供了一种网络接口卡,其特征在于,包括上述第五方面所述芯片和多个接口,所述芯片通过所述接口对外通信。

55、第七方面,本技术还提供了一种计算机设备。包括中央处理器和上述第六方面所述网络接口卡,所述网络接口卡用于将报文调度给所述中央处理器或所述网络接口卡自身处理,所述中央处理器用于处理所述网络接口卡调度过来的报文。

56、第八方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一或第二方面所述的报文传输方法。

57、第九方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一或第二方面所述的报文传输方法。

58、上述报文传输方法、装置、芯片、设备、存储介质及程序产品,源端设备包括用于组装和发送报文的发送流水线。发送流水线首先响应于报文传输任务的触发消息,获取消息队列的可用窗口值,可用窗口值用于表征消息队列当前允许发送的最大数据量。随后,发送流水线根据消息队列的可用窗口值,向目的端设备发送消息队列的窗口受控报文。最后,源端设备根据已发送的窗口受控报文的数据量,更新消息队列的可用窗口值。由于基于可用窗口值来对消息队列进行流量限速,以保证消息队列的流量运行,从而使得消息队列的流量限速过程可以由asic硬件逻辑自行完成而无需处理器的参与,进而减少了资源和带宽的消耗。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241397.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。