一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息传输方法、装置、电子设备及介质与流程

2021-12-04 02:35:00 来源:中国专利 TAG:


1.本公开涉及设备技术领域,具体涉及一种消息传输方法、装置、电子设备及介质。


背景技术:

2.分布式点对点通信在深度学习训练框架、远程过程调用(remote procedure call,rpc)框架、大数据系统、分布式存储系统、电商服务等场景下有广泛应用。这种通信模式具有很强的随机性,表现为通信参与方无法感知全局网络拓扑信息、无法预知通信发起的时机。这导致通信过程中容易出现拥塞、丢包、长尾、流量不均等情况,严重影响网络性能。在数据中心网络中,需要在缺少网络全局信息的情况下提高分布式点对点通信的效率。


技术实现要素:

3.为了解决相关技术中的问题,本公开实施例提供一种消息传输方法、装置、电子设备及介质。
4.第一方面,本公开实施例中提供了一种消息传输方法。
5.具体地,所述消息传输方法,包括:接收第一消息的元信息;响应于接收到所述第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息;如果确定通过所述指定网络设备接收所述第一消息,则发送第一通知,所述第一通知用于告知所述第一消息的发送方发送所述第一消息。
6.结合第一方面,本公开在第一方面的第一种实现方式中,所述网络设备包括以下任意一种:网卡、交换机、路由器;所述根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,包括:如果所述指定网络设备上正在接收的消息数量小于所述指定网络设备的并发接收阈值,则确定通过所述指定网络设备接收所述第一消息,否则不通过所述指定网络设备接收所述第一消息,其中,所述并发接收阈值为预先设置的所述指定网络设备同时接收的消息数量阈值。
7.结合第一方面,本公开在第一方面的第二种实现方式中,所述第一消息被拆分为p个部分发送到所述指定网络设备,p≥2,所述方法还包括:在通过所述指定网络设备接收完所述第一消息的第p

1个部分之后且在接收到所述第一消息的第p个部分之前,发送第二通知,所述第二通知用于告知第二消息的发送方发送所述第二消息。
8.结合第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收到所述第二消息。
9.结合第一方面的第二种实现方式,本公开在第一方面的第四种实现方式中,消息传输方法还包括:接收所述第二消息的元信息,其中,在接收到所述第二消息的元信息时,所述指定网络设备正在接收的消息数量不小于所述并发接收阈值。
10.结合第一方面,本公开在第一方面的第五种实现方式中,消息传输方法还包括:获取所述指定网络设备上正在发送的消息数量;根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息。
11.结合第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息,包括:如果所述指定网络设备上正在发送的消息数量小于所述指定网络设备的并发发送阈值,则确定通过所述指定网络设备发送所述第三消息,其中,所述并发发送阈值为预先设置的所述指定网络设备同时发送的消息数量阈值。
12.第二方面,本公开实施例中提供了一种消息传输方法。
13.具体地,所述消息传输方法,包括:向接收方发送第一消息的元信息;响应于从接收方接收到第一通知,向所述接收方发送所述第一消息,其中,所述接收方响应于接收到所述第一消息的元信息,根据所述接收方的指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,如果确定通过所述指定网络设备接收所述第一消息,则发送所述第一通知,其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
14.结合第二方面,本公开在第二方面的第一种实现方式中,所述向所述接收方发送所述第一消息,包括:将所述第一消息拆分成p个部分发送到所述接收方,其中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收到第二消息,p≥2。
15.第三方面,本公开实施例中提供了一种消息传输装置。
16.具体地,所述消息传输装置,包括:第一消息元消息接收模块,用于接收第一消息的元信息;接收第一消息确定模块,用于响应于接收到所述第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息;第一通知发送模块,用于如果确定通过所述指定网络设备接收所述第一消息,则发送第一通知,所述第一通知用于告知所述第一消息的发送方发送所述第一消息。
17.结合第三方面,本公开在第三方面的第一种实现方式中,所述网络设备包括以下任意一种:网卡、交换机、路由器;所述根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,包括:
如果所述指定网络设备上正在接收的消息数量小于所述指定网络设备的并发接收阈值,则确定通过所述指定网络设备接收所述第一消息,否则不通过所述指定网络设备接收所述第一消息,其中,所述并发接收阈值为预先设置的所述指定网络设备同时接收的消息数量阈值。
18.结合第三方面,本公开在第三方面的第二种实现方式中,所述第一消息被拆分为p个部分发送到所述指定网络设备,p≥2,所述方法还包括:在通过所述指定网络设备接收完所述第一消息的第p

1个部分之后且在接收到所述第一消息的第p个部分之前,发送第二通知,所述第二通知用于告知第二消息的发送方发送所述第二消息。
19.结合第三方面的第二种实现方式,本公开在第三方面的第三种实现方式中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收到所述第二消息。
20.结合第三方面的第二种实现方式,本公开在第三方面的第四种实现方式中,消息传输装置还用于:接收所述第二消息的元信息,其中,在接收到所述第二消息的元信息时,所述指定网络设备正在接收的消息数量不小于所述并发接收阈值。
21.结合第三方面,本公开在第三方面的第五种实现方式中,消息传输装置还用于:获取所述指定网络设备上正在发送的消息数量;根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息。
22.结合第三方面的第五种实现方式,本公开在第三方面的第六种实现方式中,所述根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息,包括:如果所述指定网络设备上正在发送的消息数量小于所述指定网络设备的并发发送阈值,则确定通过所述指定网络设备发送所述第三消息,其中,所述并发发送阈值为预先设置的所述指定网络设备同时发送的消息数量阈值。
23.第四方面,本公开实施例中提供了一种消息传输装置。
24.具体地,所述消息传输装置,包括:第一消息元信息发送模块,用于向接收方发送第一消息的元信息;第一消息发送模块,用于响应于从接收方接收到第一通知,向所述接收方发送所述第一消息,其中,所述接收方响应于接收到所述第一消息的元信息,根据所述接收方的指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,如果确定通过所述指定网络设备接收所述第一消息,则发送所述第一通知,其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
25.结合第二方面,本公开在第二方面的第一种实现方式中,所述向所述接收方发送所述第一消息,包括:将所述第一消息拆分成p个部分发送到所述接收方,其中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收
到第二消息,p≥2。
26.第五方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条设备指令,其中,所述一条或多条设备指令被所述处理器执行以实现如第一方面至第一方面的第六种实现方式、第二方面至第二方面的第一种实现方式任一项所述的方法。
27.第六方面,本公开实施例中提供了一种设备可读存储介质,其上存储有设备指令,该设备指令被处理器执行时实现如第一方面至第一方面的第六种实现方式、第二方面至第二方面的第一种实现方式所述的方法。
28.第七方面,本公开实施例中提供了一种设备程序产品,包括设备指令,该设备指令被处理器执行时实现如第一方面至第一方面的第六种实现方式、第二方面至第二方面的第一种实现方式所述的方法步骤。
29.根据本公开实施例提供的技术方案,通过接收第一消息的元信息;响应于接收到第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收所述第一消息;如果确定通过指定网络设备接收第一消息,则发送第一通知,第一通知用于告知第一消息的发送方发送第一消息,从而在无需全局信息的条件下避免网络拥塞,节约消息传输时间。
30.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
31.结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。以下是对附图的说明。
32.图1a示出用于实现根据本公开实施例的消息传输方法的设备的示例性示意图。
33.图1b示出根据本公开实施例的消息传输方法的实施场景的示例性示意图。
34.图2示出根据本公开实施例的消息传输方法的流程图。
35.图3示出根据本公开实施例的消息传输方法的流程图。
36.图4示出根据本公开实施例的消息传输方法的流程图。
37.图5示出根据本公开实施例的消息传输装置的结构框图。
38.图6示出根据本公开实施例的消息传输装置的结构框图。
39.图7示出根据本公开的实施例的电子设备的结构框图。
40.图8示出适于用来实现根据本公开实施例的方法的设备系统的结构示意图。
具体实施方式
41.下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
42.在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
43.另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征
可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
44.在本公开中,对用户信息或用户数据的获取均为经用户授权、确认,或由用户主动选择的操作。
45.如上所述,分布式点对点通信在深度学习训练框架、远程过程调用(remote procedure call,rpc)框架、大数据系统、分布式存储系统、电商服务等场景下有广泛应用。该种通信模式具有很强的随机性,表现为通信参与方无法感知全局网络拓扑信息、无法预知通信发起的时机。这导致通信过程中容易出现拥塞、丢包、长尾、流量不均等情况,严重影响网络性能。在数据中心网络中,需要在缺少网络全局信息的情况下提高分布式点对点通信的效率。
46.为了解决上述问题,本公开提出了一种消息传输方法、装置、电子设备、介质及程序产品。
47.根据本公开的实施方式,通过一种消息传输方法,包括:接收第一消息的元信息;响应于接收到第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收第一消息;如果确定通过指定网络设备接收第一消息,则发送第一通知,第一通知用于告知第一消息的发送方发送第一消息。本公开实施例根据指定网络设备上正在接收的消息数量决定是否允许消息的发送方向指定网络设备发送消息,可以有效减小网络拥塞造成的消息传输延迟或丢包,从而在无需消息发送方了解网络全局信息的条件下提高网络实际传输速率,降低接收消息所需要的时间。
48.图1a示出用于实现根据本公开实施例的消息传输方法的设备的示例性示意图。
49.根据本公开的实施例,用于实现根据本公开实施例的消息传输方法的设备可以包括例如服务器、交换机、路由器、终端设备中的任意一种。如图1a所示,示例性设备100包括:消息特征搜集模块101、本机拓扑感知模块102、流量规划模块103、消息收发模块104。
50.消息特征搜集模块101用于获取设备100发送或者接收的消息的元信息,所述元信息例如设备100正在接收或发送的消息的长度、设备100需要发送或者接收的消息的长度等。消息特征搜集模块101还可以获取设备100正在发送或接收的消息的数量等信息。
51.本机拓扑感知模块102用于获取设备100中的网络设备数量、每个网络设备并发接收消息的并发接收阈值、每个网络设备并发发送消息的并发发送阈值等信息。根据本公开的实施例,网络设备可以是网卡。其中,并发接收阈值为预先设置的每个网络设备同时接收的消息数量阈值,并发发送阈值为预先设置的每个网络设备同时发送的消息数量阈值。根据本公开的实施例,并发接收多个消息,是指同时接收多个消息,但对这多个消息的接收未必严格同步,并发发送多个消息,是指同时发送多个消息,但对这多个消息的发送未必严格同步。
52.流量规划模块103用于根据消息特征搜集模块101和本机拓扑感知模块102获取的信息,对设备100中的网络设备的消息发送/接收进行控制。具体地,流量规划模块103从消息特征搜集模块101获取消息的发送方要向设备100发送的第一消息的元信息。响应于接收到第一消息的元信息,流量规划模块103根据指定网络设备上正在接收的消息数量和并发接收阈值的对比,确定是否通过指定网络设备接收第一消息。所述正在接收的消息,是指所述指定网络设备已经允许发送方发送而所述指定网络设备尚未接收完毕的消息。指定网络设备已经允许发送方发送的消息可以是这样的消息:指定网络设备已经针对该消息,发出
允许发送方进行消息发送的通知,在接收到该通知之后,发送方向指定网络设备发送消息。
53.当确定通过指定网络设备接收第一消息后,向发送方发送可以接收第一消息的通知。根据本公开的实施例,指定网络设备可以是设备100的多个网络设备中的任意一个网络设备。设备100可以根据自身预设的调度策略确定用于接收第一消息的指定网络设备。
54.理想状态下,指定网络设备同时接收n个消息的理想耗时t
ideal
如下式所示,其中size
n
是第n个消息的数据长度,bandwidth
phy
是指定网络设备的物理传输带宽。
55.但是,当指定网络设备同时接收过多消息时,可能出现网络拥塞,因此,指定网络设备同时接收n个消息的实际耗时t
real
为: t
reall
往往远大于t
idea
。已有网络硬件流控算法在应对多对一的场景下表现欠佳,指定网络设备同时接收的消息数量越多,网络拥塞情况越严重,网络性能衰减越明显。
56.在本公开的实施例中,通过设置指定网络设备的并发接收阈值,避免指定网络设备同时接收的消息数量n大于并发接收阈值,以避免网络拥塞,从而在无需指定网络设备和/或消息发送方了解全局信息的条件下提高网络实际传输速率,降低接收消息所需要的时间。
57.在本公开的实施例中,并发接收阈值为预先设置的所述指定网络设备同时接收的消息数量阈值。可以根据研发人员或者运维人员的经验得到指定网络设备的并发接收阈值,也可以通过分析网络设备的消息接收日志,确定并发接收阈值。确定并发接收阈值的原则为,当指定网络设备同时接收的消息数量小于等于并发接收阈值时,指定网络设备同时接收n个消息的实际耗时t
real
在可接受的范围内。
58.通过设置指定网络设备的并发接收阈值,当指定网络设备同时接收的消息数量小于并发接收阈值时,才允许消息的发送方向指定网络设备发送消息,可以有效减小网络拥塞造成的消息传输延迟或丢包,从而在无需指定网络设备和/或消息发送方了解全局信息的条件下提高网络实际传输速率,降低接收消息所需要的时间。
59.根据本公开的实施例,指定网络设备在同时接收数量等于并发接收阈值的消息时,收到第二消息的元信息。此时,指定网络设备不向第二消息的发送方发送允许其发送第二消息的通知,而是等待第一消息接收完毕,且指定网络设备同时接收的消息数量小于并发阈值时,才从第二消息的发送方接收第二消息,从而确保指定网络设备同时接收的消息数量不大于并发接收阈值。
60.根据本公开的实施例,所述第一消息被拆分为p(p≥2)个部分发送到指定网络设备,当指定网络设备接收完第一消息的第p

1部分之后,在还未接收到第一消息的第p部分时,就可以向第二消息的发送方发送第二通知,通知第二消息的发送方发送第二消息。
61.指定网络设备将第二通知发送到第二消息的发送方,以及第二消息的发送方响应于第二通知将第二消息发送到指定网络设备需要消耗一定的时间,该时间称为第二消息的流控开销。通过指定网络设备接收完第一消息的第p

1个部分之后,在还未接收到第一消息
的第p个部分时,向第二消息的发送方发送第二通知,可以将第二消息的流控开销隐藏在第一消息的第p个部分的接收过程中,提高了消息的整体传输效率。
62.在本公开的实施例中,第一消息的第p个部分被设置为使得指定网络设备在接收完第p个部分之后,在预设时间段内接收到第二消息。
63.在本公开的实施例中,预设时间段可以设置得尽可能小,以便在指定网络设备接收完第一消息的第p个部分后,尽快接收到第二消息。根据本公开的实施例,可以根据第二消息的预测流控开销和第一消息的平均传输速率确定第一消息的第p个部分的长度。例如,第p个部分的长度=第一消息的平均传输速率*第二消息的预测流控开销。根据本公开的实施例,可以通过以下公式获得第二消息的预测流控开销:第二消息的预测流控开销=第二消息的元信息从第二消息的发送方到达所述指定网络设备的时间*2。
64.在本公开的实施例中,本机的指定网络设备除了接收消息,还可以发送消息。
65.指定网络设备发送第i个消息的理想时间为其中,size
i
是第i个消息的长度,bandwidth
phy
是网络设备的物理传输带宽。
66.但是,当指定网络设备同时发送m个消息时,由于m个消息均分了发送带宽,实际上第i个消息的发送时间为实际场景中接收方收到完整消息之后会进行处理,尽早收到完整的消息便可以尽早开始处理,所以指定网络设备同时发送多个消息的流控算法侧重点在于加速单个消息的到达时间。
67.在本公开的实施例中,设置指定网络设备的并发发送阈值,当指定网络设备正在发送的消息数量小于指定网络设备的并发发送阈值时,则确定通过指定网络设备发送第三消息。当并发发送阈值设置为1时,第i个消息的平均发送时间降低至在本公开的实施例中,可以将并发发送阈值设置为大于1,以减少消息等待发送的时间。并发发送阈值的值可以根据研发和运维人员的经验得到,也可以通过分析网络设备的消息发送日志得到。确定并发发送阈值的原则为,当指定网络设备同时发送的消息数量小于等于并发发送阈值时,指定网络设备同时发送的消息的实际耗时在可接受的范围内。
68.在流量规划模块103进行上述接收消息或者发送消息的规划之后,消息收发模块104具体执行对消息的收发操作。
69.通过上述本公开的实施例,指定网络设备可以在无需网络全局信息的条件下,在接收消息的过程中避免同时接收过多消息,从而导致拥塞,降低总体传输速率;也可以在发送消息的过程中避免同时发送过多消息,从而导致延长消息的到达时间。
70.图1b示出根据本公开实施例的消息传输方法的实施场景的示例性示意图。
71.本领域普通技术人员可以理解,图1b示例性示出了消息传输方法的实施场景,而不构成对本公开的限制。
72.如图1b所示,第一发送方111和第二发送方113准备向指定网络设备112发送消息。
73.在步骤s111中,第一发送方111向指定网络设备112发送第一消息的元信息。
74.在步骤s112中,指定网络设备112判断正在接收的消息数量小于指定网络设备的并发接收阈值,则确定通过指定网络设备接收第一消息,并根据第一消息的数据长度准备接收缓冲区。其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
75.在步骤s113中,指定网络设备112向第一发送方111发送第一通知,第一通知用于告知第一发送方111发送第一消息。
76.第一发送方111将第一消息划分为p部分。p部分中每个部分的数据长度可以由网络底层通信协议设定,或者由第一发送方根据第一消息的总长度及第一发送方和指定网络设备间的网络传输速率确定,或者根据网络运维经验值确定,或者其它方式确定,本公开对此不作限定。
77.在步骤s114中,第一发送方111向指定网络设备发送第一消息的第一部分,随后发送第一消息的第二部分
……
,直至在步骤s115中,第一发送方111向指定网络设备发送第一消息的第p

1部分。
78.指定网络设备112接收第一消息的过程中,还在步骤s117中接收第二发送方113希望发送的第二消息的元消息。在接收到第二消息的元信息时,指定网络设备112正在接收的消息数量等于并发接收阈值,因此不向第二发送方113发送允许其发送第二消息的通知。
79.在指定网络设备112接收完第一消息的第p

1部分之后,在接收到第一消息的第p部分之前,在步骤s118中,指定网络设备112向第二发送方113发送第二通知,第二通知用于告知第二发送方113发送第二消息。
80.对于指定网络设备,发送第二通知,称为接收第二消息的流控开销。通过在接收第一消息的过程中接收第二消息的元消息,并在接收完第一消息的第p

1部分,而未接收到第一消息的第p部分时,就发送第二通知,可以将接收第二消息的流控开销隐藏在第一消息的接收过程中,从而提高消息的整体传输速率。
81.图2示出根据本公开实施例的消息传输方法的流程图。
82.如图2所示,根据本公开实施例的消息传输方法包括:步骤s201、s202、s203。
83.在步骤s201中,接收第一消息的元信息。
84.在步骤s202中,响应于接收到第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收第一消息,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
85.在步骤s203中,如果确定通过指定网络设备接收第一消息,则发送第一通知,第一通知用于告知第一消息的发送方发送第一消息。
86.根据本公开的实施例,所述网络设备包括以下任意一种:网卡、交换机、路由器。
87.根据本公开的实施例,接收第一消息的指定网络设备可以通过发送通知的方式控制发送方对第一消息的发送,从而在无需网络全局信息的条件下避免网络拥塞,节约消息传输时间。
88.在本公开的实施例中,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收所述第一消息,包括:如果指定网络设备上正在接收的消息数量小于指定网络设备的并发接收阈值,则确定通过所述指定网络设备接收所述第一消息,否则不通过所述指定网络设备接收所述第一消息,其中,并发接收阈值为预先设置的指定网络设备同时接收的消息数量阈值。
89.在本公开的实施例中,如上所述,当指定网络设备同时接收过多消息时,网络发生拥塞,导致指定网络设备的实际传输带宽由bandwidth
phy
降低至bandwidth
congestion
。相应的,指定网络设备接收n个消息所需要的时间也从t
ideal
增加到t
reall

90.根据本公开的实施例,通过设定正在接收的消息数量小于指定网络设备的并发接收阈值,从而在无需全局信息的条件下避免网络拥塞,节约消息传输时间。
91.在本公开的实施例中,第一消息被拆分为p个部分发送到指定网络设备,消息传输方法还包括:在接收完第一消息的第p

1个部分之后,且在接收到所述第一消息的第p个部分之前,发送第二通知,第二通知用于告知第二消息的发送方发送第二消息。
92.在本公开的实施例中,如上所述,当指定网络设备接收完第一消息的第p

1部分之后,在还未接收到第一消息的第p部分时,就向第二消息的发送方发送第二通知,通知第二消息的发送方开始发送第二消息。
93.根据本公开的实施例,指定网络设备在同时接收数量等于并发接收阈值的消息时,收到第二消息的元信息。此时,指定网络设备不向第二消息的发送方发送允许其发送第二消息的通知,而是等待第一消息接收完毕,且指定网络设备同时接收的消息数量小于并发阈值时,才从第二消息的发送方接收第二消息,从而确保指定网络设备同时接收的消息数量不大于并发接收阈值。
94.指定网络设备将第二通知发送到第二消息的发送方,以及第二消息的发送方响应于第二通知将第二消息发送到指定网络设备需要消耗一定的时间,称为第二消息的流控开销。通过在接收第一消息的第p部分之前发送第二通知,可以将第二消息的流控开销隐藏在第一消息的传输过程中,使得在接收完第一消息之后,能够尽快接收第二消息,提高了消息传输效率。
95.在本公开的实施例中,第一消息的第p个部分被设置为使得指定网络设备在接收完第p个部分之后,在预设时间段内接收到所述第二消息。
96.在本公开的实施例中,预设时间段可以设置得尽可能小,以便在指定网络设备接收完第一消息的第p个部分后,尽快接收到第二消息。根据本公开的实施例,可以根据第二消息的预测流控开销和第一消息的平均传输速率确定第一消息的第p个部分的长度。例如,第p个部分的长度=第一消息的平均传输速率*第二消息的预测流控开销。根据本公开的实施例,可以通过以下公式获得第二消息的预测流控开销:第二消息的预测流控开销=第二消息的元信息从第二消息的发送方到达所述指定网络设备的时间*2。
97.根据本公开的实施例,可以使得指定网络设备在接收完第一消息的较短时间内接收到第二消息,从而缩短接收第一消息和第二消息间的间隔,提高消息传输效率,节约消息传输时间。
98.图3示出根据本公开实施例的消息传输方法的流程图。
99.如图3所示,消息传输方法除了包括和图2相同的步骤s201、s202、s203,还包括步
骤s301、s302。
100.在步骤s301中,获取指定网络设备上正在发送的消息数量。
101.在步骤s302中,根据指定网络设备上正在发送的消息数量,确定是否通过指定网络设备发送第三消息。
102.根据本公开的实施例,指定网络设备通过使用正在发送的消息数量确定是否通过指定网络设备发送第三消息,可以在无需全局信息的条件下避免网络拥塞,降低消息传输时间。
103.在本公开的实施例中,根据指定网络设备上正在发送的消息数量,确定是否通过指定网络设备发送第三消息,包括:如果指定网络设备上正在发送的消息数量小于指定网络设备的并发发送阈值,则确定通过指定网络设备发送第三消息,其中,并发发送阈值为预先设置的指定网络设备同时发送的消息数量阈值。
104.在本公开的实施例中,如上所述,当指定网络设备正在发送的消息数量小于指定网络设备的并发发送阈值,则确定通过指定网络设备发送第三消息。
105.根据本公开的实施例,可以在无需全局信息的条件下,避免指定网络设备同时发送过多消息导致的网络拥塞,从而降低接收消息的平均时间。
106.图4示出根据本公开实施例的消息传输方法的流程图。
107.如图4所示,消息传输方法包括:步骤s401、s402。
108.在步骤s401中,向接收方发送第一消息的元信息。
109.在步骤s402中,响应于从接收方接收到第一通知,向接收方发送第一消息,其中,接收方响应于接收到第一消息的元信息,根据接收方的指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收第一消息,如果确定通过指定网络设备接收第一消息,则发送第一通知,其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
110.根据本公开的实施例,发送方通过第一消息的元消息和第一通知控制第一消息的发送过程,从而避免在指定网络设备处形成网络拥塞,在无需网络全局信息的条件下提高网络传输速率,降低消息传输时间。
111.在本公开的实施例中,向接收方发送第一消息,包括:将第一消息拆分成p个部分发送到接收方,其中,第一消息的第p个部分被设置为使得指定网络设备在接收完第p个部分之后,在预设时间段内接收到第二消息,p≥2。
112.根据本公开的实施例,可以使得指定网络设备在接收完第一消息的较短时间内接收到第二消息,从而节约接收第一消息和第二消息间的间隔,提高消息传输效率,节约消息传输时间。
113.根据本公开实施例的消息传输方法可以由指定网络设备所在的设备主机执行,例如可以通过设备主机上的软件执行,或通过设备主机的硬件执行,或通过设备主机的软件与硬件相结合的方式执行。根据本公开实施例的消息传输方法也可以由指定网络设备本身执行,例如可以通过指定网络设备上的软件执行,或通过指定网络设备的硬件执行,或通过指定网络设备的软件与硬件相结合的方式执行。例如,当指定网络设备是服务器上的网卡时,该消息传输方法可以通过服务器上的软件或硬件,或软件与硬件相结合的方式执行,也可以通过网卡中的软件或硬件,或软件与硬件相结合的方式执行。当指定网络设备是交换
机或路由器时,根据本公开实施例的消息传输方法可以通过交换机或路由器上运行的软件或硬件,或软件与硬件相结合的方式执行。
114.图5示出根据本公开实施例的消息传输装置的结构框图。
115.如图5所示,消息传输装置500包括:第一消息元消息接收模块501、接收第一消息确定模块502、第一通知发送模块503。
116.第一消息元消息接收模块501,用于接收第一消息的元信息。
117.接收第一消息确定模块502,用于响应于接收到第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收第一消息,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
118.第一通知发送模块503,用于如果确定通过指定网络设备接收第一消息,则发送第一通知,第一通知用于告知第一消息的发送方发送第一消息。
119.根据本公开的实施例,接收第一消息的指定网络设备可以通过发送通知的方式控制例如第一网络设备的发送方对第一消息的发送,从而在无需网络全局信息的条件下避免网络拥塞,节约消息传输时间。
120.在本公开的实施例中,根据指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收所述第一消息,包括:如果指定网络设备上正在接收的消息数量小于指定网络设备的并发接收阈值,则确定通过所述指定网络设备接收所述第一消息,否则不通过所述指定网络设备接收所述第一消息,其中,并发接收阈值为预先设置的指定网络设备同时接收的消息数量阈值。
121.根据本公开的实施例,通过设定正在接收的消息数量小于指定网络设备的并发接收阈值,从而在无需网络全局信息的条件下避免网络拥塞,节约消息传输时间。
122.在本公开的实施例中,第一消息被拆分为p个部分发送到指定网络设备,p≥2,消息传输装置还用于:在通过所述指定网络设备接收完所述第一消息的第p

1个部分之后且在接收到所述第一消息的第p个部分之前,发送第二通知,第二通知用于告知第二消息的发送方发送第二消息。
123.指定网络设备接收第二消息的元消息、发送第二通知,以及第二网络设备准备发送第二消息需要消耗一定的时间,即第二消息的握手开销。第二消息的握手开销和第一消息的传输并行起来,隐藏了第二消息的握手开销。
124.根据本公开的实施例,通过隐藏第二消息的流控开销,提高了消息的整体传输效率,节约消息传输时间。
125.在本公开的实施例中,第一消息的第p个部分被设置为使得指定网络设备在接收完第p个部分之后,在预设时间段内接收到所述第二消息。
126.根据本公开的实施例,可以使得指定网络设备在接收完第一消息的较短时间内接收到第二消息,从而节约接收第一消息和第二消息间的间隔,提高消息传输效率,节约消息传输时间。
127.在本公开的实施例中,消息传输装置还用于:接收第二消息的元信息,其中,在接收到第二消息的元信息时,指定网络设备正在接收的消息数量不小于并发接收阈值。
128.根据本公开的实施例,可以使得指定网络设备在接收第二消息的元消息后,暂缓
发送第二通知,不会出现网络拥塞而导致消息传输速率下降、消息传输时间增加。
129.在本公开的实施例中,消息传输装置还包括:发送消息数量获取模块,用于获取指定网络设备上正在发送的消息数量;第三消息发送确定模块,用于根据指定网络设备上正在发送的消息数量,确定是否通过指定网络设备发送第三消息。
130.根据本公开的实施例,指定网络设备通过使用正在发送的消息数量确定是否通过指定网络设备发送第三消息,可以在无需全局信息的条件下避免网络拥塞,降低消息传输时间。
131.在本公开的实施例中,根据指定网络设备上正在发送的消息数量,确定是否通过指定网络设备发送第三消息,包括:如果指定网络设备上正在发送的消息数量小于指定网络设备的并发发送阈值,则确定通过指定网络设备发送第三消息,其中,并发发送阈值为预先设置的指定网络设备同时发送的消息数量阈值。
132.在本公开的实施例中,如上所述,当指定网络设备正在发送的消息数量小于指定网络设备的并发发送阈值,则确定通过指定网络设备发送第三消息至第三网络设备。此时,未发生网络拥塞,第i个网络设备接收消息的平均时间由t
real2
降低至t
opt2

