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

数据传输方法和相关设备与流程

2022-06-05 20:36:31 来源:中国专利 TAG:


1.本技术涉及数据传输技术领域,尤其涉及一种数据传输方法和相关设备。


背景技术:

2.在数据传输场景中,发送端可以采用单播或者组播方式向接收端发送数据。其中,在单播方式中,如果接收端的数量为n个,则发送端需要对数据复制n份,之后将n份数据分别发送给n个接收端。此种方式对发送端带宽要求较高。而且,当需要发送的数据量较大时,还要求发送端具有较高的处理性能,否则可能会导致数据收发延迟。在组播方式中,n个接收端组成一个组播组。发送端只需向组播组发送一份数据,组播组中的各接收端便可以接收到数据。但是,如果组播组中的一个或多个电子设备对数据接收失败,发送端需要以单播的方式重新发送接收失败的数据。当对数据接收失败的电子设备数量较多时,仍然会存在单播方式中对带宽和处理性能要求高的弊端。


技术实现要素:

3.本技术实施例提供一种数据传输方法和相关设备,可以在重发数据时降低对发送端带宽和处理性能的要求。
4.第一方面,本技术实施例提供了一种数据传输方法,所述方法应用于发送端,包括:以组播方式向第一组播组发送第一数据包,所述第一组播组包含多个接收端;确定对所述第一数据包接收失败的接收端个数n;如果所述n小于第一阈值,则向对所述第一数据包接收失败的接收端发送第一接收端的信息,所述第一接收端为对所述第一数据包接收成功的接收端。例如,发送端可以将第一接收端的信息发送给第二接收端,第二接收端为对第一数据包接收失败的接收端。第二接收端获取到第一接收端的信息之后,第二接收端可以从第一接收端重新获取第一数据包。可选的,第二接收端的数量可以为多个。各个第二接收端接收到的可以为同一个第一接收端的信息。可选的,各个第二接收端接收到的也可以为不同的第一接收端的信息。即,各个第二接收端可以从不同的第一接收端重新获取第一数据包。在一些实施例中,如果对第一数据包接收失败的接收端个数n大于或者等于所述第一阈值,则发送端可以采用组播方式重新向所述第一组播组发送所述第一数据包。
5.本技术实施例上述方案在以组播方式传输数据时,发送端可以根据对第一数据包接收失败的接收端个数确定数据重发策略。如果对第一数据包接收失败的接收端个数未超过第一阈值,则可以通过对第一数据包接收成功的接收端重发第一数据包。由此可以将发送端的重发压力分散到其它电子设备,降低对发送端带宽和处理性能的要求。
6.结合第一方面,在第一方面的某些实现方式中,发送端确定对所述第一数据包接收失败的接收端个数n的方式包括:发送端接收所述多个接收端中的至少一个接收端发送的第一消息,所述第一消息包含接收失败的数据包标识;发送端根据各个所述第一消息包含的接收失败的数据包标识,确定对所述第一数据包接收失败的接收端个数n。本技术实施例中,各个接收端接收发送端以组播方式发送的第一数据包。如果接收端对第一数据包接
收失败,则接收端可以向发送端发送第一消息,第一消息包含接收失败的数据包标识。例如,对第一数据包接收失败,则第一消息包含第一数据包的标识。如此,发送端可以根据各个第一消息包含的接收失败的数据包标识,确定对第一数据包接收失败的接收端个数n。
7.结合第一方面,在第一方面的某些实现方式中,发送端以组播方式发送多个数据包。第一组播组中的各个接收端接收该多个数据包。如果接收端对其中一个数据包接收失败,则可以向发送端发送第一消息,第一消息包含接收失败的数据包标识。发送端可以根据各个所述第一消息包含的接收失败的数据包标识,建立重发数据表;所述重发数据表包含接收失败的各个数据包标识,每个所述数据包标识与对相应数据包接收失败的接收端标识关联;发送端根据所述重发数据表,可以确定对所述第一数据包接收失败的接收端个数n。其中,第一数据包可以为上述多个数据包中的任意一个数据包。例如,发送端发送数据包1、数据包2和数据包3。各个接收端向发送端反馈第一消息,第一消息包含接收失败的数据包标识。例如,接收端1对数据包2接收失败,接收端2对数据包1接收失败,接收端3对数据包1和3接收失败。则发送端可以建立的重发数据表可以包括:数据包1以及对数据包1接收失败的接收端标识,数据包2以及对数据包2接收失败的接收端标识,数据包3以及对数据包3接收失败的接收端标识。根据该重发数据表,发送端可以确定对任意一个数据包接收失败的接收端个数。
8.结合第一方面,在第一方面的某些实现方式中,所述第一阈值根据所述第一组播组包含的接收端个数确定。在一个示例中,第一阈值可以等于接收端个数与第一比例系数的乘积。其中,第一比例系数可以根据实际需要设置,例如设置为0.5、0.6或者0.7等。
9.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:确定对所述第一数据包接收成功的接收端;从对所述第一数据包接收成功的接收端中确定所述第一接收端。可选的,发送端可以根据对第一数据包接收失败的接收端,确定出对第一数据包接收成功的接收端。可选的,对第一数据包接收成功的接收端也可以向发送端发送反馈消息,发送端根据该反馈消息确定对第一数据包接收成功的接收端。
10.结合第一方面,在第一方面的某些实现方式中,对所述第一数据包接收成功的接收端个数可以为多个;从对所述第一数据包接收成功的接收端中确定所述第一接收端,包括:获取对所述第一数据包接收成功的接收端的资源占用信息;根据所述资源占用信息,从对所述第一数据包接收成功的接收端中确定至少一个所述第一接收端。可选的,发送端可以从对第一数据包接收成功的接收端中随机选取至少一个作为第一接收端。可选的,发送端也可以根据资源占用信息选取第一接收端。例如,发送端可以选取资源占用情况最低且对第一数据包接收成功的接收端作为第一接收端。
11.结合第一方面,在第一方面的某些实现方式中,以组播方式向第一组播组发送第一数据包,包括:以组播方式向第一组播组发送具有连续标识的多个数据包,所述具有连续标识的多个数据包包含所述第一数据包。
12.第二方面,本技术实施例提供了一种数据传输方法,所述方法应用于接收端,所述接收端加入第一组播组,包括:接收发送端以组播方式向所述第一组播组发送的第一数据包;如果对所述第一数据包接收失败,则向所述发送端发送第一消息,所述第一消息包含第一数据包标识;接收所述发送端发送的第一接收端的信息,所述第一接收端为对所述第一数据包接收成功的接收端;根据所述第一接收端的信息,向所述第一接收端发送请求消息,
所述请求消息用于请求所述第一接收端发送所述第一数据包;接收所述第一接收端根据所述请求消息发送的第一数据包。
13.结合第二方面,在第二方面的某些实现方式中,确定对第一数据包接收失败,包括:接收发送端发送的具有连续标识的多个数据包;根据已经成功接收的数据包标识确定对第一数据包接收失败。
14.结合第二方面,在第二方面的某些实现方式中,所述发送端发送的为多个第一接收端的信息;根据所述第一接收端的信息,向所述第一接收端发送请求消息,包括:随机向所述多个第一接收端中的其中一个接收端发送所述请求消息;或者,从所述多个第一接收端中确定资源占用最低的第一接收端,向资源占用最低的所述第一接收端发送所述请求消息。
15.第三方面,本技术实施例提供了一种电子设备,所述电子设备作为发送端,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述电子设备执行以下步骤:以组播方式向第一组播组发送第一数据包,所述第一组播组包含多个接收端;确定对所述第一数据包接收失败的接收端个数n;如果所述n小于第一阈值,则向对所述第一数据包接收失败的接收端发送第一接收端的信息,所述第一接收端为对所述第一数据包接收成功的接收端。
16.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:接收所述多个接收端中的至少一个接收端发送的第一消息,所述第一消息包含接收失败的数据包标识;根据各个所述第一消息包含的接收失败的数据包标识,确定对所述第一数据包接收失败的接收端个数n。
17.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:根据各个所述第一消息包含的接收失败的数据包标识,建立重发数据表;所述重发数据表包含接收失败的各个数据包标识,每个所述数据包标识与对相应数据包接收失败的接收端标识关联;根据所述重发数据表,确定对所述第一数据包接收失败的接收端个数n。
18.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:如果所述n大于或者等于所述第一阈值,则以组播方式重新向所述第一组播组发送所述第一数据包。
19.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:确定对所述第一数据包接收成功的接收端;从对所述第一数据包接收成功的接收端中确定所述第一接收端。
20.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:对所述第一数据包接收成功的接收端个数为多个;获取对所述第一数据包接收成功的接收端的资源占用信息;根据所述资源占用信息,从对所述第一数据包接收成功的接收端中确定至少一个所述第一接收端。
21.结合第三方面,在第三方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:以组播方式向第一组播组发送具有连续标识的多个数据包,所述具有连续标识的多个数据包包含所述第一数据包。
22.第四方面,本技术实施例提供了一种电子设备,所述电子设备作为接收端;所述电子设备加入第一组播组,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述电子设备执行以下步骤:接收发送端以组播方式向所述第一组播组发送的第一数据包;如果对所述第一数据包接收失败,则向所述发送端发送第一消息,所述第一消息包含第一数据包标识;接收所述发送端发送的第一接收端的信息,所述第一接收端为对所述第一数据包接收成功的接收端;根据所述第一接收端的信息,向所述第一接收端发送请求消息,所述请求消息用于请求所述第一接收端发送所述第一数据包;接收所述第一接收端根据所述请求消息发送的第一数据包。
23.结合第四方面,在第四方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:接收发送端发送的具有连续标识的多个数据包;根据已经成功接收的数据包标识确定对第一数据包接收失败。
24.结合第四方面,在第四方面的某些实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:所述发送端发送的为多个第一接收端的信息;随机向所述多个第一接收端中的其中一个接收端发送所述请求消息;或者,从所述多个第一接收端中确定资源占用最低的第一接收端,向资源占用最低的所述第一接收端发送所述请求消息。
25.第五方面,本技术实施例提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行上述第一方面或者第二方面任一项所述的数据传输方法。
26.综上,本技术实施例上述方案在以组播方式传输数据时,发送端可以根据对第一数据包接收失败的接收端个数确定数据重发策略。如果对第一数据包接收失败的接收端个数未超过第一阈值,则可以通过对第一数据包接收成功的接收端重发第一数据包。由此可以将发送端的重发压力分散到其它电子设备,降低对发送端带宽和处理性能的要求。
附图说明
27.图1是本技术实施例提供的一种组播系统的示意图;
28.图2是本技术实施例提供的一种电子设备的结构示意图;
29.图3是本技术实施例提供的一种数据传输方法的流程图;
30.图4是本技术实施例提供的另一种组播系统的示意图;
31.图5是本技术实施例提供的另一种数据传输方法的流程图;
32.图6是本技术实施例提供的一种发送端的结构示意图;
33.图7是本技术实施例提供的一种接收端的结构示意图。
具体实施方式
34.下面将结合附图,对本技术中的技术方案进行描述。
35.本技术实施例提供了一种数据传输方法。该数据传输方法应用于组播场景。具体的,发送端可以根据对数据接收失败的接收端的个数确定重发策略。如果数据接收失败的接收端个数超过一定阈值,则发送端可以采用组播方式重新发送该数据。如果数据接收失败的接收端个数未超过设定阈值,则发送端可以通过对数据接收成功的接收端重发数据。
由此,可以将发送端的重发压力分散到其它电子设备,降低对发送端带宽和处理性能的要求。
36.图1是本技术实施例提供的一种组播系统的示意图。如图1所示,所述组播系统包括发送端和多个接收端。其中,多个接收端例如可以包含接收端1、接收端2
……
接收端q。q大于2。发送端可以基于组播协议建立组播组。接收端1、接收端2
……
接收端q可以加入发送端建立的组播组。
37.图1所示系统中的发送端或者接收端可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等电子设备上,本技术实施例对发送端或者接收端的具体类型不作任何限制。
38.图2是本技术实施例提供的一种电子设备的结构示意图。图2所示的电子设备可以作为图1所示系统中的发送端或者接收端。如图2所示,电子设备100包括处理器110和收发器120。可选的,该电子设备100还可以包括存储器130。其中,处理器110、收发器120和存储器130之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器130用于存储计算机程序,该处理器110用于从该存储器130中调用并运行该计算机程序。
39.可选的,电子设备100还可以包括天线140,用于将收发器120输出的无线信号发送出去。在本技术实施例中,收发器120可以实现移动通信功能和/或实现无线通信功能。可选的,收发器120可以包含近场通信(near field communication,nfc)模块,用于读取其它电子设备的nfc标签信息。可选的,收发器120可以包含蓝牙模块和无线保真(wireless-fidelity,wi-fi)模块,分别用于实现蓝牙通信功能和接入wi-fi网络的功能。
40.上述处理器110可以和存储器130可以合成一个处理装置,更常见的是彼此独立的部件,处理器110用于执行存储器130中存储的程序代码来实现上述功能。具体实现时,该存储器130也可以集成在处理器110中,或者,独立于处理器110。
41.除此之外,为了使得电子设备100的功能更加完善,该电子设备100还可以包括输入单元160、显示单元170、音频电路180、摄像头190和传感器101等中的一个或多个,所述音频电路还可以包括扬声器182、麦克风184等。其中,显示单元170可以包括显示屏。
42.可选的,上述电子设备100还可以包括电源150,用于给电子设备中的各种器件或电路提供电源。
43.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合实现。
44.图3是本技术实施例提供的一种数据传输方法的流程图。图3所示方法应用于图1所示的组播系统中。发送端建立第一组播组。接收端1
……
接收端q加入第一组播组。发送端可以采用组播方式向第一组播组发送数据包。当接收端对数据包接收失败时,发送端可以根据对数据包接收失败的接收端个数确定数据包重发策略。具体步骤参见图3,包括:
45.201,发送端以组播方式向第一组播组发送数据包。具体的,发送端建立第一组播组。第一组播组对应第一组播地址。发送端以第一组播地址为目的地址发送数据包。第一组
播组中的各接收端(即接收端1
……
接收端q)监听数据包。当监听到的数据包的目的地址为第一组播地址时,接收端接收相应的数据包。接收端确定有数据包接收失败时,接收端向发送端发送第一消息。第一消息包含接收失败的数据包标识。可选的,接收端可以根据所接收到的数据包标识确定接收失败的数据包。在一些实施例中,发送端向第一组播组发送具有连续标识的数据包。接收端根据接收到的数据包标识的连续性确定接收失败的数据包。例如,发送端以组播方式向第一组播组发送具有连续编号的数据包1、数据包2
……
数据包x。如果接收端1成功接收到数据包1、数据包3
……
数据包x,则接收端1可以根据成功接收到的数据包编号确定数据包2接收失败。接收端1向发送端发送第一消息,第一消息包含数据包2的编号信息。同理,接收端2
……
接收q可以采用相同的方式确定接收失败的数据包,并且向发送端反馈接收失败的数据包标识。
46.202,发送端接收第一消息;第一消息包含接收失败的数据包标识。发送端根据第一消息包含的数据包标识,可以确定对各个数据包接收失败的接收端个数。例如,在步骤201给出的示例中,发送端根据接收端1发送的数据包2的编号信息可以确定接收端1对数据包2接收失败。如果除了接收端1对数据包接收失败之外,接收端3和接收端5对数据包2也接收失败。则发送端可以确定对数据包2接收失败的接收端个数为3,分别为接收端1、接收端3和接收端5。
47.203,发送端确定对第一数据包接收失败的接收端个数n。其中,第一数据包可以是发送端向第一组播组发送的各个数据包中的任意一个数据包。发送端接收到一个或者多个接收端发送的第一消息之后,发送端根据接收到的第一消息确定对第一数据包接收失败的接收端个数n。
48.在一些实施例中,发送端可以根据接收失败的数据包标识,建立重发数据表。重发数据表包含接收失败的各个数据包标识。每个数据包标识与对相应数据包接收失败的设备标识关联。发送端可以根据重发数据表确定对第一数据包接收失败的接收端个数。
49.在一个具体示例中,发送端建立的重发数据表可以如表1所示。在表1中,数据包标识用于标识接收失败的数据包,其中,接收失败的数据包也即需要重发的数据包。设备标识用于标识对数据包接收失败的接收端,其中,对数据包接收失败的接收端也即需要重新获取数据包的接收端。参见表1,表1第1行表示:对数据包1接收失败的设备包括:接收端2和接收端4。表1第2行表示:对数据包2接收失败的设备包括:接收端1、接收端3和接收端5。以此类推,对表1中其它行的含义不再一一列举。由此,发送端可以根据表1确定接收失败的数据包以及对相应数据包接收失败的设备。
[0050][0051]
表1
[0052]
204,发送端确定n是否小于第一阈值。即,发送端确定对第一数据包接收失败的接收端个数n是否小于第一阈值。在一些实施例中,第一阈值可以根据第一组播组包含的接收
端个数确定。在一个示例中,第一阈值可以等于接收端个数与第一比例系数的乘积。其中,第一比例系数可以根据实际需要设置,例如设置为0.5、0.6或者0.7等,此处不再一一举例。可选的,如果n小于第一阈值,发送端执行步骤206;如果n不小于第一阈值,发送端执行205。
[0053]
205,发送端以组播方式向第一组播组重新发送第一数据包。具体的,当第一组播组对第一数据包接收失败的接收端个数等于或者大于第一阈值时,发送端采用组播方式重发第一数据包。即,第一组播组中的较多接收端均对第一数据包接收失败时,发送端以组播方式重新发送第一数据包。发送端以组播方式重新发送第一数据包时,只需发送一份数据,降低了对发送端重发第一数据包时的带宽要求。仍以表1为例,假设第一组播组包含5个接收端,第一阈值为3。对数据包2接收失败的接收端个数为3个,等于第一阈值,则发送端以组播方式向第一组播组重新发送第一数据包。
[0054]
206,发送端从对第一数据包接收成功的接收端中确定数据重发端。在一些实施例中,如果对第一数据包接收成功的接收端的数量为一个,则发送端将该接收端确定为数据重发端。在一些实施例中,如果对第一数据包接收成功的接收端的数量为多个,则发送端可以从该多个接收端中确定一个或者多个作为数据重发端。
[0055]
在一些实施例中,发送端可以从对第一数据包接收成功的多个接收端中随机确定一个作为数据重发端。可选的,发送端可以为对第一数据包接收失败的接收端分别确定一个数据重发端;各个对第一数据包接收失败的接收端所对应的数据重发端均不相同。
[0056]
在一个具体示例中,第一组播组包含接收端1、接收端2
……
和接收端5,共计5个接收端。第一组播组中的接收端2和接收端4对数据包1接收失败。则,发送端可以根据对数据包接收失败的接收端信息,确定对数据包1接收成功的接收端包括接收端1、接收端3和接收端5。发送端根据第一组播组包含的接收端总个数,确定对数据包1接收失败的接收端个数未超过第一阈值(假设第一阈值为3)。发送端从接收端1、接收端3和接收端5中确定数据重发端。可选的,发送端可以从接收端1、接收端3和接收端5中随机选择一个接收端作为数据重发端。例如,发送端选择接收端1作为数据重发端。发送端将接收端1的信息,例如可以将接收端1的互联网协议地址(internet protocol address,ip)地址发送给接收端2和接收端4。接收端2和接收端4根据接收端1的ip地址,从接收端1重新获取数据包1。可选的,发送端还可以为接收端2和接收端4分别分配一个数据重发端。例如,发送端向接收端2发送接收端1的信息,向接收端4发送接收端3的信息。则,接收端2根据接收端1的信息,从接收端1重新获取数据包1。接收端4根据接收端3的信息,从接收端4重新获取数据包1。
[0057]
在一些实施例中,发送端可以获取对第一数据包接收成功的各个接收端的资源占用信息。发送端根据资源占用信息,从对第一数据包接收成功的各个接收端中确定数据重发端。
[0058]
在一些实施例中,发送端可以将对第一数据包接收成功的各个接收端作为第一列表发送给对第一数据包接收失败的接收端。对第一数据包接收失败的接收端根据第一列表确定选择一个接收端作为数据重发端。对第一数据包接收失败的接收端从数据重发端重新获取第一数据包。可选的,对第一数据包接收失败的接收端可以随机从第一列表中选择一个接收端作为数据重发端。可选的,第一列表还包含各个接收端的资源占用信息。对第一数据包接收失败的接收端根据第一列表中各个接收端的资源占用信息,确定数据重发端。可选的,对第一数据包接收失败的接收端可以将第一列表中资源占用最低的接收端确定为数
据重发端。
[0059]
仍以对表1中的数据包1重发为例,发送端可以根据接收端1、接收端3和接收端5的资源占用信息确定数据重发端。
[0060]
在一些实施例中,资源占用信息例如可以包含带宽利用率、cpu利用率和io利用率等。
[0061]
设备标识带宽利用率cpu利用率io利用率接收端190%8590%接收端380%70%90%接收端570%60%50%
[0062]
表2
[0063]
如表2所示,接收端1、接收端3和接收端5的资源占用信息包含带宽利用率、cpu利用率和io利用率。发送端可以根据带宽利用率、cpu利用率和io利用率计算接收端1、接收端3和接收端5的资源综合利用率。可选的,发送端可以根据公式k=(k1a k2b k3c)/3计算资源综合利用率。其中,a表示带宽利用率,b表示cpu利用率,c表示io接口利用率。k1为带宽利用率的权重值,k2为cpu利用率的权重值,k3为io接口利用率的权重值。
[0064]
发送端可以根据计算出的资源综合利用率,将资源综合利用率最低的接收端确定为数据重发端。例如,发送端确定接收端5作为数据重发端。
[0065]
207,发送端向对第一数据包接收失败的接收端发送数据重发端的信息。在一个示例中,发送确定接收端5为用于对数据包2进行重发的数据重发端。发送端将接收端5的信息,如接收端5的ip地址发送给对第一数据包接收失败的接收端。
[0066]
208,对第一数据包接收失败的接收端从数据重发端重新获取第一数据包。可选的,对第一数据包接收失败的接收端获取数据重发端的信息。对第一数据包接收失败的接收端根据数据重发端的信息,向数据重发端发送请求消息。该请求消息用于请求数据重发端发送第一数据包。对第一数据包接收失败的接收端接收数据重发端发送的第一数据包。在一些实施例中,对第一数据包接收失败的接收端获取到的数据重发端信息为多个接收端的信息。则,对第一数据包接收失败的接收端可以随机向所述多个接收端中的一个发送请求消息,以获取第一数据包。在一些实施例中,对第一数据包接收失败的接收端可以获取所述多个接收端的资源占用信息。对第一数据包接收失败的接收端可以从所述多个接收端确定资源占用最低的一个,并向该资源占用最低的接收端发送请求消息。
[0067]
本技术实施例的组播方案中,当对第一数据包接收失败的接收端个数超过第一阈值时,可以采用组播方式重新发送数据包,以降低对发送端单播重发带来的带宽和处理性能的要求。当对第一数据包接收失败的接收端个数未超过第一阈值时,可以通过对第一数据包接收成功的接收端重发第一数据包,从而可以分散数据重发的压力。
[0068]
图4是本技术实施例提供的另一种组播系统的示意图。如图4所示,该系统包括:主控音箱、左声道音箱、右声道音箱、左环绕声道音箱和右环绕声道音箱。主控音箱建立组播组。左声道音箱、右声道音箱、左环绕声道音箱和右环绕声道音箱包含于该组播组。其中,主控音箱建立该组播组包括:主控音箱基于传输控制协议(transmission control protocol,tcp)与左声道音箱、右声道音箱、左环绕声道音箱和右环绕声道音箱建立控制通道。其中,在建立控制通道的过程中,主控音箱可以确定各个音箱的ip地址。在一个示例中,
左声道音箱、右声道音箱、左环绕声道音箱和右环绕声道音箱的ip地址分别为ip1、ip2、ip3和ip4。之后,主控音箱定义组播组名称并启用组播模式。为便于描述,主控音箱定义的组播组名称为第一组播组。主控音箱通过控制通道将第一组播组的信息发送给各个音箱。各个音箱加入第一组播组。主控音箱基于本技术实施例方法向第一组播组的各音箱发送音频数据包的过程参见图5,包括:
[0069]
301,主控音箱向第一组播组组播音频数据包。可选的,主控音箱组播的音频数据包具有连续编号。第一组播组中的各音箱接收主控音箱组播的音频数据包。各音箱根据成功接收的音频数据包的编号确定丢失的音频数据包编号,并且将丢失的音频数据包编号发送给主控音箱。
[0070]
302,主控音箱接收丢失的音频数据包编号。可选的,第一组播组中的音箱可以通过控制通道向主控音箱发送丢失的音频数据包编号。
[0071]
303,主控音箱建立重发数据表。可选的,主控音箱接收到各音箱发送的丢失音频数据包编号之后,建立重发数据表。如表3所示,重发数据表包含:丢失音频数据包编号和丢失对应音频数据包的音箱ip。其中,丢失音频数据包编号即为需要重发的数据包的编号。丢失对应音频数据包的音箱ip,即为需要重新获取对应数据包的音箱ip。
[0072][0073]
表3
[0074]
304,主控音箱根据丢失数据包编号关联的音箱个数确定重发策略。其中,如果丢失音频数据包x的音箱数量超过阈值时执行步骤305。如果丢失音频数据包的音箱数量未超过阈值,则执行步骤306-308。其中,丢失音频数据包x可以是第一组播组丢失的音频数据包中的任意一个。
[0075]
305,主控音箱组播丢失的音频数据包x。
[0076]
306,主控音箱根据重发数据表确定成功接收音频数据包x的音箱。主控音箱从成功接收音频数据包x的音箱中确定音箱m作为数据重发端。
[0077]
307,主控音箱向丢失音频数据包x的音箱发送音箱m的ip地址。
[0078]
308,丢失音频数据包的音箱从音箱m重新获取音频数据包x。
[0079]
本技术实施例基于组播方式传输音频数据,传输效率高,占用带宽小。进一步,当部分音频数据接收失败时,可以根据接收失败的音箱个数策略性选择组播或者分散点播方式重发音频数据,保证数据重发可靠性的同时,提升重发性能。
[0080]
可以理解的是,发送端或者接收端为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的步骤,本技术能够以硬件或者硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能。
[0081]
本实施例可以根据上述方法示例对发送端或者接收进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或者两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0082]
在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中涉及的发送端的一种可能的组成示意图,如图6所示,发送端可以包括:
[0083]
发送模块401,用于以组播方式向第一组播组发送第一数据包,第一组播组包含多个接收端;
[0084]
接收模块402,用于接收多个接收端中的至少一个接收端发送的第一消息,第一消息包含接收失败的数据包标识;
[0085]
确定模块403,用于根据各个第一消息包含的接收失败的数据包标识,确定对第一数据包接收失败的接收端个数n;
[0086]
发送模块401,还用于当所述n小于第一阈值时,向对所述第一数据包接收失败的接收端发送第一接收端的信息,第一接收端为对所述第一数据包接收成功的接收端。
[0087]
在一些实施例中,发送模块401,还用于当所述n大于或者等于所述第一阈值时,以组播方式重新向所述第一组播组发送所述第一数据包。
[0088]
在一些实施例中,所述第一阈值根据所述第一组播组包含的接收端个数确定。
[0089]
在一些实施例中,发送端还包括:建立模块404,用于根据所述接收失败的数据包标识,建立重发数据表;所述重发数据表包含接收失败的各个数据包标识,每个所述数据包标识与对相应数据包接收失败的接收端标识关联;
[0090]
确定模块403,具体用于根据所述重发数据表,确定对所述第一数据包接收失败的接收端个数n。
[0091]
在一些实施例中,确定模块403还用于根据所述接收失败的数据包标识,确定对所述第一数据包接收成功的接收端;从对所述第一数据包接收成功的接收端中确定所述第一接收端。
[0092]
在一些实施例中,对所述第一数据包接收成功的接收端个数为多个;确定模块403,具体用于通过接收模块获取对所述第一数据包接收成功的接收端的资源占用信息;根据所述资源占用信息,从对所述第一数据包接收成功的接收端中确定至少一个所述第一接收端。
[0093]
在一些实施例中,发送模块401,具体用于以组播方式向第一组播组发送具有连续标识的数据包。
[0094]
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中涉及的接收端的一种可能的组成示意图,如图7所示,接收端可以包括:
[0095]
接收模块501,用于接收发送端以组播方式向所述第一组播组发送的第一数据包;
[0096]
发送模块502,用于当对第一数据包接收失败时向所述发送端发送第一消息,所述第一消息包含接收失败的第一数据包标识;
[0097]
接收模块501,还用于接收第一接收端的信息,所述第一接收端为对第一数据包接收成功的接收端;
[0098]
发送模块502,还用于根据所述第一接收端的信息,向所述第一接收端发送请求消
息,所述请求消息用于请求所述第一接收端发送所述第一数据包;
[0099]
接收模块501,还用于接收所述第一接收端根据所述请求消息发送的第一数据包。
[0100]
在一些实施例中,发送端发送的数据包具有连续标识;
[0101]
在一些实施例中,电子设备还包括确定模块503,用于根据已经成功接收的数据包标识确定接收失败的数据包标识。
[0102]
在一些实施例中,所述第二消息包含多个第一接收端的信息;
[0103]
发送模块502,具体用于随机向所述多个第一接收端中的一个接收端发送所述请求消息;或者,
[0104]
确定模块503,还用于从所述多个第一接收端中确定资源占用最低的第一接收端;发送模块,具体用于向资源占用最低的所述第一接收端发送所述请求消息。
[0105]
应理解,这里的电子设备以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
[0106]
本技术还提供了一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现上述数据传输方法。
[0107]
本技术还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行如上述图3或图5所示的数据传输方法中的各个步骤。
[0108]
本技术还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机或任一至少一种处理器上运行时,使得计算机执行如图3或图5所示的数据传输方法中的各个步骤。
[0109]
本技术还提供一种芯片,包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行本技术提供的数据传输方法执行的相应操作和/或流程。
[0110]
可选地,该芯片还包括存储器,该存储器与该处理器通过电路或电线与存储器连接,处理器用于读取并执行该存储器中的计算机程序。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理。该通信接口可以是输入输出接口。
[0111]
存储器可以是只读存储器(read-only memory,rom)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,ram)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存
储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质等。
[0112]
本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0113]
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0114]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0115]
在本技术所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0116]
以上所述,仅为本技术的具体实施方式,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献