CN115412197A - 一种数据传输的方法及其设备 - Google Patents

一种数据传输的方法及其设备 Download PDF

Info

Publication number
CN115412197A
CN115412197A CN202110583745.5A CN202110583745A CN115412197A CN 115412197 A CN115412197 A CN 115412197A CN 202110583745 A CN202110583745 A CN 202110583745A CN 115412197 A CN115412197 A CN 115412197A
Authority
CN
China
Prior art keywords
data packet
error correction
data
correction information
information
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
CN202110583745.5A
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
Priority to CN202110583745.5A priority Critical patent/CN115412197A/zh
Publication of CN115412197A publication Critical patent/CN115412197A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请实施例公开了一种数据传输方法,用于数据包的传输过程中。本申请实施例方法包括:第一网络设备获取第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验,第一网络设备根据第一数据包得到第一纠错信息,第一纠错信息用于对第一数据包进行纠错,第一网络设备获取第二数据包,第二数据包包括第一纠错信息,第一网络设备发送第一数据包和第二数据包。本申请实施例中,通过在第二数据包中携带第一纠错信息,当第一数据包出错时,可以根据第一纠错信息对第一数据包进行纠错,节省了重传的时间,提高了数据传输的效率。

Description

一种数据传输的方法及其设备
技术领域
本申请实施例涉及通信技术领域,具体涉及一种数据传输的方法及其设备。
背景技术
随着通信技术的高速发展,通信协议也在不断的改进中。IEEE802.3通信协议的规范下,当发送端发送报文后,接收端会对传输的报文进行完整性的校验。发送端计算待发送的帧的循环冗余校验码(A cyclic redundancy check 32,CRC-32),并将该CRC-32填充在待发送的帧中,发送给接收端。接收端在接收到该帧后,重新计算CRC-32,如果错误,则表明帧在传输的过程中发生错误。
Go-back-N重传机制是实现链路级可靠性的一种有效手段。通常发送端会为每个帧设置一个序列号,每个发送的帧都会进入到重传缓冲区(retry buffer)里。当接收端接收到一个正确的帧时,发送端从重传缓冲区里清除该正确的帧。当接收到一个错误的帧时,发送端则把该错误的帧以及该帧之后的所有帧重发一次。
因此,在传输过程中,一个错误的帧引入的时延至少为一个往返时延(Round-TripTime,RTT),如果链路的距离越长,该RTT时延就越大,影响了数据传输的效率。为此,本申请提出一种低时延的错包恢复机制。
发明内容
本申请实施例提供了一种数据传输方法及其设备,可以应用于数据包传输的过程中,可以对第一数据包进行纠错,提高了数据传输的效率。
本申请第一方面提供了一种数据传输方法。
第一网络设备获取第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验,第一网络设备根据第一数据包得到第一纠错信息,第一纠错信息用于对第一数据包进行纠错,第一网络设备获取第二数据包,第二数据包包括第一纠错信息,第一网络设备发送第一数据包和第二数据包。
本申请实施例中,通过在第二数据包中携带第一纠错信息,当第一数据包出错时,可以根据第一纠错信息对第一数据包进行纠错,节省了重传的时间,提高了数据传输的效率。
基于第一方面的数据传输方法,在一种可能的实现方式中,第二数据包的发送时间在第一数据包之后。
本申请实施例中,第二数据包在第一数据包之后发送,因为第二数据包中携带了第一纠错信息,因此在第一数据包之后发送,当第一数据包出错时,只需要等待一个数据包的时延即可。
基于第一方面的数据传输方法,在一种可能的实现方式中,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
本申请实施例中,第二数据包携带第二校验信息,可以对第二数据包进行校验,提升了数据传输的安全性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一网络设备根据第一数据包得到第一纠错信息包括:第一网络设备根据第一纠错算法对第一数据包进行编码得到第一纠错信息。
本申请实施例中,通过第一纠错算法对第一数据包进行纠错,提升了纠错的效率和准确性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一纠错算法包括以下至少一个:BCH码算法、里德-所罗门码RS算法。
本申请实施例中,当第一纠错算法为BCH码算法或者里德-所罗门码RS算法时,提升了方案的可实现性。
基于第一方面的数据传输方法,在一种可能的实现方式中,所述第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
本申请实施例中,第一纠错信息携带在第二数据包的前导中,可以避免占用第二数据包的载荷部分,进而在传输过程中减少占用带宽资源,且从时延上来说,只需要等待接收下一个数据包前导的时延即可开始进行纠错,并不需要等待接收到一个完整的数据包之后才开始纠错。
基于第一方面的数据传输方法,在一种可能的实现方式中,方法还包括:第一网络设备对第二数据包进行编码得到第二纠错信息,第二纠错信息用于对第二数据包进行纠错,第一网络设备向第二网络设备发送第三数据包,第三数据携带第二纠错信息,第三数据包的发送时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
本申请实施例中,通过将第一数据包的第一纠错信息放在第二数据包中发送,将第二数据包的信息放在第三数据包中发送,根据此规律,使得每个数据包的纠错信息都放在下个数据包中,这样在前面一个数据包出错时,只需要等待下个数据包接收到之后,就可以对之前的数据包进行纠错,而不需要进行重传,提升了数据传输的效率。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,方法还包括:第一网络设备根据第一阈值将第一数据包分为N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数,第一网络设备分别对N个数据段中的第一个数据段至第N-1个数据段进行编码得到N-1个第三纠错信息,N-1个第三纠错信息分别用于对第一数据段至第N-1个数据段进行纠错,N-1个第三纠错信息携带在第一数据包中,第一网络设备根据第一数据包得到第一纠错信息包括:第一网络设备根据第一数据包的第N个数据段得到第一纠错信息,第一纠错信息用于对第N个数据段进行纠错。
本申请实施例中,当第一数据包的长度超过第一阈值时,则第一网络设备根据第一阈值对第一数据包进行分段,这样可以使用相同的编码器对第一数据包进行编码,这样可以降低使用不同编码器带来的计算复杂度。
基于第一方面的数据传输方法,在一种可能的实现方式中,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
本申请实施例中,每个第三纠错信息分别位于N个数据段中的连续两个数据段之间,当第二网络设备接收到该第一数据包时,可以直接的获取到数据段和对应的第三纠错信息,不需要再去确定各个数据段和第三纠错信息的对应关系,减少了第二网络设备的确定各个数据段和第三纠错信息的对应关系的时间。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
本申请实施例中,第一校验信息可以对第一数据包中的W个第一目标字段进行校验,例如可以是1个字段或者2个字段,可以根据实际应用情况而定,提升了第一校验信息对第一数据包进行校验的灵活性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
本申请实施例中,第一纠错信息可以对第一数据包中的Q个第一目标字段进行纠错,该Q个第一目标字段包括了第一校验信息校验的W个第一目标字段,这样第一纠错信息除了可以对第一校验信息校验的W个第一目标字段进行纠错以外,还可以对M个第一目标字段中的其他第一目标字段进行纠错,提升了方案的灵活性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一数据包为IP层数据包,第一数据包包括M个第二目标字段,第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
本申请实施例中,当第一数据包为IP层数据包时,第一校验信息可以对W个第二目标字段进行校验,例如可以是1个字段或者2个字段,可以根据实际应用情况而定,提升了第一校验信息对第一数据包进行校验的灵活性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。
本申请实施例中,当第一数据包为IP层数据包时,第一纠错信息可以对第一数据包中的Q个第一目标字段进行纠错,该Q个第一目标字段包括了第一校验信息校验的W个第一目标字段,这样第一纠错信息除了可以对第一校验信息校验的W个第一目标字段进行纠错以外,还可以对M个第一目标字段中的其他第一目标字段进行纠错,提升了方案的灵活性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一数据包为以太网数据包,第一校验信息为帧校验序列FCS,第一校验信息用于校验第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
本申请实施例中,当第一数据包为以太网数据包时,第一校验信息为FCS,提升了方案的可实现性。
基于第一方面的数据传输方法,在一种可能的实现方式中,第一数据包为IP层数据包,第一校验信息为第一数据包的IP头部字段中的校验和checksum,第一校验信息用于对IP头部字段进行校验。
本申请实施例中,当第一数据包为IP层数据包时,第一校验信息为校验和字段,且第一校验信息用于对IP头部字段进行校验,提升了方案的可实现性。
本申请第二方面提供了一种数据传输方法。
第二网络设备接收第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验,第二网络设备接收第二数据包,第二数据包包括第一纠错信息,第一纠错信息用于对第一数据包进行纠错。
本申请实施例中,通过在第二数据包中携带第一纠错信息,当第一数据包出错时,可以根据第一纠错信息对第一数据包进行纠错,节省了重传的时间,提高了数据传输的效率。
基于第二方面的数据传输方法,在一种可能的实现方式中,方法还包括:第二网路设备根据第一校验信息对第一数据包进行校验,若校验失败,则第二网络设备根据第一纠错信息对第一数据包进行纠错。
本申请实施例中,当第二网络设备对第一数据包校验失败时,可以根据第二数据包中的第一纠错信息对第一数据包进行纠错,减少了数据包重传的时间,提升了数据包传输的效率。
基于第二方面的数据传输方法,在一种可能的实现方式中,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,第一数据包包括N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数,第一数据包中还包括N-1个第三纠错信息,N-1个第三纠错信息分别用于对N个数据段中的第一个数据段至第N-1个数据段进行纠错,方法还包括:若校验失败,第二网络设备根据N-1个第三纠错信息分别对第一个数据段至第N-1个数据段进行纠错,若校验失败,则第二网络设备根据第一纠错信息对第一数据包进行纠错包括:若校验失败,则第二网络设备根据第一纠错信息对第一数据包中的第N个数据段进行纠错。
本申请实施例中,当第一数据包的长度超过第一阈值时,则第一网络设备根据第一阈值对第一数据包进行分段,这样可以使用相同的编码器对第一数据包进行编码,这样可以降低使用不同编码器带来的计算复杂度。
基于第二方面的数据传输方法,在一种可能的实现方式中,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
本申请实施例中,每个第三纠错信息分别位于N个数据段中的连续两个数据段之间,当第二网络设备接收到该第一数据包时,可以直接的获取到数据段和对应的第三纠错信息,不需要再去确定各个数据段和第三纠错信息的对应关系,减少了第二网络设备的确定各个数据段和第三纠错信息的对应关系的时间。
基于第二方面的数据传输方法,在一种可能的实现方式中,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
本申请实施例中,第二数据包携带第二校验信息,可以对第二数据包进行校验,提升了数据传输的安全性。
基于第二方面的数据传输方法,在一种可能的实现方式中,所述第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
本申请实施例中,第一纠错信息携带在第二数据包的前导中,可以避免占用第二数据包的载荷部分,进而在传输过程中减少占用带宽资源。
基于第二方面的数据传输方法,在一种可能的实现方式中,方法还包括:第二网络设备接收第三数据包,第三数据包携带第二纠错信息,第二纠错信息用于对第二数据包进行纠错,第三数据包的接收时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
本申请实施例中,通过将第一数据包的第一纠错信息放在第二数据包中发送,将第二数据包的信息放在第三数据包中发送,根据此规律,使得每个数据包的纠错信息都放在下个数据包中,这样在前面一个数据包出错时,只需要等待下个数据包接收到之后,就可以对之前的数据包进行纠错,而不需要进行重传,提升了数据传输的效率。
基于第二方面的数据传输方法,在一种可能的实现方式中,第二数据包携带第二校验信息,方法还包括:第二网络设备根据第二校验信息对第二数据包进行校验,若校验失败,则第二网络设备根据第二纠错信息对第二数据包进行纠错。
本申请实施例中,当第二网络设备对第二数据包校验失败时,可以根据第三数据包中的第一纠错信息对第二数据包进行纠错,减少了数据包重传的时间,提升了数据包传输的效率。
基于第二方面的数据传输方法,在一种可能的实现方式中,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
本申请实施例中,第一校验信息可以对第一数据包中的W个第一目标字段进行校验,例如可以是1个字段或者2个字段,可以根据实际应用情况而定,提升了第一校验信息对第一数据包进行校验的灵活性。
基于第二方面的数据传输方法,在一种可能的实现方式中,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
本申请实施例中,第一纠错信息可以对第一数据包中的Q个第一目标字段进行纠错,该Q个第一目标字段包括了第一校验信息校验的W个第一目标字段,这样第一纠错信息除了可以对第一校验信息校验的W个第一目标字段进行纠错以外,还可以对M个第一目标字段中的其他第一目标字段进行纠错,提升了方案的灵活性。
基于第二方面的数据传输方法,在一种可能的实现方式中,所述第一数据包为以太网数据包,所述第一校验信息为帧校验序列FCS,所述第一校验信息用于校验所述第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
本申请实施例中,当第一数据包为以太网数据包时,第一校验信息可以对第一目的物理地址、第一源物理地址以及第一数据单元进行纠错,提升了方案的可实现性。
基于第二方面的数据传输方法,在一种可能的实现方式中,所述第一数据包为IP层数据包,所述第一校验信息为所述第一数据包的IP头部字段中的校验和checksum,所述第一校验信息用于对所述IP头部字段进行校验。
本申请实施例中,当第一数据包为IP层数据包时,第一校验信息用于对第一数据包的IP头部字段进行校验,提升了方案的可实现性。
本申请第三方面了一种网络设备。
一种网络设备,包括:
获取单元,用于获取第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
处理单元,用于根据第一数据包得到第一纠错信息,第一纠错信息用于对第一数据包进行纠错;
获取单元还用于获取第二数据包,第二数据包包括第一纠错信息;
发送单元,用于发送第一数据包和第二数据包。
可选地,第二数据包的发送时间在第一数据包之后。
可选地,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
可选地,处理单元具体用于根据第一纠错算法对第一数据包进行编码得到第一纠错信息。
可选地,第一纠错算法包括以下至少一个:BCH码算法、里德-所罗门码RS算法。
可选地,所述第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
可选地,处理单元还用于对第二数据包进行编码得到第二纠错信息,第二纠错信息用于对第二数据包进行纠错;
发送单元还用于向第二网络设备发送第三数据包,第三数据携带第二纠错信息,第三数据包的发送时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
可选地,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,处理单元还用于根据第一阈值将第一数据包分为N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数;
处理单元还用于分别对N个数据段中的第一个数据段至第N-1个数据段进行编码得到N-1个第三纠错信息,N-1个第三纠错信息分别用于对第一数据段至第N-1个数据段进行纠错,N-1个第三纠错信息携带在第一数据包中;
处理单元具体用于根据第一数据包的第N个数据段得到第一纠错信息,第一纠错信息用于对第N个数据段进行纠错。
可选地,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
可选地,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为IP层数据包,第一数据包包括M个第二目标字段,第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为以太网数据包,第一校验信息为帧校验序列FCS,第一校验信息用于校验第一目的物理地址、第一源物理地址、第一数据单元,M个第一目标字段包括第一目的物理地址、第一源物理地址以及第一数据单元。
可选地,第一数据包为IP层数据包,第一校验信息为第一数据包的IP头部字段中的校验和checksum,第一校验信息用于对IP头部字段进行校验,M个第一目标字段包括IP头部字段。
本申请第三方面中网络设备所执行的步骤和本申请第一方面或本申请第二方面所执行的步骤类似,具体此处不再赘述。
本申请第四方面提供了一种网络设备。
一种网络设备,包括:
接收单元,用于接收第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
接收单元还用于接收第二数据包,第二数据包包括第一纠错信息,第一纠错信息用于对第一数据包进行纠错。
可选地,网络设备包括:
校验单元,用于根据第一校验信息对第一数据包进行校验;
若校验失败,则网络设备还包括:
纠错单元,用于根据第一纠错信息对第一数据包进行纠错。
可选地,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,第一数据包包括N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数,第一数据包中还包括N-1个第三纠错信息,N-1个第三纠错信息分别用于对N个数据段中的第一个数据段至第N-1个数据段进行纠错,
若校验失败,则纠错单元根据N-1个第三纠错信息分别对第一个数据段至第N-1个数据段进行纠错;
若校验失败,则纠错单元根据第一纠错信息对第一数据包中的第N个数据段进行纠错。
可选地,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
可选地,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
可选地,所述第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
可选地,
接收单元还用于接收第三数据包,第三数据包携带第二纠错信息,第二纠错信息用于对第二数据包进行纠错,第三数据包的接收时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
可选地,第二数据包携带第二校验信息,校验单元还用于根据第二校验信息对第二数据包进行校验;
若校验失败,则纠错单元具体用于根据第二纠错信息对第二数据包进行纠错。
可选地,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为IP层数据包,第一数据包包括M个第二目标字段,第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为以太网数据包,第一校验信息为帧校验序列FCS,第一校验信息用于校验第一目的物理地址、第一源物理地址、第一数据单元,M个第一目标字段包括第一目的物理地址、第一源物理地址以及第一数据单元。
可选地,第一数据包为IP层数据包,第一校验信息为第一数据包的IP头部字段中的校验和checksum,第一校验信息用于对IP头部字段进行校验,M个第一目标字段包括IP头部字段。
本申请第四方面中网络设备所执行的步骤和本申请第一方面或本申请第二方面所执行的步骤类似,具体此处不再赘述。
本申请第五方面提供了一种计算机存储介质,计算机存储介质中存储有指令,指令在计算机上执行时,使得计算机执行如本申请第一方面或第二方面实施方式的方法。
本申请第六方面提供了一种计算机程序产品,计算机程序产品在计算机上执行时,使得计算机执行如本申请第一方面或第二方面实施方式的方法。
本申请第七方面,提供了一种网络设备,包括处理器,处理器与存储器耦合,存储器中存储有至少一条程序指令或代码,至少一条程序指令或代码由处理器加载并执行,以使网络设备实现本申请第一方面或第二方面的方法。
本申请第八方面提供了一种芯片系统,包括:应用于网络设备中,芯片系统包括至少一个处理器,存储器和接口电路,存储器、收发器和至少一个处理器通过线路互联,至少一个存储器中存储有指令;指令被处理器执行,以执行本申请第一方面或本申请第二方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过在第二数据包中携带第一纠错信息,当第一数据包出错时,可以根据第一纠错信息对第一数据包进行纠错,节省了重传的时间,提高了数据传输的效率。
附图说明
图1为本申请实施例提供的现有技术数据包重传流程一个示意图;
图2为本申请实施例提供的数据传输系统架构一个示意图;
图3为本申请实施例提供的数据传输方法一个流程示意图;
图4为本申请实施例提供的数据包和数据帧的一个结构示意图;
图5为本申请实施例提供的数据包一个结构示意图;
图6为本申请实施例提供的数据包另一结构示意图;
图7为本申请实施例提供的数据传输方法另一流程示意图;
图8为本申请实施例提供的数据包另一结构示意图;
图9为本申请实施例提供的数据传输方法另一流程示意图;
图10为本申请实施例提供的数据包另一结构示意图;
图11为本申请实施例提供的数据传输方法另一流程示意图;
图12为本申请实施例提供的数据传输方法另一流程示意图;
图13为本申请实施例提供的数据传输方法另一流程示意图;
图14为本申请实施例提供的网络设备一个结构示意图;
图15为本申请实施例提供的网络设备另一结构示意图;
图16为本申请实施例提供的网络设备另一结构示意图;
图17为本申请实施例提供的网络设备另一结构示意图;
图18为本申请实施例提供的网络设备另一结构示意图。
具体实施方式
本申请实施例提供了一种数据传输的方法,通过在第二数据包中携带第一纠错信息,当第一数据包出错时,可以根据第一纠错信息对第一数据包进行纠错,节省了重传的时间,提高了数据传输的效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,为本申请实施例提供的现有技术重传流程示意图。
Go-back-N重传机制是实现链路级可靠性的一种有效手段。通常发送端会为每个帧设置一个序列号,每个已经发送的帧都会进入到重传缓存(retry buffer)里。如果接收端接收到一个正确的帧,则接收端会回送一个ACK消息,表示接收端接收到一个正确的帧。发送端在接收到该ACK消息后,则从retry buffer里清楚该帧。如果接收端接收到一个错误的帧时,则接收端会回送一个NAK消息,表示接收端接收到一个错误的帧。发送端在接收到NAK消息之后,则从发送端的Retry Buffer里面把该帧以及后续的帧均重发一次。
可见,一个错误帧引入的时延至少为一个往返时延RTT,而发送端Retry Buffer占用的存储空间大小至少为:Bretrybuffer=Rlinkrate*RTT。其中,Bretrybuffer表示Retry Buffer占用的存储空间大小,Rlinkrate表示一个数据帧所占用的大小,RTT表示一个往返的时延。
其中,RTT时延与链路距离相关。例如,在链路距离为500米时,传播时延为5*500纳秒ns=2500微秒ns,一个RTT时延至少包括2个传播时延,即在链路距离为500米时,如果需要进行重传,则会引入至少5us的传播时延。对于100Gbps的链路来说,此时的Retry Buffer里至少要缓存一个RTT时延的数据包,否则在数据传输的过程中,若数据包需要重传,就会造成断流,即在需要重传的RTT时延下,没有数据包可以进行传送。因此,此时的RetryBuffer的大小至少为61kb。
如图1所示,Pcle在检测到错误TLP包时,会使用Go-back-N重传策略来重传错误的包。具体来说,Pcle的链路发送方,当发送一个TLP数据包时,同时会在Replay buffer中进行备份。当Pcle的链路接收方在接收到正确的TLP时,则回送ACK DLLP消息,该ACK DLLP消息中携带TLP数据包的序列号(sequence number)。Pcle的链路发送方在接收到该ACK消息之后,会将Replay buffer中的备份的TLP数据包和该TLP数据包之前备份的TLP清除。如果Pcle的连接接收方发现TLP包有错误时,则会回送一个NAK DLLP消息,该NAK DLLP消息中携带上一个正确的TLP数据包的序列号。Pcle的链路发送方在接收到该NAK DLLP消息之后,会将Replay buffer中NAK DLLP消息携带的序列号对应的TLP数据包,和在发送该TLP数据包之后发送的所有数据包都向Pcle的链路接收方重新发送一遍。
如上,现有重传技术会导致在需要重传时,带来较大的时延开销,且需要预存储一个RTT的数据包,占用存储资源。为了解决上述问题,下面对本申请提供的数据传输方面进行详细描述。
请参阅图2,为本申请实施例提供的数据传输系统一个架构示意图。
如图2所示,该数据传输系统包括第一网络设备101、第二网络设备102以及以太网103。其中,第一网络设备101通过有线或者无线的方式连接到以太网103,第二网络设备102通过有线或者无线的方式连接到以太网103。其中,第一网络设备101通过以太网103和第二网络设备进行通信。需要说明的是,在如图1的数据传输框架中所包含的第一网络设备和第二网络设备的数据和连接方式仅是一种示例,在实际应用过程中,第一网络设备的数据和第二网络设备的数量和连接方式此处不做限定。
图2中的第一网络设备101或者第二网络设备102可以是一种向用户提供语音或者数据连通性的设备,例如可以例如也可以称为用户设备(user equipment,UE),移动台(mobile station),用户单元(subscriber unit),站台(station),终端设备(terminalequipment,TE)等。第一网络设备101或者第二网络设备102可以为蜂窝电话(cellularphone),个人数字助理(personal digital assistant,PDA),无线调制解调器(modem),手持设备(handheld),膝上型电脑(laptop computer),无绳电话(cordless phone),无线本地环路(wireless local loop,WLL)台,计算机,服务器,盒式或框式的以太网交换机,路由器,平板电脑(pad)等。随着无线通信技术的发展,可以接入通信系统、可以与通信系统的网络侧进行通信,或者通过通信系统与其它物体进行通信的设备都可以是本申请实施例中的终端,譬如,智能交通中的终端和汽车、智能家居中的家用设备、智能电网中的电力抄表仪器、电压监测仪器、环境监测仪器、智能安全网络中的视频监控仪器、收款机、智慧城市中的相关产品等等。
下面,对本申请实施例中所应用到的术语作出对应的解释。
64B/66B block:携带2位同步头(sync header)和承载有8个字节(64bit)的数据码块编码方式,作为万兆、40G/100G/200G/400G等以太网的PHY层传输编码格式。
L3/Layer 3:以太网架构的3层,即IP/MPLS层,指数据传输途经L1、L2和该层的网络协议,但不上送更高层逻辑功能单元处理。
L2/Layer 2:以太网架构的2层,即MAC层,指数据传输途经L1和该层的网络协议,但不上送L3和更高层逻辑功能单元处理。
L1/Layer 1:以太网架构的1层,即PHY层,指数据传输只途经该层的网络协议,并不上送L2和更高层逻辑功能单元处理。
RS层:Reconciliation Sublayer,协调子层,IEEE 802.3标准定义的一个功能单元,位于MAC层和PHY层内的PCS子层之间的功能单元,负责链路故障的协商和MAC层到PCS子层的数据码流的相互转换。
PHY链路/物理链路:连接两个物理端口之间的链路。
Linecard(线卡):线卡指承载一组具备相同速率、功能和类型的物理端口的板卡。线卡下属物理端口的大部分功能由该线卡上的线卡芯片提供。
第一网络设备101和第二网络设备102在基于以太网103进行数据传输时,根据协议IEEE802.3的规范,将数据帧封装为数据包进行传输。具体的,例如图5所示,为IEEE802.3规范的64B/66B编码的码形定义,其中2个Bit“10”或者“01”是位于block首部的同步头,后64Bit用于承载净荷数据或者协议。
其中,控制码块S码块的格式如图6第一行所示,表示一个帧结束的T7(T码块有T0,T1,T2,T3,T4,T5,T6,T7,此处以T7码块为例)码块,如图6第二行所示,空闲码块如图6的第三行所示,此时C0-C7为0,空闲码块通常位于两个T(包括T0,T1,T2,T3,T4,T5,T6,T7)码块之间,用于填充帧中无数据的空白处。低功耗码块也可以如图6的第三行所示,此时C0-C7为6,低功耗码块通常用于低功耗场景下的编码。数据码块D如图6中第四行所示。
基于上述本申请实施例提供的数据传输系统,下面对本申请提供的数据传输方法进行详细的描述。
在本申请实施例中,第一网络设备发送给第二网络设备的数据包大小可能会超过第一阈值,该第一阈值为根据第一纠错算法确定的,也可能会小于第一阈值。数据包大于或者小于第一阈值时,第一网络设备对数据包的处理方式不同,下面分别进行描述。
一、第一网络设备向第二网络设备发送的数据包小于第一阈值。
请参阅图3,为本申请实施例提供的数据传输方法一个流程示意图。
在步骤301中,第一网络设备获取第一数据包。
第一网络设备在和第二网络设备建立连接之后,第一网络设备获取第一数据包,该第一数据包包括第一校验信息,该第一校验信息用于对第一数据包进行校验。
具体的,第一网络设备先生成一个数据帧,如图4所示,第一数据包中包括了M个第一目标字段,该M个第一目标字段包括了目的地址(destination address),即该数据帧接收方的地址,本实施例中为第二网络设备的地址。该M个第一目标字段包括了源地址(source address),即该数据帧发送方的地址,本实施例中为第一网络设备的地址。该M个第一目标字段包括了数据帧长度或者类型(length/type)字段,数据帧长度表示该数据帧的字节大小,类型表示该数据帧的类型。该M个第一目标字段包括了第一数据单元,用于承载数据,例如,第一数据单元为第一数据包的载荷部分,或者第一数据单元为媒体访问控制数据服务单元。其中,在一种可能的实现方式中,第一数据单元包括了mac client data字段和pad字段。该M个第一目标字段包括了第一校验信息,即frame check sequence字段,该第一校验信息用于对第一数据包进行完整性校验。
具体的,在一种可能的实现方式中,该第一校验信息用于对M个第一目标字段中的W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。例如,第一校验信息是根据从目的地址开始的第一个比特到数据帧载荷部分的最后一个比特进行计算的,并将计算结果CRC-32填充在FCS字段。可以理解的是,在实际应用过程中,该第一校验信息还可以根据其他字段进行计算,例如只根据数据帧载荷部分进行计算,并将计算结果填充在FCS字段,此时第一校验信息只用于对数据帧载荷部分的完整性进行校验,具体第一校验信息的生成方式此处不做限定。
在生成了数据帧之后,第一网络设备根据以太网协议对该数据帧进行打包,得到第一数据包。具体的,如图4所示,第一网络设备在数据帧的基础上添加了前导部分(preamble)以及数据帧的起始符号(start of frame delimeter,SFD)部分,该数据帧的起始符号表示数据帧的数据部分从该起始符号之后开始。
在步骤302中,第一网络设备根据第一数据包得到第一纠错信息。
第一网络设备在获取了第一数据包之后,第一网络设备根据第一数据包得到第一纠错信息,该第一纠错信息用于对第一数据包进行纠错。
具体的,在一种可能的实现方式中,第一网络设备根据第一纠错算法对第一数据包进行编码,得到第一纠错信息。具体的,在实际应用过程中,第一纠错算法可以是用于对数据有纠错功能的算法,例如BCH码算法或者里德-所罗门码RS算法,具体此处不做限定,本实施例中以RS算法为例进行说明。
具体的,在一种可能的实现方式中,第一网络设备根据第一数据包中M个第一目标字段中的Q个第一目标字段进行编码,得到第一纠错信息,其中,该第一纠错信息可以包括L个校验比特,L为大于1的正整数。例如,M个第一目标字段可以是数据帧的载荷部分至FCS部分,也可以是前导部分至FCS部分,具体此处不做限定,若是第一纠错信息在编码时只根据第一数据包中的前导部分至数据帧的载荷部分进行的编码,那么在纠错时,也只能对第一数据包的前导部分至数据帧的载荷部分进行纠错,即第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错。在实际应用过程中,第一网络设备还可以对第一数据包的所有部分进行编码,得到第一纠错信息,即该第一纠错信息可以对第一数据包的所有部分进行纠错,即此时的Q等于M。
以太网帧的前导字符定的64B或者66B编码的码块格式如图8所示,其中第一纠错信息的可用区域为第一个字节至第八个字节,而在以太网帧的前导字符部分,需要预留一个字节给起始符号位置,另外还需要预留一个字节给CRC-8,因此第一纠错信息最大可以承载在剩下的6字节中。
在一种可能的实现方式中,第一数据包为IP层的数据包,第一数据包包括了M个第二目标字段。第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,且Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。例如,第一数据包的格式如图13所示,M个第二目标字段包括了前导部分(preamble)、目的MAC地址(DMAC)、源MAC地址(SMAC)、TYPE、IP头部(IP HEAD)、IP负载(IPPAYLOAD),其中第一校验信息校验的部分是IP的头部,第一纠错信息纠错的是IP的头部和前导部分,即第一纠错信息是根据IP的头部和前导部分生成的。可以理解的是,在实际应用过程中,第一纠错信息还可以根据IP数据包的其他部分生成,具体此处不做限定。
第一网络设备在对第一数据包编码的过程中,需要根据符号(symbol)的长度和需要纠正的符号个数来确定编码器和解码器。例如,第一纠错信息占用的字节大小为4字节,编码算法为RS算法,一个符号的长度为8个比特,即一个字节,需要纠正的符号个数为2个,则根据RS算法的规则,当数据包大小不超过有限域的大小,且纠正的符号个数保持不变时,都可以使用相同的编码器进行编码,该有限域的大小即为第一阈值。例如,当有限域为28域时,即数据包大小不超过255字节时,此时的编码器可以进行灵活的选择,例如RS(255,251),RS(254,250),···,RS(68,64)等,具体此处不做限定。例如,当第一数据包为IP层的数据包时,当IP的头部为20字节时,加上7字节的前导部分,则可以使用RS(31,27)进行编码。
在步骤303中,第一网络设备向第二网络设备发送第一数据包。
在第一网络设备获取了第一数据包之后,第一网络设备向第二网络设备发送该第一数据包。
在步骤304中,第二网络设备根据第一校验信息对第一数据包进行校验。
第二网络设备在接收到第一数据包之后,第二网络设备对第一数据包进行校验,若校验正确,则第二网络设备获取该第一数据包中的数据。若校验失败,则第二网络设备根据第一纠错信息对第一数据包进行纠错。
具体的,在第二网络设备接收到第一数据包之后,第二网络设备先获取第一数据包中的第一校验信息,并根据生成第一校验信息的第一数据包中的字段,重新计算第一校验信息,若重新计算后的校验信息和第一校验信息相同,则说明第一数据包没有在传输过程中发生错误。若重新计算后的校验信息和第一校验信息不同,则说明第一数据包在传输过程中发生错误。
举例来说,当第一网络设备是根据第一数据包从前导部分的第一比特到数据帧载荷字段的最后一个比特生成的CRC-32(第一校验信息),则第二网络设备在接收到第一数据包之后,同样根据前导部分的第一比特到数据帧载荷字段的最后一个比特进行计算,若得出的CRC-32和第一网络设备填充在FCS中的CRC-32(第一校验信息)相同,则说明第一数据包在传输的过程中数据未发生错误,若不同,则说明第一数据包在传输过程中发生错误。
若第一网络设备确定第一数据包在传输过程中发生错误,则第一网络设备继续等待第二数据包,以根据第二数据包中的第一纠错信息对第一数据包进行纠错。需要说明的是,第二数据包为第二网络设备在接收到第一数据包之后接收到的数据包,并不限定是在第一数据包之后第一个接收到的数据包或者是第N个数据包。在一种优选的方式中,第一纠错信息携带在第二网络设备接收到第一数据包之后接收到的第一个数据包中。
在步骤305中,第一网络设备获取第二数据包。
第一网络设备在获取了第一数据包之后,第一网络设备获取第二数据奥,该第二数据包包括第一纠错信息,该第一纠错信息用于对第一数据包进行纠错。
具体的,第一网络设备先生成一个数据帧,如图4所示,第二数据包中包括了M个第三目标字段,该M个第三目标字段包括了目的地址(destination address),即该数据帧接收方的地址,本实施例中为第二网络设备的地址。该M个第三目标字段包括了源地址(source address),即该数据帧发送方的地址,本实施例中为第一网络设备的地址。该M个第三目标字段包括了数据帧长度或者类型(length/type)字段,数据帧长度表示该数据帧的字节大小,类型表示该数据帧的类型。该M个第三目标字段包括了载荷部分,用于承载数据,例如mac client data字段和pad字段。该M个第三目标字段包括了第二校验信息,即frame check sequence字段,该第二校验信息用于对第二数据包进行完整性校验。
具体的,在一种可能的实现方式中,用于对M个第三目标字段中的W个第三目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。例如,第二校验信息是根据从目的地址开始的第一个比特到数据帧载荷部分的最后一个比特进行计算的,并将计算结果CRC-32填充在FCS字段。可以理解的是,在实际应用过程中,该第二校验信息还可以根据其他字段进行计算,例如只根据数据帧载荷部分进行计算,并将计算结果填充在FCS字段,此时第二校验信息只用于对数据帧载荷部分的完整性进行校验,具体第二校验信息的生成方式此处不做限定。
在生成了数据帧之后,第一网络设备根据以太网协议对该数据帧进行打包,得到第二数据包。具体的,如图5所示,第一网络设备在数据帧的基础上添加了前导部分(preamble)以及数据帧的起始符号(start of frame delimeter,SFD)部分,该数据帧的起始符号表示数据帧的数据部分从该起始符号之后开始。
第一网络设备将第一数据包的第一纠错信息携带在第二数据包中。具体的,该第一纠错信息可以放在第二数据包的任何一个字段中,例如可以放在第二数据包的载荷部分,或者可以放在数据包的前导部分,具体此处不做限定。在一种优选的方式中,该第一纠错信息放在第二数据包的前导部分,这样通过前导来承载第一纠错信息,不会带来额外的带宽消耗。
在步骤306中,第一网络设备向第二网络设备发送第二数据包。
第一网络设备在获取了第二数据包之后,第一网络设备向第二网络设备发送第二数据包。
若第二网络设备对第一校验信息校验错误时,即第一数据包在传输过程中发生错误时,第二网络设备在接收到第二数据包之后,第二网络设备从第二数据包中获取第一纠错信息,并根据该第一纠错信息对第一数据包进行纠错。
具体的,第二网络设备根据第一网络设备对第一数据包进行编码的编码器,使用对应的解码器和第一纠错信息对第一数据包进行纠错。
举例来说,当第一数据包的数据长度为135字节时,即第一数据包的报文长度为128字节加上7字节的前导部分,第一网络设备使用RS(139,135)对第一数据包进行编码,并将编码后得到的第一纠错信息放在第二数据包中发送。第二网络设备在接收到第二数据包之后,如图10所示,先获取CRC-8对第一纠错信息进行校验,校验通过后,第二网络设备用RS(139,135)对应的解码器和第一纠错信息对第一数据包进行纠错。
在步骤307中,第二网络设备根据第二校验信息对第二数据包进行校验。
第二网络设备在接收到第二数据包之后,第二网络设备对第二数据包进行校验,若校验正确,则第二网络设备获取该第一数据包中的数据。若校验失败,则第二网络设备根据第一纠错信息对第一数据包进行纠错。
具体的,在第二网络设备接收到第二数据包之后,第二网络设备获取第二数据包中的第二校验信息,并根据生成第二校验信息的第二数据包中的字段,重新计算第二校验信息,若重新计算后的校验信息和第二校验信息相同,则说明第二数据包没有在传输过程中发生错误。若重新计算后的校验信息和第二校验信息不同,则说明第二数据包在传输过程中发生错误。
举例来说,当第一网络设备是根据第二数据包从前导部分的第一比特到数据帧载荷字段的最后一个比特生成的CRC-32(第一校验信息),则第二网络设备在接收到第二数据包之后,同样根据前导部分的第一比特到数据帧载荷字段的最后一个比特进行计算,若得出的CRC-32和第一网络设备填充在FCS中的CRC-32(第一校验信息)相同,则说明第二数据包在传输的过程中数据未发生错误,若不同,则说明第二数据包在传输过程中发生错误。
若第一网络设备确定第二数据包在传输过程中发生错误,则第一网络设备继续等待第三数据包,以根据第三数据包中的第二纠错信息对第二数据包进行纠错。需要说明的是,第三数据包为第二网络设备在接收到第二数据包之后接收到的数据包,并不限定是在第二数据包之后第一个接收到的数据包或者是第N个接收到的数据包。在一种优选的方式中,第二纠错信息携带在第二网络设备接收到第二数据包之后接收到的第一个数据包中。
在步骤308中,第一网络设备对第二数据包进行编码得到第二纠错信息。
第一网络设备在获取了第二数据包之后,第一网络设备根据第二数据包得到第二纠错信息,该第二纠错信息用于对第二数据包进行纠错。
具体的,在一种可能的实现方式中,第一网络设备根据第一纠错算法对第二数据包进行编码,得到第二纠错信息。具体的,在实际应用过程中,第一纠错算法可以是用于对数据有纠错功能的算法,例如BCH码算法或者里德-所罗门码RS算法,具体此处不做限定,本实施例中以RS算法为例进行说明。
具体的,在一种可能的实现方式中,第一网络设备根据第二数据包中M个第三目标字段中的Q个第三目标字段进行编码,得到第二纠错信息,其中,该第二纠错信息可以包括L个校验比特,L为大于1的正整数。例如,M个第三目标字段可以是数据帧的载荷部分至FCS部分,也可以是前导部分至FCS部分,具体此处不做限定,若是第二纠错信息在编码时只根据第二数据包中的前导部分至数据帧的载荷部分进行的编码,那么在纠错时,也只能对第二数据包的前导部分至数据帧的载荷部分进行纠错,即第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错。在实际应用过程中,第一网络设备还可以对第二数据包的所有部分进行编码,得到第二纠错信息,即该第二纠错信息可以对第二数据包的所有部分进行纠错,即此时的Q等于M。
以太网帧的前导字符定的64B或者66B编码的码块格式如图8所示,其中第二纠错信息的可用区域为第一个字节至第八个字节,而在以太网帧的前导字符部分,需要预留一个字节给起始符号位置,另外还需要预留一个字节给CRC-8,因此第二纠错信息最大可以承载在剩下的4字节或者6字节中。
在一种可能的实现方式中,第二数据包为IP层的数据包,第二数据包包括了M个第四目标字段。第二校验信息用于对M个第四目标字段中的W个第四目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。第二纠错信息用于对M个第四目标字段中的Q个第四目标字段进行纠错,且Q个第四目标字段包括W个第四目标字段,Q为大于或者等于1的正整数。例如,第二数据包的格式如图13所示,M个第四目标字段包括了前导部分(preamble)、目的MAC地址(DMAC)、源MAC地址(SMAC)、TYPE、IP头部(IP HEAD)、IP负载(IPPAYLOAD),其中第二校验信息校验的部分是IP的头部,第二纠错信息纠错的是IP的头部和前导部分,即第二纠错信息是根据IP的头部和前导部分生成的。可以理解的是,在实际应用过程中,第二纠错信息还可以根据IP数据包的其他部分生成,具体此处不做限定。
第一网络设备在对第二数据包编码的过程中,需要根据符号(symbol)的长度和需要纠正的符号个数来确定编码器和解码器。例如,第二纠错信息占用的字节大小为4字节,编码算法为RS算法,一个符号的长度为8个比特,即一个字节,需要纠正的符号个数为2个,则根据RS算法的规则,当数据包大小不超过有限域的大小,且纠正的符号个数保持不变时,可以使用相同的编码器进行编码,该有限域的大小即为第一阈值。例如,当有限域为28域时,即数据包大小不超过255字节时,此时的编码器可以进行灵活的选择,例如RS(255,251),RS(254,250),···,RS(68,64)等,具体此处不做限定。例如,当第二数据包为IP层的数据包时,当IP的头部为20字节时,加上7字节的前导部分,则可以使用RS(31,27)进行编码。
在步骤309中,第一网络设备向第二网络设备发送第三数据包。
第一网络设备在获取了第三数据包之后,第一网络设备向第二网络设备发送第三数据包。
若第二网络设备对第二校验信息校验错误时,即第二数据包在传输过程中发生错误时,第二网络设备在接收到第三数据包之后,第二网络设备从第三数据包中获取第二纠错信息,并根据该第二纠错信息对第二数据包进行纠错。
具体的,第二网络设备根据第一网络设备对第二数据包进行编码的编码器,使用对应的解码器和第二纠错信息对第二数据包进行纠错。
举例来说,当第二数据包的数据长度为71字节时,即第二数据包的报文长度为64字节加上7字节的前导部分,第一网络设备使用RS(75,71)对第二数据包进行编码,并将编码后得到的第二纠错信息放在第三数据包中发送。第二网络设备在接收到第三数据包之后,如图10所示,先获取CRC-8对第二纠错信息进行校验,校验通过后,第二网络设备用RS(75,71)对应的解码器和第二纠错信息对第二数据包进行纠错。
本实施例中,第一网络设备在获取到第一数据包之后,根据第一数据包生成第一纠错信息,并将第一纠错信息携带在下个数据包中进行发送,即在下个待发送的数据包中携带之前一个数据包的纠错信息,这样在之前一个数据包出错时,可以等待下个数据包接收到时,对之前一个数据包进行纠错。举例来说,如图7所示,当发送包含第K帧数据帧的数据包时,根据第K帧的帧头部分到FCS部分生成第K帧的纠错信息,并将第K帧的纠错信息携带在第K+1帧的帧头位置进行发送。再根据K+1帧的帧头部分到FCS部分生成第K+1帧的纠错信息,放在第K+2帧的帧头位置进行发送。
如图9所示,第一网络设备(A)分别发送了128B、64B和80B大小的数据包给第二网络设备(Z),而第一网络设备根据128B数据包生成128B数据包的纠错信息,并将该128B数据包的纠错信息放在第64B数据包的前导中进行发送。而64B数据包的纠错信息放在第80B数据包的前导信息中进行发送,以此类推,即每个数据包的纠错信息都放在之后的数据包中进行发送。
本实施例中,第一网络设备将第一数据包的第一纠错信息放在第二数据包的前导进行发送,不会占用额外的带宽资源,且当第一数据包出错时,只需要等待一个数据包的时间,就可以根据第二数据包中的第一纠错信息对第一数据包进行纠错,节省了需要重传数据包的时间。
二、第一网络设备向第二网络设备发送的数据包大于第一阈值。
请参阅图11,为本申请实施例提供的数据传输方法另一流程示意图。
在步骤1101中,第一网络设备获取第一数据包。
本实施例中,步骤1101和前述图3所示实施例中步骤301类似,具体此处不再赘述。
在步骤1102中,第一网络设备根据第一数据包得到第一纠错信息。
第一网络设备在获取了第一数据包之后,第一网络设备根据第一数据包得到第一纠错信息,该第一纠错信息用于对第一数据包进行纠错。
具体的,当第一数据包的长度超过第一阈值时,第一网络设备根据第一阈值将第一数据包分为N个数据段,其中,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数。
在一种可能的实现方式中,第一网络设备根据第一纠错算法分别对N个数据段中的第一个数据段至第N-1个数据段进行编码,得到N-1个第三纠错信息,该N-1个第三纠错信息分别用于对第一数据段至第N-1数据段进行纠错,N-1个第三纠错信息携带第一数据包中。具体的,在实际应用过程中,第一纠错算法可以是用于对数据有纠错功能的算法,例如BCH码算法或者里德-所罗门码RS算法,具体此处不做限定,本实施例中以RS算法为例进行说明。第一网络设备根据第N段数据段得到第一纠错信息,该第一纠错信息用于对第N段数据段进行纠错。该第一纠错信息携带在下个待发送的数据包的前导中。需要说明的是,数据段表示第一数据包中的数据载荷部分,即第一数据包包括了M个第一目标字段,该M个第一目标字段中的其中一个第一目标字段为数据载荷部分。当第1个第三纠错信息用于对第1个数据段进行纠错时,该第1个第三纠错信息还可以用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q小于或者等于M,Q和M为大于或者等于1的正整数。例如,第1个第三纠错信息除了对第一个数据段进行纠错以外,还可以对第一数据包中的前导部分进行纠错。
举例来说,如图12所示,第一网络设备在发送600B报文的数据包时,第一网络设备将600B报文的数据包拆分为3个数据段,其中,2个数据段的大小为251B,最后一个数据段的大小为98B,因为在RS算法中,当数据包大小不超过有限域的大小,且纠正的符号个数保持不变时,即数据包或者数据段的大小不超过255字节时,可以使用相同的编码器进行编码,若编码的数据段大小或者数据包大小超过255字节时,则需要用不同的编码器进行编码,这样会使得计算难度增大,需要说明的是,本申请实施例并不排除使用该方法进行编码,即可以不拆分超过第一阈值的数据包,直接用不同的编码器进行编码。在拆分得到3个数据段之后,第一网络设备对第一个251B的数据段进行编码,得到第一个第三纠错信息,并将该第一个第三纠错信息携带在第一个251B的数据段和下一个251B的数据段之间,进而继续对第二个251B的数据段进行编码,得到第二个第三纠错信息,并将第二个第三纠错信息携带在第二个251B的数据段和98B数据段之间,最后,第一网络设备对98B的数据段进行编码,得到第一纠错信息,并将该第一纠错信息放在下一个待发送的80B的数据包的前导中进行发送。
需要说明的是,该N-1个第三纠错信息可以分别位于N个数据段中连续的两个数据段之间,也可以共同携带在第一数据包的某个字段部分,例如第一数据包的载荷部分,具体此处不做限定。
需要说明的是,对第一数据包的分段并不限定一定要有一个数据段的大小等于第一阈值,只需要每个数据段的大小不超过第一阈值几个,并不对数据段的个数作出限制。其中,第一个数据段的纠错信息可以根据载荷部分至FCS部分生成的,也可以只根据载荷部分生成的,具体此处不做限定。若第一个数据段的纠错信息在编码时只根据第一数据包的前导部分至数据包的载荷部分进行的编码,那么在纠错时,也只能对第一数据包的前导部分至数据包的载荷部分进行纠错。在实际应用过程中,第一网络设备还可以只对第一数据包的载荷部分进行编码,即第一个数据段的纠错信息只对第一数据包的载荷部分进行纠错。
以太网帧的前导字符定的64B或者66B编码的码块格式如图8所示,其中第一纠错信息的可用区域为第一个字节至第八个字节,而在以太网帧的前导字符部分,需要预留一个字节给起始符号位置,另外还需要预留一个字节给CRC-8,因此第一纠错信息最大可以承载在剩下的4字节或者6字节中。
在一种可能的实现方式中,在IP层,第一数据包的格式如图13所示,第一数据包包括了M个第二目标字段。第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,且Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。例如,第一数据包的格式如图13所示,M个第二目标字段包括了前导部分(preamble)、目的MAC地址(DMAC)、源MAC地址(SMAC)、TYPE、IP头部(IP HEAD)、IP负载(IPPAYLOAD),其中第一校验信息校验的部分是IP的头部,第一纠错信息纠错的是IP的头部和前导部分,即第一纠错信息是根据IP的头部和前导部分和第1个数据段生成的。可以理解的是,在实际应用过程中,第一纠错信息还可以根据IP数据包的其他部分生成,具体此处不做限定。在实际应用过程中,还可以通过N-1个第三纠错信息中任意一个第三纠错信息对M个第二目标字段中的Q个第二目标字段进行纠错,具体此处不做限定。
第一网络设备在对第一数据包的各个数据段进行编码的过程中,需要根据符号(symbol)的长度和需要纠正的符号个数来确定编码器和解码器。例如,第一纠错信息或者第三纠错信息占用的字节大小为4字节,编码算法为RS算法,一个符号的长度为8个比特,即一个字节,需要纠正的符号个数为2个,则根据RS算法的规则,在2的八次方以内的字节数的报文都可以使用相同的编码器进行编码,即此时的编码器可以进行灵活的选择,例如RS(255,251),RS(254,250),···,RS(68,64)等,具体此处不做限定。例如,当第一数据包为IP层的数据包时,当IP的头部为20字节时,加上7字节的前导部分,则可以使用RS(31,27)进行编码。
在步骤1103中,第一网络设备向第二网络设备发送第一数据包。
在步骤1104中,第二网络设备根据第一校验信息对第一数据包进行校验。
在步骤1105中,第一网络设备获取第二数据包。
本实施例中,步骤1103至步骤1105和前述图3所示实施例中步骤303至步骤305类似,具体此处不再赘述。
在步骤1106中,第一网络设备向第二网络设备发送第二数据包。
第一网络设备在获取了第二数据包之后,第一网络设备向第二网络设备发送第二数据包。
若第二网络设备对第一校验信息校验错误时,即第一数据包在传输过程中发生错误时,则第二网络设备获取第一数据包中的N-1个第三纠错信息,并根据N-1个第三纠错信息分别对第一数据段至第N-1数据段进行纠错,第二网络设备在接收到第二数据包之后,第二网络设备从第二数据包中获取第一纠错信息,并根据该第一纠错信息对第一数据包的第N个数据段和M个第二目标字段中的Q个第二目标字段进行纠错。
需要说明的是,在一种可能的实现方式中,第一校验信息中包含了用于校验N-1个第三纠错信息的CRC-32,若根据CRC-32对N-1个第三纠错信息校验正确的情况下,则可以使用N-1个第三纠错信息对第一数据包中的N个数据段和Q个第二目标字段进行纠错。
具体的,第二网络设备根据第一网络设备对第一数据包的各个数据段进行编码的编码器,使用对应的解码器、第一纠错信息和N-1个第三纠错信息对第一数据包进行纠错。
举例来说,当第一数据包的数据长度为600字节时,第一数据包被拆分为两个251B和一个98B的数据段时,第一网络设备分别使用RS(255,251)和RS(104,98)对第一数据包的3个数据段进行编码,并将编码后得到的2个第三纠错信息携带在第一数据包中,将第一纠错信息放在第二数据包中发送。第二网络设备在接收到第二数据包之后,如图10所示,先分别在第一数据包和第二数据包中获取CRC-8和对第一纠错信息和2个第三纠错信息进行校验,校验通过后,第二网络设备用RS(255,251)和RS(104,98)对应的解码器、第一纠错信息和2个第三纠错信息对第一数据包进行纠错。
在步骤1107中,第一网络设备根据第二校验信息对第二数据包进行校验。
在步骤1108中,第一网络设备对第二数据包进行编码得到第二纠错信息。
在步骤1109中,第一网络设备向第二网络设备发送第三数据包。
本实施例中,步骤1107至步骤1109和前述图3所示实施例中步骤307至步骤309类似,具体此处不再赘述。
本申请实施例中,当第一数据包的数据长度超过第一阈值时,第一网络设备可以对第一数据包进行分段,使得每个数据段的大小小于第一阈值,这样就可以使用相同的编码器进行编码,减少了编码和解码的复杂度。
上面对本申请数据传输方法进行了描述,下面对本申请实施例提供的网络设备进行描述。
请参阅图14,为本申请实施例提供的一个网络设备结构示意图。
一种网络设备,包括:
获取单元1401,用于获取第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
处理单元1402,用于根据第一数据包得到第一纠错信息,第一纠错信息用于对第一数据包进行纠错;
获取单元1401还用于获取第二数据包,第二数据包包括第一纠错信息;
发送单元1403,用于发送第一数据包和第二数据包。
本实施例中网络设备各单元所执行的步骤和前述图3和图11中第一网络设备所执行的步骤类似,具体此处不再赘述。
请参阅图14,为本申请实施例提供的另一网络设备结构示意图。
一种网络设备,包括:
获取单元1401,用于获取第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
处理单元1402,用于根据第一数据包得到第一纠错信息,第一纠错信息用于对第一数据包进行纠错;
获取单元1401还用于获取第二数据包,第二数据包包括第一纠错信息;
发送单元1403,用于发送第一数据包和第二数据包。
可选地,第二数据包的发送时间在第一数据包之后。
可选地,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
可选地,处理单元1402具体用于根据第一纠错算法对第一数据包进行编码得到第一纠错信息。
可选地,第一纠错算法包括以下至少一个:BCH码算法、里德-所罗门码RS算法。
可选地,第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
可选地,处理单元1402还用于对第二数据包进行编码得到第二纠错信息,第二纠错信息用于对第二数据包进行纠错;
发送单元1403还用于向第二网络设备发送第三数据包,第三数据携带第二纠错信息,第三数据包的发送时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
可选地,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,处理单元1402还用于根据第一阈值将第一数据包分为N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数;
处理单元1402还用于分别对N个数据段中的第一个数据段至第N-1个数据段进行编码得到N-1个第三纠错信息,N-1个第三纠错信息分别用于对第一数据段至第N-1个数据段进行纠错,N-1个第三纠错信息携带在第一数据包中;
处理单元1402具体用于根据第一数据包的第N个数据段得到第一纠错信息,第一纠错信息用于对第N个数据段进行纠错。
可选地,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
可选地,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为IP层数据包,第一数据包包括M个第二目标字段,第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为以太网数据包,第一校验信息为帧校验序列FCS,第一校验信息用于校验第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
可选地,第一数据包为IP层数据包,第一校验信息为第一数据包的IP头部字段中的校验和checksum,第一校验信息用于对IP头部字段进行校验。
本实施例中网络设备各单元所执行的步骤和前述图3和图11中第一网络设备所执行的步骤类似,具体此处不再赘述。
请参阅图15,为本申请实施例提供的网络设备另一结构示意图。
接收单元1501,用于接收第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
接收单元1501还用于接收第二数据包,第二数据包包括第一纠错信息,第一纠错信息用于对第一数据包进行纠错。
本实施例中网络设备各单元所执行的步骤和前述图3和图11中第二网络设备所执行的步骤类似,具体此处不再赘述。
请参阅图16,为本申请实施例提供的网络设备另一结构示意图。
接收单元1601,用于接收第一数据包,第一数据包包括第一校验信息,第一校验信息用于对第一数据包进行校验;
接收单元1601还用于接收第二数据包,第二数据包包括第一纠错信息,第一纠错信息用于对第一数据包进行纠错。
可选地,网络设备包括:
校验单元1602,用于根据第一校验信息对第一数据包进行校验;
若校验失败,则网络设备还包括:
纠错单元1603,用于根据第一纠错信息对第一数据包进行纠错。
可选地,第一数据包的长度超过第一阈值,第一阈值根据RS算法确定的,第一数据包包括N个数据段,N个数据段中每个数据段的长度小于或者等于第一阈值,N为大于1的正整数,第一数据包中还包括N-1个第三纠错信息,N-1个第三纠错信息分别用于对N个数据段中的第一个数据段至第N-1个数据段进行纠错,
若校验失败,则纠错单元1603根据N-1个第三纠错信息分别对第一个数据段至第N-1个数据段进行纠错;
若校验失败,则纠错单元1603根据第一纠错信息对第一数据包中的第N个数据段进行纠错。
可选地,N-1个第三纠错信息分别位于N个数据段中连续的两个数据段之间。
可选地,第二数据包携带第二校验信息,第二校验信息用于对第二数据包进行校验。
可选地,第二数据包为以太网数据包,第一纠错信息携带在第二数据包的前导中。
可选地,
接收单元1601还用于接收第三数据包,第三数据包携带第二纠错信息,第二纠错信息用于对第二数据包进行纠错,第三数据包的接收时间在第二数据包之后,第二纠错信息的数据长度和第一纠错信息的数据长度相同。
可选地,第二数据包携带第二校验信息,校验单元1602还用于根据第二校验信息对第二数据包进行校验;
若校验失败,则纠错单元1603具体用于根据第二纠错信息对第二数据包进行纠错。
可选地,第一数据包包括M个第一目标字段,第一校验信息用于对M个第一目标字段中W个第一目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第一目标字段中的Q个第一目标字段进行纠错,Q个第一目标字段包括W个第一目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为IP层数据包,第一数据包包括M个第二目标字段,第一校验信息用于对M个第二目标字段中的W个第二目标字段进行校验,W小于或者等于M,W和M为大于或者等于1的正整数。
可选地,第一纠错信息用于对M个第二目标字段中的Q个第二目标字段进行纠错,Q个第二目标字段包括W个第二目标字段,Q为大于或者等于1的正整数。
可选地,第一数据包为以太网数据包,第一校验信息为帧校验序列FCS,第一校验信息用于校验第一数据包中的第一目的物理地址、第一源物理地址、第一数据单元。
可选地,第一数据包为IP层数据包,第一校验信息为第一数据包的IP头部字段中的校验和checksum,第一校验信息用于对IP头部字段进行校验,M个第一目标字段包括IP头部字段。
请参阅图17,为本申请实施例提供的网络设备另一结构示意图。
处理器1701、存储器1702、总线1705、接口1704,处理器1701与存储器1702、接口1704相连,总线1705分别连接处理器1701、存储器1702以及接口1704,接口1704用于接收或者发送数据,处理器1701是单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。存储器1702可以为随机存取存储器(randomaccess memory,RAM),也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。存储器1702用于存储计算机执行指令。具体的,计算机执行指令中可以包括程序1703。
请参阅图18,为本申请实施例提供的网络设备另一结构示意图。
处理器1801、存储器1802、总线1805、接口1804,处理器1801与存储器1802、接口1804相连,总线1805分别连接处理器1801、存储器1802以及接口1804,接口1804用于接收或者发送数据,处理器1801是单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。存储器1802可以为随机存取存储器(randomaccess memory,RAM),也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。存储器1802用于存储计算机执行指令。具体的,计算机执行指令中可以包括程序1803。
应理解,本申请以上实施例中的网络设备中提及的处理器,或者本申请上述实施例提供的处理器,可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请中以上实施例中的网络设备中的处理器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
还需要说明的是,当网络设备包括处理器(或处理单元)与存储器时,本申请中的处理器可以是与存储器集成在一起的,也可以是处理器与存储器通过接口连接,可以根据实际应用场景调整,并不作限定。
本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方法中所涉及的控制器的功能,例如处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
在另一种可能的设计中,当该芯片系统为用户设备或接入网等内的芯片时,芯片包括:处理单元和通信单元,处理单元例如可以是处理器,通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该网络设备等内的芯片执行上述图7中任一项实施例中第一网络设备执行的步骤。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是网络设备等内的位于芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与网络设备的控制器执行的方法流程。对应的,该计算机可以为上述网络设备。
应理解,本申请以上实施例中的提及的控制器或处理器,可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(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 rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本领域普通技术人员可以理解实现上述实施例的全部或部分由网络设备或者处理器执行的步骤可以通过硬件或程序来指令相关的硬件完成。程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,随机接入存储器等。具体地,例如:上述处理单元或处理器可以是中央处理器,通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。上述的这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
当使用软件实现时,上述实施例描述的方法步骤可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (52)

1.一种数据传输方法,其特征在于,包括:
第一网络设备获取第一数据包,所述第一数据包包括第一校验信息,所述第一校验信息用于对所述第一数据包进行校验;
所述第一网络设备根据所述第一数据包得到第一纠错信息,所述第一纠错信息用于对所述第一数据包进行纠错;
所述第一网络设备获取第二数据包,所述第二数据包包括所述第一纠错信息;
所述第一网络设备发送所述第一数据包和所述第二数据包。
2.根据权利要求1所述的方法,其特征在于,所述第二数据包的发送时间在所述第一数据包之后。
3.根据权利要求1或2所述的方法,其特征在于,所述第二数据包携带第二校验信息,所述第二校验信息用于对所述第二数据包进行校验。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一网络设备根据所述第一数据包得到第一纠错信息包括:
所述第一网络设备根据第一纠错算法对所述第一数据包进行编码得到第一纠错信息。
5.根据权利要求4所述的方法,其特征在于,所述第一纠错算法包括以下至少一个:BCH码算法、里德-所罗门码RS算法。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第二数据包为以太网数据包,所述第一纠错信息携带在所述第二数据包的前导中。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备对所述第二数据包进行编码得到第二纠错信息,所述第二纠错信息用于对所述第二数据包进行纠错;
所述第一网络设备向所述第二网络设备发送第三数据包,所述第三数据携带所述第二纠错信息,所述第三数据包的发送时间在所述第二数据包之后,所述第二纠错信息的数据长度和所述第一纠错信息的数据长度相同。
8.根据权利要求5所述的方法,其特征在于,所述第一数据包的长度超过第一阈值,所述第一阈值根据所述RS算法确定的,所述方法还包括:
所述第一网络设备根据所述第一阈值将所述第一数据包分为N个数据段,所述N个数据段中每个数据段的长度小于或者等于所述第一阈值,所述N为大于1的正整数;
所述第一网络设备分别对所述N个数据段中的第一个数据段至第N-1个数据段进行编码得到N-1个第三纠错信息,所述N-1个第三纠错信息分别用于对所述第一数据段至所述第N-1个数据段进行纠错,所述N-1个第三纠错信息携带在所述第一数据包中;
所述第一网络设备根据所述第一数据包得到第一纠错信息包括:
所述第一网络设备根据所述第一数据包的第N个数据段得到第一纠错信息,所述第一纠错信息用于对所述第N个数据段进行纠错。
9.根据权利要求8所述的方法,其特征在于,所述N-1个第三纠错信息分别位于所述N个数据段中连续的两个数据段之间。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述第一数据包包括M个第一目标字段,所述第一校验信息用于对所述M个第一目标字段中W个第一目标字段进行校验,所述W小于或者等于所述M,所述W和所述M为大于或者等于1的正整数。
11.根据权利要求10所述的方法,其特征在于,所述第一纠错信息用于对所述M个第一目标字段中的Q个第一目标字段进行纠错,所述Q个第一目标字段包括所述W个第一目标字段,所述Q为大于或者等于1的正整数。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一数据包为以太网数据包,所述第一校验信息为帧校验序列FCS,所述第一校验信息用于校验所述第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
13.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一数据包为IP层数据包,所述第一校验信息为所述第一数据包的IP头部字段中的校验和checksum,所述第一校验信息用于对所述IP头部字段进行校验。
14.一种数据传输方法,其特征在于,包括:
第二网络设备接收第一数据包,所述第一数据包包括第一校验信息,所述第一校验信息用于对所述第一数据包进行校验;
所述第二网络设备接收第二数据包,所述第二数据包包括第一纠错信息,所述第一纠错信息用于对所述第一数据包进行纠错。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
所述第二网路设备根据所述第一校验信息对所述第一数据包进行校验;
若校验失败,则所述第二网络设备根据所述第一纠错信息对所述第一数据包进行纠错。
16.根据权利要求15所述的方法,其特征在于,所述第一数据包的长度超过第一阈值,所述第一阈值根据RS算法确定的,所述第一数据包包括N个数据段,所述N个数据段中每个数据段的长度小于或者等于所述第一阈值,所述N为大于1的正整数,所述第一数据包中还包括N-1个第三纠错信息,所述N-1个第三纠错信息分别用于对所述N个数据段中的第一个数据段至第N-1个数据段进行纠错,所述方法还包括:
若校验失败,所述第二网络设备根据所述N-1个第三纠错信息分别对所述第一个数据段至所述第N-1个数据段进行纠错;
若校验失败,则所述第二网络设备根据所述第一纠错信息对所述第一数据包进行纠错包括:
若校验失败,则所述第二网络设备根据所述第一纠错信息对所述第一数据包中的第N个数据段进行纠错。
17.根据权利要求16所述的方法,其特征在于,所述N-1个第三纠错信息分别位于所述N个数据段中连续的两个数据段之间。
18.根据权利要求14至17中任一项所述的方法,其特征在于,所述第二数据包携带第二校验信息,所述第二校验信息用于对所述第二数据包进行校验。
19.根据权利要求14至18中任一项所述的方法,其特征在于,所述第二数据包为以太网数据包,所述第一纠错信息携带在所述第二数据包的前导中。
20.根据权利要求14至19中任一项所述的方法,其特征在于,所述方法还包括:
所述第二网络设备接收第三数据包,所述第三数据包携带第二纠错信息,所述第二纠错信息用于对所述第二数据包进行纠错,所述第三数据包的接收时间在所述第二数据包之后,所述第二纠错信息的数据长度和所述第一纠错信息的数据长度相同。
21.根据权利要求20所述的方法,其特征在于,所述第二数据包携带所述第二校验信息,所述方法还包括:
所述第二网络设备根据所述第二校验信息对所述第二数据包进行校验;
若校验失败,则所述第二网络设备根据所述第二纠错信息对所述第二数据包进行纠错。
22.根据权利要求14至21中任一项所述的方法,其特征在于,所述第一数据包包括M个第一目标字段,所述第一校验信息用于对所述M个第一目标字段中W个第一目标字段进行校验,所述W小于或者等于所述M,所述W和所述M为大于或者等于1的正整数。
23.根据权利要求22所述的方法,其特征在于,所述第一纠错信息用于对所述M个第一目标字段中的Q个第一目标字段进行纠错,所述Q个第一目标字段包括所述W个第一目标字段,所述Q为大于或者等于1的正整数。
24.根据权利要求14至21中任一项所述的方法,其特征在于,所述第一数据包为以太网数据包,所述第一校验信息为帧校验序列FCS,所述第一校验信息用于校验所述第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
25.根据权利要求14至21中任一项所述的方法,其特征在于,所述第一数据包为IP层数据包,所述第一校验信息为所述第一数据包的IP头部字段中的校验和checksum,所述第一校验信息用于对所述IP头部字段进行校验。
26.一种网络设备,其特征在于,包括:
获取单元,用于获取第一数据包,所述第一数据包包括第一校验信息,所述第一校验信息用于对所述第一数据包进行校验;
处理单元,用于根据所述第一数据包得到第一纠错信息,所述第一纠错信息用于对所述第一数据包进行纠错;
所述获取单元还用于获取第二数据包,所述第二数据包包括所述第一纠错信息;
发送单元,用于发送所述第一数据包和所述第二数据包。
27.根据权利要求26所述的网络设备,其特征在于,所述第二数据包的发送时间在所述第一数据包之后。
28.根据权利要求26或27所述的网络设备,其特征在于,所述第二数据包携带第二校验信息,所述第二校验信息用于对所述第二数据包进行校验。
29.根据权利要求26至28中任一项所述的网络设备,其特征在于,所述处理单元具体用于根据第一纠错算法对所述第一数据包进行编码得到第一纠错信息。
30.根据权利要求29所述的网络设备,其特征在于,所述第一纠错算法包括以下至少一个:BCH码算法、里德-所罗门码RS算法。
31.根据权利要求26至30中任一项所述的网络设备,其特征在于,所述第二数据包为以太网数据包,所述第一纠错信息携带在所述第二数据包的前导中。
32.根据权利要求26至31中任一项所述的网络设备,其特征在于,所述处理单元还用于对所述第二数据包进行编码得到第二纠错信息,所述第二纠错信息用于对所述第二数据包进行纠错;
所述发送单元还用于向所述第二网络设备发送第三数据包,所述第三数据携带所述第二纠错信息,所述第三数据包的发送时间在所述第二数据包之后,所述第二纠错信息的数据长度和所述第一纠错信息的数据长度相同。
33.根据权利要求26所述的网络设备,其特征在于,所述第一数据包的长度超过第一阈值,所述第一阈值根据所述RS算法确定的,所述处理单元还用于根据所述第一阈值将所述第一数据包分为N个数据段,所述N个数据段中每个数据段的长度小于或者等于所述第一阈值,所述N为大于1的正整数;
所述处理单元还用于分别对所述N个数据段中的第一个数据段至第N-1个数据段进行编码得到N-1个第三纠错信息,所述N-1个第三纠错信息分别用于对所述第一数据段至所述第N-1个数据段进行纠错,所述N-1个第三纠错信息携带在所述第一数据包中;
所述处理单元具体用于根据所述第一数据包的第N个数据段得到第一纠错信息,所述第一纠错信息用于对所述第N个数据段进行纠错。
34.根据权利要求33所述的网络设备,其特征在于,所述N-1个第三纠错信息分别位于所述N个数据段中连续的两个数据段之间。
35.根据权利要求26至34中任一项所述的网络设备,其特征在于,所述第一数据包包括M个第一目标字段,所述第一校验信息用于对所述M个第一目标字段中W个第一目标字段进行校验,所述W小于或者等于所述M,所述W和所述M为大于或者等于1的正整数。
36.根据权利要求35所述的网络设备,其特征在于,所述第一纠错信息用于对所述M个第一目标字段中的Q个第一目标字段进行纠错,所述Q个第一目标字段包括所述W个第一目标字段,所述Q为大于或者等于1的正整数。
37.根据权利要求26至36中任一项所述的网络设备,其特征在于,所述第一数据包为以太网数据包,所述第一校验信息为帧校验序列FCS,所述第一校验信息用于校验所述第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
38.根据权利要求26至36中任一项所述的网络设备,其特征在于,所述第一数据包为IP层数据包,所述第一校验信息为所述第一数据包的IP头部字段中的校验和checksum,所述第一校验信息用于对所述IP头部字段进行校验。
39.一种网络设备,其特征在于,包括:
接收单元,用于接收第一数据包,所述第一数据包包括第一校验信息,所述第一校验信息用于对所述第一数据包进行校验;
所述接收单元还用于接收第二数据包,所述第二数据包包括第一纠错信息,所述第一纠错信息用于对所述第一数据包进行纠错。
40.根据权利要求39所述的网络设备,其特征在于,所述网络设备包括:
校验单元,用于根据所述第一校验信息对所述第一数据包进行校验;
若校验失败,则所述网络设备还包括:
纠错单元,用于根据所述第一纠错信息对所述第一数据包进行纠错。
41.根据权利要求40所述的网络设备,其特征在于,所述第一数据包的长度超过第一阈值,所述第一阈值根据RS算法确定的,所述第一数据包包括N个数据段,所述N个数据段中每个数据段的长度小于或者等于所述第一阈值,所述N为大于1的正整数,所述第一数据包中还包括N-1个第三纠错信息,所述N-1个第三纠错信息分别用于对所述N个数据段中的第一个数据段至第N-1个数据段进行纠错,
若校验失败,则所述纠错单元根据所述N-1个第三纠错信息分别对所述第一个数据段至所述第N-1个数据段进行纠错;
若校验失败,则所述纠错单元根据所述第一纠错信息对所述第一数据包中的第N个数据段进行纠错。
42.根据权利要求41所述的网络设备,其特征在于,所述N-1个第三纠错信息分别位于所述N个数据段中连续的两个数据段之间。
43.根据权利要求39至42中任一项所述的网络设备,其特征在于,所述第二数据包携带第二校验信息,所述第二校验信息用于对所述第二数据包进行校验。
44.根据权利要求39至43中任一项所述的网络设备,其特征在于,所述第二数据包为以太网数据包,所述第一纠错信息携带在所述第二数据包的前导中。
45.根据权利要求39至44中任一项所述的网络设备,其特征在于,
所述接收单元还用于接收第三数据包,所述第三数据包携带第二纠错信息,所述第二纠错信息用于对所述第二数据包进行纠错,所述第三数据包的接收时间在所述第二数据包之后,所述第二纠错信息的数据长度和所述第一纠错信息的数据长度相同。
46.根据权利要求45所述的网络设备,其特征在于,所述第二数据包携带所述第二校验信息,所述校验单元还用于根据所述第二校验信息对所述第二数据包进行校验;
若校验失败,则纠错单元具体用于根据所述第二纠错信息对所述第二数据包进行纠错。
47.根据权利要求39至46中任一项所述的网络设备,其特征在于,所述第一数据包包括M个第一目标字段,所述第一校验信息用于对所述M个第一目标字段中W个第一目标字段进行校验,所述W小于或者等于所述M,所述W和所述M为大于或者等于1的正整数。
48.根据权利要求47所述的网络设备,其特征在于,所述第一纠错信息用于对所述M个第一目标字段中的Q个第一目标字段进行纠错,所述Q个第一目标字段包括所述W个第一目标字段,所述Q为大于或者等于1的正整数。
49.根据权利要求39至46中任一项所述的网络设备,其特征在于,所述第一数据包为以太网数据包,所述第一校验信息为帧校验序列FCS,所述第一校验信息用于校验所述第一数据包中的第一目的物理地址、第一源物理地址以及第一数据单元。
50.根据权利要求39至46中任一项所述的网络设备,其特征在于,所述第一数据包为IP层数据包,所述第一校验信息为所述第一数据包的IP头部字段中的校验和checksum,所述第一校验信息用于对所述IP头部字段进行校验。
51.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行上述权利要求1至25中任一项所述的方法。
52.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行上述权利要求1至25中任一项所述的方法。
CN202110583745.5A 2021-05-27 2021-05-27 一种数据传输的方法及其设备 Pending CN115412197A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110583745.5A CN115412197A (zh) 2021-05-27 2021-05-27 一种数据传输的方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110583745.5A CN115412197A (zh) 2021-05-27 2021-05-27 一种数据传输的方法及其设备

Publications (1)

Publication Number Publication Date
CN115412197A true CN115412197A (zh) 2022-11-29

Family

ID=84155620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110583745.5A Pending CN115412197A (zh) 2021-05-27 2021-05-27 一种数据传输的方法及其设备

Country Status (1)

Country Link
CN (1) CN115412197A (zh)

Similar Documents

Publication Publication Date Title
KR100431228B1 (ko) 계층형arq구조의연결된에러검출코딩및패킷넘버링
JP4985565B2 (ja) 送受信回路、受信回路及び送受信回路の制御方法
US20080195912A1 (en) Method of communicatoin
PL182761B1 (pl) Sposób i system do transmisji danych
WO2011046056A1 (ja) パケット通信の伝送制御方法及びパケット通信システム
CN109587112B (zh) 一种发送数据的方法、接收数据的方法、设备及系统
JP2003078565A (ja) 無線通信装置
CN113541856A (zh) 数据恢复方法及装置
TWI385961B (zh) 用於混合自動重複請求傳輸的改進解碼的方法和裝置
US9979566B2 (en) Hybrid forward error correction and replay technique for low latency
WO2022042543A1 (zh) 一种以太网错误帧的重传方法及相关装置
US20120110405A1 (en) Communication device
US20100162066A1 (en) Acceleration of header and data error checking via simultaneous execution of multi-level protocol algorithms
US20130007567A1 (en) Adaptive encoding and decoding for error protected packet-based frames
US20230261795A1 (en) Method for Retransmitting Data and Apparatus
CN115412197A (zh) 一种数据传输的方法及其设备
JP3433180B2 (ja) 送信装置及び通信システム
US11996936B2 (en) Bit error correction for Bluetooth low energy
WO2023123436A1 (zh) 一种数据传输方法和装置
KR102024521B1 (ko) 전송 장치 및 프레임 전송 방법
JP5459308B2 (ja) データ転送装置及びデータ転送装置の制御方法
KR100204586B1 (ko) 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_
CN116260553A (zh) 数据重传的方法、装置及系统
JP2000059347A (ja) 無線通信方法および装置
CN116055011A (zh) Uwb数传系统的harq重传方法、装置、系统及介质

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