133.根据本公开的实施例,可以在无需网络全局信息的条件下,避免指定网络设备发送消息导致的网络拥塞,从而降低接收消息的平均时间。
134.图6示出根据本公开实施例的消息传输装置的结构框图。
135.如图6所示,消息传输装置600包括:第一消息元信息发送模块601、第一消息发送模块602。
136.第一消息元信息发送模块601,用于向接收方发送第一消息的元信息;第一消息发送模块602,用于响应于从接收方接收到第一通知,向接收方发送第一消息,其中,接收方响应于接收到第一消息的元信息,根据接收方的指定网络设备上正在接收的消息数量,确定是否通过指定网络设备接收第一消息,如果确定通过指定网络设备接收第一消息,则发送第一通知,其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
137.根据本公开的实施例,发送方通过第一消息的元消息和第一通知控制第一消息的发送过程,从而避免在指定网络设备处形成网络拥塞,在无需全局信息的条件下提高网络传输速率,降低消息传输时间。
138.在本公开的实施例中,向接收方发送第一消息,包括:将第一消息拆分成p个部分发送到接收方,其中,第一消息的第p个部分被设置为使得指定网络设备在接收完第p个部分之后,在预设时间段内接收到第二消息,p≥2。
139.根据本公开的实施例,可以使得指定网络设备在接收完第一消息的较短时间内接收到第二消息,从而减小接收第一消息和第二消息间的间隔,提高消息传输效率,节约消息传输时间。
140.本公开还公开了一种电子设备,图7示出根据本公开的实施例的电子设备的结构框图。
141.如图7所示,所述电子设备700包括处理器701和存储器702,其中,存储器702用于存储一条或多条设备指令,其中,所述一条或多条设备指令被所述处理器701执行以实现以
下步骤:接收第一消息的元信息;响应于接收到所述第一消息的元信息,根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息;如果确定通过所述指定网络设备接收所述第一消息,则发送第一通知,所述第一通知用于告知所述第一消息的发送方发送所述第一消息。
142.在本公开的实施例中,所述网络设备包括以下任意一种:网卡、交换机、路由器;所述根据指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,包括:如果所述指定网络设备上正在接收的消息数量小于所述指定网络设备的并发接收阈值,则确定通过所述指定网络设备接收所述第一消息,否则不通过所述指定网络设备接收所述第一消息,其中,所述并发接收阈值为预先设置的所述指定网络设备同时接收的消息数量阈值。
143.在本公开的实施例中,所述第一消息被拆分为p个部分发送到所述指定网络设备,p≥2,所述方法还包括:在通过所述指定网络设备接收完所述第一消息的第p

1个部分之后且在接收到所述第一消息的第p个部分之前,发送第二通知,所述第二通知用于告知第二消息的发送方发送所述第二消息。
144.在本公开的实施例中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收到所述第二消息。
145.在本公开的实施例中,所述一条或多条设备指令还被所述处理器701执行以实现以下步骤:接收所述第二消息的元信息,其中,在接收到所述第二消息的元信息时,所述指定网络设备正在接收的消息数量不小于所述并发接收阈值。
146.在本公开的实施例中,所述一条或多条设备指令还被所述处理器701执行以实现以下步骤:获取所述指定网络设备上正在发送的消息数量;根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息。
147.在本公开的实施例中,所述根据所述指定网络设备上正在发送的消息数量,确定是否通过所述指定网络设备发送第三消息,包括:如果所述指定网络设备上正在发送的消息数量小于所述指定网络设备的并发发送阈值,则确定通过所述指定网络设备发送所述第三消息,其中,所述并发发送阈值为预先设置的所述指定网络设备同时发送的消息数量阈值。
148.在本公开的实施例中,存储器702还用于存储一条或多条设备指令,其中,所述一条或多条设备指令被所述处理器701执行以实现以下步骤:向接收方发送第一消息的元信息;响应于从接收方接收到第一通知,向所述接收方发送所述第一消息,其中,所述接
收方响应于接收到所述第一消息的元信息,根据所述接收方的指定网络设备上正在接收的消息数量,确定是否通过所述指定网络设备接收所述第一消息,如果确定通过所述指定网络设备接收所述第一消息,则发送所述第一通知,其中,所述正在接收的消息,是指已经允许发送方向所述指定网络设备发送而所述指定网络设备尚未接收完毕的消息。
149.在本公开的实施例中,所述向所述接收方发送所述第一消息,包括:将所述第一消息拆分成p个部分发送到所述接收方,其中,所述第一消息的第p个部分被设置为使得所述指定网络设备在接收完所述第p个部分之后,在预设时间段内接收到第二消息,p≥2。
150.图8示出适于用来实现根据本公开实施例的方法的设备系统的结构示意图。
151.如图8所示,设备系统800包括处理单元801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行上述实施例中的各种处理。在ram 803中,还存储有系统800操作所需的各种程序和数据。处理单元 801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
152.以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的设备程序根据需要被安装入存储部分808。其中,所述处理单元801可实现为cpu、gpu、tpu、fpga、npu等处理单元。
153.特别地,根据本公开的实施例,上文描述的方法可以被实现为设备软件程序。例如,本公开的实施例包括一种设备程序产品,其包括设备指令,该设备指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该设备程序产品可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
154.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和设备程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与设备指令的组合来实现。
155.描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
156.作为另一方面,本公开还提供了一种设备可读存储介质,该设备可读存储介质可以是上述实施例中电子设备或设备系统中所包含的设备可读存储介质;也可以是单独存
在,未装配入设备中的设备可读存储介质。设备可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
157.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献