发明内容
本发明的目的在于提供一种数据转发方法和设备,用于补偿由本地振荡器引起的负偏差。
根据本发明的示例性实施例,提供一种数据转发方法。所述方法包括:设置与用于存储将被转发的数据包的缓冲区有关的缓冲阈值;检测缓冲区的存储状态,并确定缓冲区的存储状态是否达到或超过所述缓冲阈值;当检测到的缓冲区的存储状态达到或超过所述缓冲阈值时,减小所述将被转发的数据包中的至少一个数据包的前导码的字节长度。
所述缓冲阈值可以是关于缓冲区的容量的阈值,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的总大小。
所述缓冲阈值可以是关于缓冲区中的将被转发的数据包的等待时间的阈值,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的等待时间。
所述将被转发的数据包可符合IEEE802.3标准。
减小所述至少一个数据包的前导码的字节长度的步骤可包括:减少所述至少一个数据包的前导码的除最后一个字节以外的任意字节。
减小所述至少一个数据包的前导码的字节长度的步骤可包括:减少所述至少一个数据包的前导码的第一字节。
所述至少一个数据包可以是所述将被转发的数据包中以预设间隔排列的数据包。
所述方法还包括:接收将被转发的数据包,其中,根据所述缓冲阈值和接收将被转发的数据包的速率设置所述预设间隔。
根据本发明的另一示例性实施例,提供一种数据转发设备。所述设备包括:缓冲区,用于存储将被转发的数据包;设置单元,用于设置关于缓冲区的缓冲阈值;检测单元,用于检测缓冲区的存储状态;确定单元,用于确定缓冲区的存储状态是否达到或超过所述缓冲阈值;调整单元,用于在缓冲区的存储状态达到或超过所述缓冲阈值时,减小所述将被转发的数据包中的至少一个数据包的前导码的字节长度。
所述缓冲阈值可以是关于缓冲区的容量的阈值,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的总大小。
所述缓冲阈值可以是关于缓冲区中的将被转发的数据包的等待时间的阈值,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的等待时间。
所述将被转发的数据包可符合IEEE802.3标准。
调整单元可减少所述至少一个数据包的前导码的除最后一个字节以外的任意字节。
调整单元可减少所述至少一个数据包的前导码的第一字节。
所述至少一个数据包可以是所述将被转发的数据包中以预设间隔排列的数据包。
所述数据转发设备还可包括用于接收将被转发的数据包的接收单元,其中,设置单元可根据所述缓冲阈值和接收将被转发的数据包的速率设置所述预设间隔。
如上所述,可通过使用根据本发明的示例性实施例的数据转发方法和设备,解决缓冲区的数据包的溢出和缓冲区的数据包等待时间过长的问题。
具体实施方式
以下描述的多个实施例仅作为示例性说明,并且不应被解释为限制本公开的范围。以下将参照附图描述本发明的优选实施例。在下面的描述中,由于公知的功能或构造的不必要的细节会使本发明不清楚,因此不详细描述公知的功能或构造。此外,以下描述的考虑本发明中的功能定义的术语可根据用户和操作者的意图或实践而不同。
图1示出根据本发明实施例的数据转发设备100的框图。
如图1中所示,数据转发设备100可包括缓冲区120、调整单元130、检测单元150、确定单元160以及设置单元170。
缓冲区120可存储将被转发的数据包。检测单元150可检测缓冲区的存储状态,并将检测结果发送到确定单元160。设置单元170可设置关于缓冲区的缓冲阈值。
根据示例性实施例,当所述缓冲阈值是关于缓冲区的容量的阈值时,所述存储状态可指示缓冲区中的将被转发的数据包的总大小。根据示例性实施例,当所述缓冲阈值是关于缓冲区中的将被转发的数据包的等待时间的阈值时,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的等待时间。虽然在此仅公开了两种关于缓冲区的缓冲阈值,但本发明不限于此。
根据示例性实施例,可在制造数据转发设备100时设置所述缓冲阈值,或者,可在制造数据转发设备100之后,由用户根据需要通过设置单元170手动设置所述缓冲阈值。
确定单元160可确定缓冲区的存储状态是否达到或超过所述缓冲阈值,并将确定结果发送到调整单元130。调整单元130可在缓冲区的存储状态达到或超过所述缓冲阈值时,减小所述将被转发的数据包中的至少一个数据包的前导码的字节长度。
根据示例性实施例,将被转发的数据包可符合IEEE802.3标准。根据示例性实施例,当缓冲区的存储状态达到或超过所述缓冲阈值时,调整单元130可减少所述至少一个数据包的前导码的除最后一个字节以外的任意字节。根据本发明的另一示例性实施例,当缓冲区的存储状态达到或超过所述缓冲阈值时,调整单元130可减少所述至少一个数据包的前导码的第一字节。
数据转发设备100还可包括接收单元110和发送单元140。接收单元110可从数据发送设备(未示出)接收将被转发的数据包,并向设置单元130提供接收将被转发的数据包的速率。发送单元140可将接收的将被转发的数据包发送到数据接收设备(未示出)。
设置单元170还可根据所述接收将被转发的数据包的速率和所述缓冲阈值设置预设间隔。根据示例性实施例,例如,可将预设间隔设置为7。也就是说,在每七个将被转发的数据包中发送一个数据包的前导码的字节减少的数据包。根据示例性实施例,所述至少一个数据包是所述将被转发的数据包中以预设间隔排列的数据包。
虽然在以上描述中,将整数倍间隔作为示例,描述了本发明,但本发明不限于此。本发明还包括分数倍的间隔(诸如,7/2)。例如,预设间隔为7/2表示在每七个将被转发的数据包中发送两个数据包的前导码的字节减少的数据包。
另外,在此描述的调整单元130、检测单元150、确定单元160以及设置单元170可被集成为一个控制单元。
根据本发明的示例性实施例的数据转发设备100可适用于但不限于以下网络中的任何一种:互联网、局域网(LAN)、无线局域网(LAN)、广域网(WAN)、个人局域网(PAN)。
以下,将参照图2描述根据本发明示例性实施例的数据转发方法。
在步骤201,数据转发设备100可设置与用于存储将被转发的数据包的缓冲区有关的缓冲阈值。
在步骤203,数据转发设备100可检测缓冲区的存储状态。
根据示例性实施例,当所述缓冲阈值是关于缓冲区的容量的阈值时,所述存储状态可指示缓冲区中的将被转发的数据包的总大小。根据示例性实施例,当所述缓冲阈值是关于缓冲区中的将被转发的数据包的等待时间的阈值时,缓冲区的存储状态可指示缓冲区中的将被转发的数据包的等待时间。虽然在此仅公开了两种关于缓冲区的缓冲阈值,但本发明不限于此。
根据示例性实施例,可在制造数据转发设备100时设置所述缓冲阈值,或者,可在制造数据转发设备100之后,由用户根据需要手动设置所述缓冲阈值。
在步骤205,数据转发设备100可确定关于缓冲区的所述存储状态是否达到或超过所述缓冲阈值。当关于缓冲区的所述存储状态达到或超过所述缓冲阈值时,数据转发设备100进行到步骤207。否则,数据转发设备100终止本发明的算法。
在步骤207,数据转发设备100可减小所述将被转发的数据包中的至少一个数据包的前导码的字节长度。根据示例性实施例,所述将被转发的数据包可符合IEEE802.3标准。根据示例性实施例,数据转发设备100可减少所述至少一个数据包的前导码的除最后一个字节以外的任意字节。根据本发明的另一示例性实施例,数据转发设备100可减少所述至少一个数据包的前导码的第一字节。
根据本发明的另一示例性实施例,在步骤201,数据转发设备100可基于所述缓冲阈值和接收数据包的速率设置预设间隔。根据示例性实施例,例如,可将预设间隔设置为7。也就是说,在每七个将被转发的数据包中发送一个数据包的前导码的字节减少的数据包。此外,在步骤207的所述至少一个数据包是所述将被转发的数据包中以预设间隔排列的数据包。
虽然在以上描述中,将整数倍间隔作为示例,描述了本发明,但本发明不限于此。本发明还包括分数倍的间隔(诸如,7/2)。例如,预设间隔为7/2表示在每七个将被转发的数据包中发送两个数据包的前导码的字节减少的数据包。
由于数据包的不传递信息的前导码的字节长度减少了,因此数据转发设备100发送数据包所用的时间相应地减少了(即,发送速率提高了)。因此,通过应用上述步骤可应对时钟负偏差引起的发送速率低于接收速率的情况,从而可避免缓冲区的溢出和缓冲区中的数据包等待时间过长。
例如,根据本发明示例性实施例,在基于标准IEEE802.3的数据转发设备100中,在最大数据包的长度为1518字节的情况下,只要在每7个数据包中发送少了第一字节的一个数据包(即,预设间隔为7),就可补偿93ppm的时钟偏差。如果数据包的长度较小,则数据转发设备100可通过应用上述步骤补偿更大的时钟偏差。根据标准IEEE802.3规定,以太网交换机允许存在±100PPM频偏。因此通过应用上述步骤,可充分补偿以太网交换机的本地振荡器的器件离散性引起的负频偏。
可以以硬件、固件实现根据本发明的上述设备和方法。另外,可在可编程或专用的硬件(诸如,ASIC或FPGA)中实施在此描述的方法。
虽然已经使用特定的术语在上面具体示出和描述了示例性实施例,但示例性实施例和术语仅是说明性的,并不应被解释为限制由权利要求限定的本发明构思的范围。因此,本领域的普通技术人员将理解,在不脱离权利要求限定的本发明构思的精神和范围的情况下,可在其中进行形式和细节上的各种改变。