网络数据编码传输方法及装置与流程

文档序号:30136513发布日期:2022-05-21 01:33阅读:314来源:国知局
网络数据编码传输方法及装置与流程

1.本技术涉及通信技术领域,尤其涉及一种网络数据编码传输方法及装置。


背景技术:

2.现有的应用例如4k(分辨率为3840
×
2160像素)/8k(分辨率为7680
×
4320像素)视频、大数据分析等,其应用处理单元已经增加到2mb~64mb级别。一种包转发形式为,一个应用处理单元被切分成多个小包,网络对每个小包进行独立的转发。这样转发最终的结果就是,网络传输完一个应用的包,可能会调度另外一个应用的包来传输,不同应用的小包,在网络中交织传输。另一种块转发形式为,在网络上以应用处理单元为单位进行转发,具体通过块互联网协议地址(internet protocol,ip)转发,一个块对应一个完整的应用处理单元。转发完一个应用处理单元才会调度下一个应用处理单元,应用处理单元以线速在网络中转发,接收端收到的是完整的处理单元,收到即可处理,从而能提高应用的效率。
3.在块ip转发过程中,可能存在误码丢包的情况,误码的报文可以通过重传恢复,但是端到端重传会消耗至少一个往返时间(round-trip time,rtt),造成时间上的延迟。可以通过网络编码,在数据发送中加入冗余校验码来预防误码丢包。一旦数据报文丢失,可以通过携带的冗余码块将丢失的报文恢复出来。
4.由于块ip的应用场景是超高吞吐业务,通常选择异或编码方式实现丢失报文恢复。以这种方式编码的数据报文,能够防止单个报文丢失。一旦数据报文丢失,则可以通过接收到的冗余报文和其他数据报文,经过异或操作,得到丢失的数据报文。但是这种丢包恢复方式可能产生前向纠错(forward error correction,fec)失败,造成误码扩散,进一步造成连续报文丢失,导致丢失报文无法恢复,增加重传概率等问题。


技术实现要素:

5.本技术实施例提供了一种网络数据编码传输方法及装置,通过将一个编码窗口中的不相邻数据报文编码生成对应的校验报文,降低了连续数据报文丢失导致的数据报文重传概率,进而降低了数据传输时延。
6.第一方面,提供了一种网络数据编码传输方法,该方法包括:发送端获取目标编码窗口内的全部数据报文,全部数据报文为按照先后顺序排列的报文;发送端根据全部数据报文编码生成至少两个校验报文,该至少两个校验报文中的每个校验报文对应排序不相邻的数据报文;发送端发送第一序列报文,第一序列报文包括全部数据报文和前述至少两个校验报文。
7.在本技术实施例中,选取一个编码窗口中排序不相邻的数据报文进行编码,生成对应的校验报文,即是说,相邻的数据报文对应不同的校验报文,接收端可以根据不同的校验报文对连续丢失的数据报文进行恢复,这样可以减少接收端对连续丢失数据报文无法恢复的情况,降低了数据传输时延。
8.在一种可能的实现方式中,数据报文为头部报文,主体报文或尾部报文,头部报文
包括一个应用的数据处理单元的开始数据,主体报文包括一个应用的数据处理单元中除头部报文之外的其他数据,尾部报文为一个应用的数据处理单元中的最后一个主体报文。
9.在一种可能的实现方式中,目标编码窗口内的全部数据报文由以下一项组成:头部报文,主体报文和尾部报文;或头部报文和主体报文;或主体报文;或主体报文和尾部报文;或尾部报文。
10.在一种可能的实现方式中,根据全部数据报文编码生成至少两个校验报文,包括:根据全部数据报文中的奇数序列报文生成奇数校验报文;根据全部数据报文中的偶数序列报文生成偶数校验报文。
11.在本技术实施例中,对一个编码窗口内的全部数据报文,采用对奇数序列报文编码生成奇数校验报文,对偶数序列报文编码生成偶数校验报文的方式,使得接收端在接收到编码窗口内的报文后,根据奇数校验报文对单个丢失的奇数数据报文进行恢复,根据偶数校验报文对单个丢失的偶数数据报文进行恢复,这样可以减少因为连续两个数据报文丢失,导致数据报文无法恢复的情况,降低了数据传输时延。
12.在一种可能的实现方式中,在目标编码窗口内的全部数据报文中只包括一个数据报文的情况下,该方法包括:根据一个数据报文生成第一校验报文;生成其他伪校验报文。
13.在一种可能的实现方式中,第一序列报文中的至少两个校验报文与其对应的数据报文排序不相邻。
14.在一种可能的实现方式中,目标编码窗口内的全部数据报文中的其他数据报文为长度相等的数据报文,排序最后的一个数据报文长度小于或等于其他数据报文。
15.在一种可能的实现方式中,长度相等的数据报文与最大传输单元mtu长度相等。
16.在一种可能的实现方式中,该方法还包括:在排序最后的一个数据报文长度小于其他数据报文的情况下,在根据所述全部数据报文编码生成至少两个校验报文之前,对排序最后的一个数据报文进行填充获得新的数据报文,新的数据报文长度等于其他数据报文长度。
17.第二方面,提供一种网络数据编码传输方法,该方法包括:接收端接收第二序列报文,第二序列报文为第一序列报文的子集,第一序列报文包括目标编码窗口内的全部数据报文,以及根据全部数据报文编码生成的至少两个校验报文,全部数据报文为按照先后顺序排列的报文,至少两个校验报文中的每个校验报文对应排序顺序不相邻的数据报文;接收端根据第二序列报文对第一序列报文中的全部数据报文进行获取。
18.在一种可能的实现方式中,至少两个校验报文包括奇数校验报文和偶数校验报文,奇数校验报文根据全部数据报文中的奇数序列报文生成,偶数校验报文根据全部数据报文中的偶数序列报文生成。
19.在一种可能的实现方式中,在目标编码窗口内的全部数据报文为一个数据报文的情况下,至少两个校验报文中的第一校验报文根据该一个数据报文生成,其他校验报文为根据填充序列对应的伪数据报文生成的伪校验报文。
20.在一种可能的实现方式中,第一序列报文中的至少两个校验报文与其对应的数据报文排序不相邻。
21.在一种可能的实现方式中,根据第二排序报文对第一排序报文中的全部数据报文进行获取,包括:根据第二排序报文中的报文个数、报文类别和报文排序确定丢失报文个
数、丢失报文类别和丢失报文排序,类别包括数据报文和校验报文;根据丢失报文个数、丢失报文类别和报文排序确定是否能对丢失数据报文进行恢复;在能够对丢失数据报文进行恢复的情况下,对丢失数据报文进行恢复,获得还原报文;根据还原报文和第二排序报文中的数据报文获取第一排序报文的全部数据报文。
22.在一种可能的实现方式中,根据丢失报文个数、报文类别和报文序列奇偶性确定是否能对丢失数据报文进行恢复,包括:若丢失报文只包括校验报文,则确定丢失报文不需要进行恢复;若丢失报文为单个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为对应同一个校验报文的至少两个数据报文,则确定丢失数据报文不能够进行恢复,丢失报文与校验报文的对应关系根据丢失报文排序确定;若丢失报文为至少一个数据报文以及其对应的校验报文,则确定丢失数据报文不能进行恢复。
23.在一种可能的实现方式中,对丢失报文进行恢复,获得还原报文,包括:确定丢失数据报文对应的校验报文,并根据校验报文以及校验报文对应的其他数据报文对丢失数据报文进行恢复。
24.在一种可能的实现方式中,方法还包括:在不能对丢失数据报文进行恢复的情况下,述接收端向发送端发送提示信息,用于提示发送端重新发送丢失数据报文。
25.第三方面,提供一种通信装置,该通信装置包括:处理模块,用于获取目标编码窗口内的全部数据报文,全部数据报文为按照先后顺序排列的报文;根据全部数据报文编码生成至少两个校验报文,至少两个校验报文中的每个校验报文对应排序不相邻的数据报文;发送模块,用于发送第一序列报文,第一序列报文包括全部数据报文和至少两个校验报文。
26.在一种可能的实现方式中,数据报文为头部报文,主体报文,或尾部报文,头部报文包括一个应用的数据处理单元的开始数据,主体报文包括一个应用的数据处理单元中除头部报文之外的其他数据,尾部报文为一个应用的数据处理单元中的最后一个主体报文。
27.在一种可能的实现方式中,目标编码窗口内的全部数据报文由以下一项组成:头部报文,主体报文和尾部报文;或头部报文和主体报文;或主体报文;或主体报文和尾部报文;或尾部报文。
28.在一种可能的实现方式中,处理模块具体用于:根据全部数据报文中的奇数序列报文生成奇数校验报文;根据全部数据报文中的偶数序列报文生成偶数校验报文。
29.在一种可能的实现方式中,在目标编码窗口内的全部数据报文中只包括一个数据报文的情况下,处理模块具体用于:根据一个数据报文生成第一校验报文;生成其他伪校验报文。
30.在一种可能的实现方式中,第一序列报文中的至少两个校验报文与其对应的数据报文排序不相邻。
31.在一种可能的实现方式中,目标编码窗口内的全部数据报文中的其他数据报文为长度相等的数据报文,排序最后的一个数据报文长度小于或等于其他数据报文。
32.在一种可能的实现方式中,长度相等的数据报文与最大传输单元mtu长度相等。
33.在一种可能的实现方式中,处理模块还用于:在所述排序最后的一个数据报文长度小于所述其他数据报文的情况下,在根据全部数据报文编码生成至少两个校验报文之前,对排序最后的一个数据报文进行填充获得新的数据报文,新的数据报文长度等于其他
数据报文长度。
34.第四方面,提供一种通信装置,该通信装置包括:接收模块,用于接收第二序列报文,第二序列报文为第一序列报文的子集,第一序列报文包括目标编码窗口内的全部数据报文,以及根据全部数据报文编码生成的至少两个校验报文,全部数据报文为按照先后顺序排列的报文,至少两个校验报文中的每个校验报文对应排序顺序不相邻的数据报文;处理模块,用于根据第二序列报文对第一序列报文中的全部数据报文进行获取。
35.在一种可能的实现方式中,至少两个校验报文包括奇数校验报文和偶数校验报文,奇数校验报文根据全部数据报文中的奇数序列报文生成,偶数校验报文根据全部数据报文中的偶数序列报文生成。
36.在一种可能的实现方式中,在全部数据报文为一个数据报文的情况下,在目标编码窗口内的全部数据报文为一个数据报文的情况下,至少两个校验报文中的第一校验报文根据一个数据报文生成,其他校验报文为伪校验报文。
37.在一种可能的实现方式中,处理模块具体用于:根据第二序列报文对第一序列报文中的全部数据报文进行获取,包括:根据第二序列报文中的报文个数、报文类别和报文排序确定丢失报文个数、丢失报文类别和丢失报文排序,类别包括数据报文或校验报文;根据丢失报文个数、丢失报文类别和丢失报文排序确定是否能对丢失数据报文进行恢复;在能够对丢失数据报文进行恢复的情况下,对丢失数据报文进行恢复,获得还原报文;根据还原报文和第二序列报文中的数据报文获取第一序列报文的全部数据报文。
38.在一种可能的实现方式中,处理模块还用于:若丢失报文只包括校验报文,则确定丢失报文不需要进行恢复;若丢失报文为单个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为对应同一个校验报文的至少两个数据报文,则确定丢失数据报文不能够进行恢复,丢失报文与校验报文的对应关系根据丢失报文排序确定;若丢失报文为至少一个数据报文以及其对应的校验报文,则确定丢失数据报文不能进行恢复。
39.在一种可能的实现方式中,处理模块还用于:确定丢失数据报文对应的校验报文,并根据校验报文以及校验报文对应的其他数据报文对丢失数据报文进行恢复。
40.在一种可能的实现方式中,处理模块还用于:在不能对丢失数据报文进行恢复的情况下,通过发送模块向发送端发送提示信息,用于提示发送端重新发送丢失数据报文。
41.第五方面,本技术实施例提供一种装置,该装置包括通信接口和处理器,该通信接口用于该装置与其它设备进行通信,例如数据或信号的收发。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口,其它设备可以为网络设备。处理器用于调用一组程序、指令或数据,执行上述第一方面描述的方法。该装置还可以包括存储器,用于存储处理器调用的程序、指令或数据。存储器与处理器耦合,该处理器执行该存储器中存储的、指令或数据时,可以实现上述第一方面描述的方法。
42.第六方面,本技术实施例提供一种装置,该装置包括通信接口和处理器,该通信接口用于该装置与其它设备进行通信,例如数据或信号的收发。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口,其它设备可以为终端。处理器用于调用一组程序、指令或数据,执行上述第二方面描述的方法。该装置还可以包括存储器,用于存储处理器调用的程序、指令或数据。存储器与处理器耦合,该处理器执行该存储器中存储的、指令或数据时,可以实现上述第二方面描述的方法。
43.第七方面,本技术实施例中还提供一种通信装置,其特征在于,该通信装置包括处理器、收发器、存储器以及存储在该存储器上并可在该处理器上运行的计算机执行指令,当计算机执行指令被运行时,使得该通信装置执行如第一方面或第一方面中任一种可能的实现方式中的方法。
44.第八方面,本技术实施例中还提供一种通信装置,其特征在于,该通信装置包括处理器、收发器、存储器以及存储在该存储器上并可在该处理器上运行的计算机执行指令,当计算机执行指令被运行时,使得该通信装置执行如第二方面或第二方面中任一种可能的实现方式中的方法。
45.第九方面,本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可读指令,当该计算机可读指令在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的实现方式中的方法。
46.第十方面,本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可读指令,当该计算机可读指令在计算机上运行时,使得计算机执行如第二方面或第二方面中任一种可能的实现方式中的方法。
47.第十一方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面或第一方面中任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
48.可选的,该芯片系统还包括收发器。
49.第十二方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第二方面或第二方面中任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
50.可选的,该芯片系统还包括收发器。
51.第十三方面,本技术实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的实现方式中的方法,或者执行如第二方面或第二方面中任一种可能的实现方式中的方法。
52.第十四方面,本技术实施例提供了一种系统,该系统包括第三方面或者第五方面提供的装置、和第四方面或第六方面提供的装置。
附图说明
53.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
54.图1a为本技术实施例提供的一种通信系统示意图;
55.图1b为本技术实施例提供的一种块ip转发过程示意图;
56.图1c为本技术实施例提供的一种块ip的基本数据结构示意图;
57.图1d为本技术实施例提供的一种块ip链路复用机制示意图;
58.图1e为本技术实施例提供的一种异或编码示意图;
59.图1f为本技术实施例提供的一种fec校验失败造成数据报文误码的场景示意图;
60.图1g为本技术实施例提供的另一种fec校验失败造成数据报文误码的场景示意图;
61.图2a为本技术实施例提供的一种网络数据编码传输方法流程图;
62.图2b为本技术实施例提供的一种数据块的编码窗口划分示意图;
63.图2c为本技术实施例提供的一种编码生成校验报文的过程示意图;
64.图2d为本技术实施例提供的一种编码窗口内包括尾部报文的编码过程示意图;
65.图2e为本技术实施例提供的一种编码窗口内只包括尾部报文的编码过程示意图;
66.图2f为本技术实施例提供的另一种编码生成校验报文的过程示意图;
67.图2g为本技术实施例提供的另一种编码生成校验报文的过程示意图;
68.图3为本技术实施例提供的一种通信装置结构框图;
69.图4是本技术实施例提供的另一种通信装置结构框图;
70.图5为本技术实施例提供的一种通信装置的结构示意图。
具体实施方式
71.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
72.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0073]“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0074]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
[0075]
本技术实施例的方法可以在支持块转发的端侧设备上实现。产品形态为支持块转发的数据发送端和数据接收端。请参阅图1a,图1a为本技术实施例提供的一种通信系统示意图,如图1a所示,该通信系统中包括个人计算机(personal computer,pc)110和服务器120,其中pc和服务器可以分别作为数据发送端和数据接收端,也可以分别作为数据接收端和数据发送端。本技术实施例的方法具体可以通过修改端侧协议栈或者驱动软件代码进行实现。
[0076]
现有的应用例如4k/8k视频、大数据分析或全息视频等,其应用处理单元已经增加到2mb~64mb级别。为了兼顾网络和应用同时最优,可以采用一种块传输技术,在网络上以应用传输单元为单位进行转发。具体可参阅图1b,图1b为本技术实施例提供的一种块ip转发过程示意图,如图1b所示,块ip为一种新型的交换技术,通过差异化标识数据报文,交换机以应用基本处理数据粒度进行转发,而不是传统基于数据包的统计复用转发。即一个数据块对应一个完整的应用处理单元。块ip转发过程具体为:块ip识别应用的处理单元的边界,以应用处理单元为转发单位,转发完一个应用处理单元才会调度下一个应用处理单元,应用处理单元以线速在网络中转发,接收端收到的是完整的处理单元,收到即可处理,从而
能提高应用的效率。
[0077]
请参阅图1c,图1c为本技术实施例提供的一种块ip的基本数据结构示意图,如图1c所示,一个应用处理单元被分成三种类型的子块,头部(head)子块、主体(body)子块和尾部(tail)子块。head子块表示应用处理单元的开始,tail子块表示应用处理单元的结束。head子块和body子块的大小都为1.5kb的最大传输单元(maximum transmission unit,mtu)报文,只有tail子块的大小可能小于1.5kb。每个子块携带一个身份标识(identity document,id)字段,一个块内所有子块的id相同,应用将子块“连接”起来。转发时通过head子块携带的路由信息查表得到出端口,后续body和tail子块根据id得到出端口信息,减少全局表的查表次数。划分子块的另外一个好处是降低转发延时,在低速端口数据向高速端口转发时,例如10gbps(吉比特每秒)端口向100gbps端口转发一个64mb(兆比特)的块,如果没有切子块,是一个完整的块转发,则几乎需要缓存完整个块64mb才能转发,由于块比较大,这样会引入非常大的转发延时,也会要求比较大的缓存空间。采用切子块的数据格式后,缓存完一个子块1.5kb,即可转发,转发延时小,对缓存空间的要求和传统网络保持一致。
[0078]
将块切成子块之后,不同块的子块会交织在一起传输,为了保证每个块的传输速度,链路上采用特殊的机制限制同时传输的块数量。请参阅图1d,图1d为本技术实施例提供的一种块ip链路复用机制示意图,如图1d所示,假设源端(发送端)的块传输速度为10gbps,那么在40gbps链路上可同时传输4个块,在100gbps链路上可同时传输10个块,这样能保证每个块都能以10gbps速度传输。
[0079]
块ip网络通过基于信用的流控(credit flow control)或者授权发送机制,动态拆建块传输虚管道,实现网络无阻塞,从而网络无拥塞丢包。在这种情况下,块ip转发过程中的丢包主要来源于误码丢包(数据子块中发生比特错误,则将整个子块丢掉,不发送到接收端)。块ip转发过程中的误码率可以通过以下方式确定:
[0080]
1.已知:线路误码率为e=10^-12,理解为以10^12为窗口,平均每窗口出现1次错误bit事件。对于线路误码,前后两个错误bit出现认为是随机事件,两个随机事件间隔服从负指数分布,则在一个窗内,错误k个bit的概率服从泊松分布。
[0081]
2.要转化求出误包率,就是把窗口换做12000bits(mtu=1500b),求在该窗口内出现1bit错误、2bit错误,3bit错误

,12000bit错误的概率之和,由于误码率已经很小,按照每窗口1bit错误,可以最大估算为:
[0082]
误包率测算:1/(10^12/(1500*8))=1.2*10^-8,假设mtu=1500b;
[0083]
误块率测算:1/(10^12/(8*8*10^6))=6.4*10^-5,假设块大小为8mb;
[0084]
3.假设一个路径由5段链路组成,则:
[0085]
误包率测算:1-(1-1.2*10^-8)^5≈6.0*10^-8;
[0086]
误块率测算:1-(1-6.4*10^-5)^5≈3.2*10^-4;
[0087]
4.由于误码率是一个与数据量紧密相关的指标,对于5段链路,不同的速率下:
[0088]
10gbps,每100秒,(100^10*10^9/12000)*6.0*10^-8=5,即100秒丢5个包,实际略少;
[0089]
100gbps,每10秒,(10^100*10^9/12000)*6.0*10^-8=5,即10秒丢5个包,实际略少;
[0090]
1tbps,每1秒,(1^1000*10^9/12000)*6.0*10^-8=5,即1秒丢5个包,实际略少;
[0091]
由于前后两段链路的错误比特可能集中到一个报文上(泊松),所以实际丢包概率略小于上述数值。由于前后两段链路的丢包可能在一个块中(泊松),因此误块概率也会小一些。
[0092]
误码的报文可以通过重传恢复,但是端到端重传会消耗至少一个rtt时间,造成时间上的延迟。目前通用的解决方案是通过网络编码,在数据发送中加入冗余校验码来预防误码丢包。一旦数据报文丢失,可以通过携带的冗余码块将丢失的报文恢复出来。
[0093]
可以通过编码生成数据报文对应的冗余校验码来预防误码丢包。常用的编码包括异或码,里德-所罗门(reed-solomon,rs)码和卷积码,这几种不同编码对应的特性如表1所示:
[0094]
表1编码方式及其特点比对表
[0095][0096]
由于块ip转发应用场景是超高吞吐业务,rs分组码和卷积码在传输速度方面均受到算法复杂度的影响,发送速率无法超过1gbps,而异或码不存在这样的问题。因此,在块ip转发场景下,可以选择异或编码方式进行报文编码。请参阅图1e,图1e为本技术实施例提供的一种异或编码示意图,如图1e所示,发送端将所发数据按照编码窗口进行异或编码,计算生成的冗余校验码在对应编码窗口数据报文之后发送。以这种方式编码的数据报文,能够防止单个报文丢失。具体为,假设丢失了一个数据报文,则接收端可以根据接收到的校验报文和其他数据报文对丢失的数据报文进行恢复,假设丢失了两个或两个以上数据报文,则无法对丢失的数据报文进行恢复。假设只丢失了校验报文,无需进行恢复;假设丢失了一个校验报文和一个数据报文,也无法对丢失的数据报文进行恢复。
[0097]
另外,一些情况下,对于误码报文,物理层会进行fec校验。fec校验以fec码字为单位进行,假设fec校验失败,则误码可能扩散到该fec码字范围内的任何比特位。举例来说,对于rs(544,514)(括号内的前一个数值表示为生成编码长度,后一个数值为原始信息数据长度)编码方式,表示通过rs编码方式生成一个fec码字,该fec码字包括544个符号,一个符号10个bit(比特),等价于680bytes(字节)。对于rs(528,514)编码方式,一个fec码字包括
528个符号,一个符号10个bit,等价于660bytes。在物理层通过符号进行传输的数据,传输到ip层后,可通过数据报文(或数据包)进行传输,对于按照mtu大小发送的数据报文,通过fec校验后的误码可能都在一个数据报文内,也可能分布在两个数据报文中。对于小于650bytes大小的数据报文,误码可能横跨三个数据报文甚至更多。
[0098]
具体请参阅图1f,图1f为本技术实施例提供的一种fec校验失败造成数据报文误码的场景示意图,如图1f所示,假设发生误码的数据报文为块ip报文中的head子块或body子块,两者均以1.5kb报文发送,则一个fec纠错失败可能将误码扩散到两个相邻报文上。使得连续异或校验码无法恢复误码报文。或者,请参阅图1g,图1g为本技术实施例提供的另一种fec校验失败造成数据报文误码的场景示意图,如图1g所示,由于tail子块长度大小可能小于650bytes,一个fec纠错失败可能将误码扩散到三个相邻报文上,分别为body子块,tail子块和校验报文。假设块ip报文中的每个数据报文长度大小更小,例如为100bytes,则一个fec校验失败可能造成更多的相邻报文误码。
[0099]
根据上述描述可知,针对块ip转发场景下的特殊性,包括对应业务场景的超高吞吐,以及以一个应用处理单元为单位进行转发,块ip拆分的子块个数不确定,并且子块大小不确定等因素,使得需要进一步确定块ip场景下的数据编码传输方式。
[0100]
基于上述描述,请参阅图2a,图2a为本技术实施例提供的一种网络数据编码传输方法流程图,如图2a所示,该方法包括如下步骤:
[0101]
201、发送端获取目标编码窗口内的全部数据报文,全部数据报文为按照先后顺序排列的报文;
[0102]
202、发送端根据全部数据报文编码生成至少两个校验报文,至少两个校验报文中的每个校验报文对应排序顺序不相邻的数据报文;
[0103]
203、发送端发送第一序列报文,第一序列报文包括全部数据报文和至少两个校验报文;
[0104]
204、接收端接收第二序列报文,第二序列报文为第一序列报文的子集;
[0105]
205、接收端根据第二序列报文对第一序列报文进行获取。
[0106]
本技术实施例中,数据包,数据子块和报文表示相同的内涵,都为网络传输过程中的基本数据传输单元。以下编码过程采用报文对子块或数据包进行描述。
[0107]
发送端发送的数据信息在网络中以报文形式进行传输,在前述描述中已提及,针对块ip转发场景下的报文传输,本技术实施例中的数据报文可以为数据块划分得到的子块,一个数据块对应一个完整的应用处理单元,例如一个图片,一个视频等。一个数据块可以划分为头部子块,主体子块和尾部子块,那么数据报文可以包括头部报文,主体报文和尾部报文,用于差异化标识一个应用的数据处理单元,例如包含数据处理单元最开始数据的数据报文为头部报文,包含数据处理单元最后部分数据的数据报文为尾部报文,中间的数据报文为主体报文。在一些情况下,这些数据报文可以为等长度的数据报文,例如报文长度可以为mtu大小,即1.5kb,这样接收端在根据校验报文和接收到的数据报文对丢失报文进行恢复时,可以确定丢失报文的长度并获得丢失报文内容。可能的情况下,一个数据块的长度可能不为数据报文等长度值的整倍数,那么排序最后的一个数据报文的长度可能小于前序其他数据报文,为了增加最后一个数据报文的稳定性,可以对最后一个数据报文进行填充,例如采用全0值进行填充,使得最后一个数据报文与前序其他数据报文长度相等。在一
些情况下,划分的数据报文也可以为非等长度报文,并由相邻数据报文携带目标数据报文的长度大小,例如序列1的数据报文中携带序列2的数据报文的长度大小,序列2的数据报文中携带序列3的数据报文的长度大小,这样接收端可以根据相邻数据报文确定目标数据报文的长度大小,进而根据校验报文对目标数据报文进行恢复。校验报文根据同一个编码窗口内的数据报文生成,一个编码窗口表示数据发送端对数据报文进行编码的固定报文个数,即是说,每次编码选择数据报文以编码窗口的划分为界限,不能超出编码窗口范围,也不能小于编码窗口范围。由于数据块大小并不固定,根据数据块划分出的数据子块(数据报文)个数也可能不固定,因此,一个编码窗口中可能包括一个数据块中划分成的全部数据报文,也可能只包括一个数据块划分出的全部数据报文中的部分数据报文。另外,一个数据块划分的数据报文个数不一定是编码窗口容纳数据报文个数的整倍数,即是说,一个数据块对应的最后一个编码窗口可能无法被数据报文填满。那么最后一个编码窗口中包括的报文数不确定,可能只包括1个数据报文,也可能包括大于1的其他任意个数据报文,该任意个数据报文的个数小于或等于编码窗口的固定报文个数。每个编码窗口中的数据报文按照先后顺序排列,例如目标编码窗口中的数据报文排序为1~10。可选情况下,编码窗口中的数据报文排序可以根据数据报文传输时间确定,也可以根据数据报文中的标识信息确定。数据报文可能为ip报文或以太报文,在数据报文为ip报文的情况下,例如可以由ip报文中的ip字段携带标识信息,标识信息具体为ip选项字段中添加的数据报文序列号,这些序列号可以按照同一个数据块划分,例如同一个数据块划分为20个数据块,那么对应的数据报文序列号为1~20,一个编码窗口可能只包括一个数据块对应的全部数据报文中的部分数据报文,例如目标编码窗口中包括序列号为11~20的数据报文,对应排序为1~10。具体请参阅图2b,图2b为本技术实施例提供的一种数据块的编码窗口划分示意图,如图2b中的(a)所示,在数据块对应划分的数据报文个数小于或等于一个编码窗口内能容纳的最大数据报文个数时,一个编码窗口内可以包括该数据块对应划分出的全部数据报文,具体包括头部报文,主体报文和尾部报文,这些数据报文按照顺序依次排列。在数据块对应划分的数据报文个数大于一个编码窗口内能容纳的最大数据报文个数时,一个编码窗口内可以包括该数据块对应划分的部分数据报文,例如图2b中的(b)中的编码窗口1,包括头部报文和主体报文,或者例如图2b中的(b)中的编码窗口2,包括主体报文,或者例如图2b中的(b)中的编码窗口3,包括主体报文和尾部报文。又或者,如图2b中的(c)所示,编码窗口4内可以只包括尾部报文。即是说,编码窗口4中只包括一个数据报文,该编码窗口没有被填满,在进行编码生成校验报文时,只考虑这一个数据报文。
[0108]
基于上述描述可以获知,块ip转发场景适用异或编码方式,但是异或编码方式通常只能对单个丢失数据报文进行恢复,而块ip转发场景下可能产生连续多个数据报文丢失。基于此,本技术实施例中提出,对一个编码窗口内的全部数据报文,按照间隔方式获取部分数据报文进行一次对应的异或编码,生成对应的一个校验报文,直到完成该编码窗口内全部数据报文的编码过程,则可生成对应的至少两个校验报文,该至少两个校验报文能够对相邻数据报文进行的恢复。也就是说,相邻的数据报文对应的校验报文不同,根据各自对应的校验报文对数据报文进行恢复,则可实现对连续丢失数据报文的恢复。
[0109]
可选地,根据全部数据报文编码生成至少两个校验报文,包括:根据全部数据报文中的奇数序列报文生成奇数校验报文;根据全部数据报文中的偶数序列报文生成偶数校验
报文。
[0110]
具体可参阅图2c,图2c为本技术实施例提供的一种编码生成校验报文的过程示意图,如图2c中所示,假设一个编码窗口内包括10个数据报文,该10个报文被分为2组,其中所有奇数序列数据报文,包括序列1,3,5,7,9对应的数据报文,生成一个冗余校验码,被称为奇数校验报文,而根据偶数序列报文,包括序列2,4,6,8,10对应的数据报文,生成一个冗余校验码,被称为偶数校验报文。
[0111]
或者,假设一个编码窗口内包含10个数据报文,这些数据报文对应的数据报文序列号为10~18,那么也可以根据序列号的值确定数据报文的奇偶性,进而确定该数据报文对应校验报文的奇偶性。例如,序列号为10的数据报文,虽然其排序1为奇数,但是其序列号为偶数,因此其对应生成的为偶数校验报文。
[0112]
可选情况下,第一序列报文中的至少两个校验报文与其对应的数据报文排序不相邻。
[0113]
具体地,校验报文与对应的数据报文在发送时,对应的排序不相邻,可以防止校验报文与其对应的数据报文连续丢失,造成无法对丢失的数据报文进行恢复的情况。例如本技术实施例中生成的奇数校验报文和偶数校验报文,在一个编码窗口包括偶数个数据报文的情况下,如图2c中所示,包括10个数据报文,可以在数据报文发送完之后先发送奇数校验报文,这样在最后一个偶数数据报文和奇数校验报文连续丢失的情况下,由于最后一个数据报文为偶数数据报文,而丢失的验证报文为奇数校验报文,那么丢失的偶数数据报文还以得到恢复。同理,在一个编码窗口内包括奇数个数据报文的情况下,可以先发送偶数校验报文,这样在最后一个奇数数据报文和偶数校验报文连续丢失的情况下,丢失的奇数数据报文可以根据未丢失的奇数校验报文和其他奇数数据报文进行恢复。
[0114]
根据前述过程的描述可知,数据报文可以按照mtu大小进行发送,另一方面,由于数据块大小不确定,划分出的尾部报文长度可能小于mtu,那么在编码窗口中包括尾部报文的情况下,可以先对尾部报文进行填充,使得尾部报文的大小等于mtu,再对该编码窗口内的数据报文按照序列奇偶性进行编码。具体请参阅图2d,图2d为本技术实施例提供的一种编码窗口内包括尾部报文的编码过程示意图,如图2d中的(a)所示,假设尾部报文为偶数序列的报文(序列8),那么对该尾部报文进行填充,例如全部用比特值0填充,生成一个与mtu大小相同的偶数序列报文,然后根据该编码窗口内的奇数序列报文生成奇数校验报文,根据尾部报文填充后生成的偶数序列报文,以及其他偶数序列数据报文生成偶数校验报文。或者,如图2d中的(b)所示,假设尾部报文为奇数序列报文(序列7),对该尾部报文进行填充,例如全部用比特值0填充,生成一个与mtu大小相同的奇数序列报文,然后根据该编码窗口内的偶数序列数据报文生成偶数校验报文,根据尾部报文填充后生成的奇数序列报文,和其他奇数序列数据报文生成奇数校验报文。同样的,图2d中的校验报文发送方式也可以根据编码窗口内最后一个数据报文的奇偶性确定。
[0115]
在一些情况下,一个编码窗口内可能只包括一个数据报文,例如为尾部报文,而不包括其他数据报文,那么可以根据该一个数据报文生成其对应的校验报文,可称为第一校验报文。然后生成其他伪校验报文。
[0116]
具体地,在一个编码窗口内的多个校验报文为奇数校验报文和偶数校验报文的情况下,因为目标编码窗口内的只有一个数据报文,对应排序为1,那么可以确定该奇数序列
数据报文生成奇数校验报文。然后根据填充序列获得的伪数据报文生成伪偶数报文,或者直接生成固定值填充的伪偶数校验报文。具体请参阅图2e,图2e为本技术实施例提供的一种编码窗口内只包括尾部报文的编码过程示意图,如图2e所示,根据尾部报文生成奇数校验码,然后生成一个伪偶数校验报文,伪偶数校验报文数据部分可以填充全零,作为伪偶数校验报文的有效载荷。这样可以使得只包括尾部报文的编码窗口能够具有足够的鲁棒性对抗误码。
[0117]
同样的,在编码窗口中只包括尾部报文的情况下,假设尾部报文长度小于mtu长度,则可以对尾部报文进行填充,生成长度等于mtu的报文,然后根据该报文生成奇数校验码。
[0118]
发送端根据一个编码窗口内的数据报文生成对应的奇数校验报文和偶数校验报文,然后发送数据报文以及对应的奇数校验报文和偶数校验报文组成的第一序列报文。接收端对第一序列报文进行接收,接收到的为第二序列报文,第二序列报文为第一序列报文的子集。在没有误码丢包的情况下,第二序列报文等于第一序列报文,即接收端能够接收到第一序列报文中的所有报文;在误码丢包的情况下,第二序列报文为第一序列报文中的部分报文,可能只包括数据报文,可能只包括校验报文,也可能同时包括数据报文和校验报文。然后接收端可以根据第二序列报文中的报文个数,报文类型(数据报文或校验报文)以及报文序列奇偶性确定是否能够获取第一序列报文中的全部数据报文,其中校验报文为用于对数据报文进行恢复的报文,其中并不包括额外的有效数据,因此,在数据报文没有丢失的情况下,校验报文丢失对数据传输过程不造成影响,也不需要对其进行恢复。
[0119]
可选地,接收端根据第二序列报文对第一序列报文中的全部数据报文进行获取,包括:根据第二序列报文中的报文个数、报文类别和报文序列确定丢失报文个数、丢失报文类别和丢失报文序列,类别包括数据报文和校验报文;根据丢失报文个数、丢失报文类别和丢失报文序列确定是否能对丢失数据报文进行恢复;在能够对丢失数据报文进行恢复的情况下,对丢失数据报文进行恢复,获得还原报文;根据还原报文和第二序列报文中的数据报文获取第一序列报文的全部数据报文。
[0120]
可选地,根据丢失报文个数、丢失报文类别和丢失报文序列确定是否能对丢失数据报文进行恢复,包括:若丢失报文只包括校验报文,则确定丢失报文不需要进行恢复;若丢失报文为单个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为对应同一个校验报文的至少两个数据报文,则确定丢失数据报文不能够进行恢复,丢失报文与校验报文的对应关系根据丢失报文序列确定;若丢失报文为至少一个数据报文以及其对应的校验报文,则确定丢失数据报文不能进行恢复。
[0121]
具体地,接收端可以确定接收到的第二序列报文中的报文个数和报文类型,确定报文类型即确定报文为校验报文或者数据报文。并且接收端可以确定这些报文在目标编码窗口中的排列顺序,具体可以根据接收到报文的时间,以及报文之间的间隔时间确定,或者,可选情况下,可以根据数据报文中的ip选项字段中添加的数据报文序列号确定。在确定第二序列报文中的报文个数、报文类型和报文排序之后,可以确定丢失报文个数,丢失报文类型和丢失报文排序。例如接收端可以确定第二序列报文为一个编码窗口中排序为1,2,3,6,7,8,9,10,11,12的报文,其中排序1~10对应为数据报文,排序11对应为奇数校验报文,排序12对应为偶数校验报文。那么接收端可以确定该编码窗口中的丢失报文数量为2个,丢
失报文类型为数据报文,丢失报文排序为4,5。然后可以根据这一些信息进一步确定是否能够对丢失报文进行恢复。
[0122]
针对本技术实施例中第一序列报文中的多个校验报文为根据奇数序列报文生成的奇数校验报文,和根据偶数序列数据报文生的偶数校验报文的情况,可以根据丢失数据报文的奇偶性确定其对应的校验报文,进而确定是否能够对该丢失数据报文进行恢复。例如针对排序为4的数据报文,为偶数序列数据报文,其对应的校验报文为偶数校验报文,在排序为4的数据报文为唯一丢失的偶数序列数据报文,且偶数校验报文未丢失的情况下,可以根据偶数校验报文和其他偶数序列数据报文丢该丢失的偶数序列数据报文进行恢复。同样的,序列5对应的数据报文为该编码窗口内唯一丢失的奇数序列数据报文,那么在奇数校验报文未丢失的情况下,可以根据奇数校验报文和其他奇数序列数据报文对排序为5的数据报文进行恢复。
[0123]
假设接收端根据接收到的第二序列报文确定编码窗口中排序为4,5,6的数据报文丢失,其中包括两个偶数序列数据报文,则根据偶数校验报文和接收到的偶数序列数据报文,无法对丢失的两个偶数序列数据报文进行恢复,而其中丢失的单个奇数序列数据报文5,在奇数校验报文未丢失的情况下,可以进行恢复。
[0124]
假设接收端接根据收到的第二序列报文确定编码窗口中排序1~10的数据报文都没有丢失,只有奇数校验报文(或偶数校验报文)丢失,则不需要对其进行恢复。
[0125]
假设接收端根据接收到的第二序列报文确定编码窗口中序列号为4的数据报文丢失,且偶数校验报文丢失,其中排序为4的数据报文需要进行恢复,但是偶数校验报文丢失,导致排序为4的数据报文无法恢复。同样的,假设编码窗口中的奇数序列数据报文和奇数校验报文同时丢失,则奇数序列数据报文无法恢复。
[0126]
在接收端确定丢失数据报文不能恢复的情况下,可以向发送端发送提示信息,以提示发送端对丢失数据报文进行重传。例如接收端确定编码窗口中排序为5的数据报文丢失,且无法恢复,则接收端可以向发送端发送提示信息,提示重传排序5对应的数据报文。其他已接收到的序列号对应的数据报文则无需再重传。
[0127]
可见,在本技术实施例中,对一个编码窗口内的全部数据报文,采用对奇数序列报文编码生成奇数校验报文,对偶数序列报文编码生成偶数校验报文的方式,使得接收端在接收到编码窗口内的报文后,根据奇数校验报文对单个丢失的奇数数据报文进行恢复,根据偶数校验报文对单个丢失的偶数数据报文进行恢复,这样可以减少因为连续两个数据报文丢失,导致数据报文无法恢复的情况,降低了数据传输时延。
[0128]
可选情况下,根据全部数据报文编码生成至少两个校验报文,包括:根据报文分组中的第一个数据报文生成第一校验报文,根据报文分组中的第二个数据报文生成第二校验报文,根据报文分组中的第三个数据报文生成第三校验报文,其中报文分组为目标编码窗口内的全部数据报文按照三个连续序列的数据报文划分获得。
[0129]
根据上述描述可知,一个编码窗口内的校验报文个数可以为三个,相应地,该三个校验报文中的每个校验报文对应的都是排序不相邻的数据报文。具体请参阅图2f,图2f为本技术实施例提供的另一种编码生成校验报文的过程示意图,如图2f所示,假设一个编码窗口中包括10个数据报文,对应排序为1~10。可以将这10个数据报文按照每连续3个序列进行分组,获得报文分组,例如第一个报文分组中包括排序1~3的数据报文,第二个报文分
组中包括排序4~6的数据报文,第三个报文分组中包括排序7~9的数据报文,第四个报文分组中包括排序10的数据报文。然后,根据每个报文分组中的排序相同的数据报文生成对应的校验报文。具体为根据每个报文分组中的第一个数据报文生成第一校验报文,即根据序列1,4,7,10的数据报文生成第一校验报文,每个报文分组中的第二个数据报文生成第二校验报文,即根据排序2,5,8的数据报文生成第二校验报文,每个报文分组中的第三个数据报文生成第三校验报文,即根据排序3,6,9的数据报文生成第二校验报文。然后由排序1~10的数据报文以及第一校验报文,第二校验报文和第三校验报文组成发送端发送的第一序列报文。
[0130]
同样地,第一序列报文中的至少两个校验报文与其对应的数据报文排序不相邻。具体可以为:编码窗口内的最后一个数据报文对应的校验报文,为最后发送的校验报文。假设编码窗口内的最后一个数据报文为报文分组中的第一个数据报文,其对应的校验报文为第一校验报文,则在最后一个数据报文之后,可以先发送第二校验报文,再发送第三校验报文,最后发送第一校验报文,即是说,第一校验报文,第二校验报文和第三校验报文分别对应前述第一序列报文中的排序13,11和12;或者先发送第三校验报文,再发送第二校验报文,最后发送第一校验报文。可选情况下,也可以为:编码窗口内的最后一个数据报文对应的校验报文,不与最后一个数据报文连续发送。例如编码窗口内的最后一个数据报文为报文分组中的第一个数据报文,则可以先发送第二校验报文,再发送第一校验报文,最后发送第三校验报文。
[0131]
另外,请参阅图2g,图2g为本技术实施例提供的另一种编码生成校验报文的过程示意图,如图2g所示,在一个编码窗口中只包括一个数据报文(数据报文1)的情况下,根据该数据报文1生成第一校验报文。然后,生成伪第二校验报文和伪第三校验报文,具体可以为:发送端将校验数据部分填充全零,作为校验报文的有效载荷。
[0132]
发送端发送了第一序列报文之后,接收端可能接收到全部的第一序列报文,也可能只接收到第一序列报文中的部分报文,为第二序列报文,然后接收端根据第二序列报文中的报文个数、报文类型和报文序列确定是否能对丢失的数据报文进行恢复。
[0133]
具体包括:若丢失报文只包括校验报文,则不要进行报文恢复;若丢失报文为单个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为不同报文分组中排序相同的2个数据报文,则确定丢失数据报文不能进行恢复;若丢失报文为不同报文分组中排序不同的2个或3个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为报文分组中的单个数据报文,以及其对应的校验报文,则确定丢失数据报文不能进行恢复。
[0134]
如果只丢失了校验报文,没有丢失数据报文,则不需要进行报文恢复。在丢失报文为单个数据报文的情况下,根据该丢失数据报文在报文分组中的排序,以及其对应的校验报文和其他分组中排序相同的数据报文,可以对该丢失报文进行恢复,例如丢失报文分组中的第一个数据报文,那么根据第一校验报文以及其他分组中的第一个数据报文,可以对该丢失报文进行恢复。在丢失报文为不同分组中排序相同的2个数据报文的情况下,例如丢失报文为前述图2f对应的序列1和序列4对应的报文,分别为第一报文分组中的第一个数据报文,以及第二报文分组中的第一个数据报文,那么对于根据每个报文分组中的第一个数据报文进行异或编码的过程来说,丢失了2个数据报文,无法进行恢复。在丢失报文为不同报文分组中排序不同的2个或3个数据报文的情况下,对于按照不同排序的数据报文进行异
或编码的过程来说,最多丢失了一个数据报文,因此可以进行恢复。在丢失报文为报文分组中的单个数据报文,以及其对应的校验报文的情况下,因为校验报文的丢失,无法对其对应的丢失数据报文进行恢复。
[0135]
可见,在本技术实施例中,对一个编码窗口内的全部数据报文,首先按照每三个数据报文进行分组获得多个报文分组,然后对每个报文分组中的第一个数据报文编码生成第一校验报文,对每个报文分组中的第二个数据报文编码生成第二校验报文,对每个分组中的第三个数据报文编码生成第三校验报文。使得接收端在接收到编码窗口内的报文后,根据丢失的数据报文在报文分组中的排序以及其对应的校验报文进行恢复。这样可以减少三个连续数据报文丢失导致数据报文无法恢复的情况,降低了数据传输时延。
[0136]
可选情况下,一个编码窗口内的数据报文还可以按照其他方式进行划分,然后编码生成多个校验报文,例如五个或六个校验报文,使得每个校验报文对应不相邻的数据报文,即使得多个相邻数据报文,例如相邻的五个或六个数据报文对应不同的校验报文,以便接收端在发送端发送的数据报文发生连续五个或六个数据报文丢失的情况下,也能够根据其对应的校验报文对丢失数据报文进行恢复。
[0137]
图3为本技术实施例提供的一种通信装置300,其可用于执行上述图2a~图2g的应用于发送端的网络数据编码传输方法和具体实施例,该通信装置包括处理模块302和发送模块303。
[0138]
处理模块302,用于获取目标编码窗口内的全部数据报文,全部数据报文为按照先后顺序排列的报文;根据全部数据报文编码生成至少两个校验报文,至少两个校验报文中的每个校验报文对应排序不相邻的数据报文;
[0139]
发送模块303,用于发送第一序列报文,第一序列报文包括全部数据报文和至少两个校验报文。
[0140]
在一种可能的实现方式中,处理模块302具体用于:根据全部数据报文中的奇数序列报文生成奇数校验报文;根据全部数据报文中的偶数序列报文生成偶数校验报文。
[0141]
在一种可能的实现方式中,在目标编码窗口内的全部数据报文中只包括一个数据报文的情况下,处理模块具体用于:根据一个数据报文生成第一校验报文;生成其他伪校验报文。
[0142]
在一种可能的实现方式中,目标编码窗口内的全部数据报文中的其他数据报文为长度相等的数据报文,排序最后的一个数据报文长度小于或等于其他数据报文。
[0143]
在一种可能的实现方式中,处理模块302还用于:在排序最后的一个数据报文长度小于其他数据报文的情况下,在根据全部数据报文编码生成至少两个校验报文之前,对排序最后的一个数据报文进行填充获得新的数据报文,新的数据报文长度等于其他数据报文长度。
[0144]
可选的,上述的处理模块302可以是芯片,编码器,编码电路或其他可以实现本技术方法的集成电路。
[0145]
可选的,通信装置300还可以包括接收模块301,接收模块301和发送模块303可以为接口电路或者收发器。接收模块301和发送模块303可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块301和发送模块303的功能。可以为接口电路或者收发器。
[0146]
由于具体的方法和实施例在前面已经介绍过,该装置300是用于执行对应于发送端的网络数据编码传输方法,因此涉及该方法的具体描述可以参考对应实施例的相关部分,此处不再赘述。
[0147]
可选的,装置300还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和处理模块302耦合,也可以和接收模块301或发送模块303耦合。例如,处理模块302可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的密钥获取方法被执行。
[0148]
图4是本技术实施例提供的另一种通信装置400,其可以用于执行上述图2a~图2g的应用于接收端的网络数据编码传输方法和具体实施例。在一种可能的实现方式中,如图4所示,该通信装置400包括接收模块402和处理模块403。
[0149]
接收模块402,用于接收第二序列报文,第二序列报文为第一序列报文的子集,第一序列报文包括目标编码窗口内的全部数据报文,以及根据全部数据报文编码生成的至少两个校验报文,全部数据报文为按照先后顺序排列的报文,至少两个校验报文中的每个校验报文对应排序顺序不相邻的数据报文;
[0150]
处理模块403,用于根据第二序列报文对第一序列报文中的全部数据报文进行获取。
[0151]
在一种可能的实现方式中,至少两个校验报文包括奇数校验报文和偶数校验报文,奇数校验报文根据全部数据报文中的奇数序列报文生成,偶数校验报文根据全部数据报文中的偶数序列报文生成。
[0152]
在一种可能的实现方式中,在全部数据报文为一个数据报文的情况下,至少两个校验报文中的第一校验报文根据一个数据报文生成,其他校验报文为伪校验报文。
[0153]
在一种可能的实现方式中,处理模块403具体用于:根据第二序列报文中的报文个数、报文类别和报文排序确定丢失报文个数、丢失报文类别和丢失报文排序,类别包括数据报文或校验报文;根据丢失报文个数、丢失报文类别和丢失报文排序确定是否能对丢失数据报文进行恢复;在能够对丢失数据报文进行恢复的情况下,对丢失数据报文进行恢复,获得还原报文;根据还原报文和第二序列报文中的数据报文获取第一序列报文的全部数据报文。
[0154]
在一种可能的实现方式中,处理模块403还用于:若丢失报文只包括校验报文,则确定丢失报文不需要进行恢复;若丢失报文为单个数据报文,则确定丢失数据报文能够进行恢复;若丢失报文为对应同一个校验报文的至少两个数据报文,则确定丢失数据报文不能够进行恢复,丢失报文与校验报文的对应关系根据丢失报文排序确定;若丢失报文为至少一个数据报文以及其对应的校验报文,则确定丢失数据报文不能进行恢复。
[0155]
在一种可能的实现方式中,处理模块403还用于:确定丢失数据报文对应的校验报文,并根据校验报文以及校验报文对应的其他数据报文对丢失数据报文进行恢复。
[0156]
在一种可能的实现方式中,该通信装置400还包括发送模块401,其中:在不能对丢失数据报文进行恢复的情况下,处理模块403通过发送模块401向发送端发送提示信息,用于提示发送端重新发送丢失数据报文。
[0157]
可选的,上述的处理模块403可以是芯片,编码器,编码电路或其他可以实现本技术方法的集成电路。
[0158]
可选的,通信装置400还可以包括发送模块401,接收模块402和发送模块401可以为接口电路或者收发器。接收模块402和发送模块401可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块402和发送模块401的功能。可以为接口电路或者收发器。
[0159]
由于具体的方法和实施例在前面已经介绍过,该装置400是用于执行对应于接收端的网络数据编码传输方法,因此涉及该方法的具体描述可以参考对应实施例的相关部分,此处不再赘述。
[0160]
可选的,装置400还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和处理模块403耦合,也可以和接收模块402或发送模块401耦合。例如,处理模块403可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的密钥获取方法被执行。
[0161]
如图5所示,图5示出了本技术实施例中的一种通信装置的结构示意图。发送端或接收端的结构可以参考图5所示的结构。通信装置900包括:处理器111和收发器112,所述处理器111和所述收发器112之间电偶合;
[0162]
所述处理器111,用于执行所述存储器中的部分或者全部计算机程序指令,当所述部分或者全部计算机程序指令被执行时,使得所述装置执行上述任一实施例所述的方法。
[0163]
所述收发器112,用于和其他设备进行通信;例如发送端发送第一序列报文,接收端接收第一序列报文。
[0164]
可选的,还包括存储器113,用于存储计算机程序指令,可选的,所述存储器113(存储器1)位于所述装置内,所述存储器113(存储器2)与处理器111集成在一起,或者所述存储器113(存储器3)位于所述装置之外。
[0165]
应理解,图5所示的通信装置900可以是芯片或电路。例如可设置在终端装置或者通信装置内的芯片或电路。上述收发器112也可以是通信接口。收发器包括接收器和发送器。进一步地,该通信装置900还可以包括总线系统。
[0166]
其中,处理器111、存储器113、收发器112通过总线系统相连,处理器111用于执行该存储器113存储的指令,以控制收发器接收信号和发送信号,完成本技术涉及的实现方法中第一设备或者第二设备的步骤。所述存储器113可以集成在所述处理器111中,也可以与所述处理器111分开设置。
[0167]
作为一种实现方式,收发器112的功能可以考虑通过收发电路或者收发专用芯片实现。处理器111可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。处理器可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合。处理器还可以进一步包括硬件芯片或其他通用处理器。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)及其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等或其任意组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0168]
还应理解,本技术实施例中提及的存储器可以是易失性存储器或非易失性存储
器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(direct rambusram,dr ram)。应注意,本技术描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0169]
本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序用于执行上述实施例中对应用于发送端的方法。
[0170]
本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序用于执行上述实施例中对应用于接收端的方法。
[0171]
本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于发送端的方法。
[0172]
本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于接收端的方法。
[0173]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0174]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本技术的范围。
[0175]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0176]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0177]
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0178]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以
是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0179]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0180]
以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1