CN112350798A - 分组传输方法和装置 - Google Patents
分组传输方法和装置 Download PDFInfo
- Publication number
- CN112350798A CN112350798A CN201910730648.7A CN201910730648A CN112350798A CN 112350798 A CN112350798 A CN 112350798A CN 201910730648 A CN201910730648 A CN 201910730648A CN 112350798 A CN112350798 A CN 112350798A
- Authority
- CN
- China
- Prior art keywords
- check information
- fec
- packet
- data
- fec check
- 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
Images
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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- 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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请实施例提供一种分组传输方法和装置,该方法包括:第一节点生成第一数据单元,第一数据单元包括第一分组和N组前向纠错码FEC校验信息,N组FEC校验信息是分别根据第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;第一节点发送第一数据单元。本申请实施例通过生成第一数据单元,第一数据单元包括根据第一分组生成第一分组对应的FEC校验信息,使得接收端可根据FEC校验信息对经过传输后的第一数据单元中的第一分组进行纠错,纠错后误码率可大大降低,因此,在高接口速率下,误码丢包的数量大大降低。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种分组传输方法和装置。
背景技术
在分组网络例如以太网中传输分组时,允许误码等情况发生,一般设定一定的误码率指标,例如误码率设定为1E-12。误码会导致分组错误,若将错误的分组当作正确分组处理,有可能引发计算机系统的灾难性事件。因此在以太网中传输MAC帧分组时一般在MAC帧的尾部添加循环冗余校验(Cyclic Redundancy Check,CRC)校验信息,当MAC帧发生误码的时候,CRC校验不通过,即将MAC帧丢弃,很大程度上避免了错误MAC帧被当成正确MAC帧处理(几乎不会发生),即主要通过CRC校验保证通信的可靠性。
但是,随着接口速率的提升,在保证相同的接口误码率指标的情况下,单位时间内的误码丢包数量随接口速率的提升和传输的分组数量的提升线性增加,错误分组被当作正确分组处理的风险也会显著增加。在一些电信级网络中,误码丢包在一些场景中被认为是可靠性失效事件;因此,如何在高接口速率下,降低误码丢包的数量是亟待解决的技术问题。
发明内容
本申请实施例提供一种分组传输方法和装置,可以在高接口速率下,降低误码丢包的数量。
第一方面,本申请实施例提供一种分组传输方法,包括:第一节点生成第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;所述第一节点发送所述第一数据单元。
可选地,第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互联协议IP报文、多协议标签交换MPLS报文。
本实施例中通过生成第一数据单元,第一数据单元包括根据第一分组生成第一分组对应的FEC校验信息。接收端可根据FEC校验信息对经过传输后的第一数据单元中的第一分组进行纠错,纠错后误码率可大大降低,因此,在高接口速率下,误码丢包的数量大大降低。
其中,在一种实现方式中,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
在另一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。可选地,在N>1,n<N时第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
通过上述两种实现方式可知,N组FEC校验信息的位置比较灵活,因此,可以灵活的放置N组FEC校验信息。
在又一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中前n组FEC校验信息中的任意一组,所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻,所述第一FEC校验信息对应的数据中包括第一CRC校验信息,n≤N,n≥1且n为整数。可选地,所述第一CRC校验信息与所述第一FEC校验信息相邻。可选地,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。可选地,在N>1,n<N时,第二FEC校验信息位于所述第一分组的最后一字节之后,或者,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息,所述第二FEC校验信息位于与所述第二FEC校验信息对应的数据之后,且所述第二FEC校验信息对应的数据与所述第二FEC校验信息相邻。
该实现方式可以降低分组的传输时延,在用于生成N组FEC校验信息的FEC码的纠错能力较强时,还可以降低分组传输节点的功耗。在所述第一CRC校验信息由所述第一分组中的分组头信息确定的情况下,可进一步降低传输时延。
结合第一方面,在一种可能的设计中,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
本方案,一是可以提高生成N组FEC校验信息的灵活性;二是在所述第一FEC校验信息对应的数据中包括第一CRC校验信息,所述第一CRC校验信息由所述第一分组中的分组头信息确定的情况下,为了适应分组头信息的长度,可以采用一些FEC校验信息的开销越大的FEC码(比如码长较短的FEC码),对分组头信息和第一CRC校验信息进行FEC编码,而对第一分组中的其余数据可采用一些FEC校验信息的开销越小的FEC码(比如码长较长的FEC码),这样可以在实现所述第一CRC校验信息由所述第一分组中的分组头信息确定的这一方案的基础上,还可以避免均采用FEC校验信息的开销越大的FEC码造成的分组传输节点的高功耗。
结合第一方面,在一种可能的设计中,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,所述第一FEC码的码长与所述第二FEC码的码长不相同。
本方案可以提高生成N组FEC校验信息的灵活性。
结合第一方面,在一种可能的设计中,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
本方案提供了目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目时,第一数目为用于生成目标FEC校验信息的目标FEC码的码长对应的字节数,可通过填充数据至目标数据之后,使得目标数据的字节数、填充数据的字节数以及目标FEC校验信息的字节数之和等于目标FEC码的码长对应的字节数,来实现对目标数据和填充数据进行FEC编码生成目标FEC校验信息的目的。
结合第一方面,在一种可能的设计中,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
本方案可使得第一数据单元的接收端确定接收到的第一数据单元中是否存在第一分组对应的N组FEC校验信息。
结合第一方面,在一种可能的设计中,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
本方案可防止由于第一标记和第二标记相差不大造成的第一标记和/第二标记的误码后第一标记和第二标记相同,而无法区分第一数据单元中是否包括第一分组对应的N组FEC校验信息现象的发生。
第二方面,本申请实施例提供一种分组传输方法,包括:第二节点接收第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;所述第二节点处理所述第一分组。
可选地,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互联协议IP报文、多协议标签交换MPLS报文。
本方案中第二节点可根据接收到的第一数据单元中的FEC校验信息对经过传输后的第一数据单元中的第一分组进行纠错,纠错后误码率可大大降低,因此,在高接口速率下,误码丢包的数量大大降低。
其中,在一种实现方式中,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
在另一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。可选地,在N>1,n<N;第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
上述两种实现方式的有益效果参见第一方面中的描述,此处不再赘述。
针对上述两种实现方式,在第二节点为中间节点且第二节点对第一分组的传输方式为目的地址转发的情况下,或者,在第二节点为第一分组的目的接收节点的情况下,所述第二节点处理所述第一分组包括但不限于如下的实施方式:
第一种实施方式:所述第二节点处理所述第一分组,包括:所述第二节点根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,所述第二节点处理所述第一分组还包括:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
第一种实施方式可以使得第二节点处理第一分组的效率较高。
第二种实施方式:所述第一分组包括所述第一分组的第二CRC校验信息,所述第二节点处理所述第一分组,包括:所述第二节点根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组,采用纠错后的第二CRC校验信息或所述第二CRC校验信息,对纠错后的第一分组进行CRC的校验。可选地,所述第二节点处理所述第一分组还包括:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
第二种实施方式在可以保证较低的误包接收时间。
第三种实施方式:所述第一分组包括所述第一分组的第二CRC校验信息,所述第二节点处理所述第一分组,包括:采用所述第二CRC校验信息对所述第一分组进行CRC的校验;若所述第一分组未通过所述第二CRC校验信息的校验,则根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,所述第一分组包括所述第一分组的第二CRC校验信息信息,所述第二节点处理第一分组,还包括:采用纠错后的第二CRC校验信息或所述第二CRC校验信息对纠错后的第一分组进行CRC的校验。可选地,所述第二节点处理所述第一分组还包括:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
第三种实施方式在所述第一分组未通过第二CRC校验信息的校验时,才进行纠错,可以避免大部分不必要的纠错,从而降低第二节点的功耗。此外,在所述第二节点处理第一分组还包括:采用纠错后的第二CRC校验信息或所述第二CRC校验信息对纠错后的第一分组进行CRC的校验时,还可以保证较低的误包接收时间。
针对上述两种实现方式,在第二节点为中间节点且第二节点对第一分组的传输方式为通道转发或者透明传输的情况下,所述第二节点处理所述第一分组,包括:所述第二节点发送包括所述第一分组和第一分组对应的N组FEC校验信息的数据单元至下一个节点。此时,第二节点为无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
在又一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中前n组FEC校验信息中的任意一组,所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻,所述第一FEC校验信息对应的数据中包括第一CRC校验信息,n≤N,n≥1且n为整数。可选地,所述第一CRC校验信息与所述第一FEC校验信息相邻。可选地,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。可选地,在N>1,n<N时,第二FEC校验信息位于所述第一分组的最后一字节之后或者所述第二FEC校验信息位于与所述第二FEC校验信息对应的数据之后,且所述第二FEC校验信息对应的数据与所述第二FEC校验信息相邻;所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
该又一种实现方式的有益效果参见第一方面中的描述,此处不再赘述。
针对该又一种实现方式,在第二节点为中间节点且第二节点对第一分组的传输方式为目的地址转发的情况下,所述第二节点处理所述第一分组包括但不限于如下的实施方式:
第一种实施方式:所述第二节点处理所述第一分组,包括:根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据。在第一FEC校验信息具有n组的情况下,会得到n份第一数据。可选地,所述第二节点处理所述第一分组还包括:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,所述第二节点处理所述第一分组还包括:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息和/或根据纠错后的第一分组生成第一分组的CRC校验信息。
第一种实施方式可以使得第二节点处理第一分组的效率较高。
第二种实施方式:所述第二节点处理所述第一分组,包括:根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据,第一数据中包括纠错后的第一CRC校验信息;采用纠错后的第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。在第一FEC校验信息具有n组的情况下,会得到n份第一数据。可选地,所述第二节点处理所述第一分组还包括:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,所述第二节点处理所述第一分组还包括:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息和/或根据纠错后的第一分组生成第一分组的CRC校验信息。
第二种实施方式在可以保证较低的误包接收时间。
第三种实施方式:所述第二节点处理所述第一分组包括:采用所述第一CRC校验信息对所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据进行CRC校验;若所述第一FEC校验信息对应的数据中与第一CRC校验信息对应的数据未通过所述第一CRC校验信息的校验,则根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据。可选地,还包括:采用纠错后的第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。在第一FEC校验信息具有n组的情况下,会得到n份第一数据。可选地,所述第二节点处理所述第一分组还包括:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,所述第二节点处理所述第一分组还包括:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息和/或根据纠错后的第一分组生成第一分组的CRC校验信息。
第三种实施方式在所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据未通过所述第一CRC的校验时,才进行纠错,可以避免大部分不必要的纠错,从而降低第二节点的功耗。此外,在所述第二节点处理第一分组还包括采用纠错后的第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验时,还可以保证较低的误包接收时间。
针对该又一种实现方式,在第二节点为中间节点且第二节点对第一分组的传输方式为通道转发或者透明传输的情况下,所述第二节点处理所述第一分组,包括:所述第二节点发送包括所述第一分组、第一分组对应的N组FEC校验信息和第一CRC校验信息的数据单元至下一个节点。此时,第二节点无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
针对该又一种实现方式,在第二节点为第一分组的目的接收节点时,第二节点的处理第一分组的方法同上述两种实现方式中第二节点处理第一分组的方法,此处不再赘述。
结合第二方面,在一种可能的设计中,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
本方案的有益效果同第一方面中相应方案的有益效果,此处不再赘述。
结合第二方面,在一种可能的设计中,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,所述第一FEC码的码长与所述第二FEC码的码长不相同。
本方案的有益效果同第一方面中相应方案的有益效果,此处不再赘述。
结合第二方面,在一种可能的设计中,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
本方案的有益效果同第一方面中相应方案的有益效果,此处不再赘述。
结合第二方面,在一种可能的设计中,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
本方案的有益效果同第一方面中相应方案的有益效果,此处不再赘述。
结合第二方面,在一种可能的设计中,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
本方案的有益效果同第一方面中相应方案的有益效果,此处不再赘述。
第三方面,本申请实施例提供一种分组传输装置,包括:处理模块,用于生成第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;收发模块,用于发送所述第一数据单元。
可选地,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互连协议IP报文、多协议标签交换MPLS报文。
结合第三方面的各种可能的设计同结合第一方面的各种可能的设计,此处不再赘述。
第四方面,本申请实施例一种分组传输装置,包括:收发模块,用于接收第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;处理模块,用于处理所述第一分组。
其中,在一种实现方式中,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
在另一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;所述第一FEC校验信息位于所述第一数据单元中与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。可选地,在N>1,n<N时第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
针对上述两种实现方式,在分组传输装置为中间节点且分组传输装置对第一分组的传输方式为目的地址转发的情况下,或者,在分组传输装置为第一分组的目的接收节点的情况下:
在第一种实施方式中:处理模块用于处理所述第一分组包括:处理模块具体用于:根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,处理模块还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
在第二种实施方式中:所述第一分组包括所述第一分组的第二CRC校验信息,处理模块用于处理所述第一分组包括:处理模块具体用于:根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组,采用纠错后的第二CRC校验信息或所述第二CRC校验信息,对纠错后的第一分组进行CRC的校验。可选地,处理模块还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
在第三种实施方式中:所述第一分组包括所述第一分组的第二CRC校验信息,处理模块用于处理所述第一分组包括:处理模块具体用于:采用所述第二CRC校验信息对所述第一分组进行CRC的校验;若所述第一分组未通过所述第二CRC校验信息的校验,则根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,处理模块还具体用于:采用纠错后的第二CRC校验信息或所述第二CRC校验信息对纠错后的第一分组进行CRC的校验。可选地,处理模块还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
针对上述两种实现方式,在分组传输装置为中间节点且分组传输装置对第一分组的传输方式为通道转发或者透明传输的情况下,处理模块用于处理所述第一分组包括:处理模块具体用于:控制收发模块发送包括所述第一分组和第一分组对应的N组FEC校验信息的数据单元至下一个节点。此时,分组传输装置为中间节点,处理模块无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
在又一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中前n组FEC校验信息中的任意一组,所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻,所述第一FEC校验信息对应的数据中包括第一CRC校验信息,n≤N,n≥1且n为整数。可选地,所述第一CRC校验信息与所述第一FEC校验信息相邻。可选地,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。可选地,在N>1,n<N时,第二FEC校验信息位于所述第一分组的最后一字节之后,或者,所述第二FEC校验信息位于与所述第二FEC校验信息对应的数据之后且所述第二FEC校验信息对应的数据与所述第二FEC校验信息相邻;所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
针对又一种实现方式,在分组传输装置为中间节点且分组传输装置对第一分组的传输方式为目的地址转发的情况下:
在第一种实施方式中:处理模块用于处理所述第一分组包括:处理模块具体用于:根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息)。可选地,处理模块还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
在第二种实施方式中:处理模块用于处理所述第一分组包括:处理模块具体用于:根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息);采用纠错后的第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。可选地,处理模块还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
在第三种实施方式中:处理模块用于处理所述第一分组包括:处理模块具体用于:采用所述第一CRC校验信息对所述第一分组中与第一CRC校验信息对应的数据进行CRC校验;若所述第一分组中与第一CRC校验信息对应的数据未通过所述第一CRC校验信息的校验,则根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息)。可选地,处理模块还具体用于:采用纠错后的第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。可选地,处理模块还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
针对又一种实现方式,在分组传输装置为中间节点且分组传输装置对第一分组的传输方式为通道转发或者透明传输的情况下:处理模块用于处理所述第一分组包括:处理模块具体用于:控制收发模块发送包括所述第一分组、第一分组对应的N组FEC校验信息和第一CRC校验信息的数据单元至下一个节点。此时,分组传输装置为中间节点,处理模块无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
针对该又一种实现方式,在分组传输装置为第一分组的目的接收节点时,处理模块的处理第一分组的方法同上述两种实现方式中分组传输装置的处理模块处理第一分组的方法,此处不再赘述。
结合第四方面,在一种可能的设计中,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
结合第四方面,在一种可能的设计中,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,所述第一FEC码的码长与所述第二FEC码的码长不相同。
结合第四方面,在一种可能的设计中,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及所述目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
结合第四方面,在一种可能的设计中,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
结合第四方面,在一种可能的设计中,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
第五方面,本申请实施例提供一种分组传输装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述装置执行第一方面以及第一方面任一可能的设计中所述的方法。
第六方面,本申请实施例提供一种分组传输装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述装置执行第二方面以及第二方面任一可能的设计中所述的方法。
第七方面,本申请实施例提供一种存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行第一方面以及第一方面任一可能的设计中所述的方法。
第八方面,本申请实施例提供一种存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行第二方面以及第二方面任一可能的设计中所述的方法。
附图说明
图1A为无分组传输时的传输示意图;
图1B为有分组传输时的传输示意图;
图2为以太网MAC帧的一种示意图;
图3为FC帧以及物理层中的包括FC帧的数据单元的示意图;
图4为IP报文以及物理层中的包括IP报文的数据单元的示意图;
图5为本申请实施例提供的一种系统架构示意图;
图6为图5所示系统架构包括的一种具体的系统架构的示意图;
图7为本申请实施例提供的另一种系统架构示意图;
图8A为图7所示系统架构包括的一种具体的系统架构的示意图;
图8B为图7所示系统架构包括的另一种具体的系统架构的示意图;
图8C为图7所示系统架构包括的又一种具体的系统架构的示意图;
图8D为图7所示系统架构包括的又一种具体的系统架构的示意图;
图9为本申请实施例提供的分组传输方法的交互图;
图10为本申请实施例提供的第一分组、第一分组和N组FEC校验信息组成的数据单元以及第一数据单元的示意图一;
图11为本申请实施例提供的第一分组、第一分组和N组FEC校验信息组成的数据单元以及第一数据单元的示意图二;
图12为本申请实施例提供的第一分组、第一分组和N组FEC校验信息组成的数据单元以及第一数据单元的示意图三;
图13为本申请实施例提供的第一分组、第一CRC校验信息和N组FEC校验信息组成的数据单元的示意图;
图14为本申请实施例提供的以太网端口对应的协议层的示意图一;
图15为本申请实施例提供的FEC校验信息生成过程示意图一;
图16为本申请实施例提供的生成FEC校验信息前后的示意图一;
图17为本申请实施例提供的生成FEC校验信息前后的示意图一;
图18为本申请实施例提供的生成FEC校验信息前后的示意图三;
图19为本申请实施例提供的FEC校验信息生成过程示意图二;
图20为本申请实施例提供的生成FEC校验信息前后的示意图四;
图21为本申请实施例提供的生成FEC校验信息前后示意图五;
图22为本申请实施例提供的生成FEC校验信息前后示意图六;
图23为本申请实施例提供的以太网端口对应的协议层的示意图二;
图24为本申请实施例提供的生成FEC校验信息前后的示意图七;
图25为本申请实施例提供的生成FEC校验信息前后的示意图八;
图26为本申请实施例提供的生成FEC校验信息过程示意图;
图27为本申请实施例提供的数据单元在两个节点之间的传输涉及的一种可能的示意框图;
图28为本申请实施例提供的中间节点的一种可能的功能示意框图;
图29为本申请实施例提供的中间节点的另一种可能的功能示意框图;
图30为本申请一实施例提供的一种装置的结构示意图;
图31为本申请另一实施例提供的一种装置的结构示意图。
具体实施方式
为了更好的理解本申请,本申请引入如下要素:
1、数据单元:广义的数据单元是一组信息,例如比特、字节、码块、光传送网(optical transport network,简称OTN)的长度确定的光传输单元(optical transportunit,简称OTU)帧、以及长度可变的以太网媒体访问控制(media access control,MAC)帧、包含MAC帧的以太网包(Ethetnet Packet)、光纤通道(fiber channel,FC)帧、包含FC帧的光纤通道物理层FC-2帧、多协议标签交换(multiprotocol label switching,简称MPLS)报文、网际互联协议(internet protocol,简称IP)报文等。
2、分组:分组泛指在数据网络中传送的长度可变的数据单元,是一组包含数据和控制信息(比如地址控制信息、标签控制信息)的二进制信息数据单元,分组作为一个整体可以被独立地交换转发。分组的数据和控制信息以及可能附加的差错控制信息是按规定的格式排列的。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址、源地址、标签等重要的控制信息,才能在网络中根据分组的首部包含的信息独立的选择分组的传输路径。分组的首部也可以称之为包头、分组头、帧头等。分组中的有效业务数据承载于分组的净荷区域,为分组的净荷数据,分组中其它的数据构成了分组的开销。比如,以太网MAC帧、FC帧、MPLS报文、IP报文等均属为分组。此外,分组是可以嵌套的,即一种协议的分组中的净荷数据可以包含另外一种协议的分组,比如MAC帧的净荷数据可以包含MPLS报文或者IP报文。也就是说,分组的长度可变,且分组中包括第一控制信息,第一控制信息用于确定分组的传输路径;其中,第一控制信息为分组的控制信息中用于确定分组的传输路径的控制信息。
分组承载在物理层,形成包括分组的数据单元。包括分组的数据单元之间需要具有间隙,比如,以太网规定包括分组(MAC帧)的数据单元(以太网包)之间平均至少具有为12个空闲字符(IDLE)的间隔(该至少12个空闲字符的间隔即为间隙(Inter Packet Gap,简称IPG))。无分组传输时,一直对空闲字符进行编码传输,如图1A所示。有分组传输时,包括分组的数据单元覆盖部分空闲字符后,与分组之间的的空闲字符一同被编码传输,如图1B所示。以太网中包括分组的数据单元之间平均至少有12个空闲字符,长度不设上限。(特别地,在一些情况下允许调配包括不同数量的空闲字符的间隙以适配物理层的编码技术,例如接口速率10GE时,接收端允许包括分组的数据单元之间最少具有5个空闲字符,而接口速率100GE时,接收端允许包括分组的数据单元之间最少具有1个空闲字符。
下面对几种类型的分组进行说明。
(1)、以太网MAC帧:
图2为以太网MAC帧的一种示意图,参见图2,以8比特位元组(一个字节)为基本单位,以太网MAC帧包含目的MAC地址(比如6字节),源MAC地址(比如6字节),类型/长度信息(比如2字节),至少为46字节的一定长度的MAC帧的净荷数据及填充信息字节(载荷不足46字节的时候,可用PAD(0x00)字节填充至46字节),最后是帧校验字节(例如4字节的CRC32校验信息),用于校验以太网MAC帧的完整性。此外,以太网MAC帧还可以包含一些扩展的以太网VLAN标签。以太网MAC帧从目的MAC地址开始到帧校验字节结束,总长度可大于64(即46+6+6+2+4)字节。可选地,当以太网的MAC帧的类型/长度信息的值大于1535(0x05DC)时指示MAC帧的类型,小于或等于1535(0x05DC)时指示MAC帧的长度。即当MAC帧的长度小于1536(字节)时,MAC帧的长度字段可显式地指示MAC帧的长度L。其中,目的MAC地址,源MAC地址,长度的类型/长度信息为以太网MAC帧头,也称为第一分组中的分组头信息;以太网MAC帧头和帧校验字节为以太网MAC帧这一分组的控制信息;目的MAC地址和源MAC地址为以太网MAC帧这一分组的第一控制信息。
可以理解的是,图2仅仅示出了以太网MAC帧的一种格式,以太网MAC帧的格式并不限于图2中的格式。
以太网MAC帧承载在物理层,形成包括以太网MAC帧的数据单元。包括以太网MAC帧的数据单元包括指示该数据单元开始的数据单元开始字符(/S/)、前导码(比如6字节)、帧开始标记(一般为1个字节)、以太网MAC帧;前导码位于帧开始标记之前,以太网MAC帧位于帧开始标记之后。其中,指示该数据单元开始的数据单元开始字符(/S/)是将第一个前导码替换成该数据单元开始字符(/S/)后得到的。第一数据单元之后还存在指示该数据单元结束的数据单元结束字符(/T/),指示该数据单元结束的数据单元结束字符(/T/)是将与该数据单元最后一个字节相邻的空闲字符替换成该数据单元结束字符得到的。
可以理解的是,若MAC帧的长度字段未显式地指示MAC帧的长度L,则需要依赖帧开始标记和数据单元结束字符(/T/)等来界定以太网MAC帧和确定以太网MAC帧的长度L。
(2)、FC帧
图3为FC帧以及物理层中的包括FC帧的数据单元(也称为FC-2帧)的示意图。
参见图3(a),FC帧包括帧头、FC帧的净荷数据以及CRC检验信息;可选地,FC帧还包括扩展头;其中,FC帧的净荷数据的长度为0~2112字节,为4字节的整数倍。其中,FC帧中的帧头、扩展头(若存在)和CRC检验信息为FC帧这一分组包括的控制信息,FC帧中的帧头、扩展头(若存在)为FC帧这一分组包括的第一控制信息,也称为FC帧这一分组的分组头信息。
参见图3(b)和图3(c),FC帧承载在物理层,形成包括FC帧的数据单元。包括FC帧的数据单元包括帧起始字(start of frame,简称SOF)、FC帧。在包括FC帧的数据单元之后还包括:帧结束字(end of frame,简称EOF)。包括FC帧的数据单元的长度为4的整数倍。SOF可称为FC帧的帧开始标记。
其中,4字节为一个字(Word),包括FC帧的数据单元之间的间隙包括的空闲字可称为填充字(Fill Word,4个字节)。FC技术中一般要求包括FC帧的数据单元之间至少具有2个填充字或者至少具有6个服务原语字(6个服务原语字中至少有4个填充字)。
(3)、IP报文
采用IP协议传输分组时,分组可称为IP报文,特别地,VoIP(Voice over InternetProtocol)的IP分组的示意图可如图4所示。
VoIP的IP报文一般包括IP头、用户数据报协议(user datagram protocol,简称UDP)头和实时传输协议(real-time transport protocol,简称RTP)头,总共至少40字节,还包括IP报文的净荷数据(在VoIP的IP报文封装话音信号时,IP报文的净荷数据可为语音信号采样数据),如图4(a)所示。当采用以太网MAC帧方式进行封装传输时(也就是IP报文嵌套在以太网MAC帧的净荷区域),封装VoIP的IP报文的以太网MAC帧处理包括上述的IP报文,还包括以太网的6字节源MAC地址、6字节目的MAC地址和2字节以太网类型字段,总共至少14字节以太网MAC帧头,该至少14字节以太网MAC帧头位于IP头之前,还可包括以及校验字节(例如4字节的CRC32校验信息),如图4(b)所示。可选地,当在VoIP的IP报文封装话音信号时,IP报文的净荷数据可为语音信号采样数据,封装该VoIP的IP报文的以太网MAC帧也可不包括校验字节(例如4字节的CRC32校验信息),如图4(c)所示。
其中,在未采用以太网MAC帧封装时,IP报文中的IP头、UDP头、RTP头和校验字节(若存在)为IP报文这一组的控制信息,IP头、UDP头、RTP头为IP报文这一组的第一控制信息,也称为IP报文这一分组的分组头信息。在采用以太网MAC帧封装时:IP头、UDP头、RTP头、至少14字节以太网MAC帧头和校验字节(若存在)为封装了VoIP的IP报文的以太网MAC帧这一分组的控制信息,IP头、UDP头、RTP头、源MAC地址和目的MAC地址为封装了VoIP的IP报文的以太网MAC帧这一分组的第一控制信息;IP头、UDP头、RTP头至少14字节以太网MAC帧头为封装了VoIP的IP报文的以太网MAC帧这一分组的分组头信息。
参见图4(d),封装了VoIP的IP报文的以太网MAC帧承载在物理层,形成包括封装了VoIP的IP报文的以太网MAC帧的数据单元。包括封装了VoIP的IP报文的以太网MAC帧的数据单元包括指示该数据单元开始的数据单元开始字符(/S/)、前导码(比如6字节)、帧开始标记(一般为1个字节)、以太网MAC帧;前导码位于帧开始标记之前,以太网MAC帧位于帧开始标记之后。其中,指示该数据单元开始的数据单元开始字符(/S/)是将第一个前导码替换成该数据单元开始字符(/S/)后得到的,第一数据单元之后还存在指示该数据单元结束的数据单元结束字符(/T/),指示该数据单元结束的数据单元结束字符(/T/)是将与该数据单元最后一个字节相邻的空闲字符替换成该数据单元结束字符得到的。
3、前向纠错(forward error correction,简称FEC)码
FEC码包括但不限于如下的几种类型:缩短循环码(shortened cyclic code)、里德所罗门(reed-solomon,简称RS)码,格雷码、BCH循环码(Bose–Chaudhuri–Hocquenghemcodes)、多维奇偶校验码、低密度奇偶校验码(low density parity check,简称LDPC)和汉明码,级联码。FEC码的码长为用于生成FEC校验信息的数据和该FEC校验信息占用的总字节数。
常用的FEC码包括:RS(255,239)、RS(528,514)、RS(544,514)、RS(271,257)、RS(192,172)、RS(96,86)和RS(80,64),缩短循环码(2112,2080)等等。其中,应用于以太网的缩短循环码(2112,2080)也可称为BASE-R FEC。上述各FEC码的码长依次为:255字节、528字节、544字节、271字节、192字节、96字节、80字节、264字节(对应2112比特)。
示例性地,RS(255,239)这一种FEC码的码长为255个字节,采用RS(255,239)进行FEC编码时,需对239字节的数据生成16字节的FEC校验信息,239字节的数据和16字节的FEC校验信息总共255个字节;其中,239字节的数据即为用于生成16字节的FEC校验信息的数据。生成的16字节的FEC校验信息用于对16字节的FEC校验信息和239字节的数据进行纠错。
示例性地,缩短循环码(2112,2080)这一种FEC码的码长为2112个比特或264个字节,采用缩短循环码(2112,2080)进行FEC编码时,需对260字节的数据生成4字节的FEC校验信息,260字节的数据和4字节的FEC校验信息总共264个字节;其中,260字节的数据即为用于生成4字节的FEC校验信息的数据。生成的4字节的FEC校验信息用于对该4字节的FEC校验信息和260字节的数据进行纠错。
其中,采用缩短循环码(2112,2080)生成的FEC校验信息的开销小于采用RS(255,239)生成的FEC校验信息的开销,FEC校验信息的开销越大,对应的FEC码的纠错能力越强。
4、通道转发(channel forwarding):在国际电联ITU-T的标准中:从某一确定入接口、逻辑入接口、入端口等进入的数据单元按照预先配置转发至某一确定的出接口、逻辑出接口、出端口等,其典型的特征是对数据单元中包括的分组的转发不依赖于报文中包含的地址或标签控制信息。在通道转发中,传输分组的中间节点不需要对分组进行诸如CRC校验和/或纠错等可靠性检验处理。
5、目的地址转发(Destination forwarding):在国际电联ITU-T的标准中:如对从不同的端口接收到的每一个数据单元,都依赖于数据单元中携带的地址、标签确定其出端口,其典型特点是依赖报文中携带的地址或标签来确定其目的地,进而对其进行转发。在目的地址转发中,传输分组的中间节点需对分组进行诸如CRC校验和/或纠错等可靠性检验处理。
6、透明传输:包括分组的数据单元被封装在一容器中,传输分组的多个中间节点(在存在多个中间节点的情况下)组成一个刚性管道,容器在该管道内传输。在透明传输中,传输分组的中间节点不对分组进行诸如CRC校验和/或纠错等可靠性检验处理。
在讲述本申请的报文传输方法之前,为了更好的理解本申请,先对本申请所要解决的技术问题进行说明。
在分组的传输链路为多跳链路且每跳链路对应的中间节点对分组的转发方式为目的地址转发的情况下,则需要对分组进行可靠性检验处理,比如CRC校验,以保证分组的可靠传输和转发。例如以太网接口,MAC帧的生成节点的MAC层会进行MAC帧的CRC32校验信息的生成,并将该CRC32校验信息添加到以太网MAC帧的末尾进行传输。接收节点接收到包括MAC帧的数据单元后,首先要对MAC帧进行CRC32的校验,校验不通过一般不能认为接收到一个有效的MAC帧,此时接收到的MAC帧一般会被丢弃,若校验通过,则认为接收到一个有效的MAC帧。
典型的以太网链路的误码率一般要求优于一定的指标,例如低于1e-12。CRC32校验信息能在目前以太网最大帧长度内检测任意3比特以内的误码,因此至少4比特的误码才有可能发生漏检,即一个错误的报文至少要误码4个比特,并且是恰好使其反转为其他的包含CRC32校验信息的且能够通过CRC32校验的以太网MAC帧,才有可能发生误码漏检。如链路误码率为1e-12前提下,假设每个4比特误码的MAC都漏检,误码漏检发生的概率最高为(1e-12)^4=1e-48。漏检意味着错误的以太网MAC帧被当做正确的以太网MAC帧接收事件,称为误包接收事件。人们一般以误包接收平均时间(mean time to false packet accept,简称MTTFPA)作为以太网以及其链路的可靠性指标之一,该指标的对应要求一般为误包接收事件发生的期望平均时间相当于宇宙的年龄(约138亿年,即约1.38e10年)。例如100GE速率的接口,发送连续的64字节长度的以太网MAC帧时,添加前导码和12个IPG帧间隙空闲字节后,为字节长度为64+8+12=84字节,粗略计算,平均传输1e48个64字节以太网MAC帧的时间可以看一次误包接收事件的期望时间,约为:(1e48)×(84×8)/(1e11×60×60×24×365)=2.1309e32(年)。
分组每经每一次经介质传输,即每一次发送接收都进行CRC校验,有利于第一时间检测出误包并加以丢弃,极大地遏制了基于以太网接口的传统包交换以太网网络中误包接收事件的发生。但是,可靠性包括多个纬度,误码等原因导致的丢包本身就是一种可靠性事件。计算表明,1e-12误码率的情况下,24小时内一个10GE速率的接口上的误码丢包可能超过863个。误码丢包与速率呈线性关系,在800GE速率等的高速接口上误码丢包事件在人们的日常观察中会变得不可忽视。误码丢包与经过的转发跳数也呈线性关系,例如10GE速率的以太网业务经过一个中间节点进行转发的时候,经过两跳链路,24小时内丢包数量可能会翻倍,那么对于分组的目的接收节点而言,中间转发节点的各跳均有可能存在发生误码不能通过CRC校验和被丢弃的分组,这样,最终误码丢包的数量会跳数的增加而大大增加。
另外,在分组的传输链路为多跳链路且每跳链路对应的中间节点对分组的传输方式为通道转发或透明传输的情况下,分组经过多跳传输后,每一段物理链路的低概率误码会发生累积,最终导致单位时间内比较大数量的误码丢包。同时,误码累积还可能使分组中的误码数量超过CRC的校验能力而降低系统的误包接收平均时间MTTFPA,即增加了误包接收事件发生的概率。
为了解决上述技术问题,本申请中提出了如下的方法。
本申请实施例中根据分组生成了N组FEC校验信息,所述分组与N组FEC校验信息一起按照规定的格式排列,分组与N组FEC校验信息的组合承载于传输该分组的数据单元的净荷区域,但所述N组FEC校验信息不属于分组的一部分。基于上述对数据单元的说明,分组和N组FEC校验信息组成的数据也可称为数据单元。在一些场景下,第一分组和N组FEC校验信息组成的数据也可称为一个第二分组。
下面对本申请的系统架构进行说明。
图5为本申请实施例提供的一种系统架构示意图,参见图5,该系统架构包括第一节点和第二节点,该系统架构中不存在中间节点。其中,第一节点生成本申请实施例中的第一数据单元,第一数据单元包括第一分组和根据第一分组生成的N组FEC校验信息(称为第一分组对应的FEC校验信息),可选地,第一数据单元还可包括根据第一分组的分组头生成的CRC校验信息。第二节点接收第一节点发送的第一数据单元,为第一分组的目的接收节点。其中,第一分组可以是第一节点生成的,也可以是第一节点从其它设备(比如终端设备)获取的。
第一节点和第二节点之间传输数据单元可通过如下但不限于如下的接口传输:传统以太网接口、OTN接口、灵活以太网接口(flex ethernet,FlexE)、分组传送网(packettransport network,简称PTN)接口、切片分组网络(slicing packet network,简称SPN)接口、城域传输网络(Metro Transport network,简称MTN)接口、FC接口。
在该系统架构中,第一节点和第二节点均可以为如下中的但不限于如下中的任意一种设备:服务器、终端设备、交换机(例如以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、切片分组网络(slicingpacket network,简称SPN)设备、城域传输网络(Metro Transport network,简称MTN)设备、FC设备。
图6为图5所示系统架构包括的一种具体的系统架构的示意图。参见图6,第一节点生成本申请实施例中的第一数据单元,并通过以太网接口将该第一数据单元发送至第二节点。第一节点可为如下中的一种:服务器、终端设备、以太网交换机、具有SPN/MTN管道传输能力的新型以太网交换机、IP路由器。第二节点可为如下中的一种:服务器、终端设备、以太网交换机、具有SPN/MTN管道传输能力的新型以太网交换机、IP路由器。
图7为本申请实施例提供的另一种系统架构示意图,参见图7,该系统架构包括第一节点、至少一个第二节点和第三节点。其中,第一节点生成本申请实施例中的第一数据单元,第一数据单元包括第一分组和根据第一分组生成的N组FEC校验信息(称为第一分组对应的FEC校验信息),可选地,第一数据单元还可包括根据第一分组的分组头生成的CRC校验信息。第三节点为第一分组的目的接收节点,至少一个第二节点为传输第一分组的节点。其中,第一分组可以是第一节点生成的,也可以是第一节点从其它设备(比如终端设备)获取的。
在该系统架构中,第一节点和第三节点均可以为如下中的但不限于如下中的任意一种设备:服务器、终端设备、交换机(例如以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、SPN设备、MTN设备、FC设备。至少一个第二节点中可为如下但不限于如下中的一种或多种设备:交换机(例如传统以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、SPN设备、MTN设备、FC设备。
第一节点和第二节点之间数据单元的传输、第二节点之间数据单元的传输、第二节点与第三节点之间数据单元的传输可通过如下但不限于如下的接口进行传输:以太网接口、IP接口、PTN接口、OTN接口、FlexE接口、SPN接口、MTN接口。
图8A为图7所示系统架构包括的一种具体的系统架构的示意图,参见图8A,该系统架构中,第一节点和第二节点之间通过传统以太网接口传输数据单元,第二节点之间通过传统以太网接口传输数据单元,第二节点与第三节点之间通过传统以太网接口传输数据单元。第二节点可为以太网交换机,IP路由器等;示例性地,第一节点可为服务器或终端设备或交换机或IP路由器,第三节点可为服务器或终端设备或交换机或IP路由器。第一节点生成第一数据单元,并通过以太网接口将该第一数据单元发送至第一个第二节点,第一个第二节点对该第一分组进行目的地址转发。每个第二节点均对接收到的第一分组或处理后的第一分组进行目的地址转发,在每个第二节点均没有丢包的情况下,最终通过以太网接口将处理后的第一分组发送至第三节点。
图8B为图7所示系统架构包括的另一种具体的系统架构的示意图,参见图8B,该系统架构中,第一节点和第二节点之间通过传统以太网接口传输数据单元,第二节点之间通过OTN接口传输数据单元,第二节点与第三节点之间通过传统以太网接口传输数据单元。第二节点为OTN设备;示例性地,第一节点可为服务器或终端设备或交换机或IP路由器,第三节点可为服务器或终端设备或交换机或IP路由器。其中,OTN是一种刚性管道承载技术,可以透明地承载传输从第一节点发往第三节点的信息。OTN设备(第二节点)可将第一数据单元封装在ODUk容器里面,透明的传输第一数据单元(即图8B中的管道透传)。可选地,作为中间节点的OTN设备中可以存在第一OTN设备,第一OTN设备对第一分组或处理后的第一分组进行目的地址转发或通道转发。比如,在第一OTN设备对接收到的第一分组或处理后的第一分组进行目的地址转发时,第一OTN设备可为与第一节点连接的OTN设备和/或与第三节点连接的OTN设备。
图8C为图7所示系统架构包括的又一种具体的系统架构的示意图,参见图8C,该系统架构中,第一节点和第二节点之间通过传统以太网接口传输数据单元,部分第二节点之间通过OTN接口传输数据单元,部分第二节点通过FlexE接口传输数据单元,第二节点与第三节点之间通过传统以太网接口传输数据单元。部分第二节点为OTN设备,部分第二节点为FlexE设备;示例性地,第一节点可为服务器或终端设备或交换机或IP路由器,第三节点可为服务器或终端设备或交换机或IP路由器。其中,基于FlexE接口的新型交叉以太网设备(FlexE设备)提供了类似OTN的功能,此时OTN和新型交叉以太网网络分别提供了一段刚性管道,在两种网络的中间桥接节点上,两种管道得以拼接构成端到端管道。OTN设备(第二节点)和FlexE设备(第二节点)可透明的传输第一数据单元。可选地,作为中间节点的OTN设备中可以存在第一OTN设备,第一OTN设备对接收到的第一分组或处理后的第一分组目的地址转发或通道转发。比如,在第一OTN设备对接收到的第一分组或处理后的第一分组进行目的地址转发时,第一OTN设备可为与第一节点连接的OTN设备。作为中间节点的FlexE设备中可以存在第一FlexE设备,第一FlexE设备对接收到的的第一分组或处理后的第一分组进行目的地址转发或通道转发。比如,在第一FlexE设备对接收到的第一分组或处理后的第一分组进行目的地址转发时,第一FlexE设备可为与第三节点连接的FlexE设备。
图8D为图7所示系统架构包括的又一种具体的系统架构的示意图,参见图8D,该系统架构中,第一节点和第二节点之间通过传统以太网接口传输数据单元,第二节点之间通过FlexE接口传输数据单元,第二节点与第三节点之间通过传统以太网接口传输数据单元。第二节点为FlexE设备;示例性地,第一节点可为服务器或终端设备或交换机或IP路由器,第三节点可为服务器或终端设备或交换机或IP路由器。其中,基于FlexE接口的新型交叉以太网设备提供了一种刚性管道承载技术,可以透明地承载从第一节点发往第三节点的信息,FlexE设备(第二节点)可透明的传输第一数据单元。可选地,作为中间节点的FlexE设备中可以存在第一FlexE设备,第一FlexE设备对接收到的的第一分组或处理后的第一分组进行目的地址转发或通道转发。比如,在第一FlexE设备对接收到的第一分组或处理后的第一分组进行目的地址转发时,第一FlexE设备可为与第一节点连接的FlexE设备和/或与第三节点连接的FlexE设备。
下面结合具体的实施例对本申请中的分组传输方法进行说明。
图9为本申请实施例提供的分组传输方法的交互图,参见图9,本实施例的方法包括:
步骤S101、第一节点生成第一数据单元,第一数据单元包括第一分组和N组前向纠错码FEC校验信息,N组FEC校验信息是分别根据第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数。
其中,第一分组可为以太网MAC帧、FC帧、IP报文、MPLS报文、封装了IP报文的以太网MAC帧、封装了MPLS报文的以太网MAC帧等等。
第一节点对第一分组的部分或全部进行划分得到N份数据,第一节点根据该N份数据,得到N组FEC校验信息,可以理解的是,N组FEC校验信息不属于第一分组一部分。可选地,第一节点根据该N份数据,得到N组FEC校验信息,包括:第一节点对该N份数据进行FEC编码,得到N组FEC校验信息。
第一节点根据该第一分组和N组FEC校验信息,获取第一数据单元。即将该第一分组和N组FEC校验信息承载在物理层,得到包括第一分组和第一分组对应的N组FEC校验信息的第一数据单元。
在对第一分组要求精确传输的场景中,第一节点可对第一分组的全部进行划分得到N份数据。在对第一分组的传输精确不是很高,允许有误码的场景中,比如:第一分组中包括的净荷数据或内容数据为语音采样数据时,第一节点可对第一分组的部分进行划分得到N份数据;此时,得到的N份数据中可至少包括分组头信息。
示例性地,第一分组为以太网MAC帧时,第一分组可如图10(a)所示,第一分组和N组FEC校验信息组成的数据单元可如图10(b)所示,第一数据单元可如图10(c)所示。
示例性地,在语音传输的场景中,使用的协议为IP协议时,第一分组为IP报文,第一分组如图11(a)所示,第一分组和N组FEC校验信息组成的数据单元可如图11(b)所示,第一数据单元可如图11(c)所示。
示例性地,第一分组为FC帧,第一分组如图12(a)所示,第一分组和N组FEC校验信息组成的数据单元可如图12(b)所示,第一数据单元可如图12(c)所示。
下面对N组FEC校验信息的生成进行说明。
第一节点根据该N份数据,得到N组FEC校验信息,包括:第一节点根据N个FEC码和该N份数据,得到N组FEC校验信息。
可选地,上述用于生成N组FEC校验信息的N个FEC码相同。其中,N个FEC码相同是指N个FEC码的类型和码长相同。
可选地,用于生成N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码,第一FEC码的类型与第二FEC码的类型不相同;和/或,第一FEC码的码长与第二FEC码的码长不相同。示例性地,N个FEC码的类型互不相同和/或码长互不相同。
接着对N组FEC校验信息进行说明。
在一种方案中,N组FEC校验信息中存在目标FEC校验信息,目标FEC校验信息对应的目标数据的字节数与目标FEC校验信息的字节数之和小于第一数目,第一数目为用于生成目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,目标FEC校验信息是由目标数据和填充数据确定的,目标数据的字节数、填充数据的字节数以及FEC校验信息的字节数之和等于目标FEC码的码长对应的字节数。
其中,FEC校验信息对应的数据是指用于生成该FEC校验信息的数据中属于第一数据单元中的数据。FEC校验信息由X确定的含义为:对X进行FEC编码后得到该FEC校验信息。
示例性地,第一分组的总长度为230字节,采用缩短循环码(2112,2080)生成FEC校验信息。230字节小于260字节,第一分组的末尾填充30字节的0x00 Padding至260字节。对填充后的260字节进行FEC编码,得到FEC校验信息,该FEC校验信息即为目标FEC校验信息。该目标FEC校验信息对应的目标数据为第一分组的230字节,该目标FEC校验信息是由目标数据(第一分组的230字节)和填充数据(30字节的0x00 Padding)确定的,目标数据的字节数(230)、填充数据的字节数(30)以及FEC校验信息的字节数(4)之和等于目标FEC码(缩短循环码(2112,2080))的码长对应的字节数(264)。
可以理解的是,在N组FEC校验信息各自对应的数据中的任一第一数据的字节数与第一数据对应的FEC校验信息的字节数之和等于当前FEC码的码长对应的字节数的情况下,N组FEC校验信息中不存在上述的目标FEC校验信息。其中,第一数据对应的FEC校验信息是根据该当前FEC码对第一数据进行FEC编码后得到的。
也就是可在目标FEC校验信息对应的目标数据的字节数与目标FEC校验信息的字节数之和小于第一数目时,第一数目为用于生成目标FEC校验信息的目标FEC码的码长对应的字节数,可通过填充数据至目标数据之后,使得目标数据的字节数、填充数据的字节数以及目标FEC校验信息的字节数之和等于目标FEC码的码长对应的字节数,从而实现对目标数据和填充数据进行FEC编码生成目标FEC校验信息的目的。
下面对N组FEC校验信息的位置进行说明。
N组FEC校验信息的位置包括但不限于如下的几种实施方式:
第一种实施方式:N组FEC校验信息依次位于第一分组的最后一字节之后,且N组FEC校验信息中的第一组FEC校验信息与第一分组的最后一字节相邻。一种方式中,第一分组的最后一字节为第一分组的CRC校验信息的最后一字节。其中,第一分组的CRC校验信息是指对整个第一分组进行CRC编码得到的CRC校验信息,第一分组的CRC可称为第二CRC校验信息。
比如,在第一分组为以太网MAC帧且以太网MAC帧中包括以太网MAC帧的CRC32校验信息,则第一分组的最后一字节为以太网MAC帧的CRC32校验信息的最后一字节。
另外,在对分组的传输精确不是很高的场景中,比如:第一分组中包括语音采样数据时,第一分组的最后可以不包括第一分组的CRC校验信息,也可以包括第一分组的CRC校验信息,本实施例中并不限制。
该种实施方式可适用于图6或图7所示的系统架构所对应的任一种场景。
第二种实施方式:第一FEC校验信息为N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;第一FEC校验信息位于第一分组中与第一FEC校验信息对应的数据之后,且第一FEC校验信息对应的数据与第一FEC校验信息相邻。比如,n=N=1时,一种可能的方式中,第一FEC校验信息的位置如图11(b)。
其中,本实施例中N组FEC校验信息的排序是按照其对应的数据在第一分组的前后排序的,即若FEC校验信息1对应的数据在FEC校验信息2对应的数据之前,则FEC校验信息1在FEC校验信息2之前。
该种实施方式中的第一种情况:n=N,N组FEC校验信息分别位于各自对应的数据之后,且每组FEC校验信息对应的数据与该组FEC校验信息相邻。
该种实施方式中的第二种情况:n<N且N>1,N组FEC校验信息中还包括第二FEC校验信息,第二FEC校验信息位于第一分组的最后一字节之后,第二FEC校验信息为N组FEC校验信息中除了n组FEC校验信息(第一FEC校验信息)以外的任一组FEC校验信息。
该种实施方式可适用于图6或图7所示的系统架构所对应的任一种场景。
第三种实施方式:N组FEC校验信息中前n组FEC校验信息中的每组FEC校验信息为第一FEC校验信息,第一FEC校验信息对应的数据中包括第一CRC校验信息,n≤N,n≥1且n为整数;第一FEC校验信息位于与第一FEC校验信息对应的数据之后,且第一FEC校验信息对应的数据与第一FEC校验信息相邻。此时,第一节点还包括:生成第一CRC校验信息。
该种实施方式中的第一种情况:n=N,且N组FEC校验信息各自对应的数据中均包括第一分组的分组头信息的全部(n=N=1)或部分(n=N>1)。可以理解的是,n=N=1且在第一分组的长度与第一FEC校验信息的长度之和小于或等于用于生成第一FEC校验信息的FEC码的码长时,第一CRC校验信息即为第一分组的CRC,此时第三种实施方式同第一种实施方式。
示例性地,n=N=1时,第一分组、第一CRC校验信息和N组FEC校验信息组成的数据单元的示意图可如的图13(a)所示。
该种实施方式中的第二种情况(该种情况下的第一CRC校验信息不为第一分组的第二CRC验信息):n<N且N>1,N组FEC校验信息中还包括第二FEC校验信息,第二FEC校验信息位于第一分组的最后一字节之后,或者,第二FEC校验信息位于与第二FEC校验信息对应的数据之后,且第二FEC校验信息对应的数据与第二FEC校验信息相邻,第二FEC校验信息为N组FEC校验信息中除了n组FEC校验信息(第一FEC校验信息)以外的任一组FEC校验信息,第二FEC校验信息对应的数据中不包括CRC校验信息或者若各第二FEC校验信息中存在对应的数据中包括CRC校验信息的一FEC校验信息,该一FEC校验信息对应的数据中包括CRC校验信息为第一分组的第二CRC校验信息。
示例性地,n<N且n=1时,第一分组、第一CRC校验信息和N组FEC校验信息组成的数据单元的示意图可如的图13(b)所示。
综上,n=1的情况下,第一CRC校验信息对应的数据中至少需要包括第一分组包括的全部分组头信息,其中,第一CRC校验信息对应的数据是指第一FEC校验信息对应的数据中用于生成第一CRC校验信息的数据;在n>1的情况下,n个第一FEC校验信息对应的数据中包括的n个第一CRC校验信息对应的n份数据中至少需要包括第一分组包括的全部分组头信息。或者说,在n=1的情况下,第一FEC校验信息对应的数据中至少需要包括第一分组包括的全部分组头信息;在n>1的情况下,n个第一FEC校验信息对应的数据中包括的n个第一FEC校验信息对应的n份数据中至少需要包括第一分组包括的全部分组头信息。
可选地,第一CRC校验信息与第一FEC校验信息相邻。也就是说,第一FEC校验信息对应的数据中除了第一CRC校验信息以外的数据均为第一CRC校验信息对应的数据。比如,采用RS(255,239)生成FEC校验信息且第一分组包括的字节数大于或等于235以及第一分组包括的分组头信息为第一分组的前20个字节的信息的情况下,根据第一分组的前235个字节生成4字节第一CRC校验信息,对第一分组的前235个字节和4字节的第一CRC校验信息进行FEC编码,生成16字节的第一FEC校验信息,第一CRC校验信息放置在第一分组的前235个字节之后且与第一分组的第235个字节相邻,16字节的第一FEC校验信息放置在第一CRC校验信息之后且与第一CRC校验信息相邻,此时第一CRC校验信息与第一FEC校验信息相邻。
可选地,第一CRC校验信息对应的数据的字节的数目是由第一分组包括的分组头信息所占用的字节数确定的。此时,第一CRC校验信息可与第一FEC校验信息相邻,也可不与第一FEC校验信息相邻。比如,采用RS(255,239)生成FEC校验信息且第一分组包括的字节数大于235以及第一分组包括的分组头信息为第一分组的前20个字节的信息的情况下,可根据第一分组的前20个字节生成第一CRC校验信息,该第一CRC校验信息位于第一分组的前20个字节之后且与第一分组的第20个字节相邻,对第一分组的前235个字节和4字节的第一CRC校验信息进行FEC编码,生成16字节的第一FEC校验信息,16字节的第一FEC校验信息放置在第一分组的第235个字节之后且与第235个字节相邻,此时第一CRC校验信息与第一FEC校验信息不相邻。又比如,采用RS(40,24)生成FEC校验信息且第一分组包括的字节数大于20以及第一分组包括的分组头信息为第一分组的前20个字节的信息的情况下,可根据第一分组的前20字节生成4字节的第一CRC校验信息,该第一CRC校验信息位于第一分组的前20字节之后且与第一分组的第20个字节相邻,对第一分组的前20个字节和4字节的第一CRC校验信息进行FEC编码,生成16字节的第一FEC校验信息,16字节的第一FEC校验信息放置在第一CRC校验信息之后且与第一CRC校验信息相邻,此时第一CRC校验信息与第一FEC校验信息相邻。
在一种方案中,用于生成第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;第一类型与第二类型不相同,和/或,第一码长与第二码长不相同。该实施方式中的该方案,一是可以提高生成N组FEC校验信息的灵活性;二是在第一FEC校验信息对应的数据中包括的第一CRC校验信息是由第一分组中的分组头信息确定的情况下,为了适应分组头信息的长度,可以采用一些FEC校验信息的开销越大的FEC码(比如码长较短的FEC码)对分组头信息和第一CRC校验信息进行FEC编码;而对第一分组中的其余数据可采用一些FEC校验信息的开销越小的FEC码(比如码长较长的FEC码)。这样可以在实现第一CRC校验信息由第一分组中的分组头信息确定的这一方案的基础上,还可以避免均采用FEC校验信息的开销越大的FEC码造成传输第一分组的节点的高功耗。
第三种实施方式可以降低网络传输的时延,在用于生成N组FEC校验信息的FEC码的纠错能力较强时,还可降低传输第一分组的节点的功耗,具体产生该有益效果的原因后续结合示例三给出。进一步地,若第一CRC校验信息是由第一分组包括的分组头信息所确定的,由于第一CRC校验信息所需校验的数据所占用字节数目较少,可进一步降低网络传输的时延。
可以理解的是,在N组FEC校验信息中存在对应的数据包括第一CRC校验信息的FEC校验信息时,第一数据单元中还包括第一CRC校验信息。
此外,第一节点还可将第一数据单元中目前的帧开始标记(本实施例中目前的帧开始标记可称为第二标记,第二标记指示分组的开始,且第二标记指示未形成分组对应的N组FEC校验信息)更新成第一标记,第一标记指示第一分组的开始,且第一标记指示第一数据单元中包括第一分组对应的N组FEC校验信息,第一分组对应的N组FEC校验信息是指根据第一分组生成的N组FEC校验信息。
比如,对于目前的以太网MAC帧承载在物理层,得到包括目前的以太网MAC帧单元后,该数据单元不包括FEC校验信息,帧开始标记一般记为SFD,取值为0xD5(第二标记)。第一节点在获取了以太网MAC帧对应的N组FEC校验信息后,第一节点可将第一数据单元包括的帧开始标记0xD5更新成0x2A(记为New SFD,第一标记),以指示第一数据单元中包括该以太网MAC帧对应的N组FEC校验信息。
其中,为了防止由于第一标记和第二标记相差不大造成的第一标记和/第二标记的误码后第一标记和第二标记相同,而无法区分第一数据单元中是否包括第一分组对应的FEC校验信息现象的发生,第一标记和第二标记可具有如下的性质:第一标记和第二标记的长度不相同,或者,第一标记和第二标记的相似度小于预设阈值。在一种方式中,可通过计算标记之间的汉明距离确定标记的相似度。
示例性地,SFD=0xD5与New SFD=0x2A在以太网接口上的二进制比特发送顺序分别为0b10101011和0b01010100,两者之间的汉明距离为8。因此可以引入似然判决机制,在允许SFD或者New SFD字段发生至多3比特误码的情况下,可以可靠地区分出第一数据单元中是否存在以太网MAC帧对应的FEC校验信息。例如在误码率为1e-6时,如果仅上述两个SFD值在这个字段上合法,则在允许3比特误码的情况下,将SFD判断为New SFD的概率为(1e-6)^5=1e-30。例如:SFD=0xD5=0b10101011发生2比特误码变更为0b10101101,0b10101101与SFD=0xD5=0b10101011进行异或运算,结果得到0b00000110,有两比特不匹配;而与NewSFD=0x2A=0b01010100进行异或运算,结果得到0b11111001,有6比特不匹配,可判定为SFD。
在第一分组为以太网MAC帧时,第一数据单元中的数据单元开始字符是替换7字节的前导码中的第一个前导码得到的,这样在/S/字符到/T/字符之间依次为6字节前导码、1字节New SFD、L字节MAC帧,M(N×m)字节的FEC校验信息,含/S/字符总共P字节,P=8+L+M,m为一组FEC校验信息占用的字节数。
进一步地,还可以在得到第一分组对应的N组FEC校验信息后,根据第一分组和N组FEC校验信息生成一CRC校验信息,该一CRC校验信息放置在第一分组和N组FEC校验信息组成的数据单元之后。在分组中包括第一CRC校验信息的情况下,还可根据第一分组、N组FEC校验信息和第一CRC校验信息,生成一CRC校验信息,该一CRC校验信息放置在第一分组、第一CRC校验信息和N组FEC校验信息组成的数据单元之后。该一CRC校验信息也属于第一数据单元的一部分,但不属于第一分组的一部分。
步骤S102、第一节点发送第一数据单元至第二节点。
第一节点对第一数据单元进行编码等处理并将编码处理后的数据信号发送到媒质,以通过媒质传输至第二节点,实现了第一节点发送第一数据单元至第二节点。
其中,第二节点可为中间节点,也可为第一数据单元的目的接收节点。
步骤S103、第二节点处理第一分组。
第一种方案中:第二节点为中间节点且第二节点对第一分组的传输方式为通道转发或透明传输,第二节点处理第一分组包括:第二节点发送包括第一分组和第一分组对应的FEC校验信息的数据单元至下一个节点,或者,第二节点发送包括第一分组、第一分组对应的N组FEC校验信息和第一CRC校验信息的数据单元至下一个节点。
第二种方案中:
(1)在第二节点为中间节点、第二节点对第一分组的传输方式为目的地址转发,且N组FEC校验信息的位置为上述的第一种实施方式或第二种实施方式的情况下,则第二节点处理第一分组包括以下几种情况:
a1、无论第一分组是否包括第一分组的第二CRC校验信息,第二节点处理第一分组包括:根据N组FEC校验信息对N组FEC校验信息各自对应的N份数据(即步骤S101中的对第一分组的全部或部分划分后得到的N份数据)进行纠错,得到纠错后的第一分组。可以理解的是,实际过程中,FEC校验信息可用于对FEC校验信息自身以及其对应的数据构成的整体进行纠错,即FEC校验信息不仅可以对其对应的数据进行纠错,还可对其自身进行纠错。
第二节点得到纠错后的第一分组后,第二节点还可以发送包括处理后的第一分组的数据单元至下一个节点;包括处理后的第一分组的数据单元可包括纠错后的第一分组和纠错后的第一分组对应的FEC校验信,此处的纠错后的第一分组对应的FEC校验信息可以是第二节点接收到的第一数据单元中包括的N组FEC校验信息,还可以是第二节点根据纠错后的第一分组重新生成的N组FEC校验信息(此时,第二节点处理第一分组,还包括根据纠错后的第一分组重新生成N组FEC校验信息),本实施例中并不限定。其中,纠错后的第一分组和纠错后的第一分组对应的FEC校验信息承载在物理层进行传输,得到包括处理后的第一分组的数据单元。
该种情况下,第二节点处理第一分组的效率较高。
a2、在第一分组包括第一分组的第二CRC校验信息的情况下,第二节点处理第一分组,包括:根据N组FEC校验信息对N组FEC校验信息各自对应第一分组中的N份数据进行纠错,得到纠错后的第一分组,对纠错后的第一分组采用第二CRC校验信息进行校验。可以理解的是,若N组FEC校验信息存在一组FEC校验信息所对应的数据中包括第二CRC校验信息,则纠错后的第一分组中包括纠错后的第二CRC校验信息,此时,采用纠错后的第二CRC校验信息,校验纠错后的第一分组。
若校验通过,第二节点的后续处理流程同a1中的第二节点得到纠错后的第一分组后的后续处理流程。若校验不通过,可对该第一分组丢弃处理。
该种情况下,在可以保证较低的误包接收时间。
a3、在第一分组包括第一分组的第二CRC校验信息的情况下,第二节点处理第一分组,包括:根据第二CRC校验信息,对第一分组进行CRC的校验。若第一分组通过第二CRC校验信息的校验,则第二节点发送包括接收到的第一分组和第一分组对应的FEC校验信息的数据单元至下一个节点。若第一分组未通过第二CRC校验信息的校验,则根据N组FEC校验信息对N组FEC校验信息各自对应的N份数据进行纠错,得到纠错后的第一分组。可以理解的是,实际过程中,CRC校验信息可用于对CRC自身以及其对应的数据构成的整体进行校验,即CRC校验信息不仅可以对其对应的数据进行校验,还可对其自身进行校验。
第二节点得到纠错后的第一分组后的后续处理流程同a1中的第二节点得到纠错后的第一分组后的后续处理流程。
可选地,第二节点得到纠错后的第一分组后,第二节点处理第一分组还包括:对纠错后的第一分组采用第二CRC校验信息进行CRC校验。若纠错后的第一分组通过第二CRC校验信息的校验,第二节点的后续处理流程同a1中的第二节点得到纠错后的第一分组后的后续处理流程。若校验不通过,可对该第一分组丢弃处理。可以理解的是,若N组FEC校验信息存在一组FEC校验信息所对应的数据中包括第二CRC校验信息,则纠错后的第一分组中包括纠错后的第二CRC校验信息,此时,采用纠错后的第二CRC校验信息,校验纠错后的第一分组。
a3中在第一分组未通过第二CRC校验信息的校验的情况下才纠错,可以避免一些不必要的纠错,节省第二节点的功耗。此外,在第二节点处理第一分组还包括采用第二CRC校验信息对纠错后的第一分组进行CRC的校验时,还可以保证较低的误包接收时间。
(2)在第二节点为中间节点、第二节点对第一分组的传输方式为目的地址转发,且N组FEC校验信息的位置为上述的第三种实施方式的情况下,则第二节点处理第一分组包括以下几种情况:
可以理解的是,在存在n组第一FEC校验信息的情况下,针对每组第一FEC校验信息,均会进行如下的b1~b3任一种情况中的操作。
b1、第二节点处理第一分组,包括:根据第一FEC校验信息对第一FEC校验信息对应的数据进行纠错,得到第一数据(由于第一FEC校验信息对应的数据中包括第一CRC校验信息,因此,第一数据包括纠错后的第一CRC校验信息)。此时,包括第一数据中除了纠错后的第一CRC校验信息以外的数据的第一分组可称为纠错后的第一分组。
可以理解的是,在第一FEC校验信息具有n组的情况下,会得到n组第一数据。
第二节点得到纠错后的第一分组后,还可以发送包括处理后的第一分组的数据单元至下一个节点;包括处理后的第一分组的数据单元包括纠错后的第一分组、纠错后的第一分组对应的FEC校验信息、纠错后的第一分组对应的CRC校验信息。此处的纠错后的第一分组对应的FEC校验信息可以是第二节点接收到的第一数据单元中包括的N组FEC校验信息;或者,纠错后的第一分组对应的FEC校验信息可以包括根据n组第一数据重新生成的n组FEC校验信息以及第二节点接收到的第一数据单元中包括的N-n组FEC校验信息(此时,第二节点处理第一分组,还包括根据n组第一数据重新生成n组FEC校验信息),本实施例中并不限定。纠错后的第一分组对应的CRC校验信息,可以是第二节点接收到的第一数据单元中包括的CRC校验信息;或者,纠错后的第一分组对应的CRC校验信息可以包括根据第一数据中与第一CRC校验信息对应的数据重新生成的CRC校验信息和/或根据纠错后的第一分组生成的CRC校验信息(此时,第二节点处理第一分组,还包括根据第一数据中与第一CRC校验信息对应的数据重新生成CRC校验信息和/或根据纠错后的第一分组生成第一分组的CRC校验信息),本实施例中并不限定。其中,纠错后的第一分组、纠错后的第一分组对应的FEC校验信息、纠错后的第一分组对应的CRC校验信息承载在物理层进行传输,得到包括处理后的第一分组的数据单元。
b2、第二节点处理第一分组,包括:根据第一FEC校验信息对第一FEC校验信息对应的数据进行纠错,得到第一数据(由于第一FEC校验信息对应的数据中包括第一CRC校验信息,因此,第一数据包括纠错后的第一CRC校验信息);对第一数据中与第一CRC校验信息对应的数据采用纠错后的第一CRC校验信息进行校验。
若第一数据中与第一CRC校验信息对应的数据通过纠错后的第一CRC校验信息的校验,第二节点的后续处理流程同b1中的第二节点得到纠错后的第一分组后的后续处理流程。若第一数据中与第一CRC校验信息对应的数据未通过纠错后的第一CRC校验信息的校验,第二节点可对该第一分组丢弃处理。
b3、第二节点处理第一分组,包括:根据第一FEC校验信息对应的数据中的第一CRC校验信息,对第一FEC校验信息对应的数据中与第一CRC校验信息对应的数据进行CRC校验。若第一FEC校验信息对应的数据中与第一CRC校验信息对应的数据通过第一CRC校验信息的校验,则第二节点发送包括第一分组和第一分组对应的N组FEC校验信息的数据单元至下一个节点。若第一FEC校验信息对应的数据中与第一CRC校验信息对应的数据未通过第一CRC校验信息的校验,则根据第一FEC校验信息对第一FEC校验信息对应的数据进行纠错,得到第一数据(由于第一FEC校验信息对应的数据中包括第一CRC校验信息,因此,第一数据包括纠错后的第一CRC校验信息)。
第二节点得到第一数据后的后续处理流程同b1中的第二节点得到纠错后的第一分组后的后续处理流程。
可选地,在根据第一FEC校验信息对第一FEC校验信息对应的数据进行纠错,得到第一数据后,还可包括:对第一数据中与第一CRC校验信息对应的数据采用纠错后的第一CRC校验信息进行CRC校验。若第一数据中与第一CRC校验信息对应的数据通过纠错后的第一CRC校验信息的校验,第二节点的后续处理流程同b1中的第二节点得到纠错后的第一分组后的后续处理流程。若第一分组中与第一CRC校验信息对应的数据未通过纠错后的第一CRC校验信息的校验,则第二节点,则第二节点可对该第一分组丢弃处理。
可以理解的是,在第二节点为中间节点的情况下,对于第一分组传输路径上除了第二节点的且对第一分组的传输方式为目的地址转发的中间节点,该中间节点接收到包括分组(处理后的第一分组或第一分组)数据单元后的处理流程同第二种方案中的第二节点的处理流程;对于第一分组传输路径上除了第二节点的且对第一分组的传输方式为通道转发或者透明传输的中间节点,该中间节点接收到包括分组(处理后的第一分组或第一分组)数据单元后的处理流程同第一种方案中的第二节点的处理流程。在不丢包的情况下,包括第一分组或处理后的第一分组的数据单元(至少还包括第一分组对应的FEC校验信息或处理后的第一分组对应的FEC校验信息)最终会传输至接收第一分组的目的节点,即上述系统架构中的第三节点。
第三种方案中:第二节点为接收第一分组的目的节点,第二节点处理第一分组包括如下的几种情况:
c1、第二节点处理第一分组包括:根据N组FEC校验信息对N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可以理解的是,在第一数据单元中包括第一CRC校验信息的情况下,纠错后的第一分组不包括第一CRC校验信息。
c2、在第一分组中存在第一分组的第二CRC校验信息,第二节点处理第一分组包括:根据N组FEC校验信息对N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组,采用第二CRC校验信息校验纠错后的第一分组。可以理解的是,若N组FEC校验信息存在一组FEC校验信息所对应的数据中包括第二CRC校验信息,则纠错后的第一分组中包括纠错后的第二CRC校验信息,此时,采用纠错后的第二CRC校验信息,校验纠错后的第一分组。
c3、在第一分组中存在第一分组的第二CRC校验信息的情况下,第二节点处理第一包括:根据第二CRC校验信息,对第一分组进行CRC校验,若第一分组未通过第二CRC校验信息的校验,则根据N组FEC校验信息对N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。
可选地,第二节点得到纠错后的第一分组后,还包括:采用第二CRC校验信息校验纠错后的第一分组。可以理解的是,若N组FEC校验信息存在一组FEC校验信息所对应的数据中包括第二CRC校验信息,则纠错后的第一分组中包括纠错后的第二CRC校验信息,此时,采用纠错后的第二CRC校验信息,校验纠错后的第一分组。
可以理解的是,上述第三节点处理第一分组或处理后的第一分组的方法同第二节点为接收第一分组的目的节点时第二节点处理第一分组的方法。接收第一分组的目的节点会删除接收到的数据单元中的FEC校验信息,在存在第一CRC校验信息的情况下,还会删除第一CRC校验信息,以得到第一分组或处理后的第一分组。
本实施例中通过生成第一数据单元,第一数据单元包括根据第一分组生成第一分组对应的FEC校验信息。接收端可根据FEC校验信息对经过传输后的第一分组进行纠错,纠错后误码率可大大降低,因此,在高接口速率下,误码丢包的数量大大降低。
下面通过几个具体的示例对图9所示的实施例进行详细的说明。
示例一:本示例的场景为生成第一数据单元的节点和第一分组的目的接收节点均为传统以太网中的节点,生成第一数据单元的节点和第一分组的目的接收节点之间可存在中间节点,也可不存在中间节点。若存在中间节点,中间节点可以为如下但不限于如下任一节点:以太网中的节点,IP网中的节点、PTN中的节点,OTN中的节点、FlexE中的节点、SPN中的节点、MTN中的节点。
图14为本申请实施例提供的以太网节点对应的协议层的示意图(图14中的虚线框表示纠错编码子层可以不存在)。对于生成第一数据单元的第一节点,参见图14:
(1)以太网的MAC层获得或者生成的MAC帧向下送达以太网MAC层寄生纠错控制层(MAC-FEC控制层),其中,MAC帧即为第一分组,MAC帧的长度为L字节(即第一分组的长度为L字节)。
(2)MAC-FEC控制层获取MAC层送达的MAC帧,MAC-FEC控制层采用循环缩短码(2112,2080)生成FEC校验信息,当L不是260字节的整数倍时,确定最小正整数k1,在MAC帧末尾填充k1个0x00 Padding字节至(L+k1)为260的整数倍,(L+k1)÷260=N。填充的k1个0x00 Padding字节即为图9所示的实施例中所述的填充数据。
(3)MAC-FEC控制层对L+k1字节的数据进行分组,每组260字节,即L+k1字节的数据被分为(L+k1)÷260=N组数据,依次对N组数据中的每组数据采用循环缩短码(2112,2080)进行FEC编码,得到N组FEC校验信息,每组FEC校验信息为4字节。将N组FEC校验信息依次放置到MAC帧的帧尾,同时删除填充的k1个0x00 Padding字节;或者N组FEC校验信息中的每组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,同时删除填充的k1个0x00 Padding字节(即每组FEC校验信息位于其对应的数据之后并与其对应的数据相邻);或者前n组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,后N-n组FEC校验信息中的FEC校验信息放在MAC帧的帧末尾(即前n组FEC校验信息位于其对应的数据的末尾,后N-n组FEC校验信息中的FEC校验信息位于MAC帧的帧末尾),1≤n≤N,同时删除填充的k1个0x00 Padding字节。
(4)得到MAC帧对应的N组FEC校验信息后,MAC帧和N组FEC校验信息承载在物理层,得到包括MAC帧和N组FEC校验信息的第一数据单元。
可选地,如果要求系统支持包括MAC帧和MAC帧对应的FEC校验信息的数据单元,也支持不包括MAC帧对应的FEC校验信息的数据单元,还需要在数据单元中帧开始标记标记对包括MAC帧对应的FEC校验信息的数据单元进行标记,例如将当前帧开始标记SFD=0xD更新成New SFD=0x2A,来指示第一数据单元中包括MAC帧对应的FEC校验信息。
(5)包括MAC帧和MAC帧对应的FEC校验信息的数据单元通过物理层的调和子层处理后,得到第一数据单元,第一数据单元进行编码等处理处理并将编码调制处理后的信号发送到媒质进行传输,完成了第一数据单元的发送。在物理层的调和子层,前导码的第一个字节被替换成开始字符/S/,MAC帧后的第一个空闲字符替换成/T/字符,/S/字符到/T/字符之间以此为6字节前导码、1字节的New SFD、L字节MAC帧,4N字节的FEC校验信息,第一数据单元包括含/S/字符总共P字节,P=8+L+4N。
图15为本申请实施例提供的FEC校验信息生成过程示意图一,参见图15,L=64小于260,MAC帧长度不足260字节,填充k1=196字节0x00 Padding字节至(L+k1)为260的整数倍,N=(L+k1)÷260=1。对填充后的260字节的数据采用循环缩短码(2112,2080)进行FEC编码,得到一组FEC校验信息,FEC校验信息放置在MAC帧的帧尾,同时删除填充的196个0x00Padding字节。
图16为本申请实施例提供的生成FEC校验信息前后的示意图一,图17为本申请实施例提供的生成FEC校验信息前后的示意图一,图18为本申请实施例提供的生成FEC校验信息前后的示意图三。
参见图16~图18,N组FEC校验信息依次位于MAC帧的最后一个字节之后,且第一组FEC校验信息与MAC帧的最后一个字节相邻。即N组FEC校验信息依次位于MAC帧的最后一个字节之后,且第一组FEC校验信息与MAC帧的最后一个字节相邻。其中,图16中64~260字节是指MAC帧的字节总数在64~260字节之间(包括64和260)。后续图中类似的文字的含义相同。
接收第一数据单元节点为目的接收节点时,继续参见图14:
(1)以太网物理层对从媒质接收到的信号进行解调解码,得到第一数据单元,第一数据单元经调和子层RS处理,物理层的调和子层通过识别/S/和/T/字符确定第一数据单元的长度P,还原/S/码为第一数据单元的前导码。
(2)可选地,如果要求系统支持包括MAC帧和MAC帧对应的FEC校验信息的数据单元,也支持不包括MAC帧对应的FEC校验信息的数据单元,MAC-FEC控制层根据第一数据单元中包括的帧开始标记,确定第一数据单元中是否包括MAC帧对应的FEC校验信息。当帧开始标记为第二标记(比如0xD5)时,指示第一数据单元中不包括MAC帧对应的FEC校验信息。当帧开始标记为第一标记(比如0x2A)时,指示第一数据单元中包括MAC帧对应的FEC校验信息。
(3)在N组FEC校验信息依次位于MAC帧的最后一个字节之后,且第一组FEC校验信息与MAC帧的最后一个字节相邻的情况下,MAC-FEC控制层删除前导码和帧开始标记标记,确定第一数据单元的净荷P-8字。当P-8不是264字节的整数倍时,需要确定最小正整数k2,使得(P-8+k2)为264的整数倍,并进一步确定以第一数据单元中的MAC帧对应的FEC校验信息的组数N=(P-8+k2)÷264。
第一种方式,MAC-FEC控制层将k2字节的0x00 Padding字节(填充数据)插入到上述第一数据单元的净荷数据中的最后N×4字节的数据之前,第一数据单元的净荷数据中的前P-8-N×4字节的数据之后。将第一数据单元的净荷数据中的后N×4字节的数据分为N组,得到N组FEC校验信息;将第一数据单元的净荷数据中的前P-8+k2字节的数据按照每组260个字节进行分组,分为N组数据,N组数据即为用于生成N组FEC校验信息的数据。对N组数据中的每组数据和对应的FEC校验信息采用对应的FEC校验信息进行FEC解码,纠正可能发生的误码,并删除k2字节的填充数据和N×4字节FEC校验信息,获得第一预选MAC帧(也就是纠错后的第一分组),第一预选MAC帧的帧长为L字节,采用第一预选MAC帧中帧尾的CRC对第一预选MAC帧进行校验,若校验通过,第一预选MAC帧为有效MAC帧,可进行后续的处理。
第二种方式,MAC-FEC控制层将第一数据单元的净荷数据中的最后N×4字节的FEC校验信息删除,获得第二预选MAC帧,采用第二预选MAC帧中帧尾的CRC对第二预选MAC帧进行校验,若校验通过,则不需要纠错,若校验不通过,再执行第一种方式中的方法。
若接收第一数据单元的节点为对MAC帧的传输方式为目的地址转发的中间节点,该中间节点的执行流程参照接收第一数据单元节点为目的接收节点时的执行流程(1)~(3),具体地,若第一预选MAC帧为有效MAC帧,可根据第一预选MAC帧获取新的数据单元,并发送新的数据单元至下一个节点;或者,若第二预选MAC帧校验通过,可根据第二预选MAC帧获取新的数据单元,并发送新的数据单元至下一个节点。
示例一的有益效果如下:
在物理接口的误码率优于1e-12,采用循环缩短码(2112,2080)生成FEC校验信息时,若物理接口的误码率能抵抗11bits连续误码(突发误码),纠错前误码率优于BERi=1e-12时,纠错后误码率会优于BERo=1e-15;若物理接口的误码率能抵抗1bit随机误码,纠前误码优于BERi=1e-12时,纠错后误码率可优于BERo=1e-21。尤其是针对随机误码,可以完全抑制误码丢包。
不同MAC帧的帧长和物理接口的误码率下,采用循环缩短码(2112,2080)生成FEC校验信息后对应的误帧率指标如表1所示,误帧率越小,误码丢包的概率越低。
表1
误码率 | 速率(Gbps) | 帧长(字节) | 误帧率(1跳) | 24小时误帧数(1跳) | 误帧率(8跳) | 24小时误帧数(8跳) |
1.00E-12 | 10 | 64 | 5.11989E-10 | 863.9808868 | 4.09591E-09 | 6911.847095 |
1.00E-12 | 10 | 1536 | 1.22877E-08 | 863.9808868 | 9.83018E-08 | 6911.846775 |
1.00E-15 | 10 | 64 | 5.11591E-13 | 0.863309424 | 4.09273E-12 | 6.906475392 |
1.00E-15 | 10 | 1536 | 1.22782E-11 | 0.863309424 | 9.82254E-11 | 6.906475392 |
1.00E-21 | 10 | 64 | 0 | 0 | 0 | 0 |
1.00E-21 | 10 | 1536 | 0 | 0 | 0 | 0 |
示例二:本示例的应用场景同示例一。
对于获取第一数据单元的第一节点,继续参见图14:
(1)以太网的MAC层获得或者生成的MAC帧向下送达MAC-FEC层,其中,MAC帧即为第一分组。MAC帧的长度为L字节(即第一分组的长度为L字节)。
(2)MAC-FEC控制层获取MAC层送达的MAC帧,MAC-FEC控制层采用RS(255,239)生成FEC校验信息,当L不是239字节的整数倍时,确定最小正整数k1,在MAC帧末尾填充k1个0x00Padding字节至(L+k1)为239的整数倍,(L+k1)÷239=N。填充的k1个0x00 Padding字节即为图9所示的实施例中所述的填充数据。
(3)MAC-FEC控制层对L+k1字节的数据进行分组,每组239字节,即L+k1字节的数据被分为(L+k1)÷239=N组数据,依次对N组数据中的每组数据采用RS(255,239)进行FEC编码,得到N组FEC校验信息,每组FEC校验信息为16字节,将N组FEC校验信息依次放置到MAC帧的帧尾,同时删除填充的k1个0x00 Padding字节;或者N组FEC校验信息中的每组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,同时删除填充的k1个0x00Padding字节(即每组FEC校验信息位于其对应的数据之后并与其对应的数据相邻);或者前n组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,后N-n组FEC校验信息中的FEC校验信息放在MAC帧的帧末尾(即前n组FEC校验信息位于其对应的数据的末尾,后N-n组FEC校验信息中的FEC校验信息位于MAC帧的帧末尾),1≤n≤N,同时删除填充的k1个0x00 Padding字节。
后续流程同示例一中的(4)、(5),此处不再赘述,不同之处为第一数据单元的长度为P=8+L+16N。
图19为本申请实施例提供的FEC校验信息生成过程示意图二,参见图19,L=64小于239,MAC帧长度不足260字节,填充k=175字节0x00 Padding字节至(L+k1)为239的整数倍,N=(L+k1)÷239=1。对填充后的239字节的数据采用RS(255,239)进行FEC编码,得到一组FEC校验信息,FEC校验信息放置在MAC帧的帧尾,同时删除填充的175个0x00 Padding字节。
图20为本申请实施例提供的生成FEC校验信息前后的示意图四,图21为本申请实施例提供的生成FEC校验信息前后的示意图五,图22为本申请实施例提供的生成FEC校验信息前后的示意图六。
参见图20~图22,N组FEC校验信息依次位于MAC帧的最后一个字节之后,且第一组FEC校验信息与MAC帧的最后一个字节相邻。即N组FEC校验信息依次位于MAC帧的最后一个字节之后,且第一组FEC校验信息与MAC帧的最后一个字节相邻。
接收第一数据单元节点为目的接收节点时,继续参见图14:
(1)(2)流程同示例一中的接收第一数据单元节点为目的接收节点时对应的(1)、(2),此处不再赘述
(3)在N组FEC校验信息依次位于MAC帧的帧尾时,MAC-FEC控制层,删除前导码和帧开始标记,确定第一数据单元的净荷P-8字节。当P-8不是255字节的整数倍时,需要确定最小正整数k2,使得(P-8+k2)为255的整数倍,并进一步确定第一数据单元中的MAC帧的FEC校验信息的组数N=(P-8+k2)÷255。
接着,在第一种方式中,MAC-FEC控制层将k2字节的0x00 Padding字节(填充数据)插入到上述第一数据单元的净荷数据中的最后N×4字节的数据之前,第一数据单元的净荷数据中的前P-8-N×16字节的数据之后。将第一数据单元的净荷数据中的后N×16字节分为N组,得到N组FEC校验信息;将第一数据单元的净荷数据中的前P-8+k2-N×16字节的数据按照每组239个字节进行分组,分为N组数据,N组数据即为用于生成N组FEC校验信息的数据。对N组数据中的每组数据和对应的FEC校验信息采用对应的FEC校验信息进行FEC解码,纠正可能发生的误码,并删除k2字节的填充数据和N×16字节的FEC校验信息,获得第一预选MAC帧(也就是纠错后的第一分组),第一预选MAC帧的帧长为L字节,L=P–8–N×16,采用第一预选MAC帧中帧尾的CRC对第一预选MAC帧进行校验,若校验通过,则确定第一预选MAC帧为有效MAC帧,可进行后续的处理。
第二种方式,MAC-FEC控制层将第一数据单元的净荷数据中的最后N×16字节的FEC校验信息删除,获得第二预选MAC帧,采用第二预选MAC帧中帧尾的CRC对第二预选MAC帧进行校验,若校验通过,则不需要纠错,若校验不通过,再执行第一种方式中的方法。
若接收第一数据单元的节点为对MAC帧的传输方式为目的地址转发的中间节点,该中间节点的执行流程参照接收第一数据单元节点为目的接收节点时的执行流程(1)~(3),具体地,若第一预选MAC帧为有效MAC帧,可根据第一预选MAC帧获取新的数据单元,并发送新的数据单元至下一个节点;或者,若第二预选MAC帧校验通过,可根据第二预选MAC帧获取新的数据单元,并发送新的数据单元至下一个节点。
示例二的有益效果如下:
RS(255,239)这一FEC码引入更高的FEC校验信息的开销,其纠错能力更强,在纠错前误码率iBER=1e-4的情况下,纠错后误码率下降到oBER=5e-15;在纠错前误码率iBER=1e-5的情况下,纠错后误码率下降到oBER=6.3e-24;在纠错前误码率iBER=1e-6的情况下,纠错后误码率下降到oBER=6.4e-33。其对误码丢包的抑制能力远胜于示例一的循环缩短码(2112,2080)。当纠后误码率优于oBER=6.3e-24的时候,基本上完全抑制住了误码导致的丢包,24小时内在10G的速率上不会发生误码丢包事件,如下表所示。
不同MAC帧的帧长和物理接口的误码率下,采用RS(255,239)生成FEC校验信息后对应的误帧率指标如表2所示,误帧率越小,误码丢包的概率越低。
表2
误码率 | 速率(Gbps) | 帧长(字节) | 误帧率(1跳) | 24小时误帧数(1跳) | 误帧率(8跳) | 24小时误帧数(8跳) |
1.00E-12 | 10 | 64 | 5.11989E-10 | 863.9808868 | 4.09591E-09 | 6911.847095 |
1.00E-12 | 10 | 1536 | 1.22877E-08 | 863.9808868 | 9.83018E-08 | 6911.846775 |
5.00E-15 | 10 | 64 | 2.55795E-12 | 4.31654712 | 2.04636E-11 | 34.53237696 |
5.00E-15 | 10 | 1536 | 6.13909E-11 | 4.31654712 | 4.91127E-10 | 34.53237696 |
6.30E-24 | 10 | 64 | 0 | 0 | 0 | 0 |
6.30E-24 | 10 | 1536 | 0 | 0 | 0 | 0 |
6.40E-33 | 200 | 1536 | 0 | 0 | 0 | 0 |
6.40E-33 | 400 | 1536 | 0 | 0 | 0 | 0 |
6.40E-33 | 800 | 1536 | 0 | 0 | 0 | 0 |
6.40E-33 | 1000 | 1536 | 0 | 0 | 0 | 0 |
若以太网层如图14中所示且物理层存在纠错编码子层,以太网物理层的物理编码子层(physical coding sublayer,简称PCS)对第一数据单元以及空闲字符组成的数据流进行编码后,由纠错编码子层进一步根据编码后的数据流生成FEC校验信息,通过接口发送编码后的数据流和PCS-FEC校验信息。在该种情况下,如果本申请实施例中的第一分组对应的N组FEC校验信息的具有较强的纠错能力,则可以降低以对PCS-FEC校验信息纠错能力的需求,即可采用低开销的FEC码生成PCS-FEC校验信息即可,甚至不需要生成PCS-FEC校验信息即可满足物理接口误码率的需求(比如若采用本申请实施例中生成的第一分组对应的N组FEC校验信息纠错后,100GE接口误码率可降低到1e-6甚至1e-5,则不需要生成PCS-FEC校验信息)。
另外,在大容量的芯片和网络中,若存在PCS-FEC,无论使用PCS-FEC纠前误码率是好是差都千篇一律地每次发送都生成PCS-FEC,且生成PCS-FEC时会对空闲字符进行FEC编码;每次接收也都进行PCS-FEC解码,引入了较大的芯片实现代价也引入了较大的芯片和设备功耗。因此,在本申请实施例中的第一分组对应的N组FEC校验信息的具有较强的纠错能力,使得不需要生成PCS-FEC校验信息即可满足物理接口误码率的需求的情况下,由于本申请仅根据第一分组生成N组FEC校验信息,不会根据空闲字符等生成FEC校验信息,因此,传输第一分组的节点的功耗会大大降低。
若分组的CRC32校验信息在第一分组的末尾(比如目前在传统的以太网中,MAC层负责以太网MAC帧的CRC32校验信息的生成,生成的CRC32校验信息添加到MAC帧的末尾),在对分组进行CRC校验时,由于分组的CRC校验信息在分组的末尾,所以至少需要接收完整个分组才能获得CRC校验信息,才能判定接收到的分组是否是有效的分组,完成有效分组的接收并交付后端处理模块进行进一步的处理,令接收完整个分组引入时间延迟为T1。进一步地,若存在PCS-FEC校验信息,需要接收完一个完整的PCS-FEC码字(一个完整的PCS-FEC码字由一组PCS-FEC校验信息和该一组PCS-FEC校验信息对应的数据组成)才能开始FEC解码进行纠错,其引入的时间延迟为T2。若不存在中间节点,总的传输时延T至少为T1+T2。若存在y个中间节点(y个中间节点均需对第一分组进行处理后再转发第一分组),此时,总的传输时延T至少为(y+1)×(T1+T2)。可以理解的是,若在本申请实施例不存在PCS-FEC校验信息(相应地,以太网节点对应的协议层的示意图可如图23所示),则本申请实施例中的分组的传输时延可能可以相对于目前的技术中分组的传输时延要低。
如前所述,以太网的MAC帧的帧结构中,帧首依次包含6字节目的MAC地址,6字节源MAC地址,2字节以太网帧长度/类型字段;当该2字节用作类型字段,在类型字段为0x0800时,指示分组的协议类型为Ipv4协议报文以及其头部IP地址等信息;在类型字段为0x0847/0x8848时,指示分组的协议类型为MPLS协议报文以及其头部MPLS标签信息等。这一不一一列举各种协议类型。但总的来说,大部分分组头信息主要集中在MAC帧的前64字节。随着新协议的产生,协议内嵌套协议等,分组头信息也基本集中在MAC帧的前128字节或者200字节。可见分组中的分组头信息是否准确对于中间节点能否正确的转发分组具有重要的意义。因此,在本申请实施例中为了实现上述的在不存在PCS-FEC校验信息的情况下,降低分组的传输时延的目的,可以对分组中至少包括分组头信息的数据生成CRC校验信息,且该CRC校验信息位于用于生成其的数据之后且与用于生成其的数据相邻,并根据该CRC校验信息和该至少包括分组头信息的数据生成FEC校验信息且该FEC校验信息位于其对应的数据之后且与其对应的数据相邻(对应于图9所示的实施例中的N组FEC校验信息的位置的第三种实施方式)。这样在中间节点可以在接收完该CRC校验信息、该FEC校验信息和至少包括分组头信息的数据后,就对该CRC校验信息和至少包括分组头信息的数据进行纠错和/或对该至少包括分组头信息的数据进行CRC校验,且分组中的其余数据不再纠错和CRC校验,以达到降低传输时延的目的。下面结合示例三和示例四对此进行详细说明。
示例三:本示例的场景为第一数据单元的节点和第一分组的目的接收节点均为传统以太网中的节点,生成第一数据单元的节点和第一分组的目的接收节点之间可存在中间节点,也可不存在中间节点。若存在中间节点,则中间节点中存在对第一分组的传输方式为目的地址转发的中间节点。
对于生成第一数据单元的第一节点,继续参见图14:
(1)以太网的MAC层获得或者生成的MAC帧向下送达MAC-FEC层,其中,MAC帧即为第一分组。MAC帧的长度为L字节(即第一分组的长度为L字节)。
(2)MAC-FEC控制层获取MAC层送达的MAC帧,MAC-FEC控制层采用RS(255,239)生成FEC校验信息。
(2a)当L小于239时,此时MAC帧的长度不是239字节的整数倍,确定最小正整数k1,在MAC帧的帧末尾填充k1字节的0x00 Padding字节至(L+k1)为239的整数倍,(L+k1)÷239=N。当L=239时,k1=0。
MAC-FEC控制层对L+k1字节的数据采用RS(255,239)进行FEC编码,得到一组FEC校验信息,该组FEC校验信息为16字节,将该组FEC校验信息放置到MAC帧的帧尾,同时删除填充的k1个0x00 Padding字节。
(2b)当L大于239,就MAC帧的前235字节计算生成一个4字节的CRC32校验信息(即图9所示的实施例中所述的第一CRC校验信息),并添加到MAC帧的第235字节对应的数据的后面,在本示例中记为H_CRC32,其他数据向后延伸;确定最小正整数k2,在MAC帧的帧末尾填充k2字节的0x00 Padding字节至(L+4+k2)为239的整数倍,(L+4+k2)÷239=N。例如在L=713时,713大于239,713字节的前235字节添加4字节的H_CRC32后,总长度为713+4=717字节,是239的3倍,不需要填充,即k2=0,N=(L+4+k2)÷239=3。又例如:如果L等700,则需要填充填充k2=13字节的0x00 Padding字节至(L+4+k2)为239的整数倍,N=(L+4+k2)÷239=3。
MAC-FEC控制层对在中部添加H_CRC32并在末尾填充0x00 Padding字节至(L+4+k2)字节的数据进行分组,每组239字节,即(L+4+k2)字节的数据被分为(L+4+k2)÷239=N组数据,依次对N组数据中的每组数据采用采用RS(255,239)进行FEC编码,得到N组FEC校验信息,每组FEC校验信息为16字节。将N组FEC校验信息中的每组FEC校验信息分别放置在用于生成其的数据之后并与生成其的数据相邻,并删除末尾填充的0x00 Padding字节(即每组FEC校验信息分别位于其对应的数据之后并与其对应的数据相邻);或者,前n组FEC校验信息放置在用于生成其的数据之后并与生成其的数据相邻,后N-n组FEC校验信息中的其它FEC校验信息放在MAC帧的帧末尾,并删除末尾填充的0x00 Padding字节(前n组FEC校验信息位于其对应的数据之后并与其对应的数据相邻,后N-n组FEC校验信息位于在MAC帧的帧末尾);其中,1≤n≤N,比如n=1,第一组FEC校验信息位于在第一组FEC校验信息对应的数据的末尾并与第一组FEC校验信息对应的数据相邻,N组FEC校验信息中的其它FEC校验信息放在MAC帧的帧末尾。此处的第一组FEC校验信息为对MAC帧的前235字节的数据以及4字节的CRC32校验信息(根据前235字节的数据生成的CRC32校验信息)进行FEC编码后得到的FEC校验信息。
后续流程同示例一中的(4)、(5),此处不再赘述,不同之处为第一数据单元的长度为P=8+L+16N+4。
图24为本申请实施例提供的生成FEC校验信息前后的示意图七,图25为本申请实施例提供的生成FEC校验信息前后的示意图八。
参见图24,3组FEC校验信息中第一组FEC校验信息位于其对应的数据之后,剩余的2组FEC校验信息依次位于MAC帧的最后一个字节之后;第一组FEC校验信息对应的数据中包括CRC校验信息。参见图25,3组FEC校验信息中每组FEC校验信息位于其对应的数据之后;第一组FEC校验信息对应的数据中包括CRC校验信息。
接收第一数据单元节点为目的接收节点时,继续参见图14:
(1)(2)流程同示例一中的接收第一数据单元的目的节点对应的(1)、(2),此处不再赘述。
(3)在本示例中N组FEC校验信息分别位于对应的数据之后且与对应的数据相邻时,MAC-FEC控制层删除前导码和帧开始标记标记,确定第一数据单元的净荷P-8字节。当P–8不是255字节的整数倍时,需要确定最小正整数k3,使得(P–8+k3)为255的整数倍,并进一步确定第一数据单元中的MAC帧的FEC校验信息的组数N=(P–8+k3)÷255。
接着,在第一种方式中,MAC-FEC控制层将k3字节的0x00 Padding字节(填充数据)插入到上述第一数据单元的净荷数据的最后16字节的数据之前,第一数据单元的净荷数据的前P–8–16字节的数据之后,将第一数据单元的净荷数据的P–8+k3字节按照每组255进行分组,得到N组,每组最后的16字节为FEC校验信息,每组前239字节的数据为用于生成FEC校验信息的数据(即待纠正的数据),得到N组FEC校验信息和N组待纠正的数据。对N组待纠正的数据中的每组数据和对应的FEC校验信息采用对应的FEC校验信息进行FEC解码,纠正可能发生的误码,并删除k3字节的填充数据和N×16字节FEC校验信息。在N=1时,删除k3字节的填充数据和N×16字节FEC校验信息后获得第一预选MAC帧(也就是纠错后的第一分组);在N大于1时,删除k3字节的填充数据和N×16字节FEC校验信息后,还需删除获得前239字节的数据中的4字节H_CRC32,得到第一预选MAC帧。采用第一预选MAC帧中帧尾的CRC对第一预选MAC帧进行校验,若校验通过,则确定第一预选MAC帧为有效MAC帧,可进行后续的处理。
第二种方式,MAC-FEC控制层将第一数据单元的净荷数据中的N×16字节的FEC校验信息删除,在N大于1时,还需删除第一数据单元的净荷数据的前239字节的数据中的4字节H_CRC32,获得第二预选MAC帧,采用第二预选MAC帧中帧尾的CRC对第二预选MAC帧进行校验,若校验通过,则不需要纠错,若校验不通过,再执行第一种方式中的方法。
若接收第一数据单元的节点为对MAC帧的传输方式为目的地址转发的中间节点,该中间节点的执行流程如下:
(1)(2)流程同示例一中的接收MAC帧的目的节点对应的(1)、(2),此处不再赘述。
(3)(3a)MAC-FEC控制层接收到/T/字符之前接收到的帧开始标记之后的数据的字节数小于255字节,说明MAC帧对应有一组FEC校验信息。
此时,在收到/T/字符后,通过/S/和/T/确定第一数据单元的长度P和第一数据单元的净荷的长度P–8,P–8小于255,确定最小正整数k4至(P–8+k4)为255的整数倍,N=(P–8+k4)÷255=1。MAC-FEC控制层将k4字节的0x00 Padding字节插入到上述第一数据单元的净荷的P-8字节数据最后16字节FEC校验信息之前,前P–8–16字节之后,得到P–8+k4=255字节的数据。
第一种方式中,对该255字节采用后16字节的FEC校验信息进行FEC解码,纠正其中可能的误码比特,并删除k4字节的0x00 Padding字节和16字节的FEC校验信息,得到纠错后的MAC帧。采用第一数据单元的净荷中的CRC(MAC帧的CRC)对纠错后的MAC帧进行CRC校验,若校验通过,则可根据纠错后的MAC帧中包括的分组头信息中的以太网目的MAC地址、IP地址或者MPLS标签等进行分组的转发决策;也可以根据以太网源MAC地址进行MAC地址表的学习和维护;若校验未通过,则需要将纠错后的MAC帧进行特殊处理,比如丢弃处理。
第二种方式中,采用第一数据单元的净荷中的MAC帧的CRC对MAC帧进行CRC校验,若校验不通过,则执行第一种方式中的方法。
(3b)如果MAC-FEC控制层接收到帧开始标记之后的第256字节时,还没有接收到/T/字符,说明MAC帧至少对应有2组FEC校验信息,帧开始标记之后接收到的前255字节的末尾包含4字节H_CRC32和16字节的FEC码校验数信息。
第一种方式中,对帧开始标记之后接收到的前255字节采用后16字节的FEC校验信息进行FEC解码,纠正其中可能的误码比特,得到纠错后的数据,采用纠错后的数据中后4字节H_CRC32对纠错后的数据的前239字节的数据进行CRC校验,通过校验后即可根据纠错后的数据中包括的分组头信息中的以太网目的MAC地址、IP地址或者MPLS标签等进行MAC帧的转发决策;也可以根据以太网源MAC地址进行MAC地址表的学习和维护。若纠错后的数据的前239字节的数据未通过H_CRC32的校验,则纠错后的数据的分组头信息不可信,需要对MAC帧进行特殊处理,比如丢弃处理。
第二种方式中,采用帧开始标记之后接收到的前255字节中的4字节H_CRC32对帧开始标记之后接收到的前239字节进行CRC校验,若校验通过,可根据帧开始标记之后的分组头信息中的以太网目的MAC地址、IP地址或者MPLS标签等进行分组的转发决策;也可以根据以太网源MAC地址进行MAC地址表的学习和维护;若校验不通过,则执行第一种方式中的方法。
示例三的有益效果如下:
如上所述,在不存在PCS-FEC校验信息时,示例三中第一组FEC校验信息位于第一组FEC校验信息对应的数据之后,且中间节点仅对第一数据单元中第一组FEC校验信息对应的数据纠错和/或CRC校验,在N大于1时也不需要进行第一数据单元中MAC帧进行CRC校验,这样总传输时延可为max(T3,T4)+yT4,y为中间节点的数量,也就是传输跳数,T3为接收完本示例对应的一个完整的MAC帧引入的传输时延,T4为接收完本示例中的第一组FEC校验信息所对应的码字引入的传输时延。
而对于目前存在PCS-FEC校验信息的情况,由于MAC帧所对应的层以及PCS-FEC校验信息所对应的层不同,且MAC帧没有对应的FEC校验信息,总的传输时延为(y+1)×(T1+T2)。因此,示例三中的传输时延max(T3,T4)+yT4相对应目前的传输时延大大降低。
可以理解的是,在示例三的基础上,若采用码长小于RS(255,239)的FEC码,可进一步降低第一分组的传输时延。或者,按照第一分组中的分组头信息的长度选择根据第一分组中的分组头信息生成FEC校验信息的FEC码,比如第一分组中的分组头信息的长度为20字节,可选择RS(80,64),RS(40,24)这些码长较短的FEC码,以进一步降低第一分组的传输时延,对第一分组中的其它数据可以选择其它码长和/或其它类型的FEC码,也可以选择相同码长和/或相同类型的FEC码。这些较短的码长的FEC码的开销大,纠错能力强,可进一步保证第一分组的可靠性转发。
表3给出了示例三中对应的传输系统的静态传输时延与现有方法的传输系统的静态传输时延的对比表。
表3
参见表3,当MAC帧的长度小于或等于用于生成FEC校验信息的码长时,多跳对应的静态传输时延降低50%;当MAC帧的长度大于用于生成FEC校验信息的码长时,多跳对应的静态传输时延随跳数的增加线性降低。例如10GE接口场景下,使用RS(255,239)生成FEC校验信息,MAC帧的长度为9600字节,经8次转发后,传输系统的静态传输时延由63.072us降低至9.312us,降低85%,传输系统的静态传输时延的大大降低。
继续参见表3,当MAC帧的长度大于用于生成FEC校验信息的码长时,单跳对应的静态传输时延取决于MAC帧的长度,即取决于接收一个完整的MAC帧的接收时间,匹配以太网接收完一个MAC帧并确认CRC32校验成功后才能认为收妥一个MAC帧的设计原则。
也就是说,本申请实施例中的方法在生成的第一分组对应的FEC校验信息的纠错能力较强可以使得原有的纠错编码子层无需存在,且N组FEC校验信息的位置为图9所示的实施例中的第三种实施方式所对应的情况时,可以在降低误码丢包数量的基础上,使得第一分组的传输相对于目前存在PCS-FEC校验信息时的传输时延大大降低,还可降低传输节点的功耗。
进一步地,在根据第一分组中的包括分组头信息的数据生成CRC校验信息和FEC校验信息时,采用的FEC码的码长对应的字节数大于第一分组中的包括分组头信息占用的字节数的情况下,若N组FEC校验信息中的第一FEC校验信息中的第一CRC校验信息是由第一分组包括的分组头信息确定的,可以进一步地降低传输时延:即可根据第一分组中的包括分组头信息生成第一CRC校验信息,然后将若干字节的填充数据(比如0x00)填充至第一CRC校验信息之后,对第一分组中的包括分组头信息、第一CRC校验信息和填充数据进行FEC编码生成FEC校验信息,将生成FEC校验信息放置在用于生成其的数据之后并与生成其的数据相邻,然后删除填充数据,以使生成FEC校验信息位于第一CRC的校验信息之后,并与该第一CRC的校验信息相邻;第一分组中其它的数据按照上述示例一至示例三中的生成规则生成。下面结合示例四对此进行说明。
示例四:本示例的场景同示例三中的场景。
对于生成第一数据单元的第一节点,继续参见图14:
(1)以太网的MAC层获得或者生成的MAC帧向下送达MAC-FEC层,其中,MAC帧即为第一分组。MAC帧的长度为L字节(即第一分组的长度为L字节)。
(2)MAC-FEC控制层获取MAC层送达的MAC帧,MAC-FEC控制层采用RS(255,239)生成FEC校验信息。
(2a)MAC帧中的前h字节为分组头信息,h+4小于239,其中,h小于239。对MAC帧中前h字节的数据生成生成一个4字节的CRC32校验信息(即图7所示的实施例中所述的第一CRC校验信息,在本示例中记为H_CRC32),并添加到在MAC帧的第h个字节的后面,MAC帧中的其他数据向后延伸。确定最小正整数k1,在H_CRC32后面填充k1字节的0x00 Padding字节至h+4+k1=239,k1字节的0x00 Padding字节与H_CRC32相邻。对该h+4+k1=239个字节的数据采用RS(255,239)进行FEC编码,生成16字节的FEC校验信息,删除k1字节的0x00 Padding字节,使得该16字节的FEC校验信息位于至H_CRC32后面并与该H_CRC32相邻。该该16字节的FEC校验信息即为第一组FEC校验信息。
对于MAC帧中剩余的L-h字节,确定确定最小正整数k2,在在MAC帧的帧末尾填充k2字节的0x00 Padding字节至(L-h+k2)为239的整数倍,(L-h+k2)÷239=N-1。
MAC-FEC控制层对上述的(L-h+k2)字节的数据进行分组,每组239字节,即(L-h+k2)字节的数据被分为(L-h+k2)÷239=N-1组数据,依次对N-1组数据中的每组数据采用采用RS(255,239)进行FEC编码,得到N-1组FEC校验信息,N-1组FEC校验信息中的每组FEC校验信息为16字节。将N-1组FEC校验信息中的每组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,同时删除末尾填充的0x00 Padding字节;或者,N-1组FEC校验信息前m组FEC校验信息放置在用于生成其的数据之后并与用于生成其的数据相邻,后N-1-m组FEC校验信息中的其它FEC校验信息放在MAC帧的帧末尾,1≤m≤N-1。
后续流程同示例一中的(4)、(5),此处不再赘述,不同之处第一数据单元的长度为P=8+L+16N+4。
图26为本申请实施例提供的生成FEC校验信息过程示意图。参见图26,MAC帧的长度为64字节,前20字节为分组头信息,可根据前20字节生成一个4字节的CRC校验信息,记为H_CRC32,并添加到在MAC帧的第20个字节的后面,MAC帧中的其他数据向后延伸。确定最小正整数215,在H_CRC32后面填充215字节的的填充数据至239字节,215字节的的填充数据与H_CRC32相邻。对该239个字节的数据采用RS(255,239)进行FEC编码,生成16字节的FEC校验信息,删除215字节的的填充数据,将该16字节的FEC校验信息添加至H_CRC32后面并与H_CRC32相邻。
对于MAC帧中剩余的44字节,MAC-FEC控制层确定最小正整数195,在MAC帧的CRC32后面填充195字节的的填充数据至239字节,对该239个字节的数据采用RS(255,239)进行FEC编码,得到1组16字节FEC校验信息,删除195字节的填充数据,将该1组FEC校验信息放MAC帧的帧末尾。
接收第一数据单元节点为目的接收节点时,继续参见图14:
(1)(2)流程同示例一中的第一分组的目的接收节点对应的(1)、(2),此处不再赘述。
(3)在本示例中N组FEC校验信息分别位于对应的数据之后且与对应的数据相邻时,MAC-FEC控制层对根据第一数据单元的长度P,删除前导码和帧开始标记,确定第一数据单元的净荷P-8字节。当P-8-(h+4+16)不是255字节的整数倍时,需要确定最小正整数k3,使得(P-8-(h+4+16)+k3)为255的整数倍,并进一步确定第一数据单元中的MAC帧的FEC校验信息的组数N=(P-8-(h+4+16)+k3)÷255+1。
接着,在第一种方式中,MAC-FEC控制层将k3字节的0x00 Padding字节(填充数据)插入到上述第一数据单元的净荷数据的后16字节之前、第一数据单元的净荷数据前(P-8-16)字节之后,将第一数据单元的净荷数据的第(h+4+16)字节之后的(P-8-(h+4+16)+k3)字节照每组255进行分组,得到N-1组,每组最后的16字节为FEC校验信息,每组前239字节的数据为用于生成FEC校验信息的数据(即N-1组待纠正的数据);在第一数据单元的净荷数据的第h+4字节后、第一数据单元的净荷数据的前h+4+16字节的最后16字节的FEC校验信息之前,添加k4字节的0x00 Padding字节,得到255字节的数据(包括第一数据单元的净荷数据的前h+4+16字节的最后16字节的FEC校验信息),该255字节的数据的前239字节的数据为用于生成第一数据单元的净荷数据的前h+4+16字节的最后16字节的FEC校验信息的数据(也为一组待纠正的数据),后16字节为一组FEC校验信息,至此,得到了N组FEC校验信息和N组待纠正的数据。对N组待纠正的数据中的每组数据和对应的FEC校验信息采用对应的FEC校验信息进行FEC解码,纠正可能发生的误码,并删除填充的k3字节的0x00 Padding字节和k4字节的0x00 Padding字节,在N大于1时,还需删除前h+4字节中最后的4字节H_CRC32。得到第一预选MAC帧。采用第一预选MAC帧中帧尾的CRC对第一预选MAC帧进行校验,若校验通过,则确定第一预选MAC帧为有效MAC帧,可进行后续的处理。
第二种方式,MAC-FEC控制层将第一数据单元的净荷数据中的N×16字节的FEC校验信息删除,在N大于1时,还需删除第一数据单元的净荷数据的前h+4字节的数据中的4字节H_CRC32,获得第二预选MAC帧,采用第二预选MAC帧中帧尾的CRC对第二预选MAC帧进行校验,若校验通过,则不需要纠错,若校验不通过,再执行第一种方式中的方法。
若接收第一数据单元的节点为对MAC帧的传输方式为目的地址转发的中间节点,该中间节点的执行流程如下:
(1)(2)流程同示例一中的接收第一数据单元节点为目的接收节点时对应的(1)、(2),此处不再赘述。
(3)第一种方式中MAC-FEC控制层接收到帧开始标记之后的h+4+16字节的数据,确定最小正整数k4,使得h+4+k4=239,将k4字节的0x00 Padding字节插入到帧开始标记之后接收到的第h+4字节之后、帧开始标记之后的h+4+16字节中的最后16个字节之前,得到h+4+k4=239字节,对该239字节以及帧开始标记之后的h+4+16字节中的最后16个字节采用该最后16个字节进行FEC解码,纠正其中可能的误码比特,之后删除该239字节中的k4字节的0x00 Padding字节,得到纠错后的数据(即对帧开始标记之后的h+4+16字节的数据纠错后的数据)。采用纠错后的数据中的4个字节的CRC校验信息(纠错后的数据中前h+4个字节中的最后4个字节的CRC校验信息,即纠错后的H_CRC32)对纠错后的数据前h+4个字节进行CRC校验,若校验通过,则可根据纠错后的数据中包括的分组头信息中的以太网目的MAC地址、IP地址或者MPLS标签等进行MAC帧的转发决策;也可以根据以太网源MAC地址进行MAC地址表的学习和维护;若校验未通过,则需要将MAC帧进行特殊处理,比如丢弃处理。
第二种方式中,MAC-FEC控制层接收到帧开始标记之后的h+4+16字节的数据后,采用帧开始标记之后的h+4字节中的最后4个字节对帧开始标记之后的前h+4个字节进行CRC校验,若校验通过,可根据帧开始标记之后的前h个字节的数据(分组头信息)中的以太网目的MAC地址、IP地址或者MPLS标签等进行MAC帧的转发决策;也可以根据以太网源MAC地址进行MAC地址表的学习和维护;若校验不通过,则执行第一种方式中的方法。
以上通过示例一至示例四对第一分组为以太网MAC帧时对应的分组传输方法进行了详细的说明。上述的以太网MAC帧可为封装了其它分组的MAC帧,也可为未封装其它分组的MAC帧。可以理解的是,当第一分组为FC帧时或第一分组为其它协议的报文时(比如IP报文、MPLS报文)对应的具体的分组传输方法与示例一至示例四类似,此处不再一一赘述。
基于上述的阐述,可知在本申请实施例的以太网场景中,若第一分组传输链路包括两个节点(该两个节点为生成第一数据单元的节点和第一分组的目的接收节点),若该两个节点均包括一个端口,第一数据单元在该两个节点之间的传输涉及的一种可能的示意框图,可如图27所示。
参见图27,在一种方式中,a节点在链路层根据第一分组生成对应的N组FEC校验信息,第一分组和N组FEC校验信息承载在物理层后,得到第一数据单元,第一数据单元经物理层编码等处理后,将编码调制处理后的信号传输至b节点。b节点的物理层接收该信号,并对该信号解码,得到第一数据单元。可选地,b节点在链路层采用第一分组对应的N组FEC校验信息对第一分组进行纠错和/或CRC校验。
接着,在本申请实施例的以太网场景中,对于分组传输链路上的任意一个对第一分组的传输方式为目的地址转发的中间节点,若该中间节点包括多个端口,则该中间节点的一种可能的功能示意框图,可如图28所示。
对于该中间节点的每个端口,该中间节点的该端口的物理层接收上一节点发送的包括N组FEC校验信息(第一分组或处理后的第一分组对应的FEC校验信息)的数据单元经编码调制处理后的信号,并对该信号解码,得到包括N组FEC校验信息的数据单元。可选地,采用N组FEC校验信息中的全部或部分FEC校验信息对接收到的数据单元中包括的第一分组或处理后的第一分组进行纠错,可选地,该端口的还可能在链路层根据该端口得到的纠错后的第一分组重新生成N组FEC校验信息中的全部或部分FEC校验信息,最终将纠错后的第一分组和纠错后的第一分组对应的FEC校验信息的数据单元经编码调制处理后的信号通过另一端口发送至下一个节点。
对于图28中所示的中间节点的每个端口,均需要设置在链路层进行纠错和FEC校验信息生成的模块,节点的复杂度还有进一步降低的空间,节点的功耗也有进一步降低的空间,因此,可在中间节点设置一个在链路层进行纠错和FEC校验信息生成的模块,所有的端口共用该在链路层进行纠错和FEC校验信息生成的模块,可降低节点的功耗,如图29所示。
相应于上述方法实施例给出的方法,本申请实施例还提供了相应的装置,所述装置包括用于执行上述实施例相应的模块。所述模块可以是软件,也可以是硬件,或者是软件和硬件结合。
图30为本申请一实施例提供的一种装置的结构示意图,参见图30,所述装置500可以是服务器、终端设备、交换机(例如以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、SPN、MTN设备、FC设备,也可以是支持上述设备实现上述方法的芯片、芯片系统、或处理器等,还可以是支持实现上述方法的芯片、芯片系统、或处理器等。该装置可用于实现上述方法实施例中描述的第一节点或第二节点或第三节点对应的方法,具体可以参见上述方法实施例中的说明。
所述装置500可以包括一个或多个处理器501,所述处理器501也可以称为处理单元,可以实现一定的控制功能。所述处理器501可以是通用处理器或者专用处理器等。例如可以是基带处理器或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对通信装置(如,基站、基带芯片,终端、终端芯片,DU或CU等)进行控制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器501也可以存有指令和/或数据503,所述指令和/或数据503可以被所述处理器运行,使得所述装置500执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器501中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置500可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置500中可以包括一个或多个存储器502,其上可以存有指令504,所述指令可在所述处理器上被运行,使得所述装置500执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置500还可以包括收发器505和/或天线506。所述处理器501可以称为处理单元,对所述装置500进行控制。所述收发器505可以称为收发单元、收发机、收发电路或者收发器等,用于实现收发功能。
本实施例中描述的处理器和收发器可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channelmetal oxide semiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
以上实施例描述中的装置可以是服务器、终端设备、交换机(例如以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、SPN、MTN设备、FC设备,也可以是支持上述设备实现上述方法的芯片、芯片系统、或处理器等,还可以是支持实现上述方法的芯片、芯片系统、或处理器等,但本申请中描述的装置500的范围并不限于此,而且装置的结构可以不受图30的限制。装置可以是独立的设备或者可以是较大设备的一部分。
图31为本申请另一实施例提供的一种装置的结构示意图。如图31所示,本申请又一实施例提供了一种装置700。该装置可以是服务器、终端设备、交换机(例如以太网交换机或者具有SPN/MTN管道传输能力的新型以太网交换机)、IP路由器、PTN设备,OTN设备、FlexE设备、SPN、MTN设备、FC设备,也可以是上述设备的部件(例如,集成电路,芯片等等)。该装置也可以是其他通信模块,用于实现本申请方法实施例中第一节点或第二节点或第三节点对应的方法。该装置700可以包括:处理模块702(处理单元)和收发模块701(收发单元)和存储模块703(存储单元)。
在一种可能的设计中,如图31中的一个或者多个模块可能由一个或者多个处理器来实现,或者由一个或者多个处理器和存储器来实现;或者由一个或多个处理器和收发器实现;或者由一个或者多个处理器、存储器和收发器实现,本申请实施例对此不作限定。所述处理器、存储器、收发器可以单独设置,也可以集成。
所述装置具备实现本申请实施例描述的第一节点的功能,比如,所述装置包括第一节点执行本申请实施例描述的第一节点涉及步骤所对应的模块或单元或手段(means)。详细可进一步参考前述对应方法实施例中的相应描述。
或者所述装置具备实现本申请实施例描述的第二节点的功能,比如,所述装置包括所述第二节点执行本申请实施例描述的第二节点涉及步骤所对应的模块或单元或手段(means)。详细可进一步参考前述对应方法实施例中的相应描述。
可选的,本申请实施例中的装置700中各个模块可以用于执行本申请实施例中的图9所示的实施例中描述的方法。
在第一种可能的设计中,一种装置700可包括收发模块701和处理模块702。
处理模块702,用于生成第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;收发模块701,用于发送所述第一数据单元。
可选地,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
可选地,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。
可选地,N>1,n<N;第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
可选地,所述n组FEC校验信息为所述N组FEC校验信息中的前n组FEC校验信息;所述第一FEC校验信息对应的数据中包括第一循环冗余校验码CRC校验信息。
可选地,所述第一CRC校验信息与所述第一FEC校验信息相邻。
可选地,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。
可选地,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
可选地,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,所述第一FEC码的码长与所述第二FEC码的码长不相同。
可选地,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
可选地,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
可选地,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第一分组的开始标记。
可选地,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互连协议IP报文、多协议标签交换MPLS报文。
在另一种可能的设计中,一种装置700可包括收发模块701和处理模块702。
收发模块701,用于接收第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;处理模块702,用于处理所述第一分组。
其中,在一种实现方式中,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
在另一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;所述第一FEC校验信息位于所述第一数据单元中与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。可选地,在N>1,n<N时第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
针对上述两种实现方式,在装置700为中间节点且装置700对第一分组的传输方式为目的地址转发的情况下,或者,在装置700为第一分组的目的接收节点的情况下:
在第一种实施方式中:处理模块702用于处理所述第一分组包括:处理模块具体702用于:根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,处理模块702还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
在第二种实施方式中:所述第一分组包括所述第一分组的第二CRC校验信息,处理模块702用于处理所述第一分组包括:处理模块702具体用于:根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组,采用纠错后的第二CRC校验信息或所述第二CRC校验信息,对纠错后的第一分组进行CRC的校验。可选地,处理模块702还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
在第三种实施方式中:所述第一分组包括所述第一分组的第二CRC校验信息,处理模块702用于处理所述第一分组包括:处理模块702具体用于:采用所述第二CRC校验信息对所述第一分组进行CRC的校验;若所述第一分组未通过所述第二CRC校验信息的校验,则根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。可选地,处理模块702还具体用于:采用纠错后的第二CRC校验信息或所述第二CRC校验信息对纠错后的第一分组进行CRC的校验。可选地,处理模块702还具体用于:根据纠错后的第一分组重新生成第一分组对应的N组FEC校验信息。
针对上述两种实现方式,在装置700为中间节点且装置700对第一分组的传输方式为通道转发或者透明传输的情况下,处理模块702用于处理所述第一分组包括:处理模块702具体用于:控制收发模块701发送包括所述第一分组和第一分组对应的N组FEC校验信息的数据单元至下一个节点。此时,装置700为中间节点,处理模块702无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
在又一种实现方式中,第一FEC校验信息为所述N组FEC校验信息中前n组FEC校验信息中的任意一组,所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻,所述第一FEC校验信息对应的数据中包括第一CRC校验信息,n≤N,n≥1且n为整数。可选地,所述第一CRC校验信息与所述第一FEC校验信息相邻。可选地,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。可选地,在N>1,n<N时,第二FEC校验信息位于所述第一分组的最后一字节之后,或者,所述第二FEC校验信息位于与所述第二FEC校验信息对应的数据之后且所述第二FEC校验信息对应的数据与所述第二FEC校验信息相邻;所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
针对又一种实现方式,在装置700为中间节点且装置700对第一分组的传输方式为目的地址转发的情况下:
在第一种实施方式中:处理模块702用于处理所述第一分组包括:处理模块702具体用于:根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息)。在第一FEC校验信息为n组的情况下,会得到n份第一数据。可选地,处理模块702还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块702还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
在第二种实施方式中:处理模块702用于处理所述第一分组包括:处理模块702具体用于:根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息);采用纠错后的所述第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。在第一FEC校验信息为n组的情况下,会得到n份第一数据。可选地,处理模块702还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块702还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
在第三种实施方式中:处理模块702用于处理所述第一分组包括:处理模块702具体用于:采用所述第一CRC校验信息对所述第一FEC校验信息对应的数据与第一CRC校验信息对应的数据进行CRC校验;若所述第一FEC校验信息对应的数据与第一CRC校验信息对应的数据未通过所述第一CRC校验信息的校验,则根据所述第一FEC校验信息对所述第一数据单元中与所述第一FEC校验信息对应的数据进行纠错,得到第一数据(第一数据包括纠错后的第一CRC校验信息)。在第一FEC校验信息为n组的情况下,会得到n份第一数据。可选地,处理模块702还具体用于:采用纠错后的所述第一CRC校验信息对所述第一数据中与所述第一CRC校验信息对应的数据进行CRC校验。可选地,处理模块702还具体用于:根据n份第一数据重新生成第一分组对应的n组FEC校验信息。可选地,处理模块702还具体用于:根据第一数据中与第一CRC校验信息对应的数据重新生成第一CRC校验信息。
针对又一种实现方式,在装置700为中间节点且装置700对第一分组的传输方式为通道转发或者透明传输的情况下:处理模块702用于处理所述第一分组包括:处理模块702具体用于:控制收发模块701发送包括所述第一分组、第一分组对应的N组FEC校验信息和第一CRC校验信息的数据单元至下一个节点。此时,装置700为中间节点,处理模块702无需对第一分组进行如上第一种实施方式至第三种实施方式中的任一实施方式的处理。
针对该又一种实现方式,在装置700为第一分组的目的接收节点时,处理模块702的处理第一分组的方法同上述两种实现方式中分组传输装置的处理模块处理第一分组的方法,此处不再赘述。
可选地,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
可选地,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,所述第一FEC码的码长与所述第二FEC码的码长不相同。
可选地,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及所述目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
可选地,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
可选地,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
可选地,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互连协议IP报文、多协议标签交换MPLS报文。
本申请还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一方法实施例的功能。
在上述实施例使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
应理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下UE或者基站会做出相应的处理,并非是限定时间,且也不要求UE或基站实现时一定要有判断的动作,也不意味着存在其它限定。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。
字符“/”一般表示前后关联对象是一种“或”的关系。
本文中术语“……中的至少一个”或“……中的至少一种”,表示所列出的各项的全部或任意组合,例如,“A、B和C中的至少一种”,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在B和C,同时存在A、B和C这六种情况,其中A可以是单数或者复数,B可以是单数或者复数,C可以是单数或者复数。
应理解,在本申请各实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本申请中各表所示的对应关系可以被配置,也可以是预定义的。各表中的信息的取值仅仅是举例,可以配置为其他值,本申请并不限定。在配置信息与各参数的对应关系时,并不一定要求必须配置各表中示意出的所有对应关系。例如,本申请中的表格中,某些行示出的对应关系也可以不配置。又例如,可以基于上述表格做适当的变形调整,例如,拆分,合并等等。上述各表中标题示出参数的名称也可以采用通信装置可理解的其他名称,其参数的取值或表示方式也可以通信装置可理解的其他取值或表示方式。上述各表在实现时,也可以采用其他的数据结构,例如可以采用数组、队列、容器、栈、线性表、指针、链表、树、图、结构体、类、堆、散列表或哈希表等。
Claims (38)
1.一种分组传输方法,其特征在于,包括:
第一节点生成第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;
所述第一节点发送所述第一数据单元。
2.一种分组传输方法,其特征在于,包括:
第二节点接收第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;
所述第二节点处理所述第一分组。
3.根据权利要求1或2所述的方法,其特征在于,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
4.根据权利要求1或2所述的方法,其特征在于,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;
所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。
5.根据权利要求4所述的方法,其特征在于,N>1,n<N;
第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
6.根据权利要求4或5所述的方法,其特征在于,所述n组FEC校验信息为所述N组FEC校验信息中的前n组FEC校验信息;
所述第一FEC校验信息对应的数据中包括第一循环冗余校验码CRC校验信息。
7.根据权利要求6所述的方法,其特征在于,所述第一CRC校验信息与所述第一FEC校验信息相邻。
8.根据权利要求6或7所述的方法,其特征在于,所述第一CRC校验信息是由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。
9.根据权利要求5所述的方法,其特征在于,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;
所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
10.根据权利要求1~9任一项所述的方法,其特征在于,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;
所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,
所述第一FEC码的码长与所述第二FEC码的码长不相同。
11.根据权利要求1~10任一项所述的方法,其特征在于,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;
相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及所述目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
12.根据权利要求1~11任一项所述的方法,其特征在于,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
13.根据权利要求12所述的方法,其特征在于,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
14.根据权利要求1~13任一项所述的方法,其特征在于,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互联协议IP报文、多协议标签交换MPLS报文。
15.根据权利要求3~5任一项所述的方法,其特征在于,所述第二节点处理第一分组,包括:
所述第二节点根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。
16.根据权利要求15所述的方法,其特征在于,所述第一分组中包括所述第一分组的第二CRC校验信息,在所述第二节点根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组之前,还包括:
采用所述第二CRC校验信息对所述第一分组进行CRC校验;
确定所述第一分组未通过所述第二CRC校验信息的校验。
17.根据权利要求6~8任一项所述的方法,其特征在于,所述第二节点处理第一分组,包括:
所述第二节点根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据。
18.根据权利要求17所述的方法,其特征在于,在所述第二节点根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据之前,还包括:
所述第二节点采用所述第一CRC校验信息对所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据进行CRC校验;
确定所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据未通过所述第一CRC校验信息的校验。
19.一种分组传输装置,其特征在于,包括:
处理模块,用于生成第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;
收发模块,用于发送所述第一数据单元。
20.一种分组传输装置,其特征在于,包括:
收发模块,用于接收第一数据单元,所述第一数据单元包括第一分组和N组前向纠错码FEC校验信息,所述N组FEC校验信息是分别根据所述第一分组的部分或全部被划分后得到的N份数据得到的,N为大于或等于1的整数;
处理模块,用于处理所述第一分组。
21.根据权利要求19或20所述的装置,其特征在于,所述N组FEC校验信息依次位于所述第一分组的最后一字节之后,且所述N组FEC校验信息中的第一组FEC校验信息与所述最后一字节相邻。
22.根据权利要求19或20所述的装置,其特征在于,第一FEC校验信息为所述N组FEC校验信息中n组FEC校验信息中的任意一组,n≤N,n≥1且n为整数;
所述第一FEC校验信息位于与所述第一FEC校验信息对应的数据之后,且所述第一FEC校验信息对应的数据与所述第一FEC校验信息相邻。
23.根据权利要求22所述的装置,其特征在于,N>1,n<N;
第二FEC校验信息位于所述第一分组的最后一字节之后,所述第二FEC校验信息为所述N组FEC校验信息中除了所述n组FEC校验信息以外的任一组FEC校验信息。
24.根据权利要求22或23所述的装置,其特征在于,所述n组FEC校验信息为所述N组FEC校验信息中的前n组FEC校验信息;
所述第一FEC校验信息对应的数据中包括第一循环冗余校验码CRC校验信息。
25.根据权利要求24所述的装置,其特征在于,所述第一CRC校验信息与所述第一FEC校验信息相邻。
26.根据权利要求24或25所述的装置,其特征在于,所述第一CRC校验信息由所述第一分组中的分组头信息确定的,所述第一CRC校验信息用于所述分组头信息的CRC校验。
27.根据权利要求23所述的装置,其特征在于,用于生成所述第一FEC校验信息的FEC码的类型为第一类型、码长为第一码长,用于生成所述第二FEC校验信息的FEC码的类型为第二类型、码长为第二码长;
所述第一类型与所述第二类型不相同,和/或,所述第一码长与所述第二码长不相同。
28.根据权利要求19~27任一项所述的装置,其特征在于,用于生成所述N组FEC校验信息的N个FEC码中至少存在第一FEC码和第二FEC码;
所述第一FEC码的类型与所述第二FEC码的类型不相同;和/或,
所述第一FEC码的码长与所述第二FEC码的码长不相同。
29.根据权利要求19~28任一项所述的装置,其特征在于,所述N组FEC校验信息中存在目标FEC校验信息,所述目标FEC校验信息对应的目标数据的字节数与所述目标FEC校验信息的字节数之和小于第一数目,所述第一数目为用于生成所述目标FEC校验信息的目标FEC码的码长对应的字节数;
相应地,所述目标FEC校验信息是由所述目标数据和填充数据确定的,所述目标数据的字节数、所述填充数据的字节数以及所述目标FEC校验信息的字节数之和等于所述目标FEC码的码长对应的字节数。
30.根据权利要求19~29任一项所述的装置,其特征在于,所述第一数据单元还包括第一标记,所述第一标记指示所述第一分组的开始,且所述第一标记指示所述第一数据单元中包含所述第一分组对应的FEC校验信息。
31.根据权利要求30所述的装置,其特征在于,所述第一标记和第二标记的长度不相同,或者,所述第一标记和所述第二标记的相似度小于预设阈值,所述第二标记为未对应有FEC校验信息的第二分组的开始标记。
32.根据权利要求19~31任一项所述的装置,其特征在于,所述第一分组为如下中的任一项:以太网媒质访问控制MAC帧、光纤通道FC帧、网际互联协议IP报文、多协议标签交换MPLS报文。
33.根据权利要求21~23任一项所述的装置,其特征在于,所述处理模块,用于处理第一分组,包括:
所述处理模块,具体用于根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组。
34.根据权利要求33所述的装置,其特征在于,所述第一分组中包括所述第一分组的第二CRC校验信息,在所述处理模块具体用于根据所述N组FEC校验信息对所述N组FEC校验信息各自对应的数据进行纠错,得到纠错后的第一分组之前,所述处理模块,还具体用于:
采用所述第二CRC校验信息对所述第一分组进行CRC校验;
确定所述第一分组未通过所述第二CRC校验信息的校验。
35.根据权利要求24~26任一项所述的装置,其特征在于,所述处理模块,用于处理第一分组,包括:
所述处理模块,具体用于根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据。
36.根据权利要求35所述的装置,其特征在于,在所述处理模块具体用于所述第二节点根据所述第一FEC校验信息对与所述第一FEC校验信息对应的数据进行纠错,得到第一数据之前,所述处理模块,还具体用于:
采用所述第一CRC校验信息对所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据进行CRC校验;
确定所述第一FEC校验信息对应的数据中与所述第一CRC校验信息对应的数据未通过所述第一CRC校验信息的校验。
37.一种分组传输装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述装置执行如权利要求1至18中任一项所述的方法。
38.一种存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被执行时使得计算机执行如权利要求1至18中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910730648.7A CN112350798A (zh) | 2019-08-08 | 2019-08-08 | 分组传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910730648.7A CN112350798A (zh) | 2019-08-08 | 2019-08-08 | 分组传输方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112350798A true CN112350798A (zh) | 2021-02-09 |
Family
ID=74366790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910730648.7A Pending CN112350798A (zh) | 2019-08-08 | 2019-08-08 | 分组传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112350798A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500620A (zh) * | 2021-11-17 | 2022-05-13 | 武汉领普科技有限公司 | 数据处理方法、装置及存储介质 |
WO2022178818A1 (zh) * | 2021-02-26 | 2022-09-01 | 华为技术有限公司 | 一种前向纠错码fec的设计方法和相关设备 |
WO2023098430A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种数据包的处理方法、通信装置及通信系统 |
-
2019
- 2019-08-08 CN CN201910730648.7A patent/CN112350798A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022178818A1 (zh) * | 2021-02-26 | 2022-09-01 | 华为技术有限公司 | 一种前向纠错码fec的设计方法和相关设备 |
CN114500620A (zh) * | 2021-11-17 | 2022-05-13 | 武汉领普科技有限公司 | 数据处理方法、装置及存储介质 |
CN114520821A (zh) * | 2021-11-17 | 2022-05-20 | 武汉领普科技有限公司 | 数据处理方法、装置及存储介质 |
CN114520821B (zh) * | 2021-11-17 | 2024-05-03 | 武汉领普科技有限公司 | 数据处理方法、装置及存储介质 |
WO2023098430A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 一种数据包的处理方法、通信装置及通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8996946B2 (en) | Application of fountain forward error correction codes in multi-link multi-path mobile networks | |
KR101995221B1 (ko) | 통신 시스템에서 패킷 송수신 장치 및 방법 | |
ES2389388T3 (es) | Método y dispositivo para transmitir y recibir paquetes de datos | |
CN112350798A (zh) | 分组传输方法和装置 | |
US20220077875A1 (en) | Data Transmission Method, Encoding Method, Decoding Method, Apparatus, Device, and Storage Medium | |
US8819513B2 (en) | Lost real-time media packet recovery | |
CN108155974A (zh) | 用于在通信系统中接收传输分组的方法和装置 | |
WO2015135120A1 (zh) | 端到端的网络QoS控制系统、通信设备和端到端的网络QoS控制方法 | |
US11936475B2 (en) | Method, apparatus, and system for improving reliability of data transmission involving an ethernet device | |
US20130097474A1 (en) | Apparatus and method for transmitting/receiving forward error correction packet in mobile communication system | |
US8369226B2 (en) | Method and device of processing a generic framing procedure frame | |
US7215683B2 (en) | Method and apparatus for protecting against packet losses in packet-oriented data transmission | |
CN109561023B (zh) | 传输组播报文的方法、装置和系统 | |
JP3886811B2 (ja) | 通信システム、通信方法、送信端末、受信端末及び中継機器 | |
US9473264B2 (en) | Apparatus and method for transmitting/receiving packet in communication system | |
JP2019075681A (ja) | 伝送装置、伝送方法および処理装置 | |
US11251905B2 (en) | Method for receiving code block stream, method for transmitting code block stream, and communications apparatus | |
JP5509438B2 (ja) | データ転送装置及びデータ転送システム | |
US11368246B2 (en) | Method and device for transmitting or receiving broadcast service in multimedia service system | |
WO2022105753A1 (zh) | 网络数据编码传输方法及装置 | |
WO2021017890A1 (zh) | 一种通信方法和通信设备 | |
US20230275691A1 (en) | Block processing method, node, and medium | |
WO2015169049A1 (zh) | 一种微波传输的容错性方法和装置、计算机可读存储介质 | |
JP7346662B2 (ja) | データ送信方法および転送デバイス | |
US8787151B2 (en) | N+N protection switching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |