CN118041488A - 数据传输方法、装置、***及计算机可读存储介质 - Google Patents
数据传输方法、装置、***及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118041488A CN118041488A CN202211414482.6A CN202211414482A CN118041488A CN 118041488 A CN118041488 A CN 118041488A CN 202211414482 A CN202211414482 A CN 202211414482A CN 118041488 A CN118041488 A CN 118041488A
- Authority
- CN
- China
- Prior art keywords
- check
- code
- code block
- code blocks
- initial
- 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 133
- 230000005540 biological transmission Effects 0.000 title claims abstract description 79
- 239000011159 matrix material Substances 0.000 claims description 196
- 230000015654 memory Effects 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 44
- 238000012937 correction Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 239000000945 filler Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请公开了一种数据传输方法、装置、***及计算机可读存储介质,涉及通信技术领域。第一模块根据获取到的多个长度相同的初始码块生成多个第一子矩阵,任一个第一子矩阵包括获取顺序连续的至少一个初始码块;按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;基于多个第一校验值得到至少一个第一校验码块;向第二模块发送多个初始码块和至少一个第一校验码块。第二模块接收到初始码块和第一校验码块后,根据初始码块和第一校验码块纠正初始码块中的误码,保证数据的准确性。由于该方法在码块层级进行编码和传输,初始码块长度相同,无需单独指示初始码块的长度,编码方式较为简单且开销较小。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、***及计算机可读存储介质。
背景技术
在存在突发误码的网络中,尤其是卫星承载网中,由于空间链路是高动态的,空间链路容易受到各种干扰,导致通过空间链路传输的数据存在突发误码。因此,需要一种数据传输方法,使得数据传输过程中出现的突发误码能够被纠正,从而保证数据的准确性和传输的可靠性。
发明内容
本申请提出一种数据传输方法、装置、***及计算机可读存储介质,用于在保证数据准确性的前提下,以开销较低的方式构造编码矩阵,降低数据传输的开销。
第一方面,提供了一种数据传输方法,该方法应用于第一模块,该方法包括:根据获取到的多个长度相同的初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括获取顺序连续的至少一个初始码块;按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;基于多个第一校验值得到至少一个第一校验码块;向第二模块发送多个码块,多个码块包括多个第一子矩阵包括的各个初始码块和至少一个第一校验码块。
该方法中,通过根据获取到的多个初始码块获取多个第一子矩阵,再对多个第一子矩阵包括的各个码块进行编码得到校验码块,使得第二模块在接收到初始码块和校验码块后,能够根据初始码块和校验码块纠正初始码块中的误码,从而保证数据的准确性。并且,由于该方法是在码块层级进行的编码,各个初始码块的长度相同,从而无需额外的字段单独指示各个初始码块的长度,编码的方式较为简单且开销较小。
在一种可能的实现方式中,第一模块根据获取到的多个初始码块生成第一矩阵之前,还包括:获取参考误码数量,参考误码数量用于指示第一模块向第二模块传输多个码块时预测出现的误码数量;根据参考误码数量,确定第一子矩阵包括的初始码块的数量和第一码型;根据第一码型,确定第一子矩阵的数量;根据第一子矩阵包括的初始码块的数量和第一子矩阵的数量,获取多个初始码块。由于传输码块的过程中出现的误码数量等于需要被纠正的误码数量,第一模块通过对需要被纠正的误码数量进行预测比如进行误码统计,或者基于历史误码情况进行预测,再根据预测的误码数量确定用于生成第一矩阵的初始码块的数量,能够使得对初始码块编码并传输后,第二模块能够恢复这些初始码块中出现的误码,从而保证数据的准确性。
在一种可能的实现方式中,第一码型为前向纠错(forward error correction,FEC)码型,按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值,包括:按照FEC码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。由于FEC码块的纠错能力较强,通过按照FEC码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,第二模块根据FEC码型对初始码块中的误码进行纠错时,能够纠正的误码数量较多。
在一种可能的实现方式中,第一模块根据获取到的多个初始码块生成第一矩阵之后,还包括:按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,S表示第一子矩阵的数量,Y根据第二码型确定且为正整数;向第二模块发送多个码块,包括:向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块。通过对各个第一子矩阵包括的至少一个初始码块的码块内容进行编码得到第二校验值,第二校验值能够与编码得到该第二校验值的初始码块的码块内容产生关联,从而第二模块能够根据第二校验码块包括的第二校验值对多个初始码块的正确性进行校验,进而判断出接收到的初始码块中是否出现误码。
在一种可能的实现方式中,第二码型为循环冗余校验(cyclic redundancycheck,CRC)码型,按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,包括:按照CRC码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验值;基于S*Y个第二校验值得到S*Y个第二校验码块。第一码型和第二码型可以不同,该方法对各个第一子矩阵包括的初始码块的码块内容进行编码的方式较为灵活。再有,通过按照CRC码型进行编码,CRC码型的校验能力较好,从而第二模块对初始码块的校验效果较好。
在一种可能的实现方式中,向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块,包括:对于多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向第二模块发送任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;基于多个第一子矩阵包括的各个初始码块以及S*Y个第二校验码块均已向第二模块发送,向第二模块发送至少一个第一校验码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。通过利用指示字段统一指示多个第一校验码块,多个第一校验码块的指示方式较为简单。
在一种可能的实现方式中,对于任一个第一校验码块,任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。第一校验码块的指示方式较为灵活,且由于第一校验码块的指示方式较为多样,第一校验码块与第一校验值的数量关系较为灵活,能够适用于第一校验值的不同情况。
在一种可能的实现方式中,第一模块以码块流的方式向第二模块发送多个码块,多个码块中的第一个码块为初始码块,第一个码块的类型为锚点码块,锚点码块用于指示多个码块在码块流中的起始位置。锚点码块用于指示多个码块在码块流中的起始位置,第二模块通过识别码块流中的锚点码块,能够确定接收到的多个码块在码块流中的位置,进而获取码块流中的多个码块,获取多个码块的方式较为简便。
第二方面,提供了一种数据传输方法,该方法应用于第二模块,该方法包括:接收由第一模块发送的多个码块,多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,至少一个第一校验码块是第一模块先根据多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,再按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于多个第一校验值得到的;对多个初始码块进行校验,得到校验结果;基于校验结果指示多个初始码块出错,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,获取纠错后的多个初始码块的码块内容。
该方法中,通过对多个初始码块进行校验,在校验结果指示多个初始码块出错的情况下根据第一码型和第一校验码块对初始码块进行纠错,能够纠正初始码块中的误码,保证数据的准确性。再有,由于无需传输各个码块的长度相关的信息,数据传输的开销较小。
在一种可能的实现方式中,对多个初始码块进行校验,得到校验结果,包括:对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验;基于多个初始码块的码块格式或多个初始码块之间的码块关系中的至少一种出错,校验结果指示多个初始码块出错;基于多个初始码块的码块格式和多个初始码块之间的码块关系均未出错,校验结果指示多个初始码块未出错。通过对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验,在码块格式和码块关系均为出错的情况下确定校验结果为多个初始码块未出错,对多个初始码块的校验较为全面,校验结果的准确性较高。
在一种可能的实现方式中,对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验是按照参考校验规则执行的,参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。通过按照参考校验规则执行对码块格式和码块关系进行校验,校验的执行方式较为简单。
在一种可能的实现方式中,多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,多个码块还包括Z组第二校验码块,Z组第二校验码块基于第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,Z和N均为正整数;对多个初始码块进行校验,得到校验结果,包括:按照第二码型,对Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;基于Z组第二校验码块包括的第二校验值和Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,校验结果指示多个初始码块未出错;基于校验值序号相同的第二校验值和第三校验值不全相同,校验结果指示多个初始码块出错。通过获取第二校验值和第三校验值,将第二校验值和第三校验值进行比对来执行对多个初始码块的校验,对多个初始码块的校验方式较为简便。且无需单独校验码块格式和码块关系,校验效率较高。
在一种可能的实现方式中,第二码型为CRC码型。
在一种可能的实现方式中,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,包括:根据多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块,Z为正整数;根据至少一个第一校验码块获取多个第一校验值;根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,第一码型为FEC码型,根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错,包括:根据FEC码型对应的纠错方式和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,接收由第一模块发送的多个码块,包括:接收由第一模块发送的码块流;识别码块流中的锚点码块,以锚点码块作为获取到的第一个初始码块,获取多个码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
在一种可能的实现方式中,对于任一个第一校验码块,任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。
第三方面,提供了一种数据传输装置,该装置应用于第一模块,该装置包括:
获取单元,用于根据获取到的多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,各个初始码块的长度相同;
编码单元,用于按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;
编码单元,还用于基于多个第一校验值得到至少一个第一校验码块;
发送单元,用于向第二模块发送多个码块,多个码块包括多个第一子矩阵包括的各个初始码块和至少一个第一校验码块。
在一种可能的实现方式中,获取单元,还用于获取参考误码数量,参考误码数量用于指示发送单元向第二模块传输多个码块时预测出现的误码数量;根据参考误码数量,确定第一子矩阵包括的初始码块的数量和第一码型;根据第一码型,确定第一子矩阵的数量;根据第一子矩阵包括的初始码块的数量和第一子矩阵的数量,获取多个初始码块。
在一种可能的实现方式中,第一码型为前向纠错FEC码型,编码单元,用于按照FEC码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。
在一种可能的实现方式中,编码单元,还用于按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,S表示第一子矩阵的数量,Y根据第二码型确定且为正整数;发送单元,用于向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块。
在一种可能的实现方式中,第二码型为循环冗余校验CRC码型,编码单元,用于按照CRC码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验值;基于S*Y个第二校验值得到S*Y个第二校验码块。
在一种可能的实现方式中,发送单元,用于对于多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向第二模块发送任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;基于多个第一子矩阵包括的各个初始码块以及S*Y个第二校验码块均已向第二模块发送,向第二模块发送至少一个第一校验码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
在一种可能的实现方式中,对于任一个第一校验码块,任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。
在一种可能的实现方式中,发送单元以码块流的方式向第二模块发送多个码块,多个码块中的第一个码块为初始码块,第一个码块的类型为锚点码块,锚点码块用于指示多个码块在码块流中的起始位置。
第四方面,提供了一种数据传输装置,该装置应用于第二模块,该装置包括:
接收单元,用于接收由第一模块发送的多个码块,多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,至少一个第一校验码块是第一模块先根据多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,再按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于多个第一校验值得到的;
校验单元,用于对多个初始码块进行校验,得到校验结果;
获取单元,用于基于校验结果指示多个初始码块出错,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,获取纠错后的多个初始码块的码块内容。
在一种可能的实现方式中,校验单元,用于对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验;基于多个初始码块的码块格式或多个初始码块之间的码块关系中的至少一种出错,校验结果指示多个初始码块出错;基于多个初始码块的码块格式和多个初始码块之间的码块关系均未出错,校验结果指示多个初始码块未出错。
在一种可能的实现方式中,对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验是按照参考校验规则执行的,参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。
在一种可能的实现方式中,多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,多个码块还包括Z组第二校验码块,Z组第二校验码块基于第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,Z和N均为正整数;校验单元,用于按照第二码型,对Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;基于Z组第二校验码块包括的第二校验值和Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,校验结果指示多个初始码块未出错;基于校验值序号相同的第二校验值和第三校验值不全相同,校验结果指示多个初始码块出错。
在一种可能的实现方式中,第二码型为循环冗余校验CRC码型。
在一种可能的实现方式中,获取单元,用于根据多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块,Z为正整数;根据至少一个第一校验码块获取多个第一校验值;根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,第一码型为前向纠错FEC码型,获取单元,用于根据FEC码型对应的纠错方式和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,接收单元,用于接收由第一模块发送的码块流;识别码块流中的锚点码块,以锚点码块作为获取到的第一个初始码块,获取多个码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
在一种可能的实现方式中,对于任一个第一校验码块,任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。
第五方面,提供了一种数据传输***,该数据传输***包括第一模块和第二模块,该第一模块用于执行上述第一方面中任一的数据传输方法,第二模块用于执行上述第二方面中的数据传输方法。
第六方面,提供了一种计算机***,该计算机***包括处理器,当处理器执行程序指令或代码时,该计算机***实现第一方面或第二方面中任一的数据传输方法。示例性地,该计算机***还包括存储器,该存储器用于存储该程序指令或代码。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序指令或代码,该程序指令或代码由计算机执行时以使计算机实现第一方面或第二方面中任一的数据传输方法。
第八方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,收发器、存储器和处理器通过内部连接通路互相通信,存储器用于存储指令,处理器用于执行存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当处理器执行存储器存储的指令时,使得处理器执行第一方面或第二方面中任一的数据传输方法。
示例性地,处理器为一个或多个,存储器为一个或多个。
示例性地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第九方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序指令或代码,当该计算机程序指令或代码被计算机运行时,使得计算机执行第一方面或第二方面中任一的数据传输方法。
第十方面,提供了一种芯片,该芯片包括处理器,该处理器用于运行程序指令或代码,使得包含该芯片的设备执行第一方面或第二方面中任一的数据传输方法。
示例性地,该芯片还包括:输入接口、输出接口和存储器,该输入接口、该输出接口、该处理器以及该存储器之间通过内部连接通路相连,该存储器用于存储该程序指令或代码。
应当理解的是,本申请的第三方面至第十方面的技术方案及其对应的可能的实现方式所取得的有益效果可以参见上述第一方面和第二方面及其对应的可能的实现方式的技术效果,此处不再赘述。
附图说明
图1是本申请实施例提供的一种填充处理后的数据包、填充内容和编码得到的校验包的示意图;
图2是本申请实施例提供的一种编码矩阵中的数据包和校验包的示意图;
图3是本申请实施例提供的一种实施场景的示意图;
图4是本申请实施例提供的另一种实施场景的示意图;
图5是本申请实施例提供的又一种实施场景的示意图;
图6是本申请实施例提供的一种数据传输方法的流程图;
图7是本申请实施例提供的一种按照第一码型进行编码的示意图;
图8是本申请实施例提供的一种多个第一校验码块的示意图;
图9是本申请实施例提供的一种第一校验码块的码块格式的示意图;
图10是本申请实施例提供的一种T7码块的码块格式的示意图;
图11是本申请实施例提供的一种第二校验码块的码块格式的示意图;
图12是本申请实施例提供的一种按照第一码型和第二码型分别进行编码的示意图;
图13是本申请实施例提供的一种OAM码块的码块格式的示意图;
图14是本申请实施例提供的一种向第二模块发送的码块流的示意图;
图15是本申请实施例提供的另一种向第二模块发送的码块流的示意图;
图16是本申请实施例提供的一种第二子矩阵和第一校验值的示意图;
图17是本申请实施例提供的另一种第二子矩阵和第一校验值的示意图;
图18是本申请实施例提供的一种数据传输装置的结构示意图;
图19是本申请实施例提供的另一种数据传输装置的结构示意图;
图20是本申请实施例提供的一种计算机***的结构示意图;
图21是本申请实施例提供的另一种计算机***的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。下面结合附图,对本申请的实施例进行描述。
随着通信技术的发展,使用卫星构建卫星承载网,通过卫星承载网中的空间链路进行远距离的数据传输已成为一种数据传输方式。然而,由于空间链路自身是高动态的,空间链路容易受到各种干扰的影响。例如,卫星在运动的过程中发生的震动会造成信道衰落,导致通过空间链路传输的数据误码率升高。又例如,当卫星承载网中采用激光进行通信时,由光学湍流等因素引起的大气扰动会造成约1~10毫秒(millisecond,ms)的信道衰落,也会导致通过空间链路传输的数据误码率升高。因此,需要一种数据传输方法,能够使得数据传输过程中出现的误码被纠正,保证数据的准确性。
在一种相关技术中,发送端按照所要传输的多个初始数据包中最长的初始数据包的长度,使用填充内容对各个初始数据包进行填充处理,得到多个待编码数据包。对于多个初始数据包中的任一个初始数据包,对其进行填充处理使用的填充内容的长度与该任一个初始数据包的长度之和等于上述最长的初始数据包的长度。对于任一个填充内容,基于该任一个填充内容得到的待编码数据包称为与该任一个填充内容对应的待编码数据包。任一个待编码数据包包括长度字段,长度字段用于指示与该任一个待编码数据包对应的填充内容的长度。然后,发送端对多个待编码数据包、各个待编码数据包对应的填充内容进行编码得到校验包。待编码数据包、填充内容和编码得到的校验包如图1所示,其中,P11-P1k表示k个待编码数据包,Len表示长度字段,pad表示填充内容,F11-F1t表示t个校验包,k和t均为正整数。
发送端在编码得到校验包后向接收端发送各个待编码数据包和校验包且不发送填充内容。接收端在接收到待编码数据包和校验包后对待编码数据包进行校验,根据校验结果确定校验通过的待编码数据包。根据校验通过的待编码数据包包括的长度字段,获取校验通过的待编码数据包对应的填充内容,根据校验通过的待编码数据包及其对应的填充内容对校验通过的待编码数据包和校验包进行解码,并纠正校验通过的待编码数据包中的误码。
然而,使用大量的填充内容对多个初始数据包进行填充处理,进而对填充处理得到的待编码数据包进行编码的方式将带来大量的编码开销。再有,此种相关技术中,当一个待编码数据包校验出错时,这个待编码数据包将不再参与解码过程,导致这个待编码数据包不再能够用于纠正误码,潜在降低了待编码数据包的错误恢复能力。
在另一种相关技术中,发送端按照紧凑编码的方式对数据包进行编码得到编码矩阵,编码矩阵包括数据包和通过对数据包进行编码得到的校验包。紧凑编码是指编码过程中不使用填充内容。编码矩阵中的数据包和校验包如图2所示,其中,P21-P27表示7个数据包,F21和F22表示两个校验包。如图2所示,L等于一个里德-所罗门(Reed-Solomon,RS)(6,4)型编码的码字和一个RS(5,3)码型编码的码字的长度之和。
发送端在得到校验包后向接收端发送数据包和校验包。接收端利用接收到的数据包和校验包构造与编码矩阵对应的解码矩阵,对解码矩阵进行解码得到数据包,并且,在解码过程中利用数据包和校验包纠正数据包中的误码。
然而,由于数据包的长度不统一,各个编码后的数据包在编码矩阵中的位置需要单独指示。在此种相关技术中,编码后的数据包中包括第一扩展字段域以携带编码后的数据包在编码矩阵中的位置信息、校验包中包括第二扩展字段域以携带校验包在编码矩阵中的位置信息和编码后的数据包在编码矩阵中的位置信息,增加的第一扩展字段域和第二扩展字段域使得数据传输的开销较高。
本申请实施例提供了一种数据传输方法,用于在保证数据准确性的前提下,以开销较低的方式构造编码矩阵,降低数据传输的开销。该方法可应用于电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)802.3标准中的物理编码子层(physical coding sublayer,PCS)。例如,本申请实施例提供的方法中,在PCS的编码(encode)操作和加扰(scramble)操作之间执行该方法涉及的码块编码操作,在PCS的解码(decode)操作和解扰(descramble)操作之间执行该方法涉及的码块解码操作。该方法还能够兼容于物理层(physical,PHY)机制。
该方法可应用于图3所示的实施场景,参见图3,实施场景包括第一设备101和第二设备102,第一设备101和第二设备102之间进行通信连接。其中,第一设备101为基于以太网技术连接的网络中的首端节点,第二设备102为该网络中的尾端节点。该网络可以为卫星承载网。在图3示出的实施场景中,该方法可以实现第一设备101和第二设备102之间的数据传输。又例如,该方法应用于图4所示的实施场景。参见图4,实施场景包括第三设备103、第四设备104和第五设备105,第三设备103和第四设备104之间进行通信连接,第四设备104和第五设备105进行通信连接。其中,第三设备103为基于以太网技术连接的网络中的首端节点,第四设备104为该网络中的中间节点,第五设备105为该网络中的尾端节点,该网络也可以为卫星承载网。第三设备103和第四设备104为网络中的相邻节点,第四设备104和第五设备105为网络中的相邻节点。在图4示出的实施场景中,该方法可以实现第三设备103和第四设备104之间的数据传输,也可以实现第四设备104和第五设备105之间的数据传输,还可以实现第三设备103和第五设备105之间的数据传输。当然,图4所示的实施场景中可以包括更多的中间节点,本申请实施例不对中间节点的数量进行限定。
本申请实施例提供的方法也可以与其他网络架构兼容,例如在多个网络设备互连的场景中,某两个通信连接的网络设备支持该方法,其他网络设备不支持该方法,则该方法可以用于实现此场景中支持该方法的两个网络设备之间的数据传输。
本申请实施例中提及的第一设备101至第五设备105可以是终端、服务器、盒式或框式的以太网交换机、路由器等设备,还可以是其他具有数据传输需求的设备,本申请实施例不对第一设备101至第五设备105的类型进行限定。例如,在图5示出的实施场景中,该方法用于实现终端或者网络侧边缘设备(provider edge,PE)与核心设备(provider,P)之间的数据传输,终端、PE和P均可包括网卡,且P中可以基于微片实现转发交换机制。P的形态包括但不限于PHY芯片以及支持报文转发的路由器或者交换机。
可以理解的是,上述各个实施场景均可以包括多个设备,各个设备的设备类型可以相同或不同。图3至图5示出的设备数量和设备类型仅为本申请实施例的举例说明。
本申请实施例提供的数据传输方法可如图6所示,接下来,结合图3示出的实施场景,对该方法进行说明。如图6所示,该方法包括但不限于S601至S604。
S601,第一模块根据获取到的多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,各个初始码块的长度相同。
第一模块可以位于图3示出的第一设备101中。示例性地,第一模块执行根据获取到的多个初始码块生成第一矩阵之前,通过执行下述S11至S14获取多个初始码块。
S11,获取参考误码数量,参考误码数量用于指示第一模块向第二模块传输多个码块时预测出现的误码数量。
第一模块在向第二模块传输码块之前,预测在向第二模块传输码块的过程中会出现多少误码。由于传输码块的过程中出现的误码数量等于需要被纠正的误码数量,第一模块通过对需要被纠正的误码数量进行预测,再根据预测的误码数量确定用于生成第一矩阵的初始码块的数量,能够使得对初始码块编码并传输后,第二模块能够恢复这些初始码块中出现的误码,从而保证数据的准确性。其中,第二模块可以位于图3示出的第二设备102中。
本申请实施例不对获取参考误码数量的方式进行限定,例如,第一模块中存储有至少一条链路信息,一条链路信息对应与第一模块通信连接的一个模块,该条链路信息用于指示第一模块向该模块传输多个码块时预测出现的误码数量。通过从存储的至少一条链路信息中获取与第二模块对应的链路信息,第一模块能够根据获取到的链路信息获取上述参考误码数量。各个模块之间传输码块时预测出现的误码数量也可以统一存储在一个存储模块中,第一模块获取参考误码数量时,向存储模块发送获取请求,接收存储模块基于该获取请求返回的参考误码数量。通过将各个模块之间传输码块时预测出现的误码数量统一存储,能够节约存储资源。当然,第一模块也可以通过接收外部输入的参考误码数量实现获取参考误码数量,或者第一模块可以通过进行误码统计或者基于历史误码情况获取参考误码数量。
示例性地,在各个模块之间的传输速率相同的情况下,第一模块或者存储模块中仅存储各个模块之间传输码块时预测的误码出现时长,从而通过获取各个模块之间的传输速率与相应地预测的误码出现时长的乘积,即可得到预测出现的误码数量。在此情况下,第一模块通过获取第一模块和第二模块之间的传输速率与预测的误码出现时长的乘积,即可得到参考误码数量。关于采用上述哪种方式来获取参考误码数量,可以根据实施场景和数据传输需求来确定,本申请实施例对此不进行限定,且几种获取参考误码数量的方式可以较为灵活的采用。
S12,根据参考误码数量,确定第一子矩阵包括的初始码块的数量和第一码型。
例如,根据参考误码数量,查找误码数量与码型和子矩阵包括的码块数量的对应关系,得到第一码型和第一子矩阵包括的初始码块的数量。其中,第一子矩阵用于构造第一矩阵,第一码型用于对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码。编码过程请详见后文S602中的相关说明,此处暂不展开。误码数量与码型和子矩阵包括的码块数量的对应关系可以根据传输需求预先配置并存储。关于误码数量与码型和子矩阵包括的码块数量的对应关系的存储位置,本申请实施例对此不加以限定。在该对应关系存储在第一模块中的情况下,第一模块可以通过直接查找存储的对应关系得到第一码型和第一子矩阵包括的初始码块的数量。在该对应关系存储在第一模块以外的其他模块中时,第一模块可以通过向存储有对应关系的其他模块发送第一查找请求,接收其他模块基于第一查找请求返回的第一码型和第一子矩阵包括的初始码块的数量。
S13,根据第一码型,确定第一子矩阵的数量。
根据前文S12的内容,第一码型用于对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码。由于对于任一个码块序号,该任一个码块序号对应的初始码块的数量等于第一子矩阵的数量,第一码型能够用于确定第一子矩阵的数量。在本申请的实施例中,第一子矩阵的数量可以通过根据第一码型查找码型与子矩阵数量的对应关系得到。
S14,根据第一子矩阵包括的初始码块的数量和第一子矩阵的数量,获取多个初始码块。
通过获取第一子矩阵包括的初始码块的数量和第一子矩阵的数量,能够确定第一矩阵包括的初始码块的数量,从而能够根据第一矩阵包括的初始码块的数量获取多个初始码块。示例性地,多个初始码块包括从PCS编码模块接收到的V-1个码块和一个码块编码模块***的锚点码块,V用于表示多个初始码块的数量。从PCS编码模块接收到的V-1个码块包括但不限于数据码块和控制码块。锚点码块的相关内容请详见后文S604的说明,此处暂不展开。
在一些实施例中,第一模块根据获取到的多个初始码块生成第一矩阵时,将第一子矩阵作为第一矩阵的一列或者一行。也就是说,第一模块可以通过逐列放置多个初始码块的方式,生成第一矩阵。在此情况下,第一矩阵的一列为一个第一子矩阵,第一子矩阵的数量等于第一矩阵的列数,第一子矩阵包括的初始码块的数量等于第一矩阵的行数。第一模块还可以通过逐行放置多个初始码块的方式生成第一矩阵。在此情况下,第一矩阵的一行为一个第一子矩阵,第一子矩阵的数量等于第一矩阵的行数,第一子矩阵包括的初始码块的数量等于第一矩阵的列数。
S602,按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。
对于多个第一子矩阵中的任一个第一子矩阵,该任一个第一子矩阵包括的至少一个初始码块具***块序号。对于任一个第一子矩阵包括的任一个初始码块,该任一个初始码块的码块序号用于指示该任一个初始码块为该任一个第一子矩阵中的第几个初始码块。各个第一子矩阵对应的码块编号方式相同,例如,各个第一子矩阵中的码块均按照码块序号由小到大的顺序或者由大到小的顺序进行编码。码块序号的取值范围可以为大于等于0且小于等于I-1、或者为大于等于1且小于等于I,I表示任一个第一子矩阵包括的初始码块的数量且为正整数。例如,第一矩阵包括3个第一子矩阵,各个第一子矩阵包括5个初始码块且均按照由小到大的顺序进行码块编号,对于任一个第一子矩阵,码块序号的取值范围为大于等于1且小于等于5。
结合上述S601的内容可知,一个第一子矩阵可以作为第一矩阵的一列或者一行。则在一个第一子矩阵为第一矩阵的一列的情况下,按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,是指按照第一码型对第一矩阵的每行初始码块的码块内容进行编码。同理,在一个第一子矩阵为第一矩阵的一行的情况下,按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,是指按照第一码型对第一矩阵的每列初始码块的码块内容进行编码。
示例性地,第一码型为FEC码型。在此情况下,按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值包括:按照FEC码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。
在本申请实施例中,初始码块可以是4比特(bit,B)/5B、8B/10B、64B/66B、256B/257B编码得到的码块。在第一码型为FEC码型的情况下,FEC码型的符号(symbol)包括的比特数量小于等于初始码块包括的比特数量。按照FEC码型对多个第一子矩阵中码块序号相同的多个初始码块的码块内容进行编码,得到多个第一校验值,包括:对于码块序号相同的S个初始码块,以每S*A个比特为一组,共得到W组,每组中的S*A个比特包括各个初始码块的A比特且A比特位于各个初始码块的相同比特位置,其中,S表示第一子矩阵的数量,A表示FEC码型的符号包括的比特数量且为正整数,W等于I*S1/A,S1表示任一个初始码块包括的比特数量,W为正整数;按照FEC码型对W组比特进行编码,得到W*X个第一子校验值;根据W*X个第一子校验值得到多个第一校验值。
示例性地,上述以每S*A个比特为一组的过程为将各个初始码块包括的比特按A比特为一组进行分组的过程。在初始码块包括的比特数量为A的整数倍的情况下,对于任一个初始码块,该初始码块可以分为S1/A组。在初始码块包括的比特数量不为A的整数倍的情况下,对于同一个第一子矩阵中码块序号相邻的任意两个初始码块,将该任意两个初始码块中码块序号在前的初始码块中按A比特分组,得到S1/A-1组后,将分组后剩余的比特拼接在码块序号在后的初始码块之前,也即将码块序号在前的初始码块中分组后剩余的比特作为码块序号在后的初始码块包括的比特,再对码块序号在后的初始码块包括的比特进行分组。
以第一子矩阵的数量为60,各个第一子矩阵包括190个初始码块,初始码块为66比特的码块,第一码型为FEC(63,60),FEC(63,60)的符号包括6比特为例,对上述过程举例说明。在此情况下,S为60,I为190,A为6,X为3,W为190*66/6=2090,则上述过程包括:对于码块序号相同的60个初始码块,以每60*6个比特为一组,共得到2090组,每组中的60*6个比特包括每个初始码块的6比特且6比特位于每个初始码块的相同比特位置;按照FEC(63,60)对2090组比特进行编码得到共2090*3=6270个第一子校验值;根据6270个第一子校验值得到多个第一校验值。
再以第一子矩阵的数量为60,各个第一子矩阵包括190个初始码块,初始码块为66比特的码块,第一码型为FEC(63,60),FEC(63,60)的符号包括4比特为例,对上述过程举例说明。在此情况下,S为60,I为190,A为6,X为3,W为190*66/4=3135,则上述过程包括:对于码块序号相同的60个初始码块,以每60*4个比特为一组,共得到3135组,每组中的60*4个比特包括每个初始码块的4比特且4比特位于每个初始码块的相同比特位置;按照FEC(63,60)对3135组比特进行编码得到共3135*3=9405个第一子校验值;根据9405个第一子校验值得到多个第一校验值。
在上述分组编码的过程中,多个第一子矩阵包括的初始码块共分为W组进行编码,每组得到X个第一子校验值,共得到W*X个第一子校验值。X个第一子校验值均具有校验值序号,各组编码得到的X个第一子校验值的校验值编号方式相同,且各组编码得到的X个第一子校验值的校验值序号的取值范围相同。在此情况下,根据W*X个第一子校验值得到多个第一校验值,可以包括:在W*X个第一子校验值中,将基于同一个码块序号的初始码块的码块内容编码得到的多个第一子校验值中校验值序号相同的第一子校验值进行拼接,得到多个第一校验值。例如,在分为2090组进行编码,每组编码得到3个第一子校验值的情况下,将基于同一个码块序号的初始码块的码块内容编码得到的r*3个第一校验值中的首个第一子校验值进行拼接,得到一个第一校验值。其他第一子校验值的拼接过程同理,此处不再赘述。
图7为本申请实施例提供的一种按照第一码型进行编码的示意图。如图7所示,按照第一码型进行编码的操作由码块编码模块执行。码块编码模块获取PCS编码模块输出的64B/66B编码的码块,根据获取的多个初始码块生成第一矩阵,其中,一列为一个第一子矩阵。通过按照FEC码型对每行的3个初始码块的码块内容进行编码,共得到3个第一校验值。在图7中,初始码块通过64/66表示,第一校验值通过校验值表示。码块编码模块在获得3个第一校验值后,基于这3个第一校验值获取至少一个第一校验码块,进而将初始码块和第一校验码块传输至PHY底层进行后续传输。图7中示出的初始码块的数量和第一校验值的数量旨在对按照第一码型进行编码的过程进行说明,并不用于对初始码块的数量和第一校验值的数量进行限定。本申请实施例中,PCS编码模块、PCS解码模块、码块编码模块、码块解码模块和PHY底层(PHY lower part)均可以属于PHY。
S603,基于多个第一校验值得到至少一个第一校验码块。
示例性地,基于多个第一校验值得到至少一个第一校验码块,包括:按照第一校验码块的码块格式,对多个第一校验值进行封装得到至少一个第一校验码块。第一校验码块与初始码块的长度相同。在本申请实施例中,由于第一校验码块需要唯一区分,可从码块格式和码块顺序两个维度确定第一校验码块的码块格式,以提高区分可信度。示例性地,第一校验码块的数量为多个,且多个第一校验码块的发送顺序连续的情况下,多个第一校验码块可以由其中的首个第一校验码块统一指示。当然,各个第一校验码块也可以单独指示,无需考虑第一校验码块的数量和发送顺序。
在一种可能的实现方式中,如果第一校验码块的数量为多个且多个第一校验码块统一指示,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。例如,该指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的M-1个码块的类型均为第一校验码块,M表示多个第一校验码块的数量。又例如,该指示字段用于指示首个第一校验码块、该首个第一校验码块之后出现的第一个T7码块、以及该首个第一校验码块与该第一个T7码块之间的第一数量个码块均为第一校验码块。T7码块为PCS定义的T7码块。图8为本申请实施例提供的一种多个第一校验码块的示意图,参见图8,首个第一校验码块为PCS定义的S码块,S码块的一个字节用于作为指示字段,指示字段用于指示该S码块和后续的M-1个码块均为第一校验码块。如图8所示,S码块后的至少一个码块可以包括PCS定义的D码块和T码块。S码块的其他比特可以用于承载其他信息,本申请实施例对此不加以限定。
在另一种可能的实现方式中,如果各个第一校验码块单独指示,对于任一个第一校验码块,该任一个第一校验码块包括类型字段和值字段,类型字段用于指示该任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。第一校验码块可以为当前PCS定义未使用的控制码块,例如将控制码块的类型值置为0x00以表示此码块为第一校验码块。在此情况下,控制码块的前2个比特和类型值对应的8个比特用于作为类型字段,其余字段作为值字段。第一校验码块也可以基于当前PCS定义的控制码块进行扩展得到,例如基于当前PCS定义的O码块进行扩展得到新增的O码块类型,将新增的O码块类型对应的码块作为第一校验码块。当然,第一校验码块的码块格式也可以完全自定义。图9为本申请实施例提供的一种第一校验码块的码块格式的示意图,参见图9,第一校验码块的前2个比特分别为1和0,接下来的8比特为第一类型值,第一类型值对应的8比特与前2个比特共同作为类型字段指示此码块的类型为第一校验码块,其余比特用于作为值字段放置编码得到的第一校验值。
此外,由于当前PCS定义中的T7码块用于指示业务数据包括的数据码块结束,第一校验码块的码块格式可以与T7码块的码块格式相同。在此情况下,由于PCS定义了业务数据包括的数据码块需要以S码块作为起始,即使各个第一校验码块的码块格式均为T7码块的码块格式,第一校验码块也不会被作为业务数据包括的数据码块,从而能够保证数据的准确性。T7码块的码块格式如图10所示,此码块的第0比特为1,第1比特为0,第9比特至第2比特为0xFF,其余比特对应7个数据字节(图10中的D0至D6)。
结合上述内容可知,第一校验码块的数量根据至少一个第一校验码块中除指示字段和类型字段以外的剩余的比特数量和多个第一校验值包括的比特数量确定。例如,各个第一校验码块的码块格式均如图9所示,也即各个第一校验码块中除类型字段以外均剩余56比特,一个第一校验值为66比特,则第一校验码块的数量等于第一校验值的数量*66/56。
在一种可能的实现方式中,根据获取到的多个初始码块生成第一矩阵之后,该方法还包括:按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,S表示第一子矩阵的数量,Y根据第二码型确定且为正整数。也就是说,在本申请实施例提供的方法中,除了按照第一码型对多个第一子矩阵中码块序号相同的初始码块的码块内容进行编码以外,还可以利用第二码型对每个第一子矩阵包括的初始码块的码块内容进行编码。本申请实施例不对执行按照第一码型和第二码型编码的顺序进行限定。
上述第二码型包括但不限于CRC码型,则按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,可以包括:按照CRC码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验值;基于S*Y个第二校验值得到S*Y个第二校验码块。与基于第一校验值得到第一校验码块的过程类似,基于S*Y个第二校验值得到S*Y个第二校验码块,包括:按照第二校验码块的码块格式,对S*Y个第二校验值进行封装得到S*Y个第二校验码块,一个第二校验值封装到一个第二校验码块中。
与第一校验码块的码块格式类似,各个第二校验码块也可以统一指示或者单独指示。例如,在Y大于1也即有多个连续的第二校验码块的情况下,Y个第二校验码块中的首个第二校验码块包括指示字段,指示字段用于指示首个第二校验码块以及首个第二校验码块之后发送的至少一个码块的类型均为第二校验码块。示例性地,指示字段用于指示首个第二校验码块以及首个第二校验码块之后发送的Y-1个码块的类型均为第二校验码块。或者,指示字段用于指示首个第二校验码块、该首个第二校验码块之后出现的第一个T7码块、以及该首个第二校验码块与该第一个T7码块之间的第二数量个码块均为第二校验码块。
又例如,对于任一个第二校验码块,该任一个第二校验码块包括类型字段和值字段,类型字段用于指示该任一个第二校验码块的类型,值字段用于指示编码得到的第二校验值。第二校验码块可以为当前PCS定义未使用的控制码块,也可以基于当前PCS定义的控制码块进行扩展得到,还可以完全自定义,第二校验码块的码块格式能够唯一区分即可。
图11为本申请实施例提供的一种第二校验码块的码块格式的示意图,参见图11,第二校验码块的前2个比特分别为1和0,接下来的8比特为第二类型值,第二类型值对应的8比特与前2个比特包括的1和0共同作为类型字段指示此码块的类型为第二校验码块,其余比特用于作为值字段放置编码得到的第二校验值。
图12为本申请实施例提供的一种按照第一码型和第二码型分别进行编码的示意图。如图12所示,码块编码模块获取PCS编码模块输出的64B/66B编码的码块,根据获取的多个初始码块生成第一矩阵,其中,一列为一个第一子矩阵。按照CRC码型对每列的3个初始码块的码块内容进行编码,得到3个第二校验值,基于这3个第二校验值得到3个第二校验码块,第二校验码块在图12中通过CRC表示且为64B/66B编码的码块。码块编码模块还按照FEC码型对每行的3个初始码块的码块内容进行编码,得到3个第一校验值。在图12中,初始码块通过64/66表示,第一校验值通过校验值表示。再有,如图12所示,如果先执行按照CRC码型编码再执行按照FEC码型编码,在按照FEC码型编码时,也可以按照FEC码型对每行的第二校验码块进行编码。从而执行按照FEC码型编码时可以直接执行按照FEC码型对每行的码块进行编码,无需区分码块为初始码块还是第二校验码块,提高编码效率。图12中按照FEC码型对第二校验码块的码块内容进行编码得到的校验值也通过校验值表示。在基于第一校验值得到第一校验码块之后,码块编码模块可以将初始码块、第一校验码块和第二校验码块传输至PHY底层进行后续传输。
在一种可能的实现方式中,误码数量与子矩阵包括的码块数量的对应关系是基于CRC码型的校验能力确定的,从而通过查找该对应关系得到的第一子矩阵包括的初始码块的数量是根据参考误码数量和CRC码型的校验能力共同确定的,能够提高第一子矩阵包括的初始码块的数量与CRC码型的适配性。CRC码型的校验能力可以通过该CRC码型能够纠正多少个字节中出现的多少个误码指示。
S604,向第二模块发送多个码块,多个码块包括多个第一子矩阵包括的各个初始码块和至少一个第一校验码块。
示例性地,第一模块以码块流的方式向第二模块发送多个码块。其中,多个第一子矩阵包括的初始码块先发送,至少一个第一校验码块后发送,从而发送多个码块中的第一个码块可以为初始码块。在一种可能的实现方式中,第一个码块的类型为锚点码块,也即多个初始码块中的第一个初始码块为锚点码块,锚点码块用于指示多个码块在码块流中的起始位置。第二模块通过识别码块流中的锚点码块,能够确定接收到的多个码块在码块流中的位置,进而获取码块流中的多个码块。
锚点码块的码块格式可采用能够唯一区分的码块格式,例如锚点码块为操作维护管理(operation administration and maintenance,OAM)码块。图13为本申请实施例提供的一种OAM码块的码块格式的示意图,如图13所示,OAM码块的第0比特为1,第1比特为0,第9比特至第2比特为0x4B,第33比特至第10比特对应3个数据字节(图13中的D1至D3),第37比特至第34比特为0xC,其余比特均为0。当然,锚点码块的码块格式也可以为其他格式,能够实现锚点码块唯一区分即可。
在一种可能的实现方式中,如果未执行按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,向第二模块发送的码块流如图14所示。参见图14,第一模块串行发送第一子矩阵包括的初始码块以及多个第一校验码块,其中,多个初始码块称为业务数据,多个第一校验码块称为校验数据,初始码块表示为64/66,第一校验码块表示为64/66校验。
在另一种可能的实现方式中,如果执行了按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,向第二模块发送多个码块,包括:向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块。
其中,对于基于任一个第一子矩阵包括的至少一个初始码块的码块内容编码得到的Y个第二校验码块,Y个第二校验码块可以与至少一个初始码块相邻发送。也就是说,向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块,可以包括:对于多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向第二模块发送任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;基于多个第一子矩阵包括的各个初始码块以及S*Y个第二校验码块均已向第二模块发送,向第二模块发送至少一个第一校验码块。其中,第一子矩阵的矩阵序号是指某一个第一子矩阵是第一矩阵包括的多个第一子矩阵中的第几个第一子矩阵。
以第一子矩阵为第一矩阵的一列为例,对任一个第一子矩阵包括的至少一个初始码块的码块内容编码得到的Y个第二校验码块与该至少一个初始码块位于同一列,在执行码块发送时,逐列发送各个码块。在第一模块以码块流的方式向第二模块串行发送多个码块时,码块流可如图15所示。参见图15,初始码块表示为64/66,第二校验码块表示为CRC,第一校验码块表示为64/66校验。
本申请实施例提供的方法中,通过根据获取到的多个初始码块获取多个第一子矩阵,再对多个第一子矩阵包括的各个码块进行编码得到校验码块,使得第二模块在接收到初始码块和校验码块后,能够根据初始码块和校验码块纠正初始码块中的误码,从而保证数据的准确性。并且,由于该方法是在码块层级进行的编码,各个初始码块的长度可以相同,从而无需额外的字段单独指示各个初始码块的长度,编码的方式较为简单且开销较小。
以上以第一模块侧为例,对本申请实施例提供的数据传输方法进行了说明,接下来,以第二模块侧为例,对该数据传输方法进行说明。如图6所示,该数据传输方法包括但不限于S605至S607。
S605,第二模块接收由第一模块发送的多个码块。
示例性地,接收由第一模块发送的多个码块,包括:接收由第一模块发送的码块流;识别码块流中的锚点码块,以锚点码块作为获取到的第一个初始码块,获取多个码块。多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,至少一个第一校验码块是第一模块先根据多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,再按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于多个第一校验值得到的。
结合上述S604中的内容,第一模型以码块流的方式向第二模块发送多个码块时,多个码块中的第一个码块为锚点码块,锚点码块用于指示多个码块在码块流中的起始位置。相应地,第二模块接收由第一模块发送的码块流后,也可通过识别其中的锚点码块,确定多个码块的位置,从而获取码块流中的多个码块。
在一种可能的实现方式中,第二模块通过识别各个码块的类型获取多个码块。对于多个初始码块中的锚点码块,第二模块可根据码块格式识别出来。对于多个初始码块中除锚点码块以外的其他初始码块,第二模块可根据PCS定义识别出来。例如,第二模块根据PCS定义的数据码块和控制码块的码块格式识别出锚点码块以外的其他初始码块。对于第一校验码块,在第一校验码块的数量为多个,且多个第一校验码块的类型通过其中的首个第一校验码块的指示字段指示的情况下,第二模块通过识别其中的首个第一校验码块的格式即可识别出所有的第一校验码块。在各个第一校验码块的类型通过各自的类型字段分别指示的情况下,第二模块通过识别各个第一校验码块的类型字段能够识别出各个第一校验码块。
S606,对多个初始码块进行校验,得到校验结果。
在本申请实施例中,对多个初始码块的校验包括但不限于对多个初始码块的码块格式的校验和对多个初始码块之间的码块关系的校验。基于多个初始码块的码块格式或多个初始码块之间的码块关系中的至少一种出错,校验结果指示多个初始码块出错;基于多个初始码块的码块格式和多个初始码块之间的码块关系均未出错,校验结果指示多个初始码块未出错。
上述对多个初始码块的码块格式进行校验以及对多个初始码块之间的码块关系进行校验可以是按照参考校验规则执行的,参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。参考校验规则包括但不限于各类初始码块的码块格式、各类初始码块之间的码块关系、各类校验码块的码块格式、各类校验码块之间的码块关系、以及各类初始码块和各类校验码块之间的码块关系。各类初始码块包括但不限于锚点码块、数据码块和控制码块,各类校验码块包括但不限于第一校验码块和第二校验码块。其中,数据码块和控制码块的码块格式、多个数据码块之间的码块关系、多个控制码块之间的码块关系、数据码块和控制码块之间的码块关系可以按照PCS定义执行。
在一些实施例中,第二模块接收到的多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,且第二模块接收到的多个码块还包括Z组第二校验码块,Z组第二校验码块基于第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,Z和N均为正整数。第二校验码块可以通过识别码块格式识别出来。
结合上述S602的内容,第二校验码块包括的第二校验值是通过对各个第一子矩阵包括的初始码块的码块内容进行编码得到的,也就意味着第二校验值与编码得到该第二校验值的初始码块的码块内容相关联,从而第二校验值能够用于对初始码块进行校验。由于上述S604中任一个第一子矩阵包括的至少一个初始码块和对该至少一个初始码块编码得到的Y个第二校验码块可以相邻发送,上述接收顺序相连的至少一个初始码块可以为一个第一子矩阵包括的至少一个初始码块,从而Z可以等于S,N可以等于Y。
从而,对多个初始码块进行校验,得到校验结果,可以包括:按照第二码型,对Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;基于Z组第二校验码块包括的第二校验值和Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,校验结果指示多个初始码块未出错;基于校验值序号相同的第二校验值和第三校验值不全相同,校验结果指示多个初始码块出错。对于任一组第二校验值中的任一个第二校验值,该任一个第二校验值的校验值序号用于指示该任一个第二校验值是第几组第二校验码块中的第几个第二校验码块的第二校验值。上述编码过程中对一组初始码块编码得到N个第三校验值,则对于任一个第三校验值,该任一个第三校验值的校验值序号用于指示该任一个第三校验值是根据第几组初始码块编码得到的N个第三校验值中的第几个第三校验值。
对于某一组组号相同的初始码块和第二校验码块而言,如果这组初始码块未出错,则对这组初始码块编码得到的N个第三校验值将与这组第二校验码块中的N个第二校验值一一相同,也即校验值序号相同的第二校验值和第三校验值相同。从而根据Z组第二校验码块包括的第二校验值和Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值是否全相同,能够确定出接收到的多个初始码块是否出错,得到校验结果。第二码型可以为CRC码型。
S607,基于校验结果指示多个初始码块出错,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,获取纠错后的多个初始码块的码块内容。
示例性地,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,包括:根据多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块;根据至少一个第一校验码块获取多个第一校验值;根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
结合上述S604的内容,任一个第一子矩阵包括的至少一个初始码块是连续发送的,从而在一些实施例中,第二模块将多个初始码块中收顺序连续的至少一个初始码块作为一个第二子矩阵,从而生成Z个第二子矩阵,第二子矩阵的数量等于第一子矩阵的数量。示例性地,在多个码块不包括第二校验码块的情况下,用于作为一个第二子矩阵的初始码块的数量为根据第一模块和第二模块预先配置的默认值。
与上述S603中基于多个第一校验值获取至少一个第一校验码块相对应,根据至少一个第一校验码块获取多个第一校验值,可以包括:按照至少一个第一校验码块的接收顺序,根据至少一个第一校验码块中除指示字段和类型字段以外的其余比特和第一校验值包括的比特数量,获取多个第一校验值。例如,各个第一校验码块的码块格式均如图9所示,也即各个第一校验码块中除类型字段以外均剩余56比特,一个第一校验值为66比特,则多个第一校验值根据56*Q/66得到,Q表示第一校验码块的数量。
图16为本申请实施例提供的一种第二子矩阵和第一校验值的示意图。如图16所示,码块解码模块从PHY底层获取多个64B/66B编码的码块,多个码块包括9个初始码块和至少一个第一校验码块。码块解码模块根据获取到的多个初始码块生成3个第二子矩阵,根据获取到的至少一个第一校验码块获取3个第一校验值。在图16中,初始码块通过64/66表示,第一校验值通过校验值表示。
图17为本申请实施例提供的另一种第二子矩阵和第一校验值的示意图。如图17所示,码块解码模块从PHY底层获取多个64B/66B编码的码块,多个码块包括9个初始码块、至少一个第一校验码块和3个第二校验码块。码块解码模块根据获取到的9个初始码块获取3个第二子矩阵,根据获取到的至少一个第一校验码块获取3个第一校验值。在图17中,初始码块通过64/66表示,第一校验值通过校验值表示,第二校验码块通过CRC表示,按照CRC码型对第二校验码块编码得到的校验值也通过校验值表示。图16和图17旨在对第二子矩阵和第一校验值的获取方式进行说明,并不用于限定第二子矩阵和第一校验值的数量。
在一种可能的实现方式中,如果第一码型为FEC码型,根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错,包括:根据FEC码型对应的纠错方式和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。例如,根据多个第一校验值获取X个第三子矩阵,第三子矩阵与第二子矩阵的结构相同;对于Z个第二子矩阵中码块序号相同的Z个初始码块,根据FEC码型对应的纠错方式和X个第三子矩阵中校验值序号与Z个初始码块的码块序号相对应的X个第一校验值,对Z个初始码块进行纠错;其中,码块序号与校验值序号相对应是指码块序号的值和校验值序号的值相同,各个第二子矩阵和各个第三子矩阵的编号方式均相同且取值范围也相同。第二子矩阵与第三子矩阵结构相同是指第二子矩阵和第三子矩阵均为一列或者均为一行。
如果第二子矩阵和第三子矩阵均为一列,上述对于Z个第二子矩阵中码块序号相同的Z个初始码块,根据FEC码型对应的纠错方式和X个第三子矩阵中校验值序号与Z个初始码块的码块序号相对应的X个第一校验值,对Z个初始码块进行纠错,是指对于位于同一行的Z个初始码块和X个第一校验值,根据FEC码型对应的纠错方式和X个第一校验值对Z个初始码块进行纠错。
同理,如果第二子矩阵和第三子矩阵均为一行,上述对于Z个第二子矩阵中码块序号相同的Z个初始码块,根据FEC码型对应的纠错方式和X个第三子矩阵中校验值序号与Z个初始码块的码块序号相对应的X个第一校验值,对Z个初始码块进行纠错,是指对于位于同一列的Z个初始码块和X个第一校验值,根据FEC码型对应的纠错方式和X个第一校验值对Z个初始码块进行纠错。
示例性地,与编码得到第一校验值的过程相对应,根据FEC码型对应的纠错方式和X个第一校验值对Z个初始码块进行纠错时,将X个第一校验值中的每X*A个比特作为一组,各个第一校验值的A个比特位于各个第一校验值中的相同比特位置,共得到E组,E根据任一个第一校验值包括的比特数量与A的比值得到;对于任一组X*A个比特,利用这X*A个比特,对Z个初始码块中与A个比特的比特位置相同的Z*A个比特进行纠错。A个比特的比特位置是指这A个比特是初始码块中或者第一校验值中的第几比特到第几比特。示例性地,上述以X*A个比特为一组的过程为按照A比特对各个第一校验值包括的比特进行分组的过程,在第一校验值包括的比特数量不为A比特的整数倍的情况下,该第一校验值分组后剩余的比特拼接在与该第一校验值属于同一个第三子矩阵且校验值顺序在该第一校验值的下一位的第一校验值之前,也即将校验值顺序在前的第一校验值剩余的比特作为校验值顺序在后的第一校验值包括的比特,再对校验值顺序在后的第一校验值包括的比特进行分组。
在一种可能的实现方式中,该方法还包括:基于校验结果指示多个初始码块未出错,获取多个初始码块的码块内容。由于第一校验码块用于对初始码块进行纠错,则在多个初始码块未出错的情况下,无论第一校验码块是否出错,均可以直接丢弃第一校验码块,从而节约对码块进行处理所需的设备资源。
示例性地,上述获取初始码块的码块内容的操作由PCS解码模块执行。参见图16和图17,码块解码模块可以将未出错的初始码块或者纠错后的初始码块传输至PCS解码模块,由PCS解码模块获取其中的码块内容。
本申请实施例提供的方法中,通过对多个初始码块进行校验,在校验结果指示多个初始码块出错的情况下根据第一码型和第一校验码块对初始码块进行纠错,能够纠正初始码块中的误码,保证数据的准确性。再有,由于无需传输各个码块的长度相关的信息,数据传输的开销较小。
示例性地,在传输速率为5吉比特每秒(gigabit per second,Gbps),第一码型为FEC码型,FEC码型的符号包括6比特的情况下,预测的误码出现时长、第一子矩阵的数量、第一子矩阵包括的初始码块的数量、对任一个码块序号的多个初始码块的码块内容进行编码得到的第一校验值的数量、以及对初始码块进行编码带来的编码开销如下述表1所示。
表1
由于预测的误码出现时长与传输速率的乘积等于参考误码数量,第一子矩阵包括的初始码块的数量、第一子矩阵的数量根据参考误码数量确定,从而第二模块接收到多个码块之后,能够纠正参考误码数量个误码。结合上述表1的内容可以看出,本申请实施例提供的方法能够在保证数据的准确性的前提下,实现较小的编码开销。
本申请实施例还提供了一种数据传输装置。图18是本申请实施例提供的一种数据传输装置的结构示意图。基于图18所示的多个单元,图18所示的数据传输装置能够执行第一模块执行的全部或部分操作。应理解到,该装置可以包括比所示单元更多的附加单元或者省略其中所示的一部分单元,本申请实施例对此并不进行限制。如图18所示,该装置包括:
获取单元1801,用于根据获取到的多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,各个初始码块的长度相同;
编码单元1802,用于按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;
编码单元1802,还用于基于多个第一校验值得到至少一个第一校验码块;
发送单元1803,用于向第二模块发送多个码块,多个码块包括多个第一子矩阵包括的各个初始码块和至少一个第一校验码块。
在一种可能的实现方式中,获取单元1801,还用于获取参考误码数量,参考误码数量用于指示发送单元1803向第二模块传输多个码块时预测出现的误码数量;根据参考误码数量,确定第一子矩阵包括的初始码块的数量和第一码型;根据第一码型,确定第一子矩阵的数量;根据第一子矩阵包括的初始码块的数量和第一子矩阵的数量,获取多个初始码块。
在一种可能的实现方式中,第一码型为前向纠错FEC码型,编码单元1802,用于按照FEC码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。
在一种可能的实现方式中,编码单元1802,还用于按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,S表示第一子矩阵的数量,Y根据第二码型确定且为正整数;发送单元1803,用于向第二模块发送多个第一子矩阵包括的各个初始码块、S*Y个第二校验码块和至少一个第一校验码块。
在一种可能的实现方式中,第二码型为循环冗余校验CRC码型,编码单元1802,用于按照CRC码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验值;基于S*Y个第二校验值得到S*Y个第二校验码块。
在一种可能的实现方式中,发送单元1803,用于对于多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向第二模块发送任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;基于多个第一子矩阵包括的各个初始码块以及S*Y个第二校验码块均已向第二模块发送,向第二模块发送至少一个第一校验码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
在一种可能的实现方式中,对于任一个第一校验码块,该任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。
在一种可能的实现方式中,发送单元1803用于以码块流的方式向第二模块发送多个码块,多个码块中的第一个码块为初始码块,第一个码块的类型为锚点码块,锚点码块用于指示多个码块在码块流中的起始位置。
本申请实施例提供的装置中,通过根据获取到的多个初始码块获取多个第一子矩阵,再对多个第一子矩阵包括的各个码块进行编码得到校验码块,使得第二模块在接收到初始码块和校验码块后,能够根据初始码块和校验码块纠正初始码块中的误码,从而保证数据的准确性。并且,由于该装置是在码块层级进行的编码,各个码块的长度可以相同,该装置无需额外的字段单独指示各个码块的长度,编码的方式较为简单且开销较小。
图19是本申请实施例提供的另一种数据传输装置的结构示意图。基于图19所示的多个单元,该图19所示的数据传输装置能够执行第二模块所执行的全部或部分操作。应理解到,该装置可以包括比所示单元更多的附加单元或者省略其中所示的一部分单元,本申请实施例对此并不进行限制。如图19所示,该装置包括:
接收单元1901,用于接收由第一模块发送的多个码块,多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,至少一个第一校验码块是第一模块先根据多个初始码块生成第一矩阵,第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且至少一个初始码块的获取顺序连续,再按照第一码型对多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于多个第一校验值得到的;
校验单元1902,用于对多个初始码块进行校验,得到校验结果;
获取单元1903,用于基于校验结果指示多个初始码块出错,根据第一码型和至少一个第一校验码块,对多个初始码块进行纠错,获取纠错后的多个初始码块的码块内容。
在一种可能的实现方式中,校验单元1902,用于对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验;基于多个初始码块的码块格式或多个初始码块之间的码块关系中的至少一种出错,校验结果指示多个初始码块出错;基于多个初始码块的码块格式和多个初始码块之间的码块关系均未出错,校验结果指示多个初始码块未出错。
在一种可能的实现方式中,对多个初始码块的码块格式和多个初始码块之间的码块关系进行校验是按照参考校验规则执行的,参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。
在一种可能的实现方式中,多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,多个码块还包括Z组第二校验码块,Z组第二校验码块基于第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,Z和N均为正整数;校验单元1902,用于按照第二码型,对Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;基于Z组第二校验码块包括的第二校验值和Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,校验结果指示多个初始码块未出错;基于校验值序号相同的第二校验值和第三校验值不全相同,校验结果指示多个初始码块出错。
在一种可能的实现方式中,第二码型为循环冗余校验CRC码型。
在一种可能的实现方式中,获取单元1903,用于根据多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块,Z为正整数;根据至少一个第一校验码块获取多个第一校验值;根据第一码型和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,第一码型为前向纠错FEC码型,获取单元1903,用于根据FEC码型对应的纠错方式和多个第一校验值,对Z个第二子矩阵包括的初始码块进行纠错。
在一种可能的实现方式中,接收单元1901,用于接收由第一模块发送的码块流;识别码块流中的锚点码块,以锚点码块作为获取到的第一个初始码块,获取多个码块。
在一种可能的实现方式中,第一校验码块的数量为多个,多个第一校验码块中的首个第一校验码块包括指示字段,指示字段用于指示首个第一校验码块以及首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
在一种可能的实现方式中,对于任一个第一校验码块,该任一个第一校验码块包括类型字段和值字段,类型字段用于指示任一个第一校验码块的类型,值字段用于指示编码得到的第一校验值。
本申请实施例提供的装置中,通过对多个初始码块进行校验,在校验结果指示多个初始码块出错的情况下根据第一码型和第一校验码块对初始码块进行纠错,能够纠正初始码块中的误码,保证数据的准确性。再有,由于无需传输各个码块的长度相关的信息,数据传输的开销较小。
应理解的是,上述图18-19提供的装置在实现其功能时,仅以上述各功能单元的划分进行举例说明,实际应用中可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图20,图20为本申请实施例提供的一种计算机***的结构示意图。示例性地,如图20所示,该计算机***为网络设备2000。图20所示的网络设备2000用于执行上述图6所示的数据传输方法中第一模块所涉及的操作或者第二模块所涉及的操作。该网络设备2000例如是服务器等,该网络设备2000可以由一般性的总线体系结构来实现。
如图20所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图20中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(radio access network,RAN)或无线局域网(wirelesslocal area networks,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(Ethernet)接口、快速以太(fast Ethernet,FE)接口、千兆以太(gigabit Ethernet,GE)接口,异步传输模式(asynchronous transfermode,ATM)接口,WLAN接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图20中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图20中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的网络设备2000可包括上述各个方法实施例中的第一模块,网络设备2000中的处理器2001读取存储器2003中的程序代码2010或处理器2001自身存储的程序代码或指令,使图20所示的网络设备2000能够执行第一模块所执行的全部或部分操作。
在具体实施例中,本申请实施例的网络设备2000可包括上述各个方法实施例中的第二模块,网络设备2000中的处理器2001读取存储器2003中的程序代码2010或处理器2001自身存储的程序代码或指令,使图20所示的网络设备2000能够执行第二模块所执行的全部或部分操作。
该网络设备2000还可以对应于上述图18、19所示的装置,图18、19所示的装置中的每个功能单元采用网络设备2000的软件实现。换句话说,图18、19所示的装置包括的功能单元为网络设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。
其中,图6所示的数据传输方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
图21是本申请实施例提供的另一种计算机***的结构示意图,该计算机***用于执行上述图6所示的数据传输方法中第一模块所涉及的操作或者第二模块所涉及的操作。示例性地,该计算机***为服务器,服务器可因配置或性能不同而产生比较大的差异。该计算机***可以包括一个或多个处理器2101和一个或多个存储器2102,其中,该一个或多个存储器2102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器2101加载并执行。示例性地,该处理器2101为CPU。当然,该计算机***还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机***还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机***,该计算机***包括处理器,处理器用于从存储器中调用并运行存储器中存储的指令,以使该计算机***实现如上任一的数据传输方法。
在一种可能的实现方式中,该计算机***还包括:输入接口、输出接口和该存储器,该输入接口、该输出接口、该处理器以及该存储器之间通过内部连接通路相连。
本申请实施例还提供了一种数据传输***,该数据传输***包括第一模块和第二模块。该第一模块用于执行图6所示的第一模块所执行的方法,第二模块用于执行图6所示的第二模块所执行的方法。该数据传输***的第一模块和第二数据模块各自的功能可参考上述图6所示的相关描述,此处不再一一赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行数据传输方法。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(staticRAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,该至少一条指令由处理器加载并执行,以使计算机实现如上任一的数据传输方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,该处理器用于运行程序指令或代码,使得包含该芯片的设备执行如上述任一的数据传输方法。
示例性地,该芯片还包括:输入接口、输出接口和存储器,该输入接口、该输出接口、该处理器以及该存储器之间通过内部连接通路相连,该存储器包含程序指令或代码。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据传输装置的处理器,使得程序代码在被计算机或其他可编程的数据传输装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一模块可以被称为第二模块,并且类似地,第二模块可以被称为第一模块。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个码块是指两个或两个以上的码块。本文中术语“***”和“网络”经常可互换使用。
应理解,在本文中对各种示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
Claims (39)
1.一种数据传输方法,其特征在于,所述方法包括:
第一模块根据获取到的多个初始码块生成第一矩阵,所述第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且所述至少一个初始码块的获取顺序连续,各个初始码块的长度相同;
按照第一码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;
基于所述多个第一校验值得到至少一个第一校验码块;
向第二模块发送多个码块,所述多个码块包括所述多个第一子矩阵包括的各个初始码块和所述至少一个第一校验码块。
2.根据权利要求1所述的方法,其特征在于,所述第一模块根据获取到的多个初始码块生成第一矩阵之前,还包括:
获取参考误码数量,所述参考误码数量用于指示所述第一模块向所述第二模块传输所述多个码块时预测出现的误码数量;
根据所述参考误码数量,确定所述第一子矩阵包括的初始码块的数量和所述第一码型;
根据所述第一码型,确定所述第一子矩阵的数量;
根据所述第一子矩阵包括的初始码块的数量和所述第一子矩阵的数量,获取所述多个初始码块。
3.根据权利要求1或2所述的方法,其特征在于,所述第一码型为前向纠错FEC码型,所述按照第一码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值,包括:
按照所述FEC码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一模块根据获取到的多个初始码块生成第一矩阵之后,还包括:
按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,所述S表示所述第一子矩阵的数量,所述Y根据所述第二码型确定且为正整数;
所述向第二模块发送多个码块,包括:
向所述第二模块发送所述多个第一子矩阵包括的各个初始码块、所述S*Y个第二校验码块和所述至少一个第一校验码块。
5.根据权利要求4所述的方法,其特征在于,所述第二码型为循环冗余校验CRC码型,所述按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,包括:
按照所述CRC码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验值;
基于所述S*Y个第二校验值得到所述S*Y个第二校验码块。
6.根据权利要求4或5所述的方法,其特征在于,所述向所述第二模块发送所述多个第一子矩阵包括的各个初始码块、所述S*Y个第二校验码块和所述至少一个第一校验码块,包括:
对于所述多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向所述第二模块发送所述任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于所述矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送所述任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于所述矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;
基于所述多个第一子矩阵包括的各个初始码块以及所述S*Y个第二校验码块均已向所述第二模块发送,向所述第二模块发送所述至少一个第一校验码块。
7.根据权利要求1-6任一所述的方法,其特征在于,所述第一校验码块的数量为多个,所述多个第一校验码块中的首个第一校验码块包括指示字段,所述指示字段用于指示所述首个第一校验码块以及所述首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
8.根据权利要求1-6任一所述的方法,其特征在于,对于任一个第一校验码块,所述任一个第一校验码块包括类型字段和值字段,所述类型字段用于指示所述任一个第一校验码块的类型,所述值字段用于指示编码得到的第一校验值。
9.根据权利要求1-8任一所述的方法,其特征在于,所述第一模块以码块流的方式向所述第二模块发送所述多个码块,所述多个码块中的第一个码块为初始码块,所述第一个码块的类型为锚点码块,所述锚点码块用于指示所述多个码块在所述码块流中的起始位置。
10.一种数据传输方法,其特征在于,所述方法包括:
第二模块接收由第一模块发送的多个码块,所述多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,所述至少一个第一校验码块是所述第一模块先根据所述多个初始码块生成第一矩阵,所述第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且所述至少一个初始码块的获取顺序连续,再按照第一码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于所述多个第一校验值得到的;
对所述多个初始码块进行校验,得到校验结果;
基于所述校验结果指示所述多个初始码块出错,根据所述第一码型和所述至少一个第一校验码块,对所述多个初始码块进行纠错,获取纠错后的所述多个初始码块的码块内容。
11.根据权利要求10所述的方法,其特征在于,所述对所述多个初始码块进行校验,得到校验结果,包括:
对所述多个初始码块的码块格式和所述多个初始码块之间的码块关系进行校验;
基于所述多个初始码块的码块格式或所述多个初始码块之间的码块关系中的至少一种出错,所述校验结果指示所述多个初始码块出错;
基于所述多个初始码块的码块格式和所述多个初始码块之间的码块关系均未出错,所述校验结果指示所述多个初始码块未出错。
12.根据权利要求11所述的方法,其特征在于,所述对所述多个初始码块的码块格式和所述多个初始码块之间的码块关系进行校验是按照参考校验规则执行的,所述参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。
13.根据权利要求10所述的方法,其特征在于,所述多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,所述多个码块还包括Z组第二校验码块,所述Z组第二校验码块基于所述第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,所述Z和所述N均为正整数;
所述对所述多个初始码块进行校验,得到校验结果,包括:
按照所述第二码型,对所述Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;
基于所述Z组第二校验码块包括的第二校验值和所述Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,所述校验结果指示所述多个初始码块未出错;
基于所述校验值序号相同的第二校验值和第三校验值不全相同,所述校验结果指示所述多个初始码块出错。
14.根据权利要求13所述的方法,其特征在于,所述第二码型为循环冗余校验CRC码型。
15.根据权利要求10-14任一所述的方法,其特征在于,所述根据所述第一码型和所述至少一个第一校验码块,对所述多个初始码块进行纠错,包括:
根据所述多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块,所述Z为正整数;
根据所述至少一个第一校验码块获取多个第一校验值;
根据所述第一码型和所述多个第一校验值,对所述Z个第二子矩阵包括的初始码块进行纠错。
16.根据权利要求15所述的方法,其特征在于,所述第一码型为前向纠错FEC码型,所述根据第一码型和所述多个第一校验值,对所述Z个第二子矩阵包括的初始码块进行纠错,包括:
根据所述FEC码型对应的纠错方式和所述多个第一校验值,对所述Z个第二子矩阵包括的初始码块进行纠错。
17.根据权利要求10-16任一所述的方法,其特征在于,所述接收由第一模块发送的多个码块,包括:
接收由所述第一模块发送的码块流;
识别所述码块流中的锚点码块,以所述锚点码块作为获取到的第一个初始码块,获取所述多个码块。
18.根据权利要求10-17任一所述的方法,其特征在于,所述第一校验码块的数量为多个,所述多个第一校验码块中的首个第一校验码块包括指示字段,所述指示字段用于指示所述首个第一校验码块以及所述首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
19.根据权利要求10-17任一所述的方法,其特征在于,对于任一个第一校验码块,所述任一个第一校验码块包括类型字段和值字段,所述类型字段用于指示所述任一个第一校验码块的类型,所述值字段用于指示编码得到的第一校验值。
20.一种数据传输装置,其特征在于,所述装置应用于第一模块,所述装置包括:
获取单元,用于根据获取到的多个初始码块生成第一矩阵,所述第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且所述至少一个初始码块的获取顺序连续,各个初始码块的长度相同;
编码单元,用于按照第一码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码,得到多个第一校验值;
所述编码单元,还用于基于所述多个第一校验值得到至少一个第一校验码块;
发送单元,用于向第二模块发送多个码块,所述多个码块包括所述多个第一子矩阵包括的各个初始码块和所述至少一个第一校验码块。
21.根据权利要求20所述的装置,其特征在于,所述获取单元,还用于获取参考误码数量,所述参考误码数量用于指示所述发送单元向所述第二模块传输所述多个码块时预测出现的误码数量;根据所述参考误码数量,确定所述第一子矩阵包括的初始码块的数量和所述第一码型;根据所述第一码型,确定所述第一子矩阵的数量;根据所述第一子矩阵包括的初始码块的数量和所述第一子矩阵的数量,获取所述多个初始码块。
22.根据权利要求20或21所述的装置,其特征在于,所述编码单元,还用于按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码,得到S*Y个第二校验码块,所述S表示所述第一子矩阵的数量,所述Y根据所述第二码型确定且为正整数;所述发送单元,用于向所述第二模块发送所述多个第一子矩阵包括的各个初始码块、所述S*Y个第二校验码块和所述至少一个第一校验码块。
23.根据权利要求22所述的装置,其特征在于,所述发送单元,用于对于所述多个第一子矩阵中矩阵序号相邻的任意两个第一子矩阵,向所述第二模块发送所述任意两个第一子矩阵中矩阵序号在先的第一子矩阵包括的至少一个初始码块之后,先发送基于所述矩阵序号在先的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块,再发送所述任意两个第一子矩阵中矩阵序号在后的第一子矩阵包括的至少一个初始码块、以及基于所述矩阵序号在后的第一子矩阵包括的至少一个初始码块编码得到的Y个第二校验码块;基于所述多个第一子矩阵包括的各个初始码块以及所述S*Y个第二校验码块均已向所述第二模块发送,向所述第二模块发送所述至少一个第一校验码块。
24.根据权利要求20-23任一所述的装置,其特征在于,所述第一校验码块的数量为多个,所述多个第一校验码块中的首个第一校验码块包括指示字段,所述指示字段用于指示所述首个第一校验码块以及所述首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
25.根据权利要求20-23任一所述的装置,其特征在于,对于任一个第一校验码块,所述任一个第一校验码块包括类型字段和值字段,所述类型字段用于指示所述任一个第一校验码块的类型,所述值字段用于指示编码得到的第一校验值。
26.根据权利要求20-25任一所述的装置,其特征在于,所述发送单元以码块流的方式向所述第二模块发送所述多个码块,所述多个码块中的第一个码块为初始码块,所述第一个码块的类型为锚点码块,所述锚点码块用于指示所述多个码块在所述码块流中的起始位置。
27.一种数据传输装置,其特征在于,所述装置应用于第二模块,所述装置包括:
接收单元,用于接收由第一模块发送的多个码块,所述多个码块包括至少一个第一校验码块和多个初始码块,各个初始码块的长度相同,所述至少一个第一校验码块是所述第一模块先根据所述多个初始码块生成第一矩阵,所述第一矩阵包括多个第一子矩阵,任一个第一子矩阵包括至少一个初始码块且所述至少一个初始码块的获取顺序连续,再按照第一码型对所述多个第一子矩阵包括的码块序号相同的初始码块的码块内容进行编码得到多个第一校验值,基于所述多个第一校验值得到的;
校验单元,用于对所述多个初始码块进行校验,得到校验结果;
获取单元,用于基于所述校验结果指示所述多个初始码块出错,根据所述第一码型和所述至少一个第一校验码块,对所述多个初始码块进行纠错,获取纠错后的所述多个初始码块的码块内容。
28.根据权利要求27所述的装置,其特征在于,所述校验单元,用于对所述多个初始码块的码块格式和所述多个初始码块之间的码块关系进行校验;基于所述多个初始码块的码块格式或所述多个初始码块之间的码块关系中的至少一种出错,所述校验结果指示所述多个初始码块出错;基于所述多个初始码块的码块格式和所述多个初始码块之间的码块关系均未出错,所述校验结果指示所述多个初始码块未出错。
29.根据权利要求28所述的装置,其特征在于,所述对所述多个初始码块的码块格式和所述多个初始码块之间的码块关系进行校验是按照参考校验规则执行的,所述参考校验规则用于校验码块的码块格式和多个码块之间的码块关系。
30.根据权利要求29所述的装置,其特征在于,所述多个初始码块为Z组初始码块,任一组初始码块包括接收顺序连续的至少一个初始码块,所述多个码块还包括Z组第二校验码块,所述Z组第二校验码块基于所述第一模块按照第二码型对各个第一子矩阵包括的初始码块的码块内容进行编码得到,任一组第二校验码块包括接收顺序连续的N个第二校验码块,任一个第二校验码块包括一个第二校验值,组号相同的一组初始码块和一组第二校验码块的接收顺序相邻,所述Z和所述N均为正整数;
所述校验单元,用于按照所述第二码型,对所述Z组初始码块的码块内容进行编码,得到Z*N个第三校验值;基于所述Z组第二校验码块包括的第二校验值和所述Z*N个第三校验值中,校验值序号相同的第二校验值和第三校验值均相同,所述校验结果指示所述多个初始码块未出错;基于所述校验值序号相同的第二校验值和第三校验值不全相同,所述校验结果指示所述多个初始码块出错。
31.根据权利要求27-30任一所述的装置,其特征在于,所述获取单元,用于根据所述多个初始码块生成Z个第二子矩阵,任一个第二子矩阵包括接收顺序连续的至少一个初始码块,所述Z为正整数;根据所述至少一个第一校验码块获取多个第一校验值;根据所述第一码型和所述多个第一校验值,对所述Z个第二子矩阵包括的初始码块进行纠错。
32.根据权利要求27-31任一所述的装置,其特征在于,所述接收单元,用于接收由所述第一模块发送的码块流;识别所述码块流中的锚点码块,以所述锚点码块作为获取到的第一个初始码块,获取所述多个码块。
33.根据权利要求27-32任一所述的装置,其特征在于,所述第一校验码块的数量为多个,所述多个第一校验码块中的首个第一校验码块包括指示字段,所述指示字段用于指示所述首个第一校验码块以及所述首个第一校验码块之后发送的至少一个码块的类型均为第一校验码块。
34.根据权利要求27-32任一所述的装置,其特征在于,对于任一个第一校验码块,所述任一个第一校验码块包括类型字段和值字段,所述类型字段用于指示所述任一个第一校验码块的类型,所述值字段用于指示编码得到的第一校验值。
35.一种数据传输***,其特征在于,所述数据传输***包括第一模块和第二模块,所述第一模块用于执行如权利要求1-9中任一所述的方法,所述第二模块用于执行如权利要求10-19任一所述的方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序指令或代码,所述程序指令或代码由计算机执行时以使所述计算机实现如权利要求1-19中任一所述的方法。
37.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序指令或代码,当所述计算机程序指令或代码被计算机运行时,使得所述计算机实现如权利要求1-19中任一所述的方法。
38.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于运行程序指令或代码,使得包含所述芯片的设备执行如权利要求1-19中任一所述的方法。
39.根据权利要求38所述的芯片,其特征在于,所述芯片还包括:输入接口、输出接口和存储器,所述输入接口、所述输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述存储器包含所述程序指令或代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414482.6A CN118041488A (zh) | 2022-11-11 | 2022-11-11 | 数据传输方法、装置、***及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414482.6A CN118041488A (zh) | 2022-11-11 | 2022-11-11 | 数据传输方法、装置、***及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118041488A true CN118041488A (zh) | 2024-05-14 |
Family
ID=91002833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211414482.6A Pending CN118041488A (zh) | 2022-11-11 | 2022-11-11 | 数据传输方法、装置、***及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118041488A (zh) |
-
2022
- 2022-11-11 CN CN202211414482.6A patent/CN118041488A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271850B2 (en) | Fast low-density parity-check code encoder | |
US20210399831A1 (en) | Data transmission method, apparatus, and system | |
US20230370193A1 (en) | Data transmission method, apparatus, device, and system, and computer-readable storage medium | |
US20230291502A1 (en) | Data Processing Method and Related Apparatus | |
US20230023776A1 (en) | Codeword Synchronization Method, Receiver, Network Device, and Network System | |
CN108337069B (zh) | 一种改进的降低误码率的末端并行分组crc校验*** | |
US11611816B2 (en) | Service data processing method and device | |
US9246491B2 (en) | Method and apparatus for performing pipelined operations on parallel input data with feedback | |
US9337959B2 (en) | Defect propagation of multiple signals of various rates when mapped into a combined signal | |
CN111130686A (zh) | 业务数据处理方法及装置 | |
WO2023116229A1 (zh) | 生成、处理以太帧的方法、装置、设备、***及存储介质 | |
CN118041488A (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
WO2022228370A1 (zh) | 码字同步方法、接收器、网络设备及网络*** | |
CN112291077A (zh) | 改善传输速率的方法、装置、处理器、网络设备和*** | |
WO2021017726A1 (zh) | 改善传输速率的方法、处理器、网络设备和网络*** | |
CN116455516A (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
CN109818705B (zh) | 传送、接收子速率信号方法及装置、设备 | |
WO2024148984A1 (zh) | 传输数据的方法、装置、设备、***及存储介质 | |
US20230353279A1 (en) | Methods, apparatuses, and optical network devices for uplink fec encoding and decoding | |
US10846085B2 (en) | Multi-lane data processing circuit and system | |
CN117675101A (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
CN117376123A (zh) | 模式协商方法、装置、设备、***及计算机可读存储介质 | |
CN116032418A (zh) | 编码方法、解码方法、装置、设备及可读存储介质 | |
CN116073944A (zh) | 数据传输的方法、装置、设备、***及可读存储介质 | |
CN116566543A (zh) | 实现码字同步的方法、通信设备、芯片和芯片*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |