CN117596306A - 编码、解码方法及其装置 - Google Patents
编码、解码方法及其装置 Download PDFInfo
- Publication number
- CN117596306A CN117596306A CN202210935568.7A CN202210935568A CN117596306A CN 117596306 A CN117596306 A CN 117596306A CN 202210935568 A CN202210935568 A CN 202210935568A CN 117596306 A CN117596306 A CN 117596306A
- Authority
- CN
- China
- Prior art keywords
- data block
- information
- data
- network device
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 116
- 238000004891 communication Methods 0.000 claims abstract description 56
- 239000011159 matrix material Substances 0.000 claims description 252
- 238000004590 computer program Methods 0.000 claims description 20
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 127
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 127
- OVGWMUWIRHGGJP-WVDJAODQSA-N (z)-7-[(1s,3r,4r,5s)-3-[(e,3r)-3-hydroxyoct-1-enyl]-6-thiabicyclo[3.1.1]heptan-4-yl]hept-5-enoic acid Chemical compound OC(=O)CCC\C=C/C[C@@H]1[C@@H](/C=C/[C@H](O)CCCCC)C[C@@H]2S[C@H]1C2 OVGWMUWIRHGGJP-WVDJAODQSA-N 0.000 description 78
- 101000988961 Escherichia coli Heat-stable enterotoxin A2 Proteins 0.000 description 78
- 230000005540 biological transmission Effects 0.000 description 72
- 101150081243 STA1 gene Proteins 0.000 description 48
- 101100161473 Arabidopsis thaliana ABCB25 gene Proteins 0.000 description 42
- 101100096893 Mus musculus Sult2a1 gene Proteins 0.000 description 42
- 101100288236 Arabidopsis thaliana KRP4 gene Proteins 0.000 description 39
- 101100433979 Bos taurus TNK2 gene Proteins 0.000 description 39
- 101100385394 Zea mays ACK2 gene Proteins 0.000 description 39
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 19
- 101100395869 Escherichia coli sta3 gene Proteins 0.000 description 15
- 101000752249 Homo sapiens Rho guanine nucleotide exchange factor 3 Proteins 0.000 description 15
- 102100021689 Rho guanine nucleotide exchange factor 3 Human genes 0.000 description 15
- 230000000694 effects Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 101100366889 Caenorhabditis elegans sta-2 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008439 repair process Effects 0.000 description 4
- OVGWMUWIRHGGJP-WTODYLRWSA-N (z)-7-[(1r,3s,4s,5r)-3-[(e,3r)-3-hydroxyoct-1-enyl]-6-thiabicyclo[3.1.1]heptan-4-yl]hept-5-enoic acid Chemical compound OC(=O)CCC\C=C/C[C@H]1[C@H](/C=C/[C@H](O)CCCCC)C[C@H]2S[C@@H]1C2 OVGWMUWIRHGGJP-WTODYLRWSA-N 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- -1 as shown in fig. 6b Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请实施例提供了一种编码、解码方法及其装置,涉及通信领域,该方法可对接收端丢失的数据块进行压缩编码,以使编码后的数据块的数据量小于编码前的数据块的数据量,从而提升物理介质共享通信的吞吐量和数据传输效率,以满足终端物联对于通信实时性、可靠性的要求。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种编码、解码方法及其装置。
背景技术
目前,物理介质共享技术的通信回路中接入的终端(Station,STA)数量较多,而物理介质共享技术的应用层带宽较窄,例如仅有几十Kbps,使得物理介质共享技术中的数据传输效率较低,且难以满足终端物联对于通信实时性、可靠性的要求。
发明内容
为了解决上述技术问题,本申请提供一种编码、解码方法及其装置。在该方法中,重传的编码后数据块的数量小于至少一个接收端丢失的数据块的数量,可提升物理介质共享通信的吞吐量和数据传输效率,以满足终端物联对于通信实时性、可靠性的要求。
在一种可能的实施方式中,本申请提供一种编码方法,应用于第一网络设备,所述第一网络设备与至少一个第二网络设备通过共享介质进行通信。该方法包括:对第一数据块进行编码,生成至少一个第二数据块;其中,所述第二数据块的数量小于所述第一数据块的数量;其中,所述第一数据块为在至少两个第三数据块中未被所述至少一个第二网络设备正确接收到的第三数据块;其中,所述至少两个第三数据块为所述第一网络设备向所述至少一个第二网络设备发送的数据;向所述至少一个第二网络设备发送所述至少一个第二数据块。
示例性的,编码后的第二数据块的总数据量,小于编码前的第一数据块的总数据量。
示例性的,未被至少一个第二网络设备正确接收到的数据块可包括丢失的数据块和/或第二网络设备接收到的是损坏的数据块而非正确的数据块。
示例性的,第一网络设备又称发送端,第二网络设备又称接收端。
共享介质可包括但不限于:PLC、无线通信技术、单对线以太网等。
示例性的,对第一数据块的编码方式可以是压缩编码,例如接收端丢失的两个数据块均为16位,在现有技术中,需要对两个数据块重传,则重传数据量为16*2=32位。而本实施方式可对两个16位的数据块进行压缩编码,编码后的数据块还是16位,该编码过程可以看做是比特位的压缩过程。这样,重传数据量为16位,相比于现有技术中的数据重传量能够大比例缩小。
在共享介质的通信回路中接入的终端(可以是第二网络设备的示例)数量较多,而物理介质共享技术的应用层带宽较窄,信道环境较差,使得丢包情况较为常见。为了提升数据传输的可靠性和传输效率,本申请的发送端可对至少一个接收端丢失的数据块进行编码,使得编码后得到的第二数据块的数量,小于编码前的第一数据块的数量。再将编码后的数据块发送至至少一个接收端,相比于将至少一个接收端丢失的全部数据块进行重传,该方法可降低重传数据块的数据量,以使数据传输量更小,利于提升数据传输效率和物理介质共享通信的吞吐量,易满足终端物联对于通信实时性、可靠性的要求。
在一种可能的实施方式中,所述对第一数据块进行编码,生成至少一个第二数据块,包括:根据第一编码信息对所述第一数据块进行编码,生成至少一个第二数据块;所述第一编码信息包括第一信息和与每个所述第二数据块分别对应的第二信息;其中,所述第一信息用于指示所述第二数据块的数量;所述第二信息用于指示用于编码生成所述第二数据块所基于的第一数据块。
示例性的,发送端在向接收端发送第三数据块后,接收端可向发送端反馈用于指示该第三数据块是否被接收端正确接收的信息(例如ACK)。示例性的,发送端可在接收到来自至少一个接收端的该ACK时,来生成该第一编码信息。
示例性的,与第二数据块对应的第二信息用于指示该第二数据块是基于哪些第一数据块编码而生成的信息。例如丢失的数据块1和丢失的数据块2编码得到一个第二数据块,那么这里的与该第二数据块对应的第二信息可以是数据块1和数据块2各自的块号信息。
示例性的,第一编码信息的实现方式可以是矩阵,或者其他形式的编码数据,本申请对此不做限制。
示例性的,发送端可通过共享介质向至少一个接收端,发送至少两个第三数据块,其中,每个第三数据块还可称为原始数据块。
本实施方式可利用第一编码信息,来对至少一个接收端丢失的原始数据块进行编码,以生成至少一个编码后的数据块(例如第二数据块),其中,第一编码信息可包括用于指示第二数据块的数量的信息,还可包括在编码生成每个第二数据块时所基于的原始数据块的信息。以此方式编码得到的第二数据块的数量可小于第一数据块的数量,从而降低数据重传量。
在一种可能的实施方式中,所述编码方法还包括:基于来自至少一个所述第二网络设备的第一反馈信息,生成所述第一编码信息;其中,所述第一反馈信息为相应第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示在所述至少两个第三数据块中,未被所述相应第二网络设备正确接收到的目标数据块;其中,在至少一个所述第一反馈信息所分别对应的所述目标数据块的数量中,取值最大的数量为所述第一信息指示的数量;其中,所述第二信息所指示的第一数据块包括与不同所述第一反馈信息对应的所述目标数据块。
示例性的,这里的第一反馈信息可为接收端对发送端发送的至少两个原始数据块的ACK信息。该ACK信息可指示相应接收端对至少两个原始数据块中的哪个原始数据块没有正确接收到。例如发送端通过共享介质发送a0至a4的5个数据块至两个接收端。其中,接收端1丢失了数据块a2,接收端2丢失了数据块a1和数据块a3。例如在ACK中,未正确接收的原始数据块对应的位置置为1,正确接收的原始数据块对应的位置置为0,则接收端1的ACK1可为00100;接收端2的ACK2可为01010。这里,ACK1所指示的接收端1未正确接收到的目标数据块为数据块a2,ACK2所指示的接收端2未正确接收到的目标数据块包括数据块a1和数据块a3。
那么发送端可结合接收到的ACK1和ACK2来生成第一编码信息。
示例性的,ACK1和ACK2中对应的目标数据块的数量的最大值为ACK2对应的数量“2”(这里ACK2对应两个目标数据块),发送端可将数量“2”作为第一编码信息中第一信息所指示的第二数据块的数量。这样,发送端可结合第一编码信息来生成2个第二数据块。
另一方面,发送端还需要结合ACK1和ACK2来确定接收端丢失的哪些数据块进行编码,来分别生成两个第二数据块。
示例性的,发送端可结合ACK1和ACK2来确定由不同接收端丢失的原始数据块,以将该原始数据块的块号信息,生成为第一编码信息中第二信息所指示的第一数据块。
举例来说,发送端可结合ACK1和ACK2,确定不同接收端丢失的两个数据块,例如分别为数据块a2和数据块a1,将数据块a1和数据块a2各自的块号作为第一编码信息中一个第二数据块对应的第二信息
对于剩余的一个数据块a3,也可以直接将数据块a3的块号作为另一个第二数据块对应的第二信息,以使编码后的两个第二数据块分别为:对数据块a1和数据块a2编码得到的一个第二数据块,以及将数据块a3作为另一个编码后的第二数据块。
在本实施方式中,发送端可结合至少一个接收端对原始数据块的丢包情况和丢包数量,来生成用于编码的第一编码信息,从而利用第一编码信息来对至少一个接收端丢失的原始数据块进行编码。由于在编码时,编码生成的任意一个第二数据块可以是单个接收端丢失的数据块,也可以是至少两个接收端分别丢失的数据块的编码后的数据块。这样,编码后的数据块能够被至少一个接收端中的每个接收端所解码。
在一种可能的实施方式中,所述第一编码信息包括第一矩阵,所述第一矩阵的行数为m且列数为n,或者,所述行数为n且所述列数为m,其中,m为所述第三数据块的数量,m≥2,n为所述第二数据块的数量,m>n≥1;所述第一矩阵中的m行元素或m列元素分别用于指示各个所述第三数据块是否被所述至少一个第二网络设备正确接收,其中,不同行或不同列的元素对应不同的第三数据块;所述第一矩阵中的n列元素或n行元素用于指示不同所述第三数据块被不同所述第二网络设备是否正确接收的信息。
示例性的,m,n为正整数。
示例性的,m为发送端向至少一个接收端所发送的第三数据块的总数量。n为第一信息所指示的数量,可理解为至少一个接收端中丢包最多的接收端所丢失的数据块的数量。
以第一矩阵的行数为m,列数为n为例进行说明。
例如发送端向至少一个接收端发送了5个原始数据块,分别为a0至a4,则第一矩阵可包括5行,每行表示一个原始数据块被至少一个接收端是否正确接收的信息(例如元素“1”表示未被正确接收,元素“0”表示被正确接收),不同行对应不同的原始数据块。
继续以上述ACK1和ACK2举例,例如该第一矩阵可包括两列,列1可对应上述5个原始数据块,那么列1内某行的元素为“1”可表示该行对应的原始数据块未被一个接收端正确接收,列1内另一个行的元素为“1”可表示该行对应的原始数据块未被另一个接收端正确接收。示例性的,第一矩阵中的一列可为与一个第二数据块对应的一个第二信息的示例。那么第一矩阵中的每一列元素可用于表示不同接收端对不同的原始数据块是否正确接收的信息,并且每一列对应编码后生成的一个第二数据块。
示例性的,该第一矩阵的大小与共享介质中的第二网络设备的数量无关,而与发送端发送的原始数据块的数量m相同,可选地与共享介质中至少一个第二网络设备对原始数据块的丢包情况相关。
本实施方式可对至少一个第二网络设备对原始数据块的丢包情况,以及对丢失的原始数据块的进行编码时所基于的各个原始数据块的信息,以矩阵的形式来存储。那么在编码时,可结合矩阵来对丢失的数据块进行编码,利于提升编码效率;并且,该第一矩阵的大小与第二网络设备的数量无关,而共享介质的通信回路中第二网络设备的数量较多,从而可以在较多STA的场景下,实现数据的可靠性传输。
在一种可能的实施方式中,所述第一反馈信息,用于对已生成的所述第一编码信息进行更新;所述至少一个第二数据块,为基于更新后的第一编码信息,对所述第一数据块进行编码而生成的数据块。
示例性的,发送端可每接收到一个所述第二网络设备的一个第一反馈信息,则基于所述一个第一反馈信息,确定是否对第一编码信息进行更新,以获取更新后的所述第一编码信息。以第一矩阵为第一编码信息为例,可对第一矩阵内的元素进行更新,其中初始化的第一矩阵为0矩阵,阶数可为m);每更新一次所述第一矩阵,发送端可根据更新后的所述第一矩阵对所述第一数据块进行编码,生成所述至少一个第二数据块;那么发送端可在检测到已接收到的所述第一反馈信息满足预设条件,则向所述至少一个第二网络设备发送最近一次编码生成的所述至少一个第二数据块。
本实施方式中,发送端每接收到来自一个接收端的第一反馈信息(例如ACK),就可以触发一次对第一矩阵内的元素的更新,以及基于更新后的第一矩阵来对已接收到的ACK对应的接收端,所丢失的数据块进行编码;相比于在检测到已接收到的所述第一反馈信息满足预设条件的情况下,再基于最后一次更新的第一矩阵来对第一数据块进行编码,可以显著降低运算时延,从而提升数据传输效率;待对原始数据块的ACK的接收窗口过期或者发送端已接收到共享介质的通信回路中的全部接收端的ACK时,则可触发发送端向每个接收端发送编码后的至少一个第二数据块,使得每个接收端可利用该至少一个第二数据块来对丢失的原始数据块进行解码,以实现数据的可靠性传输。
在一种可能的实施方式中,所述对第一数据块进行编码,生成至少一个第二数据块,包括:对由不同所述第二网络设备未正确接收的至少两个第一数据块进行编码,生成至少一个第二数据块。
示例性的,每个所述第二数据块可由与不同所述第二网络设备对应的第一数据块编码生成。
这样,发送端在编码生成每个第二数据块时,可对不同第二网络设备丢失的数据块(优选丢失的不同数据块)进行编码,这样,可利于第二网络设备对第二数据块进行准确解码。
在一种可能的实施方式中,所述对第一数据块进行编码,生成至少一个第二数据块,包括:对第一数据块在有限域上进行编码,生成至少一个第二数据块。
本实施方式可对第一数据块在有限域上进行编码,可降低编码复杂度,提升编码效率。
在一种可能的实施方式中,所述对第一数据块在有限域上进行编码,生成至少一个第二数据块,包括:对不同的第一数据块进行按位异或运算,生成至少一个第二数据块。
本实施方式可以简单的异或运算,来实现丢失的原始数据块的编码,从而降低编码复杂度,提升编码效率,减少编码时的资源占用。
在一种可能的实施方式中,所述对第一数据块进行编码,生成至少一个第二数据块之后,所述方法还包括:向所述至少一个第二网络设备发送与每个所述第二数据块分别对应的所述第二信息。
示例性的,第二信息的实现方式可以是上述第一矩阵的至少一行,或至少一列,例如第一矩阵为m行n列的矩阵,则一个第二数据块对应的第二信息可以是第一矩阵的一列。使得第一矩阵的列数可决定第二数据块的数量。当然,第二信息的实现方式也可以是其他的实现形式,本申请对此不做限制。
本实施方式中,发送端不仅可将编码后的数据块发送至每个接收端,还可将用于表征每个编码后的数据块由哪些原始数据块进行编码的信息(这里的第二信息)发送至每个接收端,不仅可便于接收端利用该第二信息来对编码后的数据块进行解码,提升解码效率,而且还可利于接收端在解码的同时,利用该第二信息进行相应的逻辑判断,以避免接收端错过对重传数据块的应答信息的发送窗口。
在一种可能的实施方式中,所述第二信息为所述第一矩阵的目标行或目标列(其中,在第一矩阵为m行n列的场景下,每行表示一个数据块被至少一个第二网络设备是否正确接收的信息,则这里第二信息可以是目标列),其中,所述目标行或所述目标列为所述第一矩阵中包括目标元素的行或列,所述目标元素用于指示至少一个所述第二网络设备对所述第三数据块未正确接收。
示例性的,目标元素可为元素“1”,或者“元素0”。
本实施方式,利用二元的第一矩阵来对丢失的原始数据块进行编码,可降低编码复杂度,提升编码效率。
在一种可能的实施方式中,本申请提供一种解码方法,应用于第二网络设备,所述第二网络设备与所述第一网络设备通过共享介质进行通信。该方法包括:接收来自所述第一网络设备的至少一个第二数据块;接收来自所述第一网络设备的与每个所述第二数据块对应的第二信息;其中,任意一个所述第二数据块对应的所述第二信息,用于指示用于编码生成该第二数据块所基于的第一数据块以及至少一个第四数据块;其中,所述第四数据块为在至少两个第三数据块中所述第二网络设备正确接收到的第三数据块;所述第一数据块为在所述至少两个第三数据块中所述第二网络设备未正确接收到的第三数据块;根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块;其中,所述至少两个第三数据块为所述第一网络设备通过所述共享介质向至少一个第二网络设备发送的数据。
示例性的,这里的第一数据块为这里的第二网络设备单独丢失的原始数据块,在上述编码方法的各实施方式中,第一数据块可用于表示至少一个第二网络设备所丢失的原始数据块的集合。
例如,本申请的解码方法的各实施方式中的第一数据块为这里的一个第二网络设备在多个原始数据块中没有正确接收到的原始数据块,而非上述编码方法的各实施方式中各个第二网络设备,在多个原始数据块中没有正确接收到的原始数据块的集合。
本实施方式与上述编码方法的实施方式中的相同名称的技术特征表示相同或类似的意义,这里不再一一赘述。
本实施方式中,接收端可基于已接收到的原始数据块和与每个第二数据块对应的第二信息,来对编码后的数据块进行解码,其中,第二信息可用于指示发送端在编码生成相应第二数据块时所基于的至少一个第二网络设备所丢失的原始数据块。就这里的一个第二网络设备而言,编码第二数据块所基于的原始数据块可包括第二网络设备所丢失的原始数据块,还包括第二网络设备未丢失的原始数据块。这样,接收端可基于该第二信息,来利用未丢失的原始数据块,来对第二数据块进行解码,以获取丢失的原始数据块,利于确保第二网络设备的准确解码,实现了原始数据块的可靠性传输,利于提升数据传输效率和物理介质共享通信的吞吐量,易满足终端物联对于通信实时性、可靠性的要求。
在一种可能的实施方式中,所述根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块,包括:
根据所述第二信息指示的所述至少一个第四数据块,在有限域上对所述至少一个第二数据块进行解码,获取所述第一数据块。
本实施方式可对各个第二数据块在有限域上进行解码,可降低解码复杂度,提升解码效率。
在一种可能的实施方式中,所述方法还包括:根据第一反馈信息和所述第二信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备;其中,所述第一反馈信息为所述第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述第二网络设备未正确接收到的第三数据块。
可选地,所述第二反馈信息为所述第二网络设备对所述至少一个第二数据块的反馈信息。
可选地,所述第二反馈信息用于指示所述第二网络设备已正确接收到所述第一数据块。
本实施方式中,接收端可利用该第二信息来对编码后的数据块进行解码,提升解码效率,而且还可利于接收端在解码的同时,利用该第二编码信息进行相应的逻辑判断,以避免接收端错过对重传数据块的应答信息的发送窗口(例如避免了由于解码时延较长而错过了重传ACK发送窗口),而导致重传ACK信息被推迟发送或无法发送的问题,有利于缩短接收应答的时延。
在一种可能的实施方式中,所述根据第一反馈信息和所述第二编码信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备,包括:对所述第一反馈信息和所述第二编码信息按位与操作,获取操作结果;基于所述操作结果,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备。
本实施方式可利用第一反馈信息和第二编码信息,通过按位与操作,来逻辑判断至少一个第二数据块是否能够用于解码生成接收端所丢失的原始数据块,从而在确定所述至少一个第二数据块能够用于解码生成所述第一数据块时,接收端可将第二反馈信息的发送,与第二数据块的解码进行并行操作,可以显著降低传输时延,从而提升通信实时性与可靠性。
在一种可能的实施方式中,所述根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块,包括:根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行并行解码,以获取至少一个所述第一数据块。
本实施方式中,在接收端接收到至少一个第二数据块时,可对每个数据块进行并行解码,可提升解码效率。
关于解码方法的各实施方式中对于第二信息的生成方式以及第二信息的可实现方式,具体可按照编码方法的相应实施方式的介绍,技术方案和技术效果类似,这里不再一一赘述。
在一种可能的实施方式中,本申请提供一种编码装置,应用于第一网络设备,所述第一网络设备与至少一个第二网络设备通过共享介质进行通信,所述编码装置用于:对第一数据块进行编码,生成至少一个第二数据块;其中,所述第二数据块的数量小于所述第一数据块的数量;其中,所述第一数据块为在至少两个第三数据块中未被所述至少一个第二网络设备正确接收到的第三数据块;其中,所述至少两个第三数据块为所述第一网络设备向所述至少一个第二网络设备发送的数据;向所述至少一个第二网络设备发送所述至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:根据第一编码信息对所述第一数据块进行编码,生成至少一个第二数据块;所述第一编码信息包括第一信息和与每个所述第二数据块分别对应的第二信息;其中,所述第一信息用于指示所述第二数据块的数量;所述第二信息用于指示用于编码生成所述第二数据块所基于的第一数据块。
在一种可能的实施方式中,所述第一编码信息包括第一矩阵,所述编码装置还用于:基于来自至少一个所述第二网络设备的第一反馈信息,生成所述第一编码信息;其中,所述第一反馈信息为相应第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示在所述至少两个第三数据块中,未被所述相应第二网络设备正确接收到的目标数据块;其中,在至少一个所述第一反馈信息所分别对应的所述目标数据块的数量中,取值最大的数量为所述第一信息指示的数量;其中,所述第二信息所指示的第一数据块包括与不同所述第一反馈信息对应的所述目标数据块。
在一种可能的实施方式中,所述第一编码信息包括第一矩阵,所述第一矩阵的行数为m且列数为n,或者,所述行数为n且所述列数为m,其中,m为所述第三数据块的数量,m≥2,n为所述第二数据块的数量,m>n≥1;所述第一矩阵中的m行元素或m列元素分别用于指示各个所述第三数据块是否被所述至少一个第二网络设备正确接收,其中,不同行或不同列的元素对应不同的第三数据块;所述第一矩阵中的n列元素或n行元素用于指示不同所述第三数据块被不同所述第二网络设备是否正确接收的信息。
在一种可能的实施方式中,所述第一反馈信息,用于对已生成的所述第一编码信息进行更新;所述至少一个第二数据块,为基于更新后的第一编码信息,对所述第一数据块进行编码而生成的数据块。
在一种可能的实施方式中,所述编码装置具体用于:对由不同所述第二网络设备未正确接收的至少两个第一数据块进行编码,生成至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:对第一数据块在有限域上进行编码,生成至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:对不同的第一数据块进行按位异或运算,生成至少一个第二数据块。
在一种可能的实施方式中,所述编码装置还用于:向所述至少一个第二网络设备发送与每个所述第二数据块分别对应的所述第二信息。
上述各实施方式的编码装置的效果,与上述各实施方式的编码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种解码装置,应用于第二网络设备,其中,所述第二网络设备与第一网络设备通过共享介质进行通信,所述解码装置用于:接收来自所述第一网络设备的至少一个第二数据块;接收来自所述第一网络设备的与每个所述第二数据块对应的第二信息;其中,任意一个所述第二数据块对应的所述第二信息,用于指示用于编码生成该第二数据块所基于的第一数据块以及至少一个第四数据块;其中,所述第四数据块为在至少两个第三数据块中所述第二网络设备正确接收到的第三数据块;所述第一数据块为在所述至少两个第三数据块中所述第二网络设备未正确接收到的第三数据块;根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块;其中,所述至少两个第三数据块为所述第一网络设备通过所述共享介质向至少一个第二网络设备发送的数据。
在一种可能的实施方式中,解码装置具体用于:根据所述第二信息指示的所述至少一个第四数据块,在有限域上对所述至少一个第二数据块进行解码,获取所述第一数据块。
在一种可能的实施方式中,所述解码装置还用于:根据第一反馈信息和所述第二信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备;其中,所述第一反馈信息为所述第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述第二网络设备未正确接收到的第三数据块;所述第二反馈信息为所述第二网络设备对所述至少一个第二数据块的反馈信息,所述第二反馈信息用于指示所述第二网络设备已正确接收到所述第一数据块。
在一种可能的实施方式中,所述解码装置具体用于:对所述第一反馈信息和所述第二编码信息按位与操作,获取操作结果;基于所述操作结果,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备。
在一种可能的实施方式中,所述解码装置具体用于:根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行并行解码,以获取至少一个所述第一数据块。
上述各实施方式的解码装置的效果,与上述各实施方式的解码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种编码装置。该编码装置包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述处理器可实现上述任意一种实施方式中的编码方法。
本实施方式的编码装置的效果,与上述各实施方式的编码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种解码装置。该编码装置包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述处理器可实现上述任意一种实施方式中的解码方法。
本实施方式的解码装置的效果,与上述各实施方式的解码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行上述任意一种实施方式中的编码方法。
本实施方式的计算机可读存储介质的效果,与上述各实施方式的编码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行上述任意一种实施方式中的解码方法。
本实施方式的计算机可读存储介质的效果,与上述各实施方式的解码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种计算机程序产品。计算机程序产品包含软件程序,当软件程序被计算机或处理器执行时,使得上述任意一个实施方式中的编码方法被执行。
本实施方式的计算机程序产品的效果,与上述各实施方式的编码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种计算机程序产品。计算机程序产品包含软件程序,当软件程序被计算机或处理器执行时,使得上述任意一个实施方式中的解码方法被执行。
本实施方式的计算机程序产品的效果,与上述各实施方式的解码方法的效果类似,这里不再赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为示例性示出的智能家居场景下PLC控制回路中的节点示意图;
图2a为示例性示出的一种本申请的系统的框图;
图2b为示例性示出的该系统的工作流程图;
图3a为示例性示出的数据传输的示意图;
图3b为示例性示出的数据传输的示意图;
图4a为示例性示出的数据结构示意图;
图4b为示例性示出的数据结构示意图;
图5a为示例性示出的编码过程的示意图;
图5b为示例性示出的编码过程的示意图;
图6a为示例性示出的数据重传的示意图;
图6b为示例性示出的数据重传的示意图;
图7a为示例性示出的逻辑判断的示意图;
图7b为示例性示出的逻辑判断的示意图;
图8a为示例性示出的组播传输的时序示意图;
图8b为示例性示出的单播传输的时序示意图;
图9为本申请实施例提供的一种装置的结构示意图;
图10为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
随着物联网的发展,越来越多的终端可互联,物联网终端的应用场景可影响物联网终端的联网方式。物联网终端按照应用场景可分为固定终端和移动终端两类,其中,固定终端应用在固定接入场合,一般具有可靠的外部供电。固定终端可用于检测各种固定设备、仪器或环境的信息,固定终端之间的物联对于网络连接的实时性、可靠性有较高要求。
物联网通常使用物理介质共享技术(也称共享介质),如无线通信技术,或电力线通信(PLC,Power Line Communication)技术,或单对线以太网(SPE)进行互联。上述物理介质共享技术在通信时不受地形、地貌影响,且建设和运维成本低,无需布线,施工期短。其中,PLC可广泛应用于物联网以及家庭网络,PLC可将已调制的高频信号加载于已有的电力线进行信息传输,从而不需要重新架设通信网络,只要存在电线,各物联网终端就能通信,覆盖范围广。
目前,物理介质共享技术的通信回路中接入的终端(Station,STA)数量较多,例如物理介质共享技术为无线通信技术,那么无线访问接入点((WirelessAccessPoint,AP)、或无线接入设备、或无线网关均可接入较多的STA。再如,物理介质共享技术为PLC技术,那么电力线回路中可接入较多的STA。又如物理介质共享技术还可为单对线以太网,那么单对线以太网中可接入的较多的STA。而物理介质共享技术的应用层带宽较窄,例如仅有几十Kbps,使得物理介质共享技术中的数据传输效率较低,且难以满足终端物联对于通信实时性、可靠性的要求。
为此,本申请提供了一种编码方法、一种解码方法,以及一种发送端(还可称为源端)和一种接收端。应用于物联网的共享物理介质(例如无线通信网络、PLC网络、单对线以太网等)。其中,发送端可用于生成并发送多个原始数据块,以及对各接收端丢失的原始数据块进行编码并将编码后的数据块重传给各个接收端;接收端可用于对编码后的数据块进行解码,以获取本接收端丢失的原始数据块。这样,在物理介质共享技术的通信回路(例如无线通信回路或电力线回路或单对线以太网回路等)中接入的终端数量较多情况下,可实现丢包的重传和丢包的恢复,且重传的编码后的数据块相比于现有技术中重传全部丢失的数据块的数据量较小,从而显著提升物理介质共享通信的吞吐量和数据传输效率,以及降低传输时延,从而提升通信实时性与可靠性。
示例性的,本申请所提供的发送端可用于发送报文,本申请所提供的接收端可用于接收报文。
在不同应用场景下,同一电子设备可分别作为发送端或接收端,本申请对此不做限制。
示例性的,在物联网领域下,在物理介质共享技术为无线通信技术时,无线通信回路中的设备类型可包括但不限于:无线基站、无线访问接入点、无线网关、无线终端(也称STA)等。
示例性的,无线网关使用的无线空口技术可包括但不限于Zigbee、蓝牙等。本申请对于在物联网领域下,无线通信技术中的各设备所使用的具体无线通信协议不做限制。
在一个示例中,发送端可为无线基站,或,无线访问接入点,或,无线网关;接收端为无线终端。
在另一个示例中,发送端可为无线终端,接收端可为无线基站,或,无线访问接入点,或,无线网关。
需要说明的是,在无线通信回路中,任意设备在发送数据时,则该设备均可作为本申请的发送端,任意设备在接收数据时,则该设备均可作为本申请的接收端,上述示例并不用于限制本申请。
示例性的,在物联网领域下,在物理介质共享技术为PLC技术时,PLC回路中的设备类型可包括但不限于:PLC网关、有线终端(也称STA)等。
示例性的,该有线终端可为接电力线的任意物联网设备。
示例性的,图1为示例性示出的智能家居场景下PLC控制回路中的节点示意图。
如图1所示,PLC链路中的节点可包括但不限于:网关、与网关所在的PLC总线连接的节点(例如上述有线终端)。在智能家居场景下,PLC链路中可包括上百个节点,这里示例性的示出了部分节点。示例性的,连接在总线上的节点可包括:至少一个开关(例如开关1、开关2和开关3)、至少一个传感器(例如传感器1至传感器n)、至少一个灯(例如灯1至灯m)、至少一个窗帘电机、至少一个插座等。网关可发送报文至与PLC总线连接的各个节点。网关还可接收所述各个节点发送的报文,不同节点可通过网关进行通信。
在一个示例中,发送端可为PLC网关;接收端为有线终端。
在另一个示例中,发送端可为有线终端,接收端可为PLC网关。
需要说明的是,在PLC回路中,任意设备在发送数据时,则该设备均可作为本申请的发送端,任意设备在接收数据时,则该设备均可作为本申请的接收端,上述示例并不用于限制本申请。
图2a为本申请示例性示出的一种系统的框图。该系统可包括发送端和至少一个接收端。
该发送端可包括编码模块和丢包记录模块;该接收端可包括解码模块和丢包反馈模块。
示例性的,编码模块,可用于生成并发送多个原始数据块;
解码模块,可用于接收发送端发送的原始数据块;
丢包反馈模块,可用于根据解码模块接收到的数据块,向发送端反馈本接收端未正确接收或丢失的原始数据块;
丢包记录模块,可用于根据各接收端反馈的未正确接收或丢失的原始数据块,对第一矩阵进行更新,以记录各接收端的丢包信息;
编码模块,还可用于基于丢包记录模块记录的信息,来对各接收端丢失的数据包进行编码,并发送编码数据包和更新后的第一矩阵中的矩阵信息至每个接收端,以实现对各接收端的丢失数据包的重传。
解码模块,还可用于接收发送端发送的编码数据包及相应矩阵信息,并利用该矩阵信息对编码数据包进行解码,以获取本接收端丢失的原始数据包。
可选地,丢包反馈模块,还可用于基于接收到的第一矩阵的相应矩阵信息,来与接收多个原始数据块时生成的反馈信息进行操作,以确定编码数据包是否可用于解码本接收端丢失的数据包,以及反馈重传的丢失数据包是否准确的信息。
需要说明的是,图2a为示例性示出的系统框架结构示意图。应该理解的是,图2a所示系统仅是一个范例,本申请的系统,以及发送端、接收端可以包括比图中所示的更多的或者更少的模块,可以组合两个或多个的模块,或者可以具有不同的模块配置。图2a中所示出的各种模块可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
示例性的,下面结合图2b来对发送端和接收端的工作流程进行阐述。
示例性的,例如共享物理介质的通信回路中包括n+1个终端,那么一个终端1作为发送端来发送报文至至少一个终端2时,由于该通信回路为共享的物理介质的通信回路,使得该报文不仅可由该至少一个终端2接收到,而是在n+1个终端中,除该终端1之外的每个终端(这里为全部的终端2)均可作为接收端接收到该报文。那么在共享介质的场景下进行数据通信时,该通信回路中的一个终端作为发送端时,该通信回路中除该发送端之外的n个终端均作为接收端,来接收发送端发送的数据,如图2b所示,这里包括n个接收端。
示例性的,共享介质通信回路包括6个STA,分别为STA0至STA5。例如STA0作为发送端旨在发送报文1至STA1,这样,该报文的目的地址为用于指示STA1的地址。但是由于该报文在共享介质内传输,使得该通信回路中的STA2至STA5均可接收到该报文1,但是,不关心该报文1的STA2至STA5可丢弃该报文1。
如图2b所示,该过程可包括如下步骤:
S101,发送端发送多个原始数据包至n个接收端。
例如,n大于等于2。
示例性的,发送端可通过组播/广播的传输方式,来发送多个原始数据包,也可以通过单播的传输方式,来发送多个数据包,本申请对此不做限制。
此外,本申请对于n个接收端对多个原始数据包的接收顺序不做限制。
示例性的,发送端和n个接收端可预先约定m的取值,m为发送端发送的多个原始数据包的数量。
示例性的,m个原始数据包可为一个报文划分为的m个原始数据块,还可对多个报文的拼接结果划分为的m个原始数据块。
示例性的,m个原始数据块的数据大小相同。
可选地,m个原始数据块的数据大小也可不一一相同,本申请对此不做限制。
可选地,在m个原始数据块的数据大小并不完全相同时,发送端在执行下述图2b所示的S105时,可对数据长度较短的原始数据块的高位补零,来实现对丢失的数据块的编码。
本申请的发送端不论是单播、组播还是广播的方式发送报文,均一次性或连续的发送m个原始数据块,以实现数据发送。
示例性的,以n为5,m为5为例,分别结合组播/广播传输数据的实施方式,和单播传输数据的实施方式,来对本申请进行描述。示例性的,如图3a、图3b所示,发送端的发送数据包括5个长度为k(如k=8)bits的原始数据块{a0,a1,a2,…,a4}。
在一种可能的实施方式中,如图3a所示,发送端将5个原始数据块{a0,a1,a2,…,a4}以组播或广播的传输方式,发送至共享介质的控制回路中的除该发送端之外的全部STA,这里为5个STA,分别STA1至STA5。但是,由于共享介质的控制回路中各节点的带宽较小,信道环境较为恶劣,STA在接收数据时,会存在数据块的丢失。
示例性的,如图3a所示,STA1仅接收到数据块a0、数据块a3和数据块a4,而数据块a1和数据块a2则没有正确接收到或者丢失。
示例性的,如图3a所示,STA2仅接收到数据块a1、数据块a2和数据块a3,而数据块a0和数据块a4则没有正确接收到或者丢失。
示例性的,如图3a所示,STA3、STA4的丢包情况与STA2的丢包情况类似,这里不再赘述。
示例性的,如图3a所示,STA5仅接收到数据块a0、数据块a1、数据块a2和数据块a4,而数据块a3则没有正确接收到或者丢失。
在另一种可能的实施方式中,如图3b所示,发送端以单播方式分别发送5个原始数据块a0、a1、a2、a3、a4。
示例性的,发送端以单播传输方式将数据块a0发送至STA1。例如,数据块a0的目的地址为STA1的地址,如图3b所示STA1需要的原始数据块为数据块a0。这样,当发送端以单播方式发送某个数据块至某个STA时,由于该数据块在共享介质中传输,使得共享介质的控制回路(例如无线通信的控制回路或者PLC的控制回路)中的每个STA均可接收到数据块a0。但是,数据块a0并不是除STA1之外的STA所需要(或者说关心)的原始数据块。
同理,发送端以单播传输方式将数据块a1发送至STA2;发送端以单播传输方式将数据块a2发送至STA3;发送端以单播传输方式将数据块a3发送至STA4;发送端以单播传输方式将数据块a4发送至STA5。如图3b所示,STA1至STA5各自需要的原始数据块分别为数据块a0、数据块a1、数据块a2、数据块a3、数据块a4。但是5个STA因共享介质的原因,均可接收到全部的单播发送的5个原始数据块。
示例性的,如图3b所示,发送端将5个原始数据块{a0,a1,a2,…,a4}分别以单播的传输方式,发送至共享介质的控制回路中的除该发送端之外的全部STA,这里为5个STA,分别STA1至STA5。但是,由于共享介质的控制回路中各节点的带宽较小,信道环境较为恶劣,STA在接收数据时,会存在数据块的丢失。
示例性的,如图3b所示,STA1仅接收到数据块a1、数据块a3和数据块a4,而数据块a2和STA1所需要的数据块a0则没有正确接收到或者丢失。为了便于STA1来使用本申请的解码方法进行解码,来获取需要的数据块a0,则STA1可保留已接收到的、但是并不需要的数据块a1、数据块a3和数据块a4。
示例性的,如图3b所示,STA2仅接收到数据块a0、数据块a2、数据块a3、数据块a4,而STA2所需要的数据块a1则没有正确接收到或者丢失。为了便于STA2来使用本申请的解码方法进行解码,来获取需要的数据块a1,则STA2可保留已接收到的、但是并不需要的数据块a0、数据块a2、数据块a3和数据块a4。
示例性的,如图3b所示,STA3、STA4的丢包情况与STA2的丢包情况类似,但是,STA3和STA4各自所需要的数据块a2、数据块a3已接收到。那么可选地,STA3可丢弃已接收到的数据块a0、数据块a3、数据块a4,而保留所需要的数据块a2;同理,可选地,STA4可丢弃已接收到的数据块a0、数据块a2、数据块a4,而保留所需要的数据块a3。
示例性的,如图3b所示,STA5仅接收到数据块a0、数据块a2和数据块a3,而数据块a1和STA5所需要的数据块a4则没有正确接收到或者丢失,则为了便于STA5来使用本申请的解码方法进行解码,来获取需要的数据块a4,则STA5可保留已接收到的、但是并不需要的数据块a0、数据块a2和数据块a3。
可以理解的是,发送端在以单播的方式分别发送5个原始数据块,或者以组播或广播的方式发送5个原始数据块时,各个原始数据块可携带数据块的序列号信息,而发送端与接收端已约定发送端所发送的数据对应的m的取值,这里为5。这样,共享介质回路中的每个接收端都可以基于已接收到的数据块的序列号确定本接收端没有正确接收到或丢失的数据块。
可选地,在S101之后,发送端可缓存该多个原始数据包,以用于从多个原始数据包中选取接收端丢失的数据包来进行编码。
S201,接收端发送用于指示未正确接收的第一数据包的第一反馈信息至发送端。
示例性的,接收端1至接收端n可分别发送各自的第一反馈信息。
示例性的,在物联网的共享介质通信回路中,由于节点数量较多,例如STA数量较多,为了实现发送端与接收端的数据通信。示例性的,PLC的通信回路中,PLC网关为每个STA预先设置并约定了数据接收窗口、数据发送窗口,例如图8a所示的STA2的各数据接收窗口和各数据发送窗口(例如ACK发送窗口),以实现各STA的数据向发送端分时段反馈。示例性的,STA在错过本STA的数据发送窗口时,则无法向发送端进行数据反馈。
可以理解的是,部分接收端因错过第一反馈信息的发送窗口,而未发送第一反馈信息至发送端的场景,可不影响本申请的方案的实现及解决上述技术问题。
示例性的,一个接收端发送的第一反馈信息用于指示对上述多个原始数据块的丢包或者说未正确接收的数据包信息。
在TCP/IP协议中,该第一反馈信息可以是确认字符(ACK,Acknowledgecharacter)。在其他协议下,该第一反馈信息的形式可以是其他形式,本申请对此不做限制。
示例性的,在ACK中,接收端可对每个原始数据块的接收情况以一个比特位来表示,例如,以1表示未正确接收或丢失该原始数据块、0表示已正确接收到该原始数据块。可以理解的是,本申请对于各接收端的反馈应答的机制不做限制,还可通过其他方式来实现,只要该第一反馈信息可使发送端确定例如上述5个原始数据块中哪些数据块在相应的STA中没有正确接收或丢失即可。
在一种可能的实施方式中,结合图3a,参照图4a,发送端以组播/广播(以组播为例)的方式发送了5个原始数据块{a0,a1,a2,…,a4}。针对该组播的5个原始数据块,STA1丢失了数据块a1和数据块a2,则STA1向发送端发送的第一反馈信息,这里为组播ACK1具体为“01100”,以表示数据块a1和数据块a2未被STA1正确接收,数据块a0、数据块a3和数据块a4被STA1正确接收;同理,发送端接收到的STA2的组播ACK2为“10001”,发送端接收到的STA3的组播ACK3为“10001”,发送端接收到的STA4的组播ACK4为“10001”,发送端接收到的STA5的组播ACK5为“00010”。
在一种可能的实施方式中,结合图3b,参照图4b,发送端以单播的方式分别发送了5个原始数据块{a0,a1,a2,…,a4}至5个STA中的每个STA。针对发送端以单播方式分别发送的5个原始数据块,STA1丢失了数据块a0和数据块a2,则STA1以单播方式向发送端发送了分别针对5个原始数据块{a0,a1,a2,…,a4}的5个第一反馈信息(例如图4b所示的5个单播ACK1),5个ACK1的内容分别为:对应数据块a0的“1”,对应数据块a1的“0”,对应数据块a2的“1”,对应数据块a3的“0”,对应数据块a4的“0”。以表示数据块a0和数据块a2未被STA1正确接收,数据块a1、数据块a3和数据块a4被STA1正确接收。
同理,发送端接收到来自的STA2的依次针对5个原始数据块{a0,a1,a2,…,a4}的5个单播ACK2,5个单播ACK2的内容依次为“0”、“1”、“0”、“0”、“0”;发送端接收到的来自STA3的依次针对5个原始数据块{a0,a1,a2,…,a4}的5个单播ACK3,5个单播ACK3的内容依次为“0”、“1”、“0”、“0”、“0”;发送端接收到的来自STA43的依次针对5个原始数据块{a0,a1,a2,…,a4}的5个单播ACK4,5个单播ACK4的内容依次为“0”、“1”、“0”、“0”、“0”;发送端接收到的来自STA5的依次针对5个原始数据块{a0,a1,a2,…,a4}的5个单播ACK5,5个单播ACK5的内容依次为“0”、“1”、“0”、“0”、“1”。
可以理解的是,本申请对于第一反馈信息的应答策略不做限制,一个接收端发送的第一反馈信息可用于指示该接收端未正确接收或丢失的原始数据块。
在一种可能的实施方式中,在发送端以单播的方式分别发送了5个原始数据块{a0,a1,a2,…,a4}至5个STA中的每个STA的场景下,5个STA中的每个STA在向发送端回复各自的ACK时,也可以向发送端发送针对该5个原始数据块{a0,a1,a2,…,a4}整体的一个ACK。例如STA1在根据接收到的原始数据块的块号,可确定丢失的原始数据块,从而向发送端发送一个单播ACK1,具体内容为“10100”,以表示数据块a0、数据块a2被正确接收,而数据块a1、数据块a3、数据块a4没有正确接收或丢失。同理,STA2向发送端发送的一个单播ACK2的具体内容为“01000”,STA3向发送端发送的一个单播ACK3的具体内容为“01000”,STA4向发送端发送的一个单播ACK4的具体内容为“01000”,STA5向发送端发送的一个单播ACK5的具体内容为“01001”。
示例性的,发送端和接收端已预先约定原始数据块的数量m的取值,该数量m可以为系统参数。而发送端每次发送的m个原始数据块中的每个数据块可具有标识域,接收端可根据已接收到的原始数据块的标识域,来确定未正确接收或丢失的原始数据块,以通知至发送端。
S103,发送端根据已接收到的第一反馈信息对第一矩阵进行更新。
示例性的,第一矩阵为行数为m的矩阵。
可选地,第一矩阵的列数的最大值为m。可选地,第一矩阵为阶数为m的方阵。
示例性的,第一矩阵中的各行可用于表示m个原始数据块中各原始数据块在接收端的接收情况。示例性的,第一矩阵的第k行的元素可用于表示对应原始数据块ak的接收情况。
例如,在第一矩阵中,元素1表示未正确接收或丢失原始数据块ak,元素0表示已正确接收原始数据块ak,其中,k=1,2,3,…,m,m大于等于2。在其他实施例中,也可以以元素0表示已正确接收原始数据块ak,以元素1表示未正确接收或丢失原始数据块ak,本申请对此不做限制。
示例性的,该第一矩阵的大小与接收端(例如有线终端或无线终端)的数量无关。
示例性的,该第一矩阵的大小与发送端发送的原始数据的块数直接相关,以及与接收端对原始数据块的丢失情况相关。
可选地,发送端可在执行S101之前,初始化元素为全零的m阶方阵(即m阶零方阵),例如如图5a(1)所示的矩阵P1(这里为5阶零方阵),或图5b(1)所示的矩阵P2(这里为5阶零方阵)。
示例性的,发送端对于发送的5个原始数据块,每接收到一个STAi对该5个原始数据块的ACKi,就按照预设方式,根据接收到的ACKi对第一矩阵进行更新,其中,i=1,2,3…5。
示例性的,发送端对于发送的5个原始数据块,每接收到一个STAi对该5个原始数据块的ACKi,就按照预设方式,根据接收到的ACKi对第一矩阵进行更新的具体方法可包括如下S11和S12:
S11:发送端接收一个ACKi,发送端搜索ACKi中第1个表示不正确的比特位(如“1”);然后,发送端可根据该比特位在该ACKi中的排列次序,来确定相应的数据块号k;之后,发送端根据数据块号k将第一矩阵P(初始状态为全零)中的第k行第q1列元素置为1,以表示不正确接收数据块号k对应的原始数据块ak。其中,q1为正整数,这里以q1=1为例进行说明。
可以理解的是,q1可以是1至m中的任意一个数值,在其他实施例中,例如q1为最大值m(这里为5),或者,q1为中间值(例如3)等,本申请对此不做限制。
S12:发送端继续搜索上述ACKi中下一个表示不正确的比特位(如“1”),以确定相应的数据块号j;然后,发送端根据数据块号j将第一矩阵P中第j行第q2列元素置为1(这里q2=q1+1)以表示不正确接收数据块号j对应的原始数据块aj,其中q1不等于q2;
然后,发送端循环执行S12,直至搜索到上述同一ACKi中最后一个表示不正确的比特位,则完成基于ACKi对第一矩阵P的更新。需要说明的是,在本实施例中,发送端在循环执行S12时,对于同一ACKi,发送端每检测到一个比特位1,就可将第一矩阵P中相应数据块号对应的行中的下一个列qi的元素置为1,其中,qi的取值不同于之前的各q(例如q1、q2等)的取值。
在上述实施例中,对于同一ACK,发送端以均匀的每次错过一列的方式,将第一矩阵中的相应列的元素置为1。例如ACK1为“11111”,则上述实施例中,发送端可依次将5阶零矩阵中的第一行第一列的元素置为1(这里q1为1),将第二行第二列的元素置为1,将第三行第三列的元素置为1,将第四行第四列的元素置为1,将第五行第五列的元素置为1,使得基于ACK1对初始化的第一矩阵P(5阶零方阵)进行更新后,这里更新后的第一矩阵P可表示为:
这样,在本实施方式中,发送端对第一矩阵P更新时,在该第一矩阵P中所选取的置为1的元素所属的列依次为第1列、第2列、第3列、第4列、第5列,这里p1=1。在其他实施例中,若p1=2,则在该第一矩阵P中所选取的置为1的元素所属的列依次为第2列、第3列、第4列、第5列、第1列。
在其他实施例中,对于同一个ACK,发送端按照从高位到低位或从低位到高位的次序,发送端在该ACK中每检测到一个元素1后,发送端在将第一矩阵P中的相应列的对应元素置为1时,也可以以不均匀的方式来错过相应数量的列,以将第一矩阵中的相应列的对应元素置为1。但是,在错过相应的列时,需要确保所选取的列在之前未选取过。
在一种可能的实施方式中,例如对于同一ACK1(例如“11111”),检测到第一个“1”时,发送端将第一矩阵P中的第一行的第1列的元素1置为1;在ACK1中检测到第二个“1”时,发送端错过两列,将第一矩阵P中第二行的第3列的元素置为1;在ACK1中检测到第三个“1”时,发送端从第3列向后错过一列,将第一矩阵P中第三行的第4列的元素置为1;在ACK1中检测到第四个“1”时,发送端从第4列向后错过一列,将第一矩阵P中第四行的第5列的元素置为1;在ACK1中检测到第五个“1”时,发送端从第5列向后错过两列,将第一矩阵P中第五行的第2列的元素置为1。
这样,发送端每次填充元素1时,可不均匀的错过相应数量的列进行元素1的填充,这里错过的列数依次为:2列、1列、1列、1列、2列,填充的分别是第一矩阵P的第1列、第3列、第4列、第5列、第2列的相应行的元素。
可以理解的是,本申请对于发送端在同一ACK中每检测到一个比特位“1”,以在第一矩阵P中选取一个列,并将选取的列对应的某行的元素置为1时,对于第一矩阵P中各列之间的选取顺序不做限制。例如第一矩阵P包括5列,可按照第1、2、3、4、5列的顺序来依次选取各列,也可以按照第5、4、3、2、1列的顺序(这里q1=5)来依次选取各列的。
上述举例是每次错过一个列,发送端也可以不均匀的错过相应数量的列来选取各列。例如第一矩阵P包括5列,可按照第1、3、4、5、2列的顺序来依次选取各列,也可以按照第2、4、3、5、1列的顺序(这里q1=2)来依次选取各列。
在本申请中,只要针对该同一ACK,在第一矩阵P中每次选取的列和之前所选取的列不同即可。即在同一ACK最多包括5个1的情况下,发送端所选取的最多5列均为第一矩阵P中的不同列。关于其他举例,这里不再赘述,原理类似。
可以理解的是,发送端对于发送的5个原始数据块,每接收到一个STAi对该5个原始数据块的ACKi,均按照在第一矩阵P中选取列的同一策略,来根据接收到的ACKi对第一矩阵进行更新。换言之,本申请的预设方式并不限于上述各个实施方式的举例,但是,针对单播或组播或广播发送的一组内的5个原始数据块,发送端每次根据接收到的ACKi,来对第一矩阵进行更新时,所采用的预设方式需相同。
例如发送端在接收到STA1的ACK1时,在第一矩阵P中选取的需要置为1的元素所属的列的选取顺序依次为第1、2、3、4、5;那么发送端在接收到STA2的ACK2时,在第一矩阵P中选取的需要置为1的元素所属的列的选取顺序同样依次为第1、2、3、4、5;……,发送端在接收到STA5的ACK5时,在第一矩阵P中选取的需要置为1的元素所属的列的选取顺序同样依次为第1、2、3、4、5。
需要说明的是,如果在依据一个ACK来对第一矩阵P进行更新时,检测到所选取的待更新的元素已经被更新为1,说明该元素的更新是通过之前接收到的ACK而触发的更新,则这里可以不再对该元素继续进行更新。
示例性的,结合图3a、图4a、图5a,来描述发送端在以组播(或广播)的传输方式来发送5个原始数据块至STA1至STA5后,发送端在依次接收到STA1至STA5的组播ACK1至组播ACK5时,基于每次接收到的ACK对第一矩阵P1的更新过程。
如图5a(1)所示,示例性示出了初始化的第一矩阵P1,如图4a所示,组播ACK1为“01100”,则按照组播ACK1对第一矩阵进行更新时,发送端可将第一矩阵P1中,对应数据块a1的第二行内第1列的元素置为1;然后,发送端可将第一矩阵P1中,对应数据块a2的第三行内第2列的元素置为1,以将第一矩阵P1从图5a(1)更新为图5a(2)所示的第一矩阵P1。
然后,发送端接收到如图4a所示的STA2的ACK2,同理可将第一矩阵P1从图5a(2)更新为图5a(3)所示的第一矩阵P1。
接着,发送端接收到STA3的ACK3(这里为“10001”),发送端可对图5a(3)所示的第一矩阵P1继续更新。示例性的,结合ACK3,发送端依据在ACK3中检测到的第一个比特位“1”,需要将图5a(3)所示的第一矩阵P1中,对应数据块a0的第一行内第1列的元素置为1,但是如图5a(3)所示,第一矩阵P1内第一行第一列的元素已经置为1,则这里将不再对第一矩阵P1的第一行第一列的位置内的元素进行更新;然后,发送端依据在ACK3中检测到的第二个比特位“1”,需要将图5a(3)所示的第一矩阵P1中,对应数据块a4的第五行内第2列的元素置为1,但是如图5a(3)所示,第一矩阵P1内第五行第二列的元素已经置为1,则这里将不再对第一矩阵P1的第五行第二列的位置内的元素进行更新。
同理,发送端在接收到对应于图3a的STA4的ACK4时,同理不需要对图5a(3)所示的第一矩阵P1继续更新,具体原理与基于组播ACK1来对第一矩阵P1进行更新同理,这里不再赘述。
最后,发送端接收到STA5的ACK5(如图4a所示,这里为“00010”),发送端可对图5a(3)所示的第一矩阵P1继续更新。这里,发送端可将第一矩阵从图5a(3)更新为图5a(4)所示的第一矩阵P1。
示例性的,结合图3b、图4b、图5b,来描述发送端在以单播的传输方式来分别发送5个原始数据块至STA1至STA5后,发送端在(例如依次)接收到STA1至STA5的5个单播ACK1至5个单播ACK5时,基于每次接收到的同一个STA的ACK对第一矩阵P2的更新过程。
如图5b(1)所示,示例性示出了初始化的第一矩阵P2,如图4b所示,5个单播ACK1的内容依次为“1”、“0”、“1”、“0”、“0”,则按照5个单播ACK1对第一矩阵进行更新时,发送端可将第一矩阵P2中,对应数据块a0的第一行内第1列的元素置为1;然后,发送端可将第一矩阵P2中,对应数据块a2的第三行内第2列的元素置为1,以将第一矩阵P2从图5b(1)更新为图5b(2)所示的第一矩阵P2。
然后,发送端接收到如图4b所示的STA2的5个单播ACK2,同理可将第一矩阵P2从图5b(2)更新为图5b(3)所示的第一矩阵P2,具体原理与基于单播ACK1来对第一矩阵P2进行更新同理这里不再赘述。
接着,发送端接收到对应于图3b的STA3的5个单播ACK3、对应于STA4的5个单播ACK4,由于这里的ACK3、ACK4与ACK2相同,则发送端不需要基于5个单播ACK3、5个单播ACK4对图5b(3)所示的第一矩阵P2继续更新。
最后,发送端接收到STA5的5个单播ACK5(如图4b所示,这里为“01001”),发送端可对图5b(3)所示的第一矩阵P2继续更新。这里,发送端可将第一矩阵从图5b(3)更新为图5b(4)所示的第一矩阵P2。
需要说明的是,在单播模式下,发送端在根据接收到的同一个STA的ACK,来对第一矩阵P进行更新时,每次更新所基于的ACK可以是任意一个STA的至少一个单播ACK(例如STA1的对应于数据块a0的单播ACK),不限于上文举例的以同一STA的全部(这里为5个)单播ACK,来对第一矩阵P进行一次更新。
S105,发送端根据更新后的第一矩阵,对所述第一数据包进行编码,生成第二数据包。
示例性的,发送端每接收到一个STA的ACK来对第一矩阵更新之后,即每执行一次S103之后,就需要执行一次S105。
示例性的,结合图3a、图4a、图5a所示的关于发送端以组播/广播的方式传输5个原始数据块至STA1至STA5的实施方式,发送端在基于STAi的ACKi对第一矩阵P1进行更新,以使得第一矩阵P1更新后,发送端可将本次更新后的第一矩阵P1中包括元素“1”的第y列对应的各原始数据块(例如丢失的第一数据包)进行按位异或,以获取编码数据包(例如上述第二数据包)∑y。例如y=1,2,3…m。
结合图3a、图4a、图5a所示的关于发送端以组播/广播的方式传输5个原始数据块至STA1至STA5的实施方式,如上文所述,发送端接收到ACK1后,使得第一矩阵P1从图5a(1)更新为图5a(2)所示的第一矩阵P1,然后,发送端可计算∑1=a1,∑2=a2。然后,发送端接收到ACK2,使得第一矩阵P1从图5a(2)更新为图5a(3)所示的第一矩阵P1,那么发送端可计算∑1=a1+a0,∑2=a2+a4;发送端在接收到ACK3、ACK4时不需要对第一矩阵P1进行更新,则不需要对编码数据包∑y进行更新;最后,发送端接收到ACK5,使得第一矩阵P1从图5a(2)更新为图5a(3)所示的第一矩阵P1,然后,发送端可计算∑1=a1+a0+a3,∑2=a2+a4。其中,上述“+”表示异或操作。
示例性的,结合图3b、图4b、图5b所示的关于发送端以单播的方式分别传输5个原始数据块至STA1至STA5的实施方式,发送端在基于STAi的ACKi对第一矩阵P2进行更新,以使得第一矩阵P2更新后,发送端可将本次更新后的第一矩阵P2中包括元素“1”的第y列对应的各原始数据块(例如丢失的第一数据包)进行按位异或,以获取编码数据包(例如上述第二数据包)∑y。例如y=1,2,3…m。该过程的原理,与发送端以组播或广播的方式发送5个原始数据块的对应过程的原理类似,这里不再一一赘述。
示例性的,结合图3b、图4b、图5b所示的关于发送端以单播的方式分别传输5个原始数据块至STA1至STA5的实施方式,发送端在接收到ACK2后,使得第一矩阵P2从图5b(1)更新为图5b(2)所示的第一矩阵P2,然后,发送端可计算∑1=a1。然后,发送端接收到ACK2,使得第一矩阵P2从图5b(2)更新为图5b(3)所示的第一矩阵P2,那么发送端可计算∑1=a1+a0;发送端在接收到ACK3、ACK4时不需要对第一矩阵P2进行更新,则不需要对编码数据包∑y进行更新;最后,发送端接收到ACK5,使得第一矩阵P2从图5b(2)更新为图5b(3)所示的第一矩阵P2,然后,发送端可计算∑1=a1+a0,∑2=a2+a4。其中,上述“+”表示异或操作。
需要说明的是,上述各实施例中发送端在对第一矩阵P进行更新时,以第一矩阵中的第1至5行分别表示数据块a0至数据块a4为例进行说明。在其他实施例中,发送端在对第一矩阵P进行更新时,也可以以第一矩阵中的第1至5列分别表示数据块a0至数据块a4,那么在每次基于一个ACK来更新第一矩阵时,则可以“列”为单位进行遍历,来更新第一矩阵P中的各列内的元素;同理,发送端在对丢失的数据块进行编码来得到编码后的数据块时,则可对最后一次更新后的第一矩阵P中的各行内的元素“1”位置对应的原始数据块进行编码,以得到至少一个编码后的数据块,具体实现方式这里不再赘述,实现原理与上文的介绍类似。
可选地,在S105之后,S106,发送端可检测已接收到的第一反馈信息是否满足预设条件。
在一种可能的实施方式中,发送端检测到已接收到的第一反馈信息不满足预设条件,则转至S103。
示例性的,在S105之后,发送端在检测到针对S101中的上述多个原始数据包的第一反馈信息的接收窗口(例如上述5个原始数据块的ACK的接收窗口)没有结束,且,在上述n个接收端(例如上述STA1至STA5)中,还存在发送端没有接收到的至少一个接收端(例如STA)的第一反馈信息(这里为针对S101中的5个原始数据包的ACK),则发送端可确定已接收到的第一反馈信息不满足预设条件,从而转至S103,以继续对新接收到的第一反馈信息来执行S103及S105。
这样,可在第一反馈信息的接收窗口未结束,且发送端未接收到n个接收端(全部接收端)对该多个原始数据包的第一反馈信息的情况下,发送端执行S103。这样,即便发送端再次执行S103或S105的过程中,该第一反馈信息的接收窗口结束,但是,发送端本次接收到的第一反馈信息仍旧是有效的,从而用于对丢失的第一数据包进行编码,以生成第二数据包。
在另一种可能的实施方式中,发送端检测到已接收到的第一反馈信息满足预设条件,则转至S107。
示例性的,在S105之后,发送端在检测到第一反馈信息的接收窗口(例如上述5个原始数据块的ACK的接收窗口)已经结束,或者,发送端已接收到上述n个接收端(例如上述STA1至STA5)的n个第一反馈信息(这里为针对S101中的5个原始数据包的5个ACK),则发送端可确定已接收到的第一反馈信息满足预设条件,从而触发S107。
示例性的,发送端可在对上述5个原始数据块的ACK接收窗口内,每接收到一个STA的ACK,就对接收到的ACK,来触发S103和S105的执行,以在第一矩阵中更新用于表示STA丢失的数据块的信息,以及对丢失的数据块进行编码。直至该ACK接收窗口结束,或者,发送端已基于全部的5个STA(STA1至STA5)的ACK均进行了第一矩阵更新和丢失数据块的编码,则不再执行S103和S105,而转至执行S107,使得发送端可将编码后得到的第二数据包及更新后的第一矩阵的矩阵信息发送至每个STA,以利于接收端对丢失的原始数据块(例如S201中各接收端未正确接收的第一数据包)进行修复。
可以理解的是,本申请对各接收端执行S201的顺序不做限制,使得发送端可在S107之前多次接收到第一反馈信息,那么各个接收端触发S201的时间,可在S101之后以及S107之前的任意时刻。使得发送端在执行S101之后,每接收到至少一个接收端的第一反馈信息后,就触发S103及S105的执行。直至在S105之后,发送端检测到已接收到的第一反馈信息满足预设条件,例如第一反馈信息的接收窗口已经结束,或者,该第一反馈信息的接收窗口没有结束,但发送端在最近一次执行S103时,已接收到该共享介质的通信回路中的全部(这里为n个)接收端的第一反馈信息),从而触发执行S107。
S107,发送端发送所述第二数据包以及更新后的第一矩阵中的矩阵信息至n个接收端。
示例性的,考虑到n个接收端中每个接收端都需要对各自丢失的第一数据包进行数据修复,发送端可通过广播或组播或单播的方式,来将第二数据包以及更新后的第一矩阵中的矩阵信息,发送至n个接收端中的每个接收端。
当然,在n个接收端中存在未丢包的接收端时,S107中第二数据包及相应的矩阵信息发送至接收端的方式也可以采用单播的方式,单因为是共享介质通信,n个接收端都可收到第二数据包及更新后的第一矩阵中的矩阵信息。
示例性的,结合图3a、图4a、图5a,参照图6a,发送端可将图5a(4)所示的∑1(具体为a1+a0+a3)和∑2(具体为a2+a4))作为编码数据块(第二数据包的一种示例),以及图5a(4)所示的第一矩阵P1中包括元素“1”的列的矩阵信息(这里为图6a所示的对应∑1的矩阵P1的第1列和对应∑2的矩阵P1的第2列),通过组播或广播的传输方式发送至STA1至STA5。
其中,图6a中的矩阵P1的第1列和第2列中第一行至第五行的元素分别对应于数据块a0至数据块a4。
为了保证数据包传输的可靠性,按图3a的丢块假设,在现有技术中,发送端需要将STA1至STA5丢失或没有正确接收到的所有数据块全部重传,这里需要重传{a0,a1,a2,…,a4}共5个数据块。按图3a的丢块假设,按照本申请的方法,发送端仅需要重传图5a(4)所示的∑1、∑2,共2个数据块以及相应的矩阵信息(数据量相比一个数据块小很多)。
示例性的,结合图3b、图4b、图5b,参照图6b,发送端可将图5b(4)所示的∑1(具体为a1+a0)和∑2(具体为a2+a4))作为编码数据块(第二数据包的一种示例),以及图5b(4)所示的第一矩阵P2中包括元素“1”的列的矩阵信息(这里图6b所示的为对应∑1的矩阵P2的第1列和对应∑2的矩阵P2的第2列),通过单播的传输方式发送至STA1至STA5。当然,也可以通过组播或广播的方式发送至STA1至STA5,本申请重传的编码数据块的传输方式不做限制。
其中,图6b中的矩阵P2的第1列和第2列中第一行至第五行的元素分别对应于数据块a0至数据块a4。
为了保证数据包传输的可靠性,按图3b的丢块假设,在现有技术中,发送端需要将STA1至STA5丢失或没有正确接收到的所有数据块全部重传,这里需要重传{a0,a1,a2,a4}共4个数据块。按图3b的丢块假设,按照本申请的方法,发送端仅需要重传图5b(4)所示的∑1、∑2,共2个数据块以及相应的矩阵信息(数据量相比一个数据块小很多)。
本实施例中,发送端可根据更新后的第一矩阵,确定和发送一系列跨STA的丢失数据块(STA1至STA5对应的第一数据包的全集),并对丢失数据块在有限域上进行编码,以得到编码数据块(例如上述第二数据包),以实现对STA丢失的数据块的重传。此外,为了便于接收端解码丢失的数据块,发送端还可将最后更新后的第一矩阵P中包括元素“1”的各列和编码数据块一起发送至5个STA,以便于各个接收端利用各列来对编码数据块进行解码,以获取各个STA丢失的原始数据块。那么采用本申请的编码方案,可以显著降低物理介质共享通信的重传数据的信息量。
可以理解的是,上述示例中,在对跨STA丢失的数据块进行编码,以得到编码后的数据块时,发送端通过对需要重传的丢失数据块进行异或运算,以得到编码后的数据块,该方法为线性运算,可降低编解码复杂度,减少计算资源的占用,可利用提升丢失的数据块的重传效率。但是,本申请对于跨STA丢失的数据块进行编码的方式并不限于上述举例的异或运算,还可以是其他的已有的任意运算编码方式,例如非线性编码方式等。
本申请的发送端对需要重传的丢失数据块进行编码再重传,可以显著提升物理介质共享通信的吞吐量和数据传输效率。
可选地,在S107之后,接收端不仅可执行下述S204,以对各自丢失的数据块进行解码,还可执行S202,以根据接收到的第一矩阵P的相应矩阵信息,以及在接收原始数据包时所产生的第一反馈信息(例如ACK1至ACK5)进行操作(例如按位与运算),以对接收到的第二数据包进行可编码的逻辑判断,判断接收到的第二数据包是否可用于本接收端丢失的第一数据包的解码恢复。其中,接收端在经过逻辑判断,确定第二数据包可用于对本接收端丢失的第一数据包进行解码恢复时,则可以触发向发送端发送图2b中S203所述的第二反馈信息,以向发送端反馈对重传的第一数据包(或者,对第二数据包以及第一矩阵的相应矩阵信息)的正确接收情况(例如重传ACK信息)。这样可以避免S204的解码操作的时长而导致接收端错过向发送端发送对第二数据包的反馈信息的窗口期。
S202,接收端根据所述矩阵信息和相应第一反馈信息,确定所述第二数据包可用于获取相应第一数据包,则执行S203。
示例性的,各个接收端在执行S202时,原理类似,下面以STA2为例进行说明,其他STA的操作参照STA2的操作原理,这里不再赘述。
示例性的,在发送端以组播或广播方式传输原始数据块至接收端的场景下,结合图3a、图4a、图5a、图6a,请参照图7a(1),STA2可将矩阵P1的第1列与STA2在S201中发送的ACK2按位进行与操作,可得到操作结果1:10000,其中,操作结果1从高到低的5位分别对应于数据块a0至数据块a4,则STA2根据操作结果1可以确定接收到的如图6a所示的对应于矩阵P1的第1列的∑1可用于解码得到数据块a0。
同理,如图7a(2)所示,STA2还可将矩阵P1的第2列与STA2在S201中发送的ACK2按位进行与操作,可得到操作结果2:00001,其中,操作结果2从高到低的5位分别对应于数据块a0至数据块a4,则STA2根据操作结果2可以确定接收到的如图6a所示的对应于矩阵P1的第2列的∑2可用于解码得到数据块a4。
参照图3a,STA2丢失的数据块即为数据块a0和数据块a4,则STA2可确定接收到的∑1和∑2可用于解码已丢失的数据块。
同理,示例性的,在发送端以单播方式传输原始数据块至接收端的场景下,结合图3b、图4b、图5b、图6b,请参照图7b(1),STA2可将矩阵P2的第1列与STA2在S201中发送的ACK2按位进行与操作,可得到操作结果1:01000,其中,操作结果1从高到低的5位分别对应于数据块a0至数据块a4,则STA2根据操作结果1可以确定接收到的如图6b所示的对应于矩阵P2的第1列的∑1可用于解码得到数据块a1。
同理,如图7b(2)所示,STA2还可将矩阵P2的第2列与STA2在S201中发送的ACK2按位进行与操作,可得到操作结果2:00000,其中,操作结果2从高到低的5位分别对应于数据块a0至数据块a4,则STA2根据操作结果2可以确定接收到的如图6b所示的对应于矩阵P2的第2列的∑2无需用于对STA2丢失的数据块进行解码。
参照图3b,STA2丢失的数据块只有数据块a1,则STA2可确定接收到的∑1和∑2可用于解码已丢失的数据块。
S203,接收端发送用于指示已正确接收的第一数据包的第二反馈信息至发送端。
示例性的,接收端1至接收端n在确定第二数据包以及更新后的第一矩阵的相应矩阵信息,可用于正确解码各接收端已丢失的第一数据包时,则各接收端可发送各自的第二反馈信息至发送端。
这里的第二反馈信息的实现原理与上述第一反馈信息的实现原理类似。
示例性的,在TCP/IP协议中,该第二反馈信息可以是确认字符(ACK,Acknowledgecharacter)。在其他协议下,该第二反馈信息的形式可以是其他形式,本申请对此不做限制。
示例性的,在发送端以组播或广播方式传输原始数据块至接收端的场景下,结合图3a、图4a、图5a、图7a,参照图6a,STA1至STA5均执行上述S202进行逻辑判断,并确定各自接收到的编码数据块可用于对各自丢失的原始数据块进行解码修复,从而可在各自的重传ACK的发送窗口内,发送各自的重传ACK至发送端。参照图6a,STA1可发送重传ACK1“00”以表示数据块a1和数据块a2已正确接收到。同理,参照图6a,STA2至STA4同理可发送各自的重传ACK,重传ACK2至重传ACK4同样为“00”,STA5的重传ACK5为“0”。
示例性的,在发送端以单播方式传输原始数据块至接收端的场景下,结合图3b、图4b、图5b、图7b,参照图6b,STA1至STA5均执行上述S202进行逻辑判断,并确定各自接收到的编码数据块可用于对各自丢失的原始数据块进行解码修复,从而可在各自的重传ACK的发送窗口内,发送各自的重传ACK至发送端。
在单播传输的场景下,STA1至STA6发送的重传ACK的实现原理可与上述组播或广播的实施例的原理相同或类似。
或者,单播传输的场景下,STA1至STA6发送的重传ACK可包括用于指示相应STA所需要的原始数据块是否正确接收的信息,而无需包括指示STA丢失但是并不需要的原始数据块是否正确接收的信息。示例性的,在参照图6b,STA1仅关心数据块a0,则STA1可发送重传ACK1,其内容为“0”以表示数据块a0已正确接收到。同理,参照图6b,STA2可发送重传ACK2,其内容为“0”,以表示数据块a1已正确接收到。同理,参照图6b,STA5可发送重传ACK5,其内容为“0”,以表示数据块a4已正确接收到。参照图3b,STA3、STA4已经在发送端以单播方式分别发送5个原始数据块(数据块a0至数据块a4)时,已接收到各自所关心(或者说需要)的数据块a2、数据块a3,那么在发送端向STA1至STA5发送了第二数据包及相应矩阵信息后,则STA3和STA4可无需向发送端回复重传ACK,如图6b所示,STA3和STA4也无需对接收到的第二数据包(例如∑1和∑2)进行解码。
S204,接收端根据所述矩阵信息和已正确接收到的第三数据包,对所述第二数据包解码,获取相应的第一数据包。
示例性的,接收端1至接收端n可根据所述矩阵信息和已正确接收到的第三数据包,对所述第二数据包解码,获取各自丢失及所需的第一数据包。
示例性的,这里的第三数据包为发送端在执行S101以发送多个原始数据包后,各个接收端在多个原始数据包中已正确接收的原始数据包。例如在图3a的场景中,以STA2为例,STA2已正确接收的3个第三数据包包括数据块a1、数据块a2以及数据块a3。同理,在图3b的场景中,以STA2为例,STA2已正确接收的4个第三数据包包括数据块a0、、数据块a2、数据块a3以及数据块a4。
继续以STA2为例,来对STA2基于第三数据包来对第二数据包解码,以获取所需的第一数据包的过程进行描述。
在一种可能的实施方式中,在发送端以组播或广播方式传输原始数据块至n个接收端的场景下,结合图3a、图4a、图5a、图7a,参照图6a,示例性的,STA2可基于已接收到的数据块(数据块a1、数据块a2、数据块a3)和第一矩阵P的第1列和第2列,来对编码结果(∑1、∑2)进行解码(例如有限域的运算),从而生成丢失的数据块(这里为数据块a0、数据块a4)。
示例性的,STA2可基于接收到的第一矩阵P1的第1列内包括元素“1”的位置,确定STA2接收到的∑1为数据块a0、数据块a1以及数据块a3的编码结果(这里为异或运算的结果);同理,STA2可确定接收到的∑2为数据块a2以及数据块a4的编码结果(这里为异或运算的结果)。
示例性的,STA2丢失的数据块为数据块a0和数据块a4,因此,STA2可利用包括数据块a0的∑1,以及STA2在∑1对应的三个数据块中已接收到的数据块a1和数据块a3,来解码得到丢失的数据块a0。
示例性的,STA2可通过方程1,来解码得到数据块a0;同理,可通过方程2,来解码得到数据块a4,从而可实现对多个数据块的并行解码,提升解码效率。
方程1:a0=∑1+a1+a3;方程2:a4=∑2+a2。
其中,方程1和方程2中的“+”表示异或运算。通过在有限域上解方程1和方程2,从而可得到STA2丢失的数据块a0和数据块a4。
示例性的,以方程1为例,在得到方程1时,STA2可依据成立的∑1=a0+a1+a3,将数据块a1和数据块a3左移,但是,有限域上无减法,从而得到上述方程1。
这样,如图6a所示,STA1至STA5就可分别按照上述以STA2举例的解码方式的原理,来解码获取到各自丢失的原始数据块,如图6a所示,STA1可解码得到数据块a1和数据块a2;STA2可解码得到数据块a0和数据块a4;STA3可解码得到数据块a0和数据块a4;STA4可解码得到数据块a0和数据块a4;STA5可解码得到数据块a3。
在一种可能的实施方式中,在发送端以单播方式传输原始数据块至接收端的场景下,各个接收端解码得到丢失的原始数据块的原理与组播\广播的方式同理。
示例性的,结合图3b、图4b、图5b、图7b,参照图6b,示例性的,STA2可基于已接收到的部分或全部数据块(数据块a0、数据块a2、数据块a3、数据块a4)和第一矩阵P的第1列和第2列,来对编码结果(∑1、∑2)进行解码(例如有限域的运算),从而生成丢失的数据块(这里为数据块a1)。
示例性的,STA2可基于接收到的第一矩阵P2的第1列内包括元素“1”的位置,确定STA2接收到的∑1为数据块a0、数据块a1的编码结果(这里为异或运算的结果);同理,STA2可确定接收到的∑2为数据块a2以及数据块a4的编码结果(这里为异或运算的结果)。
示例性的,STA2丢失的数据块为数据块a1、且仅关心(即仅需要获取)数据块a1,因此,STA2可利用包括数据块a1的∑1对应的2个数据块中已接收到的数据块a0,来解码得到丢失的数据块a1。
示例性的,STA2可通过方程3,来解码得到数据块a1。
方程3:a1=a0+∑1
其中,方程3中的“+”表示异或运算。通过在有限域上解方程3,从而可得到STA2丢失的数据块a1。
另外,参照图3b,在单播传输场景下,各个STA所需要的仅为一个数据块,那么在STA(如STA1和STA5)丢失的数据块不仅包括其所关心的数据块,还包括其他不关心的数据块时,则在一种可能的实施例方式中,各STA可对丢失的全部数据块均进行解码,然后,将解码得到的关心的数据块保留,而将解码得到的不关心的数据块丢弃。或者,在另一种可能的实施方式中,各STA可仅利用可解码其所关心的丢失的数据块的编码数据块,来进行丢失数据块的解码修复,而无需对不关心的丢失的数据块进行解码,以降低解码开销。
以图3b所示的STA1为例,STA1可利用方程4和方程5,来分别解码得到数据块a0,数据块a2,并丢弃数据块a2;或者STA1可仅利用方程4,来解码得到数据块a0。
方程4:a0=∑1+a1;方程5:a2=∑2+a4。
这样,如图6b所示,STA1至STA5可按照上述举例的方式,来仅解码得到各自所关心并且丢失的原始数据块。如图6b所示,STA1可解码得到数据块a0;STA2可解码得到数据块a1;STA3和STA4未丢失各自所关心的数据块,则无需解码;STA5可解码得到数据块a4。
在本实施例中,发送端在重传编码数据块{∑y}的同时,还可将最后更新的第一矩阵P的第y列也传输给STAi(这里为所有接收端),使STA i可以根据第一矩阵P的第y列和ACKi信息进行按位与操作,以进行解码逻辑判断,从而在经解码逻辑判断确定编码数据块可用于解码STAi丢失的原始数据块时,STAi无需等待对编码数据块的解码结果,就可向发送端发送接收应答,以表示接收到重传的原始数据块。使得STAi可以将接收应答和编码数据块的解码并行处理,不必等待解码完成才进行接收应答(即STA i在重传ACKi的发送窗口内发送重传ACKi信息),有利于缩短接收应答的时延,避免了由于解码时延较长而错过了重传ACK的发送窗口,而导致重传ACK信息被推迟发送或无法发送的问题。本实施例,通过对发送对重传数据块的接收应答和对重传数据块的解码并行处理,使得解码过程可以显著降低传输时延,提升共享物理介质的数据传输效率,从而提升通信实时性与可靠性。
示例性的,在发送端以组播或广播方式传输原始数据块至接收端的场景下,结合图3a、图4a、图5a、图6a、图7a,参照图8a,以原始数据块以组播方式传输为例,图8a为示例性示出的发送端以及接收端(这里以STA2为例进行说明)的时序图。
请参照图8a,发送端在数据发送窗口1内,以组播方式发送5个原始数据块(数据块a0至数据块a4)至STA1至STA5。
继续参照图8a,以STA2为例,STA2在数据接收窗口1内接收到发送端发送的数据块a1至数据块a3,而因为该共享介质的传输系统中带宽较小,而未接收到数据块a0和数据块a4,使得该两个数据块丢失。然后,STA2在ACK发送窗口1内向发送端发送ACK2(具体为“10001”),以表示STA2丢失了数据块a0和数据块a4。
继续参照图8a,发送端可在ACK接收窗口1内接收STA1至STA5各自发送的针对上述5个原始数据块的应答数据,这里分别为ACK1至ACK5。
示例性的,发送端可在每次接收到上述STA1至STA5的一个ACK时,就进行一次第一矩阵的更新以及根据更新后的第一矩阵,来对已确定的丢失数据块进行编码,从而在ACK接收窗口1结束后,获取到图5a(4)所示的∑1和∑2以及矩阵P1。
然后,发送端可在数据发送窗口2内将各STA丢失的数据块,具体可包括图5a(4)所示的∑1和∑2以及矩阵P1的相应矩阵信息,以组播方式重传至全部接收端(这里为STA1至STA5)。
示例性的,继续参照图8a,STA2可在数据接收窗口2内接收到发送端发送的∑1和∑2以及矩阵P1的相应矩阵信息。
然后,STA2可并行的进行解码逻辑判断(例如图7a所示的解码逻辑判断过程)和解码过程,从而在经解码逻辑判断确定∑1和∑2可用于解码已丢失的数据块a0和数据块a4时,来在如图8a所示的ACK发送窗口2内发送重传ACK2(这里以ACK2’示出),其中,ACK2’为“00”,以表示STA2已接收到重传的数据块a0和数据块a4。
示例性的,解码过程为:STA2可利用矩阵P1的相应矩阵信息和已正确接收到的原始数据块(这里为数据块a1至数据块a3),来对∑1和∑2进行解码,以获取丢失的数据块a0和数据块a4。
如图8a所示,STA2在对编码后的数据块∑1和∑2进行解码的解码时长相比于解码逻辑判断的时间较长,例如图8a所示的“解码时延”对应的时长为解码时长。而重传ACK2的ACK发送窗口2时长较短,为了避免解码完成后再发送重传ACK2,而导致错过用于发送重传ACK2的ACK发送窗口2的问题,本申请实施例可利用上述解码逻辑判断过程,来将发送重传ACK2的过程与对编码后的数据块进行解码的过程进行并行处理,以避免因错过重传ACK的发送窗口而造成无法发送重传ACK2的问题。使得解码过程可以显著降低传输时延,提升共享物理介质的数据传输效率,从而提升通信实时性与可靠性。
如图8a所示,发送端可在ACK接收窗口2内来接收STA1至STA5发送的各自的重传ACKi’(这里示出了STA2至STA4分别对应的ACK2’至ACK4’),以确定各个STA是否已正确接收到重传的丢失数据块。
示例性的,在发送端以单播方式传输原始数据块至接收端的场景下,结合图3b、图4b、图5b、图6b、图7b,参照图8b,以原始数据块以单播方式传输为例,图8b为示例性示出的发送端以及接收端(这里以STA2为例进行说明)的时序图。
请参照图8b,发送端在数据发送窗口1内,以单播方式以STA1为目的地址,发送该数据块a0,因共享介质,使得STA2至STA5均可支持收到该数据块a0,那么如图4b所示,STA1至STA5分别可发送针对数据块a0的ACK1至ACK5,如图8b所示,发送端在单播ACK接收窗口1内可接收到针对数据块a0的ACK1至ACK5;
同理,发送端可在数据发送窗口2内,以单播方式以STA2为目的地址,发送该数据块a1,因共享介质,使得STA1至STA5均可支持收到该数据块a1,那么如图4b所示,STA1至STA5分别可发送针对数据块a1的ACK1至ACK5,如图8b所示,发送端在单播ACK接收窗口2内可接收到针对数据块a1的ACK1至ACK5;
其中,如图8b所示,发送端在数据发送窗口2内以单播方式发送数据块a1后,STA2在数据接收窗口1内未接收到该数据块a1,使得数据块a1丢失,那么STA2针对该数据块a1所响应的ACK2的内容为“1”,以表示数据块a1丢失。
对于发送端以单播方式发送数据块a2至数据块a4的过程,与这里以数据块a0和数据块a1举例的过程类似,这里不再赘述。
示例性的,发送端可在每次接收到上述STA1至STA5中任意一个STA的针对该5个原始数据块的ACK时,就进行一次第一矩阵的更新以及根据更新后的第一矩阵,来对已确定的丢失数据块进行编码,从而在发送端的针对单播数据的各ACK接收窗口结束后,获取到图5b(4)所示的∑1和∑2以及矩阵P2。
然后,发送端可在数据发送窗口3内将各STA丢失的数据块,具体可包括图5b(4)所示的∑1和∑2以及矩阵P2的相应矩阵信息,以组播方式重传至全部接收端(这里为STA1至STA5)。
示例性的,继续参照图8b,STA2可在数据接收窗口2内接收到发送端发送的∑1和∑2以及矩阵P2的相应矩阵信息。
然后,STA2可并行的进行解码逻辑判断(例如图7b所示的解码逻辑判断过程)和解码过程,从而在经解码逻辑判断确定∑1可用于解码已丢失的数据块a1时,来在如图8b所示的ACK发送窗口2内发送重传ACK2(这里以ACK2’示出),其中,ACK2’为“0”,以表示STA2已接收到重传的数据块a1。
示例性的,解码过程为:STA2可利用矩阵P2的相应矩阵信息和已正确接收到的原始数据块(这里为数据块a0),来对∑1进行解码,以获取丢失的数据块a1。
如图8b所示,STA2在对编码后的数据块∑1进行解码的解码时长相比于解码逻辑判断的时间较长,例如图8b所示的“解码时延”对应的时长为解码时长。而重传ACK2的ACK发送窗口时长较短,为了避免解码完成后再发送重传ACK2(以ACK2’示出),而导致错过用于发送重传ACK2的ACK发送窗口的问题,本申请实施例可利用上述解码逻辑判断过程,来将发送重传ACK2的过程与对编码后的数据块进行解码的过程进行并行处理,以避免因错过重传ACK的发送窗口而造成无法发送重传ACK2的问题。使得解码过程可以显著降低传输时延,提升共享物理介质的数据传输效率,从而提升通信实时性与可靠性。
如图8b所示,发送端可在ACK接收窗口内来接收STA1至STA5发送的各自的重传ACKi’(这里示出了STA1至STA5分别对应的ACK1’至ACK5’),以确定各个STA是否已正确接收到重传的丢失数据块。
本申请实施例的上述编码方法和解码方法可提升物理介质共享通信的吞吐量和数据传输效率,以满足终端物联对于通信实时性、可靠性的要求。
在一种可能的实施方式中,本申请提供一种编码装置,应用于第一网络设备,所述第一网络设备与至少一个第二网络设备通过共享介质进行通信,所述编码装置用于:对第一数据块进行编码,生成至少一个第二数据块;其中,所述第一数据块为在至少两个第三数据块中所述至少一个第二网络设备未正确接收到的第三数据块;其中,所述至少两个第三数据块为所述第一网络设备向所述至少一个第二网络设备发送的数据;向所述至少一个第二网络设备发送所述至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:根据第一编码信息对所述第一数据块进行编码,生成至少一个第二数据块;其中,所述第一编码信息用于指示所述至少一个第二网络设备中每个所述第二网络设备对每个所述第三数据块是否正确接收。
在一种可能的实施方式中,所述第一编码信息包括第一矩阵,所述编码装置还用于:基于来自至少一个所述第二网络设备的第一反馈信息,获取第一矩阵,其中,所述第一矩阵的行数和/或列数为m,其中,m为所述第三数据块的数量,m≥2;其中,所述第一反馈信息为相应第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述相应第二网络设备未正确接收到的第三数据块;所述第一矩阵中的元素用于指示所述至少一个第二网络设备对每个所述第三数据块是否正确接收。
在一种可能的实施方式中,所述编码装置具体用于:每接收到一个所述第二网络设备的一个第一反馈信息,则基于所述一个第一反馈信息,确定是否对所述第一矩阵内的元素进行更新,以获取更新后的所述第一矩阵;每更新一次所述第一矩阵,则根据更新后的所述第一矩阵对所述第一数据块进行编码,生成所述至少一个第二数据块;检测到已接收到的所述第一反馈信息满足预设条件,则向所述至少一个第二网络设备发送最近一次编码生成的所述至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:对第一数据块在有限域上进行编码,生成至少一个第二数据块。
在一种可能的实施方式中,所述编码装置具体用于:对不同的第一数据块进行按位异或运算,生成至少一个第二数据块。
在一种可能的实施方式中,所述编码装置还用于:向所述至少一个第二网络设备发送每个所述第二数据块对应的第二编码信息;其中,任意一个所述第二数据块对应的所述第二编码信息,用于指示用于编码生成该第二数据块所基于的第一数据块。
在一种可能的实施方式中,所述第二编码信息为所述第一矩阵的至少一个目标行或至少一个目标列,其中,所述目标行或所述目标列为所述第一矩阵中包括目标元素的行或列,所述目标元素用于指示至少一个所述第二网络设备对所述第三数据块未正确接收。
上述各实施方式的编码装置的效果,与上述各实施方式的编码方法的效果类似,这里不再赘述。
在一种可能的实施方式中,本申请提供一种解码装置,应用于第二网络设备,其中,所述第二网络设备与第一网络设备通过共享介质进行通信,所述解码装置用于:接收来自所述第一网络设备的至少一个第二数据块;根据第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块;其中,所述第四数据块为在至少两个第三数据块中所述第二网络设备正确接收到的第三数据块;所述第一数据块为在所述至少两个第三数据块中所述第二网络设备未正确接收到的第三数据块;其中,所述至少两个第三数据块为所述第一网络设备通过所述共享介质向至少一个第二网络设备发送的数据。
在一种可能的实施方式中,解码装置具体用于:根据所述第四数据块,在有限域上对所述至少一个第二数据块进行解码,获取所述第一数据块。
在一种可能的实施方式中,所述解码装置还用于:接收来自所述第一网络设备的与每个所述第二数据块对应的第二编码信息;其中,任意一个所述第二数据块对应的所述第二编码信息,用于指示用于编码生成该第二数据块所基于的第一数据块以及所述第四数据块。
在一种可能的实施方式中,所述解码装置具体用于:根据所述第二编码信息和所述第四数据块,对所述至少一个第二数据块进行解码,获取所述第一数据块。
在一种可能的实施方式中,所述解码装置还用于:根据第一反馈信息和所述第二编码信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备;其中,所述第一反馈信息为所述第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述第二网络设备未正确接收到的第三数据块。
可选地,所述第二反馈信息为所述第二网络设备对所述至少一个第二数据块的反馈信息。
可选地,所述第二反馈信息用于指示所述第二网络设备已正确接收到所述第一数据块。
在一种可能的实施方式中,所述解码装置具体用于:对所述第一反馈信息和所述第二编码信息按位与操作,获取操作结果;基于所述操作结果,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备。
在一种可能的实施方式中,所述解码装置具体用于:根据第四数据块,对所述至少一个第二数据块进行并行解码,以获取至少一个所述第一数据块。
在一种可能的实施方式中,所述第二编码信息为第一矩阵的至少一个目标行或至少一个目标列,其中,所述目标行或所述目标列为所述第一矩阵中包括目标元素的行或列,所述目标元素用于指示至少一个所述第二网络设备对所述第三数据块未正确接收;所述第一矩阵为所述第一网络设备基于来自至少一个所述第二网络设备的相应所述第一反馈信息,所获取的矩阵,其中,所述第一矩阵的行数和/或列数为m,其中,m为所述第三数据块的数量,m≥2;其中,所述第一矩阵中的元素用于指示所述至少一个第二网络设备对每个所述第三数据块是否正确接收。
上述各实施方式的解码装置的效果,与上述各实施方式的解码方法的效果类似,这里不再赘述。
下面介绍本申请实施例提供的一种装置。如图9所示:
图9为本申请实施例提供的一种装置的结构示意图。如图9所示,该装置500可包括:处理器501、收发器505,可选的还包括存储器502。
示例性的,该装置500可以为编码装置,或解码装置。
所述收发器505可以称为收发单元、收发机、或收发电路等,用于实现收发功能。收发器505可以包括接收器和发送器,接收器可以称为接收机或接收电路等,用于实现接收功能;发送器可以称为发送机或发送电路等,用于实现发送功能。
存储器502中可存储计算机程序或软件代码或指令504,该计算机程序或软件代码或指令504还可称为固件。处理器501可通过运行其中的计算机程序或软件代码或指令503,或通过调用存储器502中存储的计算机程序或软件代码或指令504,对MAC层和PHY层进行控制,以实现本申请各实施例提供的编码方法或解码方法。其中,处理器501可以为中央处理器(central processing unit,CPU),存储器502例如可以为只读存储器(read-onlymemory,ROM),或为随机存取存储器(random access memory,RAM)。
本申请中描述的处理器501和收发器505可实现在集成电路(integratedcircuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(applicationspecific integrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。
上述装置500还可以包括天线506,该装置500所包括的各模块仅为示例说明,本申请不对此进行限制。
如前所述,以上实施例描述中的装置的结构可以不受图9的限制。该装置可以是独立的设备或者可以是较大设备的一部分。例如所述装置的实现形式可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据,指令的存储部件;(3)可嵌入在其他设备内的模块;(4)车载设备等等;(5)其他等等。
对于编码装置或解码装置的实现形式是芯片或芯片系统的情况,可参见图10所示的芯片的结构示意图。图10所示的芯片包括处理器601和接口602。其中,处理器601的数量可以是一个或多个,接口602的数量可以是多个。可选的,该芯片或芯片系统可以包括存储器603。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码可由计算机执行,以控制计算机用以实现上述方法实施例。
基于相同的技术构思,本申请实施例还提供一种计算机程序,当该计算机程序被执行时,用以实现上述方法实施例。
所述程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
基于相同的技术构思,本申请实施例还提供一种芯片,包括处理器。处理器可实现上述方法实施例。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (32)
1.一种编码方法,其特征在于,应用于第一网络设备,所述第一网络设备与至少一个第二网络设备通过共享介质进行通信,所述方法包括:
对第一数据块进行编码,生成至少一个第二数据块;
其中,所述第二数据块的数量小于所述第一数据块的数量;
其中,所述第一数据块为在至少两个第三数据块中未被所述至少一个第二网络设备正确接收到的第三数据块;
其中,所述至少两个第三数据块为所述第一网络设备向所述至少一个第二网络设备发送的数据;
向所述至少一个第二网络设备发送所述至少一个第二数据块。
2.根据权利要求1所述的方法,其特征在于,所述对第一数据块进行编码,生成至少一个第二数据块,包括:
根据第一编码信息对所述第一数据块进行编码,生成至少一个第二数据块;
所述第一编码信息包括第一信息和与每个所述第二数据块分别对应的第二信息;
其中,所述第一信息用于指示所述第二数据块的数量;
所述第二信息用于指示用于编码生成所述第二数据块所基于的第一数据块。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
基于来自至少一个所述第二网络设备的第一反馈信息,生成所述第一编码信息;
其中,所述第一反馈信息为相应第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示在所述至少两个第三数据块中,未被所述相应第二网络设备正确接收到的目标数据块;
其中,在至少一个所述第一反馈信息所分别对应的所述目标数据块的数量中,取值最大的数量为所述第一信息指示的数量;
其中,所述第二信息所指示的第一数据块包括与不同所述第一反馈信息对应的所述目标数据块。
4.根据权利要求2或3所述的方法,其特征在于,所述第一编码信息包括第一矩阵,所述第一矩阵的行数为m且列数为n,或者,所述行数为n且所述列数为m,其中,m为所述第三数据块的数量,m≥2,n为所述第二数据块的数量,m>n≥1;
所述第一矩阵中的m行元素或m列元素分别用于指示各个所述第三数据块是否被所述至少一个第二网络设备正确接收,其中,不同行或不同列的元素对应不同的第三数据块;
所述第一矩阵中的n列元素或n行元素用于指示不同所述第三数据块被不同所述第二网络设备是否正确接收的信息。
5.根据权利要求3或4所述的方法,其特征在于,
所述第一反馈信息,用于对已生成的所述第一编码信息进行更新;
所述至少一个第二数据块,为基于更新后的第一编码信息,对所述第一数据块进行编码而生成的数据块。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述对第一数据块进行编码,生成至少一个第二数据块,包括:
对由不同所述第二网络设备未正确接收的至少两个第一数据块进行编码,生成至少一个第二数据块。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述对第一数据块进行编码,生成至少一个第二数据块,包括:
对第一数据块在有限域上进行编码,生成至少一个第二数据块。
8.根据权利要求7所述的方法,其特征在于,所述对第一数据块在有限域上进行编码,生成至少一个第二数据块,包括:
对不同的第一数据块进行按位异或运算,生成至少一个第二数据块。
9.根据权利要求2至8中任意一项所述的方法,其特征在于,所述对第一数据块进行编码,生成至少一个第二数据块之后,所述方法还包括:
向所述至少一个第二网络设备发送与每个所述第二数据块分别对应的所述第二信息。
10.一种解码方法,其特征在于,应用于第二网络设备,其中,所述第二网络设备与第一网络设备通过共享介质进行通信,所述方法包括:
接收来自所述第一网络设备的至少一个第二数据块;
接收来自所述第一网络设备的与每个所述第二数据块对应的第二信息;
其中,任意一个所述第二数据块对应的所述第二信息,用于指示用于编码生成该第二数据块所基于的第一数据块以及至少一个第四数据块;
其中,所述第四数据块为在至少两个第三数据块中所述第二网络设备正确接收到的第三数据块;
所述第一数据块为在所述至少两个第三数据块中所述第二网络设备未正确接收到的第三数据块;
根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块;
其中,所述至少两个第三数据块为所述第一网络设备通过所述共享介质向至少一个第二网络设备发送的数据。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块,包括:
根据所述第二信息指示的所述至少一个第四数据块,在有限域上对所述至少一个第二数据块进行解码,获取所述第一数据块。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
根据第一反馈信息和所述第二信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备;
其中,所述第一反馈信息为所述第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述第二网络设备未正确接收到的第三数据块;
所述第二反馈信息为所述第二网络设备对所述至少一个第二数据块的反馈信息,所述第二反馈信息用于指示所述第二网络设备已正确接收到所述第一数据块。
13.根据权利要求12所述的方法,其特征在于,所述根据第一反馈信息和所述第二编码信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备,包括:
对所述第一反馈信息和所述第二编码信息按位与操作,获取操作结果;
基于所述操作结果,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备。
14.根据权利要求10至13中任意一项所述的方法,其特征在于,所述根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块,包括:
根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行并行解码,以获取至少一个所述第一数据块。
15.一种编码装置,其特征在于,应用于第一网络设备,所述第一网络设备与至少一个第二网络设备通过共享介质进行通信,所述编码装置用于:
对第一数据块进行编码,生成至少一个第二数据块;
其中,所述第二数据块的数量小于所述第一数据块的数量;
其中,所述第一数据块为在至少两个第三数据块中未被所述至少一个第二网络设备正确接收到的第三数据块;
其中,所述至少两个第三数据块为所述第一网络设备向所述至少一个第二网络设备发送的数据;
向所述至少一个第二网络设备发送所述至少一个第二数据块。
16.根据权利要求15所述的编码装置,其特征在于,
所述编码装置具体用于:根据第一编码信息对所述第一数据块进行编码,生成至少一个第二数据块;
所述第一编码信息包括第一信息和与每个所述第二数据块分别对应的第二信息;
其中,所述第一信息用于指示所述第二数据块的数量;
所述第二信息用于指示用于编码生成所述第二数据块所基于的第一数据块。
17.根据权利要求16所述的编码装置,其特征在于,所述编码装置还用于:
基于来自至少一个所述第二网络设备的第一反馈信息,生成所述第一编码信息;
其中,所述第一反馈信息为相应第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示在所述至少两个第三数据块中,未被所述相应第二网络设备正确接收到的目标数据块;
其中,在至少一个所述第一反馈信息所分别对应的所述目标数据块的数量中,取值最大的数量为所述第一信息指示的数量;
其中,所述第二信息所指示的第一数据块包括与不同所述第一反馈信息对应的所述目标数据块。
18.根据权利要求16或17所述的编码装置,其特征在于,所述第一编码信息包括第一矩阵,所述第一矩阵的行数为m且列数为n,或者,所述行数为n且所述列数为m,其中,m为所述第三数据块的数量,m≥2,n为所述第二数据块的数量,m>n≥1;
所述第一矩阵中的m行元素或m列元素分别用于指示各个所述第三数据块是否被所述至少一个第二网络设备正确接收,其中,不同行或不同列的元素对应不同的第三数据块;
所述第一矩阵中的n列元素或n行元素用于指示不同所述第三数据块被不同所述第二网络设备是否正确接收的信息。
19.根据权利要求17或18所述的编码装置,其特征在于,
所述第一反馈信息,用于对已生成的所述第一编码信息进行更新;
所述至少一个第二数据块,为基于更新后的第一编码信息,对所述第一数据块进行编码而生成的数据块。
20.根据权利要求15至19中任意一项所述的编码装置,其特征在于,所述编码装置具体用于:
对由不同所述第二网络设备未正确接收的至少两个第一数据块进行编码,生成至少一个第二数据块。
21.根据权利要求15至20中任意一项所述的编码装置,其特征在于,所述编码装置具体用于:
对第一数据块在有限域上进行编码,生成至少一个第二数据块。
22.根据权利要求21所述的编码装置,其特征在于,所述编码装置具体用于:
对不同的第一数据块进行按位异或运算,生成至少一个第二数据块。
23.根据权利要求16至22中任意一项所述的编码装置,其特征在于,所述编码装置还用于:
向所述至少一个第二网络设备发送与每个所述第二数据块分别对应的所述第二信息。
24.一种解码装置,其特征在于,应用于第二网络设备,其中,所述第二网络设备与第一网络设备通过共享介质进行通信,所述解码装置用于:
接收来自所述第一网络设备的至少一个第二数据块;
接收来自所述第一网络设备的与每个所述第二数据块对应的第二信息;
其中,任意一个所述第二数据块对应的所述第二信息,用于指示用于编码生成该第二数据块所基于的第一数据块以及至少一个第四数据块;
其中,所述第四数据块为在至少两个第三数据块中所述第二网络设备正确接收到的第三数据块;
所述第一数据块为在所述至少两个第三数据块中所述第二网络设备未正确接收到的第三数据块;
根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行解码,获取第一数据块;
其中,所述至少两个第三数据块为所述第一网络设备通过所述共享介质向至少一个第二网络设备发送的数据。
25.根据权利要求24所述的解码装置,其特征在于,所述解码装置具体用于:
根据所述第二信息指示的所述至少一个第四数据块,在有限域上对所述至少一个第二数据块进行解码,获取所述第一数据块。
26.根据权利要求24或25所述的解码装置,其特征在于,所述解码装置还用于:
根据第一反馈信息和所述第二信息,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备;
其中,所述第一反馈信息为所述第二网络设备对所述至少两个第三数据块的反馈信息,所述第一反馈信息用于指示所述第二网络设备未正确接收到的第三数据块;
所述第二反馈信息为所述第二网络设备对所述至少一个第二数据块的反馈信息,所述第二反馈信息用于指示所述第二网络设备已正确接收到所述第一数据块。
27.根据权利要求26所述的解码装置,其特征在于,所述解码装置具体用于:
对所述第一反馈信息和所述第二编码信息按位与操作,获取操作结果;
基于所述操作结果,在检测到所述至少一个第二数据块能够用于解码生成所述第一数据块时,发送第二反馈信息至所述第一网络设备。
28.根据权利要求24至27中任意一项所述的解码装置,其特征在于,所述解码装置具体用于:
根据所述第二信息指示的所述至少一个第四数据块,对所述至少一个第二数据块进行并行解码,以获取至少一个所述第一数据块。
29.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求1至9中任意一项所述的方法,或如权利要求10至14中任意一项所述的方法。
30.一种编码装置,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述处理器用于执行如权利要求1至9中任意一项所述的方法。
31.一种解码装置,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述处理器用于执行如权利要求10至14中任意一项所述的方法。
32.一种计算机程序产品,其特征在于,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得权利要求1至9任一项所述的方法的步骤被执行,或使得权利要求10至14任一项所述的方法的步骤被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210935568.7A CN117596306A (zh) | 2022-08-04 | 2022-08-04 | 编码、解码方法及其装置 |
PCT/CN2023/102401 WO2024027367A1 (zh) | 2022-08-04 | 2023-06-26 | 编码、解码方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210935568.7A CN117596306A (zh) | 2022-08-04 | 2022-08-04 | 编码、解码方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117596306A true CN117596306A (zh) | 2024-02-23 |
Family
ID=89848452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210935568.7A Pending CN117596306A (zh) | 2022-08-04 | 2022-08-04 | 编码、解码方法及其装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117596306A (zh) |
WO (1) | WO2024027367A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075311B (zh) * | 2010-12-27 | 2013-08-07 | 中国人民解放军理工大学 | 一种基于网络编码的无线协同广播/组播方法 |
CN102984753A (zh) * | 2011-09-05 | 2013-03-20 | 普天信息技术研究院有限公司 | 一种提高无线通信数据传输效率的方法 |
CN102638331B (zh) * | 2012-03-16 | 2014-07-09 | 北京邮电大学 | 基于随机线性网络编码的无线可靠广播方法 |
CN110622449B (zh) * | 2017-11-06 | 2023-04-28 | 网络编码代码有限责任公司 | 用于处理网络编码分组的系统和技术 |
CN113949491B (zh) * | 2020-07-17 | 2023-07-04 | 大唐移动通信设备有限公司 | 一种harq-ack信息的传输方法和装置 |
-
2022
- 2022-08-04 CN CN202210935568.7A patent/CN117596306A/zh active Pending
-
2023
- 2023-06-26 WO PCT/CN2023/102401 patent/WO2024027367A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024027367A1 (zh) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10631179B2 (en) | HARQ frame data structure and method of transmitting and receiving with HARQ in systems using blind detection | |
US7003710B2 (en) | Communications method, communications apparatus and communications system using same communications apparatus | |
CN1236579C (zh) | 在自动重复请求系统中恢复数据的方法和设备 | |
KR100656982B1 (ko) | 휴대 인터넷 단말기의 복호 장치 및 방법 | |
US7502981B2 (en) | Automatic repeat request (ARQ) scheme | |
CN101938334B (zh) | 随机网络编码和自动重传请求联合的自适应差错控制方法 | |
JP2008228357A (ja) | 並列チャネルエンコーダパケット伝送システム中でサブパケットを送信する方法および受信する方法 | |
CN107819545A (zh) | 极化码的重传方法及装置 | |
US7530001B2 (en) | Wireless communications system reducing unnecessary retransmission by means of a correlation value of received data with preamble and a method therefor | |
CN111431672A (zh) | 数据的重传方法、装置、存储介质及电子装置 | |
US11411680B2 (en) | OMAMRC transmission method and system with reduced signalling | |
US20120110405A1 (en) | Communication device | |
JP3808620B2 (ja) | 情報識別システム、この情報識別システム用の制御装置および応答装置 | |
CN113783660B (zh) | 传输方法、发送端和接收端 | |
CN110958084B (zh) | 传输确认报文的方法和通信设备 | |
CN117596306A (zh) | 编码、解码方法及其装置 | |
US20120260143A1 (en) | Method of decoding content data blocks, corresponding computer program product and decoding device | |
JP2002344430A5 (zh) | ||
JP2607252B2 (ja) | 時間ダイバーシチ送受信方式 | |
US9853766B2 (en) | Radio communication devices, access points, method for controlling a radio communication device, and methods for controlling an access point | |
CN114337942B (zh) | 一种报文重传方法、装置及电子设备 | |
CN111601342A (zh) | 一种基于位错误的低速无线个域网错误数据包恢复方法 | |
CN103490868A (zh) | 反向链路数据重传方法以及使用该方法的装置 | |
JP2019083507A (ja) | 受信装置、送信装置、受信方法及び送信方法 | |
CN117997471A (zh) | 多通道发送方法、多通道接收方法、发送端及接收端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |