CN116685952A - 一种数据传输方法和装置 - Google Patents

一种数据传输方法和装置 Download PDF

Info

Publication number
CN116685952A
CN116685952A CN202180045793.7A CN202180045793A CN116685952A CN 116685952 A CN116685952 A CN 116685952A CN 202180045793 A CN202180045793 A CN 202180045793A CN 116685952 A CN116685952 A CN 116685952A
Authority
CN
China
Prior art keywords
messages
crc
fec
data stream
data
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
Application number
CN202180045793.7A
Other languages
English (en)
Inventor
刘勇
王豪
仇岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116685952A publication Critical patent/CN116685952A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种数据传输方法和装置,能够降低数据传输的时延。该方法可以包括:生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码;向接收端发送该第一数据流。

Description

一种数据传输方法和装置 技术领域
本申请涉及通信技术领域,并且更具体地,涉及一种数据传输方法和装置。
背景技术
现有的通信系统通常采用循环冗余校验(cyclic redundancy check,CRC)技术加前向纠错(forward error correction,FEC)编码技术进行数据传输。
以遵循统一总线(unified bus,UB)协议的通信系统为例,发送端在数据链路层生成多个报文,该多个报文中的至少一个报文中包括CRC码;该数据链路层将该多个报文发送至物理层的物理编码子层;该物理编码子层基于该多个报文,生成数据流,该数据流包括该多个报文和FEC码,该FEC码用于对该多个报文进行FEC检测;该物理编码子层将该数据流发送至接收端。
相应地,接收端在物理编码子层基于该FEC码对该多个报文进行FEC检测;若该多个报文的FEC检测结果正确,则该物理编码子层将该多个报文发送至数据链路层进行CRC校验;若该多个报文的FEC检测结果错误,则该物理编码子层对该多个报文进行FEC纠错得到校正后的多个报文,并将该校正后的多个报文发送至该数据链路层进行CRC校验。
然而,由于接收端只能在接收到该多个报文和该FEC码之后才会对该多个报文进行FEC检测,而接收该多个报文和该FEC码的过程会占用较长的时间,因此,数据传输的时延较大。
发明内容
本申请提供一种数据传输方法和装置,能够降低数据传输的时延。
第一方面,本申请提供一种数据传输方法,该方法可以包括:生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码;向接收端发送该第一数据流。
需要说明的是,该多个第一CRC码中的每至少一个CRC码用于(在物理编码子层)对该至少一个CRC码对应的第一报文进行CRC校验。该第一报文中包括的第二CRC码用于(在数据链路层)对该第一报文中的报文头和该第一报文中的有效数据进行CRC校验,或者该第一报文中包括的第二CRC码用于对该第一报文中的报文头、该第一报文中的有效数据和该第一报文之前的至少一个不包含第二CRC码的第一报文进行CRC校验。
在现有技术中,发送端生成多个第一报文的FEC码,并向接收端发送该多个第一报文和该FEC码。接收端只有在接收到该多个第一报文和该FEC码之后,才可以基于该FEC码对该多个第一报文进行FEC译码(包括FEC检测和/或FEC纠错);当该多个第一报文的FEC检测结果正确时,向接收端的数据链路层发送该多个第一报文;当该多个第一报文的FEC检测结果错误时,对该多个第一报文进行FEC纠错之后,向接收端的数据链 路层发送校正后的多个第一报文。然而,由于接收该多个第一报文和该FEC码的过程需要占用较长的时间,因此,数据传输的时延较大。
采用本申请实施例提供的数据传输方法,发送端生成的第一数据流中包括该多个第一报文和多个第一CRC码,其中,该多个第一CRC码中的每至少一个CRC码用于对该至少一个CRC码对应的第一报文进行CRC校验。这样,接收端每接收到至少一个第一CRC码和该至少一个第一CRC码对应的第一报文之后,就可以基于该至少一个第一CRC码对该至少一个第一CRC码对应的第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该至少一个第一CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
在一种可能的实现方式中,每N个第一报文后可以插入有M个第一CRC码,M和N均为大于0的整数。
在一种可能的实现方式中,该N个第一报文的长度与该N个第一报文后插入的M个第一CRC码的长度之和可以小于1个码字的长度。
本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
采用本申请提供的数据传输方法,由于每N个第一报文后可以插入有M个第一CRC码,且该N个第一报文的长度与该N个第一报文后插入的M个第一CRC码的长度之和可以小于1个码字的长度,因此,接收端每接收到N个第一报文和该N个第一报文后插入的M个第一CRC码,就可以基于该M个第一CRC码对该N个第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该N个第二CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该N个CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
可选地,每N个第一报文后插入的M个第一CRC码的起始位置可以与该N个第一报文中的每个第一报文的起始位置对齐,也就是说,当该M个第一CRC码的总长度小于1个第一报文的长度时,可以通过填充数据,如填充“0”的方式,使该M个第一CRC码的长度与该填充比特的长度之和可以等于第一报文的长度的整数倍。
可选地,本申请对M和N的取值不做限定。
在一种可能的实现方式中,M可以等于N。例如:每2个第一报文之后可以插入有2个第一CRC码,该2个第一报文与该2个第一CRC码一一对应,即该2个第一CRC码中的每个第一CRC码是基于该每个第一CRC码对应的第一报文生成的,用于对该每个第一报文进行CRC校验。
在另一种可能的实现方式中,N可以大于M。例如:每2个第一报文之后可以插入有1个第一CRC码,即该1个第一CRC码是基于该2个第一报文生成的,用于对该2个第一报文进行CRC校验。
采用本申请实施例供的数据传输方法,N大于M时,能够减少CRC的计算次数,从 而能够节约CRC的计算资源和计算时间。
在又一种可能的实现方式中,N可以小于M。例如:每1个第一报文之后可以插入有2个CRC码,即该2个第一CRC码是基于该1个第一报文生成的,用于对该1个第一报文进行CRC校验。
采用本申请实施例供的数据传输方法,N小于M时,能够提高CRC的校验能力
可选地,本申请对该多个第一报文中的包括第二CRC码的第一报文的数量不做限定。
在一种可能的实现方式中,该多个第一报文中的部分第一报文可以包括第二CRC码。例如:该多个第一报文中位于首部的第一报文和位于尾部的第一报文中可以包括第二CRC码。
采用本申请实施例供的数据传输方法,该多个第一报文中只有首部和尾部的第一报文中包括第二CRC码,其余位置的第一报文中的有效载荷字段可以全部用于承载有效数据,能够提高有效数据的传输效率。
在另一种可能的实现方式中,该多个第一报文中的每个第一报文中可以包括第二CRC码,该每个第一报文中的第二CRC码是基于该每个第一报文中的报文头和有效数据生成的,用于对该每个第一报文中的报文头和有效数据进行CRC校验。
采用本申请实施例供的数据传输方法,该多个第一报文中的每个第一报文中包括第二CRC码,能够提高CRC的校验能力。
在一种可能的实现方式中,该发送端可以在数据链路层获取多个目标报文;在该多个目标报文中的至少一个目标报文中添加第二CRC码,得到该多个目标报文一一对应的多个第一报文。
可选地,该发送端可以通过多种方式向接收端指示该发送端发送的报文的传输模式,本申请对此不做限定。
在一种可能的实现方式中,该第一数据流中还包括第一对齐字,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式。即该发送端可以在当前传输周期向接收端指示当前传输周期内发送的报文的传输模式。
在另一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还包括第一对齐字,该第一对齐字用于指示第二传输周期内发送的报文的传输模式为第一传输模式,该第二传输周期为该第一传输周期的下一个传输周期。即该发送端可以在当前传输周期向接收端指示当前传输周期的下一个传输周期内发送的报文的传输模式。
在一种可能的实现方式中,该第一数据流中还包括第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。
采用本申请实施例提供的数据传输方法,当CRC校验结果出错时,无需进行重传,可以通过对该多个第一报文和第一FEC码进行FEC译码,以定位出错位置并对错误进行校正,能够减少重传带来的时延。
可选地,该发送端可以对该多个第一报文和该多个第一CRC进行FEC编码,得到该第一FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC进行FEC译码。
在一种可能的实现方式中,在该生成第一数据流之前,该方法还包括:在确定该多个第一报文的数据量小于或等于预设的第一阈值的情况下,确定该多个第一报文的传输模式为该第一传输模式。也就是说,该发送端可以监测该多个第一报文的数据量;当该多个第 一报文的数据量小于或等于该第一阈值时,确定该多个第一报文的传输模式为该第一传输模式。
可选地,本申请中所述的传输模式可以包括该第一传输模式或第二传输模式。其中,该第一传输模式可以理解为小流量模式,也称为short模式,该第二传输模式可以理解为大流量模式,也称为long模式。
采用本申请提供的数据传输方法,在小流量模式下,第一数据流中包括多个第一报文和多个第一CRC码,即通过增加多个第一CRC码的传输,使得接收端在每接收到至少一个第一CRC码和该至少一个第一CRC码对应的第一报文之后,就可以基于该至少一个第一CRC码对该至少一个第一CRC码对应的第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该至少一个第一CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
可选地,该方法还包括:生成第二数据流,该第二数据流中包括多个第二报文,该多个第二报文中的至少一个第二报文中包括第三CRC码;向该接收端发送该第二数据流。
需要说明的是,该第二数据路中包括多个第二报文,但不包括与该多个第二报文中的一个或多个第二报文对应的第四CRC码,即P个第二报文后不存在插入的Q第四CRC码,其中,P和Q均为大于0的整数。
采用本申请提供的数据传输方法,在大流量模式下,该第二数据流仅包括该多个第二报文,相比于小流量模式,第二数据流的生成复杂度较低、生成速度更快。
可选地,在该发送端生成第二数据流之前,该方法100还可以包括:该发送端在确定该多个第二报文的数据量大于该第一阈值的情况下,确定该多个第二报文的传输模式为该第二传输模式。也就是说,该发送端可以监测该多个第二报文的数据量;当该多个第二报文的数据量大于该第一阈值时,确定该多个第二报文的传输模式为该第二传输模式。
可选地,该第二数据流中还可以包括第二对齐字,该第二对齐字用于指示该多个第二报文的传输模式为该第二传输模式。
可选地,该第二数据流是在第一传输周期内发送的,该第二数据流中还可以包括第二对齐字,该第二对齐字用于指示第二传输周期内发送的报文的传输模式为第二传输模式,该第二传输周期为该第一传输周期的下一个传输周期。
可选地,该第二数据流中还可以包括第二FEC码,该第二FEC码用于对该多个第二报文进行FEC译码。
可选地,上述多个第一报文和上述多个第二报文可以相同也可以不同,本申请对此不做限定。
在一种可能的实现方式中,在该多个第一报文和该多个第二报文相同的情况下,该发送端可以基于该多个第一报文的数据量,确定该多个第一报文的传输模式;当该多个报文的传输模式为该第一传输模式时,生成上述第一数据流;当该多个第一报文的传输模式为该第二传输模式时,生成上述第二数据流。
采用本申请实施例提供的数据传输方法,发送端可以灵活根据该多个第一报文的数据 量,决定该多个第一报文的传输模式,当数据量较大时采用第二传输模式,不会增加外的传输数据量,能够优先保证多个第一报文的传输效率,当数据量较小时采用第一传输模式,通过增加多个第一CRC的传输,能够减少数据传输的时延。
第二方面,本申请还提供一种数据传输方法,该方法可以包括:从发送端接收第一数据流,该第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测;当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文;当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC检测。
可选地,该多个第一报文中的至少一个第一报文中可以包括第二CRC码。
需要说明的是,该多个第一CRC码中的每至少一个CRC码用于(在物理编码子层)对该至少一个CRC码对应的第一报文进行CRC校验。该第一报文中包括的第二CRC码用于(在数据链路层)对该第一报文中的报文头和该第一报文中的有效数据进行CRC校验,或者该第一报文中包括的第二CRC码用于对该第一报文中的报文头、该第一报文中的有效数据和该第一报文之前的至少一个不包含第二CRC码的第一报文进行CRC校验。
在现有技术中,发送端生成多个第一报文的FEC码,并向接收端发送该多个第一报文和该FEC码。接收端只有在接收到该多个第一报文和该FEC码之后,才可以基于该FEC码对该多个第一报文进行FEC译码(包括FEC检测和/或FEC纠错);当该多个第一报文的FEC检测结果正确时,向接收端的数据链路层发送该多个第一报文;当该多个第一报文的FEC检测结果错误时,对该多个第一报文进行FEC纠错之后,向接收端的数据链路层发送校正后的多个第一报文。然而,由于接收该多个第一报文和该FEC码的过程需要占用较长的时间,因此,数据传输的时延较大。
采用本申请实施例提供的数据传输方法,发送端生成的第一数据流中包括该多个第一报文和多个第一CRC码,其中,该多个第一CRC码中的每至少一个CRC码用于对该至少一个CRC码对应的第一报文进行CRC校验。这样,接收端每接收到至少一个第一CRC码和该至少一个第一CRC码对应的第一报文之后,就可以基于该至少一个第一CRC码对该至少一个第一CRC码对应的第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该至少一个第一CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
在一种可能的实现方式中,在对该多个第一报文和该多个第一CRC码进行FEC检测之后,该方法还包括:当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,向该数据链路层发送该多个第一报文;当该多个第一报文和该多个第一CRC码的FEC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
采用本申请实施例供的数据传输方法,当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,向该数据链路层发送该多个第一报文,能够减少FEC纠错所需的时延, 从而提高数据传输的时延。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,该N个第一报文后插入的M个第一CRC码用于对该N个第一报文进行CRC校验,M和N均为大于0的整数。
采用本申请实施例供的数据传输方法,接收端每接收到N个第一报文和该N个第一报文后插入的M个第一CRC码,就可以基于该M个第一CRC码对该N个第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该N个第二CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该N个CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
在一种可能的实现方式中,在当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文之前,该方法还包括:基于第一对齐字,确定该多个第一报文的传输模式为第一传输模式,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式;在确定该多个第一报文的传输模式为该第一传输模式的情况下,对该多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
在一种可能的实现方式中,该第一数据流中还包括该第一对齐字。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一对齐字是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
在一种可能的实现方式中,该方法还包括:从该发送端接收第二数据流,该第二数据流中包括多个第二报文和第二FEC码,该第二FEC码用于对该多个第二报文进行FEC检测;当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文。
在一种可能的实现方式中,在当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文之前,该方法还包括:基于第二对齐字,确定该多个第二报文的传输模式为第二传输模式;在确定该多个第二报文的传输模式为该第二传输模式的情况下,对该多个第二报文进行FEC检测。
第三方面,本申请还提供一种数据传输方法,该方法可以包括:发送端基于多个报文1数据量,确定该多个报文1的传输模式为第一传输模式,该多个报文1中的至少一个报文1中包括第二CRC码;在该多个报文1的传输模式为该第一传输模式的情况下,该发送端在每N个报文1后插入M个第一CRC码,得到数据流1;该发送端在该数据流1之后添加第一FEC码,得到数据流2,该第一FEC码用于对该数据流1进行FEC译码;该发送端向接收端发送目标数据流1,该目标数据流1包括该数据流2。
可选地,本申请实施例中所述的传输模式可以包括该第一传输模式或第二传输模式。
需要说明的是,本申请中所述的第一传输模式可以理解为小流量模式,也称为short模式,本申请中所述的第二传输模式可以理解为大流量模式,也称为long模式。
在一种可能的实现方式中,该发送端可以基于该多个报文1数据量和预设的第一阈值,确定该多个报文1的传输模式为该第一传输模式。
例如:若该多个报文1的数据量小于或等于该第一阈值,该发送端可以确定该多个报 文1的传输模式为该第一传输模式。
可选地,该多个报文1中的至少一个报文1中包括第二CRC码。
在一种可能的实现方式中,在发送端基于多个报文1数据量,确定该多个报文1的传输模式为第一传输模式之前,该方法还包括:该发送端获取多个目标报文;在该多个目标报文中的至少一个目标报文中添加第二CRC码,得到与该多个目标报文一一对应的该多个报文1。
在一种可能的实现方式中,该发送端可以在该多个目标报文中的每个目标报文中添加CRC码,得到该多个目标报文一一对应的该多个报文1。
在另一种可能的实现方式中,该发送端可以在该多个目标报文中部分目标报文(如位于该多个目标报文首部的目标报文和位于该多个目标报文尾部的目标报文)中添加第二CRC码,得到该部分目标报文对应的报文1,该多个目标报文中除该部分目标报文外剩余的目标报文直接作为报文1。
需要说明的是,本申请中所述的报文也可以为flit,或被称为flit,是数据链路层与物理层之间传输数据的基本单位。
需要说明的是,该发送端可以在数据链路层生成该第二CRC码。
在一种可能的实现方式中,该目标数据流1还包括第一对齐字,该第一对齐字用于指示该多个报文1的传输模式为该第一传输模式。
在另一种可能的实现方式中,该目标数据流1是在传输周期T1内发送的,该目标数据流还可以包括第一对齐字,该第一对齐字用于指示传输周期T2内发送的报文的传输模式为该第一传输模式,其中,T2为T1的下一个传输周期。
需要说明的是,本申请中所述的数据流2的长度小于1个码字(codeword)的长度。本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
可选地,该方法还可以包括:该发送端基于多个报文2数据量,确定该多个报文2的传输模式为第二传输模式;在该多个报文2的传输模式为该第二传输模式的情况下,该发送端在该多个报文2之后添加第二FEC码,得到数据流3,该多个报文2中的至少一个报文2中包括第三CRC码;该发送端向该接收端发送目标数据流2,该目标数据流2包括该数据流3。
可选地,该目标数据流2还可以包括第二对齐字,该第二对齐字用于指示该多个报文2的传输模式为该第二传输模式。
可选地,上述多个报文1和上述多个报文2可以相同也可以不同,本申请对此不做限定。
第四方面,本申请还提供一种数据传输方法,该方法可以包括:接收端从发送端接收目标数据流1,该目标数据流1包括多个报文1、多个第一CRC码和第一FEC码,该多个报文1中的至少一个报文1中包括第二CRC码;该接收端基于第一对齐字,确定该多个报文1的传输模式为第一传输模式,该第一对齐字用于指示该多个报文1的传输模式为该第一传输模式;在该多个报文1的传输模式为该第一传输模式的情况下,该接收端基于该多个第一CRC码中的每至少一个第一CRC码对该至少一个第一CRC码对应的报文1进行CRC校验;每当该至少一个第一CRC码对应的报文1的CRC校验结果正确时,该 接收端可以向数据链路层发送该至少一个第一CRC码对应的报文1。
需要说明的是,该多个报文1的长度、该多个第一CRC码的长度与第一FEC码的长度之和小于1个码字的长度。本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
可选地,该接收端可以通过多种方式获取该第一对齐字,本申请对此不做限定。
在一种可能的实现方式中,该目标数据流1中还包括该第一对齐字。
在一种可能的实现方式中,该第目标数据流1是在第一传输周期内发送的,该第一对齐字是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
在另一种可能的实现方式中,若该多个报文1的传输模式为该第一传输模式,该第二数据流包括该多个报文1。
可选地,当该多个第一CRC码中的任一第一CRC码对应的报文1的CRC校验结果错误时,该接收端对该多个报文1和该多个第一CRC码进行FEC检测。
进一步地,当该多个报文1和该多个第一CRC码的FEC检测结果正确时,该接收端向该数据链路层发送该多个报文1;当该多个报文1和该多个第一CRC码的FEC检测结果错误时,该接收端对该多个报文1和该多个第一CRC码进行FEC纠错,得到校正后的多个报文1,并向该数据链路层发送该校正后的多个报文1。
可选地,在该接收端的数据链路层得到多个报文1之后,可以基于该至少一个报文1中的每个报文1中包括的第二CRC码对该每个报文1中的报文头和该每个报文1中的有效数据进行CRC校验,或者对该每个报文1中的报文头、该每个报文1中的有效数据和该每个报文1之前的至少一个不包含第二CRC码的报文1进行CRC校验。
可选地,该方法还可以包括:接收端从发送端接收目标数据流2,该目标数据流2包括多个报文2和第二FEC码,该多个报文2中的至少一个报文2中包括第三CRC码;该接收端基于第二对齐字,确定该多个报文2的传输模式为第二传输模式,该第二对齐字用于指示该多个报文2的传输模式为该第二传输模式;在该多个报文2的传输模式为该第二传输模式的情况下,该接收端对该多个报文2进行FEC检测;当该多个报文2的FEC检测结果正确时,该接收端向该数据链路层发送该多个报文2;当该多个报文2的FEC检测结果错误时,该接收端对该多个报文2进行FEC纠错,并向该数据链路层发送校正后的多个报文2。
可选地,在该接收端的数据链路层得到多个报文2之后,可以基于该至少一个报文2中的每个报文2中包括的第三CRC码对该每个报文2中的报文头和该每个报文2中的有效数据进行CRC校验,或者对该每个报文2中的报文头、该每个报文2中的有效数据和该每个报文2之前的至少一个不包含第三CRC码的报文2进行CRC校验。
可选地,上述多个报文1和上述多个报文2可以相同也可以不同,本申请对此不做限定。
第五方面,本申请还提供一种数据传输装置,该装置可以包括:处理器和通信接口,该处理器和该通信接口耦合,该处理器用于:生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码;通过该通信接口向接收端发送该第一数据流。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,M和N均为大于0的整数。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还包括第一对齐字,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还包括第一对齐字,该第一对齐字用于指示第二传输周期内发送的报文的传输模式,该第二传输周期为该第一传输周期的下一个传输周期。
在一种可能的实现方式中,该第一数据流中还包括第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。
在一种可能的实现方式中,该多个第一报文的数据量小于或等于预设的第一阈值。
在一种可能的实现方式中,该处理器还用于:生成第二数据流,该第二数据流中包括多个第二报文,该多个第二报文中的至少一个第二报文中包括第三CRC码;通过该通信接口向该接收端发送该第二数据流。
第六方面,本申请还提供一种数据传输装置,该装置可以包括:处理器和通信接口,该处理器和该通信接口耦合,该处理器用于:通过该通信接口从发送端接收第一数据流,该第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测;当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文;当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC检测。
在一种可能的实现方式中,在对该多个第一报文和该多个第一CRC码进行FEC检测之后,该处理器还用于:当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,向该数据链路层发送该多个第一报文;当该多个第一报文和该多个第一CRC码的FEC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,该N个第一报文后插入的M个第一CRC码用于对该N个第一报文进行CRC校验,M和N均为大于0的整数。
在一种可能的实现方式中,在当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文之前,该处理器还用于:基于第一对齐字,确定该多个第一报文的传输模式为第一传输模式,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式;在确定该多个第一报文的传输模式为该第一传输模式的情况下,对该多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还包括该第一对齐字。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一对齐字 是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
在一种可能的实现方式中,该处理器还用于:通过该通信接口从该发送端接收第二数据流,该第二数据流中包括多个第二报文和第二FEC码,该第二FEC码用于对该多个第二报文进行FEC检测;当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文。
在一种可能的实现方式中,在当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文之前,该处理器还用于:基于第二对齐字,确定该多个第二报文的传输模式为第二传输模式;在确定该多个第二报文的传输模式为该第二传输模式的情况下,对该多个第二报文进行FEC检测。
第七方面,本申请还提供一种数据传输装置,该装置可以包括用于实现上述各个方面及其各种可能的实现方式中所述的方法的单元。
第八方面,本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被至少一个处理器执行时用于实现上述各个方面及其任意可能的实现方式中所述的方法。
第九方面,本申请还提供一种计算机程序产品,当该计算机程序产品被至少一个处理器执行时用于实现上述各个方面及其任意可能的实现方式中所述的方法。
本申请提供的数据传输装置、计算机存储介质和计算机程序产品均用于执行上文所提供的数据传输方法,因此,其所能达到的有益效果可参考上文所提供的数据传输方法中的有益效果,此处不再赘述。
附图说明
图1是串行器/解串器技术的工作原理示意图;
图2是现有的数据传输方法的示意性流程图;
图3是本申请实施例提供的数据传输方法100的流程示意图;
图4是本申请实施例提供的第一数据流的示意图;
图5是本申请实施例提供的第一数据流的另一示意图;
图6是本申请实施例提供的第一报文的示意图;
图7是本申请实施例提供的目标报文的示意图;
图8是本申请实施例提供的第一数据流的又一示意图;
图9是本申请实施例提供的第一数据流的又一示意图;
图10是本申请实施例提供的第二数据流的示意图;
图11是本申请实施例提供的数据传输方法200的流程示意图;
图12是本申请实施例提供的数据传输方法300的流程示意图;
图13是本申请实施例提供的数据传输方法400的流程示意图;
图14是本申请实施例提供的数据传输方法的流程示意图;
图15是本申请实施例提供的数据传输装置500的示意性框图;
图16是本申请实施例提供的数据传输装置600的示意性框图;
图17是本申请实施例提供的数据传输装置700的示意性框图;
图18是本申请实施例提供的数据传输装置800的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请中,“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
在本申请中,“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的,等同于广义上的联通。
在本申请中,“示例的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个报文是指两个或两个以上数量的报文。
首先对本申请实施例中提到的部分术语做一下介绍。
1.串行器(SERializer,SER)/解串器(DESerializer,DES)技术,简称SERDES技术
SERDES技术是指:在发送端多路低速并行信号被串行器转换成一路高速串行信号,并通过一根传输线(如电缆线)将高速串行信号传输至接收端。
相应地,在接收端该路高速串行信号又重新被解串器转换成多路低速并行信号。
示例的,图1示出了SERDES传输的工作原理示意图。图1中示出了传输方向1的数据传输过程和传输方向2的数据传输过程,传输方向1和传输方向2互逆。
(1)传输方向1的数据传输过程:在发送端1,并行的信号1和信号2被串行器1转换为串行信号1,并通过传输线1传输至接收端1;相应地,在该接收端1,该串行信号1又被解串器1转换为并行的信号1和信号2。
(2)传输方向2的数据传输过程:在发送端2,并行的信号3和信号4被串行器2转换为串行信号2,并通过传输线2传输至接收端2;相应地,在该接收端2,该串行信号2又被解串器2转换为并行的信号3和信号4。
在一种可能的实现方式中,发送端1可以应用于数据传输设备1,接收端1可以应用于数据传输设备2,即数据传输设备1和数据传输设备2之间可以通过SERDES进行传输方向1上的数据传输。类似地,发送端2可以应用于数据传输设备3,接收端2可以应用于数据传输设备4,即数据传输设备3和数据传输设备4之间可以通过SERDES进行传输方向2上的数据传输。
在另一种可能的实现方式中,发送端1和接收端2可以应用于数据传输设备1,接收端1和发送端2可以应用于数据传输设备2,即数据传输设备1和数据传输设备2之间可以通过SERDES进行双向数据传输。
需要说明的是,时钟定时对于使用串行解串器的应用来说也极为重要,SERDES在信号中内嵌时钟,使得发送端和接收端在内的所有组件可以根据信号中内嵌的时钟实现时钟同步。
2.UB协议
Unified Bus协议为芯片SERDES接口协议,支持数据中心通用芯片的SERDES连接场景,如外设扩展、处理器直连、异构直连、网络连接及内存扩展等场景。通过UB协议,数据中心可以构建出统一协议的网络。
UB协议栈包括以下6层,其中,该协议栈的层次可灵活配置,各场景和应用可以根据实际情况选择所需协议层。
(1)物理层(Physical layer):定义各场景物理连接的规则,其中,物理层包括物理编码子层(Physical Codec Sub-layer,PCS)用于对数据进行FEC编码或FEC解码;
(2)数据链路层(Data link layer):定义协议点对点传输方式;
(3)网络层(Network layer):描述网络组成方式;
(4)传输层(Transport layer):定义网络传输方式;
(5)事务层(Transaction layer):定义传输命令及一致性协议;
(6)功能层(Function layer):提供数据处理能力。
3.前向纠错(forward error correction,FEC)
FEC是一种广泛应用于通信系统中的编码技术。通过FEC可以以很小的冗余开销代价,有效降低系统的误码率(bit error rate,BER),延长传输距离,实现降低系统成本的目的,FEC的纠错能力越强,编解码时引入的时延就越大。
以采用里德所罗门(Reed-Solomon,RS)算法编码,即RS编码为例,RS编码是一种纠错能力很强的前向纠错的信道编码,RS编码既可以纠正随机错误,又可以纠正突发错误。RS编码是指信号在被送入传输信道之前预先按一定的算法进行编码处理,加入带有信号本身特征的冗余码,在接收端按照相应算法对接收到的信号进行检测,从而找出在通过信道传输的过程中产生的误码,并将其纠正的技术。
示例的,发送端对10个原始数据包进行FEC编码后会增加2个校验包,得到12个包,通过信道向接收端发送这12个包。接收端可以按照相应算法对接收到的12个数据包进行检测,并定位这12个数据包在传输过程正产生的误码,并可以进一步通过纠错算法对误码进行纠错。。
4.循环冗余校验(cyclic redundancy check,CRC)
CRC是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
示例的,以信息序列为110011,生成多项式为G(x)=x 4+x 3+1,即多项式序列为11001为例,将要发送的信息序列左移4位,生成新的序列1100110000;按模2算法,将新的序列除以多项式序列11001,得到余数1001,即校验序列;将校验序列1001加到信息序列110011之后,得到发送端的传输序列1100111001。相应地,接收端对传输序列1100111001中的信息序列11001执行类似的模2算法,若得到的校验序列也为1001,则确定信息序列接收正确。
首先请参考图2,图2示出了现有的数据传输方法的流程示意图,该数据传输方法可以应用于通信系统,该通信系统包括发送端和接收端,该发送端和该接收端之间可以进行数据传输。如图2所示,该数据传输方法可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图2所示的执行顺序。
在发送端:
(1)CRC生成模块生成多个报文,该多个报文中的至少一个报文包括CRC码。
(2)该CRC生成模块向FEC编码模块发送该多个报文。
(3)该FEC编码模块对该多个报文进行FEC编码,得到FEC码。
(4)该FEC编码模块向并串转换模块发送该多个报文和该FEC码。
(5)该并串转换模块对多个报文和该FEC码进行并串转换,得到数据流,该数据流包括该多个报文和该FEC码。
(6)该并串转换模块向接收端发送该数据流。
在接收端:
(7)串并转换模块对该数据流进行串并转换,得到该多个报文和该FEC码。
(8)该串并转换模块向FEC检测模块发送该多个报文和该FEC码。
(9)该FEC检测模块基于该FEC码对该多个报文进行FEC检测。当该多个报文的FEC检测结果正确时,则继续执行步骤(10);当该多个报文的FEC检测结果错误时,则继续执行步骤(11)~(13)。
(10)该FEC检测模块向CRC校验模块发送该多个报文。
(11)该FEC检测模块向FEC纠错模块发送该数据流。
(12)该FEC纠错模块对该多个报文进行FEC纠错,得到校正后的多个报文。
(13)该FEC纠错模块向CRC校验模块发送该校正后的多个报文。
(14)该CRC校验模块对该多个报文进行CRC校验。
示例的,以上述数据传输方法所应用的通信系统遵循UB协议为例,上述CRC生成模块和CRC校验模块位于UB协议的数据链路层,上述FEC编码模块、并串转换模块、串并转换模块、FEC检测模块和FEC纠错模块位于UB协议的物理层,其中,FEC编码模块、FEC检测模块和FEC纠错模块位于物理层中的物理编码子层。
然而,由于在上述步骤(9)中,接收端只能在接收到该多个报文和该FEC码之后才会对该多个报文进行FEC检测,而接收该多个报文和该FEC码的过程会占用较长的时间,因此,数据传输的时延较大。
基于现有的数据传输方法中存在的问题,本申请提供一种数据传输方法和装置,能够降低数据传输的时延。
接下来请参考图3,图3示出了本申请实施例提供的数据传输方法100的流程示意图。如图3所示,该方法100可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图3所示的执行顺序。
可选地,该方法100可以应用于通信系统中的发送端,该通信系统中还包括接收端,该发送端和该接收端之间可以进行数据传输。可选地,该通信系统可以遵循各种数据传输协议,本申请对此不做限定。示例的,该数据传输协议可以为UB协议。
S101.发送端生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码。
需要说明的是,本申请中所述的报文也可以为flit,或被称为flit,是数据链路层与物理层之间传输数据的基本单位。
在一种可能的实现方式中,每N个第一报文后可以插入有M个第一CRC码,M和N 均为大于0的整数。
在一种可能的实现方式中,该N个第一报文的长度与该N个第一报文后插入的M个第一CRC码的长度之和可以小于1个码字的长度。
本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
可选地,每N个第一报文后插入的M个第一CRC码的起始位置可以与该N个第一报文中的每个第一报文的起始位置对齐,也就是说,当该M个第一CRC码的总长度小于1个第一报文的长度时,可以通过填充数据,如填充“0”的方式,使该M个第一CRC码的长度与该填充比特的长度之和可以等于第一报文的长度的整数倍。
例如:以1个第一报文后插入1个第一CRC码,该第一报文的长度为160比特(bit),该第一CRC码的长度为32bit为例,可以通过在32bit的第一CRC码之后填充128bit的“0”,实现该第一CRC码的长度与该填充数据的长度之和等于该第一报文的长度的整数倍。
可选地,本申请对M和N的取值不做限定。
在一种可能的实现方式中,M可以等于N。例如:每2个第一报文之后可以插入有2个第一CRC码,该2个第一报文与该2个第一CRC码一一对应,即该2个第一CRC码中的每个第一CRC码是基于该每个第一CRC码对应的第一报文生成的,用于对该每个第一报文进行CRC校验。
示例的,图4示出了本申请实施例提供的第一数据流的示意图。如图4所示,该第一数据流包括多个第一报文(如图4中示出的第一报文1和第一报文2)和多个第一CRC码(如图4中示出的第一CRC码1和第一CRC码2),该第一报文1和该第一报文2之后插入有该第一CRC码1和该第一CRC码2。该第一CRC码1是基于该第一报文1生成的,用于对该第一报文1进行CRC校验,该第一CRC码2是基于该第一报文2生成的,该第一CRC码2用于对该第一报文2进行CRC校验。
需要说明的是,图4中仅以该第一报文1和该第一报文2之后插入该第一CRC码1和该第一CRC码2形成一个数据组1为例进行介绍,该第一数据流中可以包括多个类似这样的数据组1,本申请在此不一一列举。
在另一种可能的实现方式中,N可以大于M。例如:每2个第一报文之后可以插入有1个第一CRC码,即该1个第一CRC码是基于该2个第一报文生成的,用于对该2个第一报文进行CRC校验。
采用本申请实施例供的数据传输方法,N大于M时,能够减少CRC的计算次数,从而能够节约CRC的计算资源和计算时间。
示例的,图5示出了本申请实施例提供的第一数据流的另一示意图。如图5所示,该第一数据流包括多个第一报文(如图5中示出的第一报文1和第一报文2)和多个第一CRC码(如图5中示出的第一CRC码1)。该第一报文1和该第一报文2之后插入有该第一CRC码1,该第一CRC码1是基于该第一报文1和该第一报文2生成的,用于对该第一报文1和该第一报文2进行CRC校验。
需要说明的是,图5中仅以该第一报文1和该第一报文2之后插入该第一CRC码1形成一个数据组2为例进行介绍,该第一数据流中可以包括多个类似这样的数据组2,本申请在此不一一列举。
在又一种可能的实现方式中,N可以小于M。例如:每1个第一报文之后可以插入有2个CRC码,即该2个第一CRC码是基于该1个第一报文生成的,用于对该1个第一报文进行CRC校验。
采用本申请实施例供的数据传输方法,N小于M时,能够提高CRC的校验能力。
可选地,本申请对该多个第一报文中的包括第二CRC码的第一报文的数量不做限定。
在一种可能的实现方式中,该多个第一报文中的部分第一报文可以包括第二CRC码。例如:该多个第一报文中位于首部的第一报文和位于尾部的第一报文中可以包括第二CRC码。
示例的,以该第一数据流中包括3个第一报文为例,图6示出了本申请实施例提供的第一报文的示意图。如图6所示,该3个第一报文分别为第一报文1、第一报文2和第一报文3,该第一报文1包括报文头1、有效数据1和第二CRC码1,该第一报文2包括报文头2和有效数据2,该第一报文3包括报文头3、有效数据3和第二CRC码2。该第二CRC码1是基于该报文头1和该有效数据1生成的,用于对该报文头1和该有效数据1进行CRC校验,该第二CRC码2是基于该第一报文2、该报文头3和该有效数据3生成的,用于对该第一报文2、该报文头3和该有效数据3进行CRC校验。
采用本申请实施例供的数据传输方法,该多个第一报文中只有首部和尾部的第一报文中包括第二CRC码,其余位置的第一报文中的有效载荷字段可以全部用于承载有效数据,能够提高有效数据的传输效率。
在另一种可能的实现方式中,该多个第一报文中的每个第一报文中可以包括第二CRC码,该每个第一报文中的第二CRC码是基于该每个第一报文中的报文头和有效数据生成的,用于对该每个第一报文中的报文头和有效数据进行CRC校验。
采用本申请实施例供的数据传输方法,该多个第一报文中的每个第一报文中包括第二CRC码,能够提高CRC的校验能力。
可选地,S101可以包括:该发送端获取该多个第一报文,在每N个第一报文之后插入M个第一CRC码,得到该第一数据流,其中,M和N均为大于0的整数。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该发送端可以在物理层,如物理层的物理编码子层,获取该多个第一报文,在每N个第一报文之后插入M个第一CRC码,得到该第一数据流。
可选地,该发送端可以在数据链路层生成该多个第一报文;并向该物理编码子层发送该多个第一报文。相应地,该物理编码子层从该数据链路层接收该多个第一报文。
在一种可能的实现方式中,该发送端可以在数据链路层获取多个目标报文;在该多个目标报文中的至少一个目标报文中添加第二CRC码,得到该多个目标报文一一对应的多个第一报文。
示例的,图7示出了本申请实施例提供的目标报文的示意图。其中,图7中的(a)示出的是不预留添加第二CRC码的字段的目标报文(如该多个目标报文中位于首部和尾部之外的位置的目标报文),图7中的(b)示出的是预留用于添加第二CRC码的字段的目标报文(如该多个目标报文中位于首部或尾部的目标报文)。
如图7中的(a)所示,该目标报文可以包括报文头和有效载荷字段,该有效载荷字段用于承载有效数据。如图7中的(b)所示,该目标报文可以包括报文头和有效载荷, 该有效载荷字段用于承载有效数据和填充数据(如“0”),其中,用于承载填充数据的字段也可以为预留字段。
示例的,发送端在如图7中的(b)所示的目标报文中的预留字段中添加第二CRC码之后,可以得到该目标报文对应的第一报文(如图6中示出的第一报文1或第一报文3),即该第二CRC码可以部分或全部覆盖预留字段中的填充数据。
需要说明的是,该多个第一CRC码中的每至少一个CRC码用于(在物理编码子层)对该至少一个CRC码对应的第一报文进行CRC校验。该第一报文中包括的第二CRC码用于(在数据链路层)对该第一报文中的报文头和该第一报文中的有效数据进行CRC校验,或者该第一报文中包括的第二CRC码用于对该第一报文中的报文头、该第一报文中的有效数据和该第一报文之前的至少一个不包含第二CRC码的第一报文进行CRC校验。
可选地,在S101之前,该方法100还可以包括:该发送端在确定该多个第一报文的数据量小于或等于预设的第一阈值的情况下,确定该多个第一报文的传输模式为该第一传输模式。也就是说,该发送端可以监测该多个第一报文的数据量;当该多个第一报文的数据量小于或等于该第一阈值时,确定该多个第一报文的传输模式为该第一传输模式。
可选地,本申请中所述的传输模式可以包括该第一传输模式或第二传输模式。其中,该第一传输模式可以理解为小流量模式,也称为short模式,该第二传输模式可以理解为大流量模式,也称为long模式。
可选地,该发送端可以通过多种方式向接收端指示该发送端发送的报文的传输模式,本申请对此不做限定。
在一种可能的实现方式中,该第一数据流中还可以包括第一对齐字,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式。即该发送端可以在当前传输周期向接收端指示当前传输周期内发送的报文的传输模式。
在另一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还可以包括第一对齐字,该第一对齐字用于指示第二传输周期内发送的报文的传输模式为第一传输模式,该第二传输周期为该第一传输周期的下一个传输周期。即该发送端可以在当前传输周期向接收端指示当前传输周期的下一个传输周期内发送的报文的传输模式。
示例的,图8示出了本申请实施例提供的第一数据流的又一示意图。如图8所示,传输周期T1内发送的该第一数据流可以包括第一对齐字、多个第一报文(如图8中示出的第一报文1和第一报文2)和多个第一CRC码(如图8中示出的第一CRC码1和第一CRC码2),其中,该第一对齐字用于指示传输周期T2内发送的报文的传输模式,T2为T1的下一个传输周期。
需要说明的是,图8中仅以该第一报文1和该第一报文2之后插入该第一CRC码1和该第一CRC码2形成一个数据组3为例进行介绍,该第一数据流中可以包括多个类似这样的数据组3,本申请在此不一一列举。
需要说明的是,本申请中所述的传输周期是指该发送端发送固定长度的数据的周期。例如:该传输周期可以指发送第一数据流的长度的周期。
可选地,该第一数据流中还可以包括第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。
采用本申请实施例提供的数据传输方法,当CRC校验结果出错时,无需进行重传,可以通过对该多个第一报文和第一FEC码进行FEC译码,以定位出错位置并对错误进行校正,能够减少重传带来的时延。
可选地,该发送端可以对该多个第一报文和该多个第一CRC进行FEC编码,得到该第一FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC进行FEC译码。
可选地,本申请中所述的FEC译码可以包括FEC检测和/或FEC纠错,FEC检测主要是判断接收到的该第一数据流中除该第一对齐字以外的部分是否存在错误以及定位错误,FEC纠错主要是对错误进行校正。
示例的,图9示出了本申请实施例提供的第一数据流的又一示意图。如图9所示,传输周期T1内发送的该第一数据流可以包括第一对齐字、多个第一报文(如图9中示出的第一报文1和第一报文2)、多个第一CRC码(如图9中示出的第一CRC码1和第一CRC码2)和第一FEC码。其中,该第一FEC码用于对多个第一报文和该多个第一CRC码进行FEC译码。
需要说明的是,图9中仅以该第一报文1和该第一报文2之后插入该第一CRC码1和该第一CRC码2形成一个数据组4为例进行介绍,该第一数据流中可以包括多个类似这样的数据组4,本申请在此不一一列举。
S102.该发送端向接收端发送该第一数据流。
采用本申请实施例提供的数据传输方法,发送端生成的第一数据流中包括该多个第一报文和多个第一CRC码,其中,该多个第一CRC码中的每至少一个CRC码用于对该至少一个CRC码对应的第一报文进行CRC校验。这样,接收端每接收到至少一个第一CRC码和该至少一个第一CRC码对应的第一报文之后,就可以基于该至少一个第一CRC码对该至少一个第一CRC码对应的第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该至少一个第一CRC码对应的第一报文的CRC校验结果正确时,可以直接向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
可选地,该发送端可以通过SERDES技术向接收端发送高速的、串行的第一数据流。
可选地,该方法100还可以包括:该发送端生成第二数据流,该第二数据流中包括多个第二报文,该多个第二报文中的至少一个第二报文中包括第三CRC码;向该接收端发送该第二数据流。
需要说明的是,该第二数据路中包括多个第二报文,但不包括与该多个第二报文中的一个或多个第二报文对应的第四CRC码,即P个第二报文后不存在插入的Q第四CRC码,其中,P和Q均为大于0的整数。
可选地,在该发送端生成第二数据流之前,该方法100还可以包括:该发送端在确定该多个第二报文的数据量大于该第一阈值的情况下,确定该多个第二报文的传输模式为该第二传输模式。也就是说,该发送端可以监测该多个第二报文的数据量;当该多个第二报文的数据量大于该第一阈值时,确定该多个第二报文的传输模式为该第二传输模式。
可选地,该第二数据流中还可以包括第二对齐字,该第二对齐字用于指示该多个第二报文的传输模式为该第二传输模式。
可选地,该第二数据流是在第一传输周期内发送的,该第二数据流中还可以包括第二对齐字,该第二对齐字用于指示第二传输周期内发送的报文的传输模式为第二传输模式,该第二传输周期为该第一传输周期的下一个传输周期。
可选地,该第二数据流中还可以包括第二FEC码,该第二FEC码用于对该多个第二报文进行FEC译码。
示例的,图10示出了本申请实施例提供的第二数据流的示意图。如图10所示,该传输周期T1内发送的该第二数据流可以包括第二对齐字、多个第二报文(如图10中示出的第二报文1和第二报文2)和第二FEC码,其中,该第二FEC码用于对该多个第二报文进行FEC译码。
可选地,上述多个第一报文和上述多个第二报文可以相同也可以不同,本申请对此不做限定。
在一种可能的实现方式中,在该多个第一报文和该多个第二报文相同的情况下,该发送端可以基于该多个第一报文的数据量,确定该多个第一报文的传输模式;当该多个报文的传输模式为该第一传输模式时,生成上述第一数据流;当该多个第一报文的传输模式为该第二传输模式时,生成上述第二数据流。
采用本申请实施例提供的数据传输方法,发送端可以灵活根据该多个第一报文的数据量,决定该多个第一报文的传输模式,当数据量较大时采用第二传输模式,不会增加外的传输数据量,能够优先保证多个第一报文的传输效率,当数据量较小时采用第一传输模式,通过增加多个第一CRC的传输,能够减少数据传输的时延。
接下来请参考图11,图11示出了本申请实施例提供的数据传输方法200的流程示意图。如图11所示,该方法200可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图11所示的执行顺序。
可选地,该方法200可以应用于通信系统中的接收端,该通信系统中还包括发送端,该发送端和该接收端之间可以进行数据传输。可选地,该通信系统可以遵循各种数据传输协议,本申请对此不做限定。示例的,该数据传输协议可以为UB协议。
S201.接收端从发送端接收第一数据流,该第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,该N个第一报文后插入的M个第一CRC码用于对该N个第一报文进行CRC校验,M和N均为大于0的整数。
需要说明的是,该第一数据流的介绍可以参考上述方法100中的说明,为避免重复,此处不再赘述。
在一种可能的实现方式中,该N个第一报文的长度与该N个第一报文后插入的M个第一CRC码的长度之和可以小于1个码字的长度。
本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
可选地,该多个第一报文中的至少一个第一报文中可以包括第二CRC码。
需要说明的是,该多个第一CRC码中的每至少一个CRC码用于(在物理编码子层) 对该至少一个CRC码对应的第一报文进行CRC校验。该第一报文中包括的第二CRC码用于(在数据链路层)对该第一报文中的报文头和该第一报文中的有效数据进行CRC校验,或者该第一报文中包括的第二CRC码用于对该第一报文中的报文头、该第一报文中的有效数据和该第一报文之前的至少一个不包含第二CRC码的第一报文进行CRC校验。
S202.当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,该接收端向数据链路层发送该至少一个第一CRC码对应的第一报文。
可选地,在S202之前,该方法200还可以包括:该接收端基于第一对齐字,确定该多个第一报文的传输模式为第一传输模式,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式;在确定该多个第一报文的传输模式为该第一传输模式的情况下,该接收端对该多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
可选地,该接收端可以通过多种方式获取该第一对齐字,本申请对此不做限定。
在一种可能的实现方式中,该第一数据流中还包括该第一对齐字。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一对齐字是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
S203.当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,该接收端对该多个第一报文和该多个第一CRC码进行FEC检测。
可选地,在S203之后,该方法200还可以包括:当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,该接收端向该数据链路层发送该多个第一报文;当该多个第一报文和该多个第一CRC码的FEC校验结果错误时,该接收端对该多个第一报文和该多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
需要说明的是,FEC检测结果正确可以理解为该多个第一报文和该多个第一CRC码都正确,或者该多个第一报文和该多个第一CRC码中错误的比特数小于或等于预设的第二阈值;FEC检测结果错误可以理解为该多个第一报文和该第一CRC码中错误的比特数大于预设的第二阈值。
可选地,该方法200还可以包括:该接收端从该发送端接收第二数据流,该第二数据流中包括多个第二报文和第二FEC码,该第二FEC码用于对该多个第二报文进行FEC检测;当该多个第二报文的FEC检测结果正确时,该接收端向该数据链路层发送该多个第二报文。
可选地,在当该多个第二报文的FEC检测结果正确时,该接收端向该数据链路层发送该多个第二报文之前,该方法200还可以包括:基于第二对齐字,确定该多个第二报文的传输模式为第二传输模式;在确定该多个第二报文的传输模式为该第二传输模式的情况下,该接收端对该多个第二报文进行FEC检测。
采用本申请实施例提供的数据传输方法,发送端生成的第一数据流中包括该多个第一报文和多个第一CRC码,其中,该多个第一CRC码中的每至少一个CRC码用于对该至少一个CRC码对应的第一报文进行CRC校验。这样,接收端每接收到至少一个第一CRC码和该至少一个第一CRC码对应的第一报文之后,就可以基于该至少一个第一CRC码对该至少一个第一CRC码对应的第一报文进行CRC校验,而无需等到该多个第一报文和该多个第一CRC全部接收到再进行检错(如CRC校验),能够降低数据传输的时延。
此外,当该至少一个第一CRC码对应的第一报文的CRC校验结果正确时,可以直接 向接收端的数据链路层发送该至少一个第一CRC码对应的第一报文,而无需经过FEC译码,能够减少FEC译码所需的时延,从而降低数据传输的时延。
接下来请参考图12,图12示出了本申请实施例提供的数据传输方法300的流程示意图。如图12所示,该方法300可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图12所示的执行顺序。
可选地,该方法300可以应用于通信系统中的发送端,该通信系统中还包括接收端,该发送端和该接收端之间可以进行数据传输。可选地,该通信系统可以遵循各种数据传输协议,本申请对此不做限定。示例的,该数据传输协议可以为UB协议。
S301.发送端基于多个报文1数据量,确定该多个报文1的传输模式为第一传输模式,该多个报文1中的至少一个报文1中包括第二CRC码。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该发送端可以在物理层,如物理层的物理编码子层,执行上述S301。
可选地,本申请实施例中所述的传输模式可以包括该第一传输模式或第二传输模式。
需要说明的是,本申请中所述的第一传输模式可以理解为小流量模式,也称为short模式,本申请中所述的第二传输模式可以理解为大流量模式,也称为long模式。
在一种可能的实现方式中,该发送端可以基于该多个报文1数据量和预设的第一阈值,确定该多个报文1的传输模式为该第一传输模式。
例如:若该多个报文1的数据量小于或等于该第一阈值,该发送端可以确定该多个报文1的传输模式为该第一传输模式。
需要说明的是,本申请中所述的报文也可以为flit,或被称为flit,是数据链路层与物理层之间传输数据的基本单位。
在一种可能的实现方式中,在S301之前,该方法还包括:该发送端获取多个目标报文;在该多个目标报文中的至少一个目标报文中添加第二CRC码,得到与该多个目标报文一一对应的该多个报文1。
在一种可能的实现方式中,该发送端可以在该多个目标报文中的每个目标报文中添加CRC码,得到该多个目标报文一一对应的该多个报文1。
在另一种可能的实现方式中,该发送端可以在该多个目标报文中部分目标报文(如位于该多个目标报文首部的目标报文和位于该多个目标报文尾部的目标报文)中添加第二CRC码,得到该部分目标报文对应的报文1,该多个目标报文中除该部分目标报文外剩余的目标报文直接作为报文1。
例如:位于首部和尾部之外的位置的目标报文可以包括报文头和有效载荷字段,该有效载荷字段用于承载有效数据。
又如:位于首部或尾部的目标报文包括报文头和有效载荷,该有效载荷字段用于承载有效数据和填充数据(如“0”),其中,用于承载填充数据的字段也可以为预留字段。发送端在预留字段中添加第二CRC码之后,可以得到该目标报文对应的第一报文,即该第二CRC码可以部分或全部覆盖预留字段中的填充数据。
需要说明的是,该发送端可以在数据链路层生成该第二CRC码。
示例的,以该通信系统遵循UB协议为例,该发送端的数据链路层可以获取该多个目标报文;该发送端在该数据链路层在该多个目标报文中的每个目标报文中添加CRC码, 得到该多个目标报文一一对应的该多个报文1,并将该多个报文1发送至该发送端的物理层,如物理层的PCS。
S302.在该多个报文1的传输模式为该第一传输模式的情况下,该发送端在每N个报文1后插入M个第一CRC码,得到数据流1。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该发送端可以在物理层,如物理层的物理编码子层,执行上述S302。
S303.该发送端在该数据流1之后添加第一FEC码,得到数据流2,该第一FEC码用于对该数据流1进行FEC译码。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该发送端可以在物理层,如物理层的物理编码子层,执行上述S303。
S304.该发送端向接收端发送目标数据流1,该目标数据流1包括该数据流2。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该发送端可以在物理层执行上述S304。
在一种可能的实现方式中,该目标数据流1还包括第一对齐字,该第一对齐字用于指示该多个报文1的传输模式为该第一传输模式。
在另一种可能的实现方式中,该目标数据流1是在传输周期T1内发送的,该目标数据流还可以包括第一对齐字,该第一对齐字用于指示传输周期T2内发送的报文的传输模式为该第一传输模式,其中,T2为T1的下一个传输周期。
需要说明的是,本申请中所述的数据流2的长度小于1个码字(codeword)的长度。本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
可选地,该方法300还可以包括:该发送端基于多个报文2数据量,确定该多个报文2的传输模式为第二传输模式,该多个报文2中的至少一个报文2中包括第三CRC码;在该多个报文2的传输模式为该第二传输模式的情况下,该发送端在该多个报文2之后添加第二FEC码,得到数据流3;该发送端向该接收端发送目标数据流2,该目标数据流2包括该数据流3。
例如:若该多个报文2的数据量大于该第一阈值,该发送端可以确定该多个报文2的传输模式为该第二传输模式。
可选地,该目标数据流2还可以包括第二对齐字,该第二对齐字用于指示该多个报文2的传输模式为该第二传输模式。
可选地,上述多个报文1和上述多个报文2可以相同也可以不同,本申请对此不做限定。
需要说明的是,方法300中未详细介绍的部分可以参考上述方法100中的相应部分的说明,为避免重复,此处不再赘述。
图13示出了本申请实施例提供的数据传输方法400的示意性流程图。如图13所示,该方法400可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图13所示的执行顺序。
可选地,该方法400可以应用于通信系统中的接收端,该通信系统中还包括发送端,该发送端和该接收端之间可以进行数据传输。可选地,该通信系统可以遵循各种数据传输 协议,本申请对此不做限定。示例的,该数据传输协议可以为UB协议。
S401.接收端从发送端接收目标数据流1,该目标数据流1包括多个报文1、多个第一CRC码和第一FEC码,该多个报文1中的至少一个报文1中包括第二CRC码。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该接收端可以在物理层执行上述S401。
需要说明的是,该多个报文1的长度、该多个第一CRC码的长度与第一FEC码的长度之和小于1个码字(codeword)的长度。本申请中所述的码字是指物理编码子层进行FEC编解码的单位,由于FEC编解码采用的算法不同,因此,码字的具体长度不同,本申请对此不做具体限定。
S402.该接收端基于第一对齐字,确定该多个报文1的传输模式为第一传输模式,该第一对齐字用于指示该多个报文1的传输模式为该第一传输模式。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该接收端可以在物理层,如物理层的物理编码子层,执行上述S402。
可选地,该接收端可以通过多种方式获取该第一对齐字,本申请对此不做限定。
在一种可能的实现方式中,该目标数据流1中还包括该第一对齐字。
在一种可能的实现方式中,该第目标数据流1是在第一传输周期内发送的,该第一对齐字是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
在另一种可能的实现方式中,若该多个报文1的传输模式为该第一传输模式,该第二数据流包括该多个报文1。
S403.在该多个报文1的传输模式为该第一传输模式的情况下,该接收端基于该多个第一CRC码中的每至少一个第一CRC码对该至少一个第一CRC码对应的报文1进行CRC校验。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该接收端可以在物理层,如物理层的物理编码子层,执行上述S403。
S404.每当该至少一个第一CRC码对应的报文1的CRC校验结果正确时,该接收端可以向数据链路层发送该至少一个第一CRC码对应的报文1。
在一种可能的实现方式中,以该通信系统遵循UB协议为例,该接收端可以在物理层,如物理层的物理编码子层,执行上述S404。
可选地,当该多个第一CRC码中的任一第一CRC码对应的报文1的CRC校验结果错误时,该接收端对该多个报文1和该多个第一CRC码进行FEC检测。
进一步地,当该多个报文1和该多个第一CRC码的FEC检测结果正确时,该接收端向该数据链路层发送该多个报文1;当该多个报文1和该多个第一CRC码的FEC检测结果错误时,该接收端对该多个报文1和该多个第一CRC码进行FEC纠错,得到校正后的多个报文1,并向该数据链路层发送该校正后的多个报文1。
可选地,在该接收端的数据链路层得到多个报文1之后,可以基于该至少一个报文1中的每个报文1中包括的第二CRC码对该每个报文1中的报文头和该每个报文1中的有效数据进行CRC校验,或者对该每个报文1中的报文头、该每个报文1中的有效数据和该每个报文1之前的至少一个不包含第二CRC码的报文1进行CRC校验。
可选地,该方法400还可以包括:接收端从发送端接收目标数据流2,该目标数据流 2包括多个报文2和第二FEC码,该多个报文2中的至少一个报文2中包括第三CRC码;该接收端基于第二对齐字,确定该多个报文2的传输模式为第二传输模式,该第二对齐字用于指示该多个报文2的传输模式为该第二传输模式;在该多个报文2的传输模式为该第二传输模式的情况下,该接收端对该多个报文2进行FEC检测;当该多个报文2的FEC检测结果正确时,该接收端向该数据链路层发送该多个报文2;当该多个报文2的FEC检测结果错误时,该接收端对该多个报文2进行FEC纠错,并向该数据链路层发送校正后的多个报文2。
可选地,在该接收端的数据链路层得到多个报文2之后,可以基于该至少一个报文2中的每个报文2中包括的第三CRC码对该每个报文2中的报文头和该每个报文2中的有效数据进行CRC校验,或者对该每个报文2中的报文头、该每个报文2中的有效数据和该每个报文2之前的至少一个不包含第三CRC码的报文2进行CRC校验。
示例的,如图6所示,该接收端可以基于第二CRC码1对报文头1和有效数据1进行CRC校验,以得到有效数据1;基于第二CRC码2对第一报文2、报文头3和有效数据3进行CRC校验,以得到有效数据2和有效数据3。
可选地,上述多个报文1和上述多个报文2可以相同也可以不同,本申请对此不做限定。
需要说明的是,方法400中未详细介绍的部分可以参考上述方法200中的相应部分的说明,为避免重复,此处不再赘述。
图14示出了本申请实施例提供的数据传输方法的流程示意图。该流程可以包括以下步骤,需要说明的是,以下所列步骤可以以各种顺序执行和/或同时发生,不限于图14所示的执行顺序。
在发送端侧:
(1)该发送端在数据链路层生成多个第一报文,该多个第一报文中的至少一个第一报文中包括第二CRC码。
(2)该发送端的数据链路层向物理层的物理编码子层发送该多个第一报文。
(3)该发送端在物理编码子层监测该多个第一报文的数据量。
(4)该发送端在物理编码子层基于该多个第一报文的数据量,确定该多个第一报文的传输模式。
当该多个第一报文的数据量小于或等于预设的第一阈值时,该物理编码子层确定该多个第一报文的传输模式为short模式,并继续执行步骤(5);当该多个第一报文的数据量大于该第一阈值时,该物理编码子层确定该多个第一报文的传输模式为long模式,并继续执行步骤(10)。
(5)在该多个第一报文的传输模式为short模式的情况下,该发送端在物理编码子层生成第一对齐字,该第一对齐字用于指示目标传输周期内发送的报文的传输模式为short模式。
(6)该发送端在物理编码子层基于该多个第一报文生成多个第一CRC码。
例如:该物理编码子层在每N个第一报文后插入M个第一CRC码,M和N均为大于0的整数。
(7)该发送端在物理编码子层对该多个第一报文和该多个第一CRC码进行FEC编 码,生成第一FEC码。
(8)该发送端在物理层对该第一对齐字、该多个第一报文、该多个第一CRC码和该第一FEC码进行并串转换,得到第一数据流,该第一数据流包括该第一对齐字、该多个第一报文、该多个第一CRC码和该第一FEC码。
(9)该发送端的物理层向接收端发送该第一数据流。
可选地,上述步骤(5)中所述的目标传输周期可以为发送该第一数据流的传输周期,或可以为发送该第一数据流的传输周期的下一个传输周期。
(10)在该多个第一报文的传输模式为long模式的情况下,该发送端在物理编码子层生成第二对齐字,该第二对齐字用于指示目标传输周期内发送的报文的传输模式为long模式。
(11)该发送端在物理编码子层对该多个第一报文进行FEC编码,生成第二FEC码。
(12)该发送端在物理层对该第二对齐字、该多个第一报文和该第二FEC码进行并串转换,得到第二数据流,该第二数据流包括该第二对齐字、该多个第一报文和该第二FEC码。
(13)该发送端在物理层向接收端发送该第二数据流。
可选地,上述步骤(10)中所述的目标传输周期可以为发送该第二数据流的传输周期,或可以为发送该第二数据流的传输周期的下一个传输周期。
在接收端侧:
(14)该接收端在物理层对该第一数据流进行串并转换,得到该第一对齐字、该多个第一报文、该多个第一CRC码和该第一FEC码。
(15)该接收端在物理层的物理编码子层对第三对齐字进行解析,得到该第三对齐字中的第一模式信息,该第一模式信息用于指示该多个第一报文的传输模式为short模式。
可选地,该第三对齐字可以为该第一对齐字;或者该第三对齐字可以为该接收端在第三传输周期内接收到的,该第三传输周期为接收该第一数据流的传输周期的上一个传输周期。
(16)该接收端在物理编码子层基于该第一模式信息,确定该多个第一报文的传输模式为short模式。
(17)在该多个第一报文的传输模式为short模式下,该接收端在物理编码子层对多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
(18)当该每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,该接收端的物理编码子层向数据链路层发送该至少一个第一CRC码对应的第一报文。
(19)当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,该接收端在物理编码子层对该多个第一报文和该多个第一CRC码进行FEC检测。
当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,该接收端继续执行步骤(20);当该多个第一报文和该多个第一CRC码的FEC检测结果错误时,该接收端继续执行步骤(21)~(22)。
(20)该接收端的物理编码子层向数据链路层发送该多个第一报文。
(21)该接收端在物理编码子层对该多个第一报文和该多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
(22)该接收端的物理编码子层向数据链路层发送校正后的多个第一报文。
(23)该接收端在物理层对该第二数据流进行串并转换,得到该第二对齐字、该多个第一报文和该第二FEC码。
(24)该接收端在物理层的物理编码子层对第四对齐字进行解析,得到该第四对齐字中的第二模式信息,该第二模式信息用于指示该多个第一报文的传输模式为long模式。
可选地,该第四对齐字可以为该第二对齐字;或者该第四对齐字可以为该接收端在第三传输周期内接收到的,该第三传输周期为接收该第二数据流的传输周期的上一个传输周期。
(25)该接收端在物理编码子层基于该第二模式信息,确定该多个第一报文的传输模式为long模式。
(26)在该多个第一报文的传输模式为long模式下,该接收端在物理编码子层对该多个第一报文进行FEC检测。
当该多个第一报文的FEC检测结果正确时,该接收端继续执行步骤(27);当该多个第一报文的FEC检测结果错误时,该接收端继续执行步骤(28)~(29)。
(27)该接收端的物理编码子层向数据链路层发送该多个第一报文。
(28)该接收端在物理编码子层对该多个第一报文进行FEC纠错,得到校正后的多个第一报文。
(29)该接收端的物理编码子层向数据链路层发送校正后的多个第一报文。
(30)该接收端在数据链路层基于该至少一个第一报文中的每个第一报文中包括的第二CRC码对该每个第一报文中的报文头和该每个第一报文中的有效数据进行CRC校验,或者对该每个第一报文中的报文头、该每个第一报文中的有效数据和该每个第一报文之前的至少一个不包含第二CRC码的第一报文进行CRC校验。
上面结合图3至图14介绍了本申请实施例提供的数据传输方法,下面将介绍本申请提供的数据传输装置。
请参考图15,图15示出了本申请实施例提供的数据传输装置500的示意性框图。该装置500可以为(或用于)上述方法100实施例或方法300实施例中所述的发送端。
如图15所示,该装置500可以包括生成单元501和发送单元502。该生成单元501用于生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码。该发送单元502用于向接收端发送该第一数据流。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,M和N均为大于0的整数。
在一种可能的实现方式中,该第一数据流中还包括第一对齐字,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一数据流中还包括第一对齐字,该第一对齐字用于指示第二传输周期内发送的报文的传输模式为第一传输模式,该第二传输周期为该第一传输周期的下一个传输周期。
在一种可能的实现方式中,该第一数据流中还包括第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。
在一种可能的实现方式中,该装置还可以包括确定单元503,该确定单元503用于在该生成单元501生成第一数据流之前,在确定该多个第一报文的数据量小于或等于预设的第一阈值的情况下,确定该多个第一报文的传输模式为该第一传输模式。
在一种可能的实现方式中,该生成单元501还用于生成第二数据流,该第二数据流中包括多个第二报文,该多个第二报文中的至少一个第二报文中包括第三CRC码;该发送单元还用于向该接收端发送该第二数据流。
图15所示实施例中的各个单元中的一个或多个可以通过软件、硬件、固件或其结合实现。该软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。该硬件包括但不限于各类集成电路,如中央处理单元(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、现场可编程门阵列(FPGA,Field Programmable Gate Array)或专用集成电路(ASIC,Application Specific Integrated Circuit)。
请参见图16,图16示出了本申请实施例提供的数据传输装置600的示意性框图,该装置600可以包括处理器601和通信接口602,该处理器601与该通信接口602耦合。
本申请实施例中的处理器601可以包括一个或多个处理单元。可选地,该处理单元包括但不限于中央处理单元(Central Processing Unit,CPU)、通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)、分立门或者晶体管逻辑器件或分立硬件组件等。通用处理器可以是微处理器、微控制器或者是任何常规的处理器等。
例如,处理器601用于生成第一数据流,该第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,该多个第一报文中的至少一个第一报文中包括第二CRC码;通过该通信接口602向接收端发送该第一数据流。
在一个可选例子中,本领域技术人员可以理解,该装置600可以具体为(或用于)上述方法100实施例或方法300实施例中所述的发送端,该装置600可以用于执行方法100实施例或方法300实施例中与发送端对应的各个流程和/或步骤,为避免重复,在此不再赘述。
可选地,该装置600还可以包括存储器603。
存储器603可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
具体地,存储器603用于存储目标跟踪装置的程序代码和指令。可选地,存储器603 还用于存储处理器601执行上述方法200实施例过程中获得的数据,如第一CRC码、第一报文、第一FEC码等。
可选地,存储器603可以为单独的器件或集成在处理器601中。
需要说明的是,图16仅仅示出了该装置600的简化设计。在实际应用中,该装置600还可以分别包含必要的其他元件,包含但不限于任意数量的通信接口、处理器、选择器、存储器等,而所有可以实现本申请的装置600都在本申请的保护范围之内。
在一种可能的设计中,该装置600可以为芯片。可选地,该芯片还可以包括一个或多个存储器,用于存储计算机执行指令,当该芯片装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述方法100或方法300中所述的步骤。
可选地,该芯片装置可以为实现相关功能的现场可编程门阵列,专用集成芯片,系统芯片,中央处理器,网络处理器,数字信号处理电路,微控制器,还可以采用可编程控制器或其他集成芯片。
请参考图17,图17示出了本申请实施例提供的数据传输装置700的示意性框图。该装置700可以为(或用于)上述方法200实施例或方法400实施例中所述的接收端。
如图17所示,该装置700可以包括接收单元701、发送单元702和FEC检测单元703。该接收单元701用于从发送端接收第一数据流,该第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测。该发送单元702用于当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文;该FEC检测单元703用于当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC检测。
在一种可能的实现方式中,该装置700还可以包括FEC纠错单元704,在对该多个第一报文和该多个第一CRC码进行FEC检测之后,该发送单元702还用于当该多个第一报文和该多个第一CRC码的FEC检测结果正确时,向该数据链路层发送该多个第一报文;该FEC纠错单元704用于当该多个第一报文和该多个第一CRC码的FEC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
在一种可能的实现方式中,每N个第一报文后插入有M个第一CRC码,该N个第一报文后插入的M个第一CRC码用于对该N个第一报文进行CRC校验,M和N均为大于0的整数。
在一种可能的实现方式中,该装置700还可以包括确定单元705和CRC校验单元706,该确定单元705用于在当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文之前,基于第一对齐字,确定该多个第一报文的传输模式为第一传输模式,该第一对齐字用于指示该多个第一报文的传输模式为第一传输模式;该CRC校验单元706用于在确定该多个第一报文的传输模式为该第一传输模式的情况下,对该多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
在一种可能的实现方式中,该第一数据流中还包括该第一对齐字。
在一种可能的实现方式中,该第一数据流是在第一传输周期内发送的,该第一对齐字 是在第三传输周期内发送的,该第三传输周期为该第一传输周期的上一个传输周期。
在一种可能的实现方式中,该接收单元701还用于从该发送端接收第二数据流,该第二数据流中包括多个第二报文和第二FEC码,该第二FEC码用于对该多个第二报文进行FEC检测;该发送单元702还用于当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文。
在一种可能的实现方式中,该确定单元705还用于在当该多个第二报文的FEC检测结果正确时,向该数据链路层发送该多个第二报文之前,基于第二对齐字,确定该多个第二报文的传输模式为第二传输模式;该FEC检测单元703还用于在确定该多个第二报文的传输模式为该第二传输模式的情况下,对该多个第二报文进行FEC检测。
图17所示实施例中的各个单元中的一个或多个可以通过软件、硬件、固件或其结合实现。该软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。该硬件包括但不限于各类集成电路,如中央处理单元(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、现场可编程门阵列(FPGA,Field Programmable Gate Array)或专用集成电路(ASIC,Application Specific Integrated Circuit)。
请参见图18,图18示出了本申请实施例提供的数据传输装置800的示意性框图,该装置800可以包括处理器801和通信接口802,该处理器801与该通信接口802耦合。
本申请实施例中的处理器801可以包括一个或多个处理单元。可选地,该处理单元包括但不限于中央处理单元(Central Processing Unit,CPU)、通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)、分立门或者晶体管逻辑器件或分立硬件组件等。通用处理器可以是微处理器、微控制器或者是任何常规的处理器等。
例如,处理器801用于通过该通信接口802从发送端接收第一数据流,该第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,该第一FEC码用于对该多个第一报文和该多个第一CRC码进行FEC检测;当该多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送该至少一个第一CRC码对应的第一报文;当该多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对该多个第一报文和该多个第一CRC码进行FEC检测。
在一个可选例子中,本领域技术人员可以理解,该装置800可以具体为(或用于)上述方法200实施例或方法400实施例中所述的接收端,该装置800可以用于执行方法200实施例或方法400实施例中与接收端对应的各个流程和/或步骤,为避免重复,在此不再赘述。
可选地,该装置800还可以包括存储器803。
存储器803可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓 存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
具体地,存储器803用于存储目标跟踪装置的程序代码和指令。可选地,存储器803还用于存储处理器801执行上述方法200实施例过程中获得的数据,如第一报文等。
可选地,存储器803可以为单独的器件或集成在处理器801中。
需要说明的是,图18仅仅示出了该装置800的简化设计。在实际应用中,该装置800还可以分别包含必要的其他元件,包含但不限于任意数量的通信接口、处理器、选择器、存储器等,而所有可以实现本申请的装置800都在本申请的保护范围之内。
在一种可能的设计中,该装置800可以为芯片。可选地,该芯片还可以包括一个或多个存储器,用于存储计算机执行指令,当该芯片装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述方法200或方法400中所述的步骤。
可选地,该芯片装置可以为实现相关功能的现场可编程门阵列,专用集成芯片,系统芯片,中央处理器,网络处理器,数字信号处理电路,微控制器,还可以采用可编程控制器或其他集成芯片。
本申请实施例还提供一种通信系统,该通信系统可以包括如图15所述的数据传输装置和如图16所述的数据传输装置;或可以包括如图17所述的数据传输装置和如图18所示的数据传输装置。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,实现上述方法实施例描述的数据传输方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在处理器上运行时,实现上述方法实施例描述的数据传输方法。
本申请实施例提供的数据传输装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的数据传输方法,因此,其所能达到的有益效果可参考上文所提供的对应的数据传输方法中所述的有益效果,此处不再赘述。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (32)

  1. 一种数据传输方法,其特征在于,包括:
    生成第一数据流,所述第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,所述多个第一报文中的至少一个第一报文中包括第二CRC码;
    向接收端发送所述第一数据流。
  2. 根据权利要求1所述的方法,其特征在于,每N个第一报文后插入有M个第一CRC码,M和N均为大于0的整数。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一数据流中还包括第一对齐字,所述第一对齐字用于指示所述多个第一报文的传输模式为第一传输模式。
  4. 根据权利要求1或2所述的方法,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一数据流中还包括第一对齐字,所述第一对齐字用于指示第二传输周期内发送的报文的传输模式为第一传输模式,所述第二传输周期为所述第一传输周期的下一个传输周期。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述第一数据流中还包括第一前向纠错FEC码,所述第一FEC码用于对所述多个第一报文和所述多个第一CRC码进行FEC检测。
  6. 根据权利要求3-5中任一项所述的方法,其特征在于,在所述生成第一数据流之前,所述方法还包括:
    在确定所述多个第一报文的数据量小于或等于预设的第一阈值的情况下,确定所述多个第一报文的传输模式为所述第一传输模式。
  7. 根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
    生成第二数据流,所述第二数据流中包括多个第二报文,所述多个第二报文中的至少一个第二报文中包括第三CRC码;
    向所述接收端发送所述第二数据流。
  8. 一种数据传输方法,其特征在于,包括:
    从发送端接收第一数据流,所述第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,所述第一FEC码用于对所述多个第一报文和所述多个第一CRC码进行FEC检测;
    当所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送所述至少一个第一CRC码对应的第一报文;
    当所述多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对所述多个第一报文和所述多个第一CRC码进行FEC检测。
  9. 根据权利要求8所述的方法,其特征在于,在对所述多个第一报文和所述多个第一CRC码进行FEC检测之后,所述方法还包括:
    当所述多个第一报文和所述多个第一CRC码的FEC检测结果正确时,向所述数据链路层发送所述多个第一报文;
    当所述多个第一报文和所述多个第一CRC码的FEC校验结果错误时,对所述多个第一报文和所述多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
  10. 根据权利要求8或9所述的方法,其特征在于,每N个第一报文后插入有M个第一CRC码,所述N个第一报文后插入的M个第一CRC码用于对所述N个第一报文进行CRC校验,M和N均为大于0的整数。
  11. 根据权利要求8-10中任一项所述的方法,其特征在于,在当所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送所述至少一个第一CRC码对应的第一报文之前,所述方法还包括:
    基于第一对齐字,确定所述多个第一报文的传输模式为第一传输模式,所述第一对齐字用于指示所述多个第一报文的传输模式为第一传输模式;
    在确定所述多个第一报文的传输模式为所述第一传输模式的情况下,对所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
  12. 根据权利要求11所述的方法,其特征在于,所述第一数据流中还包括所述第一对齐字。
  13. 根据权利要求11所述的方法,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一对齐字是在第三传输周期内发送的,所述第三传输周期为所述第一传输周期的上一个传输周期。
  14. 根据权利要求8-13中任一项所述的方法,其特征在于,所述方法还包括:
    从所述发送端接收第二数据流,所述第二数据流中包括多个第二报文和第二FEC码,所述第二FEC码用于对所述多个第二报文进行FEC检测;
    当所述多个第二报文的FEC检测结果正确时,向所述数据链路层发送所述多个第二报文。
  15. 根据权利要求14所述的方法,其特征在于,在当所述多个第二报文的FEC检测结果正确时,向所述数据链路层发送所述多个第二报文之前,所述方法还包括:
    基于第二对齐字,确定所述多个第二报文的传输模式为第二传输模式;
    在确定所述多个第二报文的传输模式为所述第二传输模式的情况下,对所述多个第二报文进行FEC检测。
  16. 一种数据传输装置,其特征在于,包括:处理器和通信接口,所述处理器和所述通信接口耦合,所述处理器用于:
    生成第一数据流,所述第一数据流中包括多个第一报文和多个第一循环冗余校验CRC码,所述多个第一报文中的至少一个第一报文中包括第二CRC码;
    通过所述通信接口向接收端发送所述第一数据流。
  17. 根据权利要求16所述的装置,其特征在于,每N个第一报文后插入有M个第一CRC码,M和N均为大于0的整数。
  18. 根据权利要求16或17所述的装置,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一数据流中还包括第一对齐字,所述第一对齐字用于指示所述多个第一报文的传输模式为第一传输模式。
  19. 根据权利要求16或17所述的装置,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一数据流中还包括第一对齐字,所述第一对齐字用于指示第二传输周期内发送的报文的传输模式,所述第二传输周期为所述第一传输周期的下一个传输周期。
  20. 根据权利要求16-19中任一项所述的装置,其特征在于,所述第一数据流中还包括第一前向纠错FEC码,所述第一FEC码用于对所述多个第一报文和所述多个第一CRC码进行FEC检测。
  21. 根据权利要求16-20中任一项所述的装置,其特征在于,所述多个第一报文的数据量小于或等于预设的第一阈值。
  22. 根据权利要求16-21中任一项所述的装置,其特征在于,所述处理器还用于:
    生成第二数据流,所述第二数据流中包括多个第二报文,所述多个第二报文中的至少一个第二报文中包括第三CRC码;
    通过所述通信接口向所述接收端发送所述第二数据流。
  23. 一种数据传输装置,其特征在于,包括:处理器和通信接口,所述处理器和所述通信接口耦合,所述处理器用于:
    通过所述通信接口从发送端接收第一数据流,所述第一数据流中包括多个第一报文、多个第一循环冗余校验CRC码和第一前向纠错FEC码,所述第一FEC码用于对所述多个第一报文和所述多个第一CRC码进行FEC检测;
    当所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送所述至少一个第一CRC码对应的第一报文;
    当所述多个第一CRC码中的任一第一CRC码对应的第一报文的CRC校验结果错误时,对所述多个第一报文和所述多个第一CRC码进行FEC检测。
  24. 根据权利要求23所述的装置,其特征在于,在对所述多个第一报文和所述多个第一CRC码进行FEC检测之后,所述处理器还用于:
    当所述多个第一报文和所述多个第一CRC码的FEC检测结果正确时,向所述数据链路层发送所述多个第一报文;
    当所述多个第一报文和所述多个第一CRC码的FEC校验结果错误时,对所述多个第一报文和所述多个第一CRC码进行FEC纠错,得到校正后的多个第一报文。
  25. 根据权利要求23或24所述的装置,其特征在于,每N个第一报文后插入有M个第一CRC码,所述N个第一报文后插入的M个第一CRC码用于对所述N个第一报文进行CRC校验,M和N均为大于0的整数。
  26. 根据权利要求23-25中任一项所述的装置,其特征在于,在当所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文的CRC校验结果正确时,向数据链路层发送所述至少一个第一CRC码对应的第一报文之前,所述处理器还用于:
    基于第一对齐字,确定所述多个第一报文的传输模式为第一传输模式,所述第一对齐字用于指示所述多个第一报文的传输模式为第一传输模式;
    在确定所述多个第一报文的传输模式为所述第一传输模式的情况下,对所述多个第一CRC码中的每至少一个第一CRC码对应的第一报文进行CRC校验。
  27. 根据权利要求26所述的装置,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一数据流中还包括所述第一对齐字。
  28. 根据权利要求26所述的装置,其特征在于,所述第一数据流是在第一传输周期内发送的,所述第一对齐字是在第三传输周期内发送的,所述第三传输周期为所述第一传输周期的上一个传输周期。
  29. 根据权利要求23-28中任一项所述的装置,其特征在于,所述处理器还用于:
    通过所述通信接口从所述发送端接收第二数据流,所述第二数据流中包括多个第二报文和第二FEC码,所述第二FEC码用于对所述多个第二报文进行FEC检测;
    当所述多个第二报文的FEC检测结果正确时,向所述数据链路层发送所述多个第二报文。
  30. 根据权利要求29所述的装置,其特征在于,在当所述多个第二报文的FEC检测结果正确时,向所述数据链路层发送所述多个第二报文之前,所述处理器还用于:
    基于第二对齐字,确定所述多个第二报文的传输模式为第二传输模式;
    在确定所述多个第二报文的传输模式为所述第二传输模式的情况下,对所述多个第二报文进行FEC检测。
  31. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序被至少一个处理器执行时用于实现如权利要求1-15中任一项所述的方法。
  32. 一种计算机程序产品,其特征在于,当所述计算机程序产品被至少一个处理器执行时用于实现如权利要求1-15中任一项所述的方法。
CN202180045793.7A 2021-12-31 2021-12-31 一种数据传输方法和装置 Pending CN116685952A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/143895 WO2023123436A1 (zh) 2021-12-31 2021-12-31 一种数据传输方法和装置

Publications (1)

Publication Number Publication Date
CN116685952A true CN116685952A (zh) 2023-09-01

Family

ID=86997153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180045793.7A Pending CN116685952A (zh) 2021-12-31 2021-12-31 一种数据传输方法和装置

Country Status (2)

Country Link
CN (1) CN116685952A (zh)
WO (1) WO2023123436A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249837B2 (en) * 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11886312B2 (en) * 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
US20210013999A1 (en) * 2020-06-04 2021-01-14 Intel Corporation Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
US20210119730A1 (en) * 2020-09-18 2021-04-22 Intel Corporation Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects

Also Published As

Publication number Publication date
WO2023123436A1 (zh) 2023-07-06

Similar Documents

Publication Publication Date Title
US8219877B2 (en) Method and apparatus for transmitting uplink data in a wireless access system
JP3342654B2 (ja) データパケットを通信する方法とその装置および送信パケットを処理する方法とその装置および通信システム
US9094163B2 (en) Assessment and correction of transmitted data
WO2021209037A1 (zh) 数据恢复方法及装置
US20220077875A1 (en) Data Transmission Method, Encoding Method, Decoding Method, Apparatus, Device, and Storage Medium
CN106656424B (zh) 一种数据传输的校验方法
US9654255B2 (en) Data transmission method and device
US20230224057A1 (en) Communication Link Initiation Method and Apparatus
JP5236735B2 (ja) 送信機及び受信機間の改良されたデータ構造境界同期
Luyi et al. Forward error correction
AU2022211512A1 (en) Data transmission method and apparatus, and device, system and computer-readable storage medium
CN114095117A (zh) 一种以太网错误帧的重传方法及相关装置
CN114257334A (zh) 一种数据编码方法、数据解码方法及通信装置
WO2022105753A1 (zh) 网络数据编码传输方法及装置
CN116685952A (zh) 一种数据传输方法和装置
RU2216868C2 (ru) Система и способ осуществления гибридного автоматического запроса на повторение с использованием объединения проверки четности
CN112491500B (zh) 传输数据的方法、装置、发送设备和接收设备
CN115412197A (zh) 一种数据传输的方法及其设备
US11996936B2 (en) Bit error correction for Bluetooth low energy
US20240187130A1 (en) Data transmission method, apparatus, device, system, and readable storage medium
EP4376334A1 (en) Data transmission method and apparatus, and device, system and readable storage medium
CN116260553A (zh) 数据重传的方法、装置及系统
CN118054885A (zh) 一种数据重传方法、电子设备及存储介质
CN117650870A (zh) 一种基于纵向编码纠错的通信方法、系统、设备及介质
CN117061388A (zh) 一种报文传输方法以及装置

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