技术领域
[0001] 本发明涉及即时数据广播方法技术领域,具体涉及一种基于动态调整发送速率的即时数据广播方法。
相关背景技术
[0002] 随着无线网络的普及和应用,即时数据广播在无线环境中变得越来越重要。即时数据广播是指在实时性要求高的场景下,将数据快速传输给多个接收端的过程。例如,实时共享桌面演示、多媒体直播和实时数据同步等应用场景都需要高效的即时数据广播方法。
[0003] 传统的文件分发方法包括通过TCP单播发送和通过UDP组播发送。在TCP单播发送方法中,发送主机将文件循环通过TCP协议发送给每个接收主机。这种方法的优点是简单易实现,但它的缺点也很明显。首先,由于需要多次发送,增加了传输时间。其次,当接收主机数量较多时,发送主机的带宽和处理能力可能成为瓶颈,导致传输效率下降。此外,TCP协议本身对可靠性的要求较高,可能会导致传输失败或需要进行重传,进一步增加了传输时间和带宽消耗。在UDP组播发送方法中,发送主机使用UDP协议将文件一次性发送给多个接收主机。相比于TCP单播发送,UDP组播发送具有较低的传输时间和带宽消耗。然而,UDP组播发送也存在一些缺点。首先,UDP协议本身不提供可靠性保证,无法保证数据的完整性和可靠性。其次,组播传输带宽有限,特别是在无线网络环境下,组播传输带宽更加有限,无法满足高速率数据传输的需求。
[0004] 综上所述,传统的文件分发方法依旧存在传输效率低下、可靠性差等问题。
[0005] 基于此,本发明设计了一种基于动态调整发送速率的即时数据广播方法以解决上述问题。
具体实施方式
[0041] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 下面结合实施例对本发明作进一步的描述。
[0043] 实施例1
[0044] 本实施例提供了一种基于动态调整发送速率的即时数据广播方法,包括以下步骤:
[0045] 一、数据分割:假设待传输的文件F的大小为S字节,将其分成k个传输任务单元Ci;每个任务单元Ci包含n个数据块,每个数据块的大小为B字节;因此,每个任务单元Ci的大小为n*B字节。
[0046] 二、里德所罗门编码:对于每个任务单元Ci,使用里德所罗门编码进行编码;假设需要实现r倍冗余度,即每个任务单元Ci生成r个冗余编码块;因此,每个任务单元Ci的编码后的数据块数量为n+r。
[0047] 里德所罗门编码是一种常用的纠错编码方式,可以有效地检测和纠正数据中的错误。对于任务单元Ci,使用里德所罗门编码进行编码的过程如下:
[0048] 2.1、生成系数域:首先,选择一个合适的有限域GF(2^m),其中m是整数,用于定义有限域上的运算;通常选择m=8,即GF(2^8),这样一个有限域包含2^8=256个元素;
[0049] 2.2、构造生成多项式:对于所需的冗余度r,选择一个度为r的生成多项式g(x);
[0050] 生成多项式g(x)的选择取决于所需的冗余度r。通常情况下,生成多项式g(x)是预先设计好的,并且在实际应用中经过广泛测试和验证。
[0051] 以下是一些常用的生成多项式示例:
[0052] 2.2.1、一阶原始多项式:g(x)=x+c;
[0053] 其中c是一个非零常数。例如,当r=2时,可以选择g(x)=x+1。
[0054] 2.2.2、二阶原始多项式:g(x)=x2+c1x+c0;
[0055] 其中c1和c0是非零常数。例如,当r=3时,可以选择g(x)=x2+x+1。
[0056] 2.2.3、伽罗瓦域上的最小多项式:在伽罗瓦域上,生成多项式可以选择为最小多项式。
[0057] 例如,在GF(2^8)上,可以选择最小多项式为g(x)=x8+x4+x3+x2+1。
[0058] 2.3.4其他设计的生成多项式:在某些特定的应用场景下,可能会根据具体的需求设计定制的生成多项式。
[0059] 2.3、将数据编码为多项式:将任务单元Ci看作一个由k个系数表示的多项式f(x),其中k表示任务单元Ci中包含的数据元素的个数;k的单位取决于具体情况,例如:如果Ci表示一个字节块,那么k就是字节数。
[0060] 举例:假设Ci表示一个由8个字节组成的字节块,那么k就是8。
[0061] 2.4、对多项式进行编码:使用以下公式计算编码后的多项式:c(x)=f(x)*x^r+余数(f(x)*x^r/g(x));
[0062] 其中,c(x)是编码后的多项式,包含原始数据和r个冗余系数;x是一个变量,它表示多项式的项数。
[0063] 2.5、生成编码块:将编码后的多项式c(x)分成n+r个系数,每个系数对应一个在有限域GF(2^m)上的元素;这n+r元素就是编码后的数据块;
[0064] 因此,对于任务单元Ci,经过里德所罗门编码后,数据被分割成n+r个编码块。其中,前n个块为原始数据块,后r个块为冗余编码块。通过这些冗余块,可以检测并纠正编码块在传输过程中发生的错误。
[0065] 三、数据发送:将编码后的数据块分别通过单播和组播方式发送,以速率R_unicast发送原始数据块,以速率R_multicast发送冗余编码块;
[0066] 四、数据接收和重组:接收端对接收到的数据块进行重组;假设接收端正确接收到了m个数据块;
[0067] 当m>=n时,则可以通过里德所罗门编码重建数据;也就是说,只要丢失的数据块少于r个,均可以通过算法纠正,还原出原始数据;
[0068] 当接m
[0069] 五、动态调整组播及单播数据发送速率:发送主机根据当前网络环境的最大组播带宽BW_multicast、最大单播带宽BW_unicast和接收端个数进行动态调整组播和单播数据发送速率。
[0070] 六、文件分发完成:当所有传输任务单元的数据块都被接收并重组后,文件分发完成;接收端可以验证文件的完整性,并进行后续的处理或使用。
[0071] 本发明具有以下技术效果:
[0072] 高效利用有限的组播传输带宽:通过动态调整数据发送速率和利用里德所罗门编码,最大程度地利用有限的组播传输带宽,提高数据传输效率。
[0073] 解决实时性要求高的问题:通过动态调整组播与单播数据发送速率和优化传输算法,实现快速的即时数据广播,满足实时共享桌面演示等应用场景的需求。
[0074] 提高数据传输的可靠性:利用里德所罗门编码的纠错和重传机制,提高数据传输的可靠性,减少传输错误和丢失。
[0075] 实施例2
[0076] 在实施例1的基础上,所述步骤五中,动态调整组播和单播数据发送速率,包括以下步骤:
[0077] (1)计算组播发送速率Rm:
[0078] Rm=min(Bm/(N+r),Bm)
[0079] 其中,Bm是当前网络环境下的最大组播带宽;N是发送任务的接收端个数;r是冗余编码块的数量,可以根据编码方案确定;Rm是组播发送速率;
[0080] (2)计算单播发送速率Ru:
[0081] Ru=min(Bu/N,Bm/(N+r))
[0082] 其中,Bu是当前网络环境下的最大单播带宽;Ru是单播发送速率;
[0083] 其中,单播发送速率Ru不超过最大单播带宽Bu,同时也不超过组播发送速率Rm;
[0084] (3)动态调整发送速率:根据实时的网络带宽情况和接收端的处理能力,采用自适应算法或反馈控制算法动态调整组播发送速率Rm和单播发送速率Ru。
[0085] 具体的方法为:
[0086] 3.1实时监测网络带宽:使用网络接口统计数据或者使用第三方网络监测工具实时监测网络带宽;
[0087] 3.2评估接收端处理能力:使用接收端CPU利用率、接收端内存使用率和或接收端网络吞吐量评估接收端处理能力;
[0088] 3.3基于网络带宽和接收端处理能力的实时监测结果,使用自适应算法或者反馈控制算法动态调整Rm和Ru。
[0089] 常用的自适应算法包括:TCP拥塞控制算法、基于丢包率的速率控制算法、基于公平性的速率控制算法:
[0090] 常用的反馈控制算法包括:基于延时的反馈控制算法、基于丢包率的反馈控制算法、基于拥塞信息的反馈控制算法。
[0091] (4)采用调整后的发送速率进行数据的发送:使用单播方式将原始数据块发送给接收端,发送速率为Ru;使用组播方式将冗余编码块发送给所有接收端,发送速率为Rm。
[0092] 实施例3
[0093] 本发明可以应用在以下场景:
[0094] (1)实时共享桌面演示:在远程会议或远程教育中,将演示内容实时传输给多个参与者,实现实时的桌面共享和互动。
[0095] (2)多媒体直播:在音视频直播场景中,将实时的音视频数据快速传输给多个观众,实现高质量的多媒体直播体验。
[0096] (3)实时数据同步:在分布式系统中,将实时产生的数据快速同步给多个节点,实现数据的一致性和实时性。
[0097] 以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。