CN115314161A - 报文处理方法、装置、电子设备及存储介质 - Google Patents

报文处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115314161A
CN115314161A CN202210939827.3A CN202210939827A CN115314161A CN 115314161 A CN115314161 A CN 115314161A CN 202210939827 A CN202210939827 A CN 202210939827A CN 115314161 A CN115314161 A CN 115314161A
Authority
CN
China
Prior art keywords
message
dic
next frame
frame
variable value
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
CN202210939827.3A
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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software 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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202210939827.3A priority Critical patent/CN115314161A/zh
Publication of CN115314161A publication Critical patent/CN115314161A/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/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/0013Rate matching, e.g. puncturing or repetition of code symbols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0016Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种报文处理方法、装置、电子设备及存储介质,涉及通信技术领域。该方法通过在当前帧报文发送完之前就获取下一帧报文对应的DIC变量值,从而可提前算出下一帧报文对应的DIC变量值,根据DIC变量值确定需要插入的目标IDLE码数量,这样在发送下一帧报文时,可以根据目标IDLE码数量来调整报文之间的帧间距,进而本方案可以在保证报文发送的连续性、时序紧凑性,使得发送报文的速率达到线速的同时,也能确保报文的发送满足协议规定的帧间距。

Description

报文处理方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,具体而言,涉及一种报文处理方法、装置、电子设备及存储介质。
背景技术
在以太网协议中,数据以帧的形式发送,在一帧报文发送完成后,以太网的相关组件需要短暂的时间恢复,为发送下一帧报文做准备,帧间隔时间设置过长,会降低数据的传输效率,若设置过短,则不能保证设备正常恢复。因此,在IEEE802.3协议中,MAC层定义的参数帧间隔IFG规定了最小的帧间隔为96bits时间,相当于发送12字节数据的时间。千兆以太网MAC均采用单字节的数据发送方式,故在一帧发送完成后发送12个空闲(IDLE)字符即可。而万兆以太网XGMII(10Gigabit Media Independent Interface)接口为8通道并行发送数据,要求帧起始位置必须位于Lane0或Lane4,故帧长度不是4字节整数倍时,需要增删IDLE字符以使下一帧开始对齐在Lane0或Lane4上。
为解决保持帧间隔和帧对齐的问题,现有技术中,IEEE802.3协议规定了一种空闲字符计数(DIC,Deficit Idle Count)算法,该算法以IEEE802.3协议中规定的最小帧间距(IFG=12byte)为参考,用一个DIC变量来记录当前的以太网帧间距的IDLE数与最小帧间距(12byte)之间的差异,从而基于报文的实际长度和当前的DIC变量的值获得需要插入的IDLE数。
但是基于目前的DIC算法,帧间距调整计算是需要时间的,这样会导致以太帧之间的间隔大于12字节,从而导致XGMII接口发送的以太报文不是连续,在时序上不紧凑,最终使得基于10Gb的xgmii协议传输的速率达不到线速,即XGMII接口达不到10Gb。
发明内容
本申请实施例的目的在于提供一种报文处理方法、装置、电子设备及存储介质,用以改善现有技术中报文的DIC值计算耽搁一定时间后,导致发送的报文之间在时序上不连续,接口发送报文的速率达不到线速的问题。
第一方面,本申请实施例提供了一种报文处理方法,所述方法包括:
在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
根据所述DIC变量值确定需要插入的目标IDLE码数量;
在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
在上述实现过程中,该方法通过在当前帧报文发送完之前就获取下一帧报文对应的DIC变量值,从而可提前算出下一帧报文对应的DIC变量值,根据DIC变量值确定需要插入的目标IDLE码数量,这样在发送下一帧报文时,可以根据目标IDLE码数量来调整报文之间的帧间距,进而本方案可以在保证报文发送的连续性、时序紧凑性,使得发送报文的速率达到线速的同时,也能确保报文的发送满足协议规定的帧间距。
可选地,通过FIFO模块缓存多帧报文的报文信息;所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
在当前帧报文发送完之前,从所述FIFO模块中获取下一帧报文的报文信息;
根据所述下一帧报文的报文信息获取所述下一帧报文对应的DIC变量值。
在上述实现过程中,通过设计FIFO模块来缓存下一帧报文的报文信息,这样就可以提前获取到下一帧报文的报文信息进行DIC变量值的计算,减少了计算时间的耽搁。
可选地,所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
通过接口模块在当前帧报文发送完之前,向DIC计算模块发送指示信息,所述指示信息用于指示所述DIC计算模块从所述FIFO模块中读取下一帧报文的长度信息;
通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;
通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
在上述实现过程中,通过接口模块指示DIC计算模块主动从FIFO模块中获取下一帧报文的长度信息,这样可提前获取到下一帧报文的长度信息进行DIC变量值的计算,减少了计算时间的耽搁。
可选地,所述当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
通过接口模块在当前帧报文发送完之前,向所述FIFO模块发送指示信息,所述指示信息用于指示所述FIFO模块将下一帧报文的长度信息发送给DIC计算模块;
通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;
通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
在上述实现过程中,通过接口模块指示FIFO模块主动将下一帧报文的长度信息发送给DIC计算模块,这样可提前获取到下一帧报文的长度信息进行DIC变量值的计算,减少了计算时间的耽搁。
可选地,所述通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值,包括:
通过所述DIC计算模块对所述下一帧报文的长度信息进行模为8或4的取余运算,获得对应的余数;
通过所述DIC计算模块获取所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值;
通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的查找表中查找获得所述下一帧报文对应的DIC变量值。
在上述实现过程中,通过预先建立查找表可快速获得下一帧报文的DIC变量值,提高计算效率。
可选地,所述方法还包括:
通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的所述查找表中查找获得所述下一帧报文的通道起始位置;
所述在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距,包括:
在所述下一帧报文的通道起始位置上发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
在上述实现过程中,通过预先建立的查找表可快速获得下一帧报文发送的通道起始位置,这样可实现对下一帧报文的快速处理。
可选地,所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
在当前帧报文还剩余单位发送长度未发送时,获取下一帧报文对应的DIC变量值。从而可提前获取到下一帧报文的DIC变量值。
第二方面,本申请实施例提供了一种报文处理装置,所述装置包括:
DIC获取模块,用于在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
IDLE码获取模块,用于根据所述DIC变量值确定需要插入的目标IDLE码数量;
调整模块,用于在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种报文处理方法的流程图;
图2为本申请实施例提供的一种报文处理系统的结构示意图;
图3为本申请实施例提供的一种报文处理装置的结构框图;
图4为本申请实施例提供的一种用于执行报文处理方法的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供一种报文处理方法,该方法通过在当前帧报文发送完之前就获取下一帧报文对应的DIC变量值,从而可提前算出下一帧报文对应的DIC变量值,根据DIC变量值确定需要插入的目标IDLE码数量,这样在发送下一帧报文时,可以根据目标IDLE码数量来调整报文之间的帧间距,进而本方案可以在保证报文发送的连续性、时序紧凑性,使得发送报文的速率达到线速的同时,也能确保报文的发送满足协议规定的帧间距。
请参照图1,图1为本申请实施例提供的一种报文处理方法的流程图,该方法包括如下步骤:
步骤S110:在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值。
本申请实施例的应用环境以以太网的10Gb独立于媒体的XGMII接口来对报文进行发送为例进行说明,但是可以理解的是,本申请实施例中用于发送报文的接口不局限于XGMII接口协议的设计,也可以应用于以太网的其他协议的接口。
XGMII接口在接收到当前帧报文后,需要根据当前帧报文对应的DIC变量值来调整当前帧报文与下一帧报文之间的帧间距,比如在当前帧报文的末尾插入相应数量的IDLE码,但是由于计算DIC变量值需要一定的时间,所以如果在当前帧报文发送完成后,才获取下一帧报文来计算下一帧报文对应的DIC变量值,然后再调整帧间距以及发送下一帧报文,这样就可能使得两帧报文之间的间隔大于协议规定的12字节,XGMII接口发送的报文在时序上不是连续的,最终使得XGMII接口的传输速率达不到线速。所以,为了解决该问题,本申请实施例中在当前帧报文发送完之前,就获取下一帧报文对应的DIC变量值,这样就可以提前获取到下一帧报文对应的DIC变量值,而不是在要发送下一帧报文时才进行DIC变量值的计算,如此避免了在当前帧报文发送完之后才来计算的时间,可保证报文发送的紧凑性。
其中,报文对应的DIC变量值用于记录累计增加或减少的IDLE码的数量,该DIC变量值的取值范围在设定范围内。DIC变量值是个累计值,每发送完一帧报文就更新一次,以IEEE802.3协议中规定的最小帧间距(12个IDLE字符)为参考,若增加1个IDLE字符,则DIC变量值减1,反之,若减少1个IDLE字符,DIC变量值加1。协议规定DIC变量值的取值范围为-3到3,即最多累计添加3个IDLE字符或减少3个IDLE字符,这样会使得帧连续发送时的帧间距取值在9个-15个IDLE字符之间变化,但帧间距的平均值为12个IDLE字符,既能满足线速发送报文的要求,又可以保证报文在相应的位置上发送。
根据协议,XGMII可为4通道(Lane0-Lane3)32bits数据位宽采样模式或者8通道(Lane0-Lane7)64bits数据位宽采样模式,要求帧起始位置必须位于Lane0或Lane4,所以如果帧长度不是4的整数倍时,需要增删IDLE字符,以使下一帧开始对齐在Lane0或Lane4上。
在一些实施方式中,获取下一帧报文对应的DIC变量值的方式可以是,以XGMII为4通道为例,可根据下一帧报文的结束位置和当前的DIC变量值计算出下一帧报文对应的DIC变量值,例如当前的DIC变量值为0(可以理解为是当前帧报文对应的DIC变量值为0,表示当前帧报文与下一帧报文之间间隔12个IDLE字符),若下一帧报文发送在Lane0,下一帧报文的长度是4的整数倍,且之后帧报文发送的位置也是Lane0,此时当前的DIC变量值还是为0,即下一帧报文对应的DIC变量值也为0,也就表示下一帧报文与之后帧报文之间间隔12个IDLE字符。如果下一帧报文的长度对4取余是1,且之后帧报文发送的位置也是Lane0,那么下一帧报文就会与之后帧报文之间只有11个周期,即减少了1个IDLE字符,所以下一帧报文对应的DIC变量值就是1。所以,按照该方式可以在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值。
步骤S120:根据DIC变量值确定需要插入的目标IDLE码数量。
如上述示例所示,若下一帧报文对应的DIC变量值为1,表示需要减少1个IDLE字符,则确定需要插入的目标IDLE码数量为11个。同理,如果下一帧报文对应的DIC变量值为-1,表示需要增加1个IDLE字符,则确定需要插入的目标IDLE码数量为13个。
步骤S130:在发送下一帧报文时,根据目标IDLE码数量调整下一帧报文与之后帧报文之间的帧间距。
在获得目标IDLE码数量后,则在发送下一帧报文时,可在下一帧报文的尾部插入目标IDLE码数量对应的IDLE字符,从而使得下一帧报文与之后帧报文之间的帧间距不是标准的12个IDLE字符,而是对应数量的IDLE字符,以此达到调整帧间距的目的。
可以理解的,按照本申请实施例提供的方法可实现任意相邻两帧报文之间的帧间距的调整,其调整方式的原理类似,本申请实施例中不做过多介绍。
在上述实现过程中,通过在当前帧报文发送完之前就获取下一帧报文对应的DIC变量值,从而可提前算出下一帧报文对应的DIC变量值,根据DIC变量值确定需要插入的目标IDLE码数量,这样在发送下一帧报文时,可以根据目标IDLE码数量来调整报文之间的帧间距,进而本方案可以在保证报文发送的连续性、时序紧凑性,使得发送报文的速率达到线速的同时,也能确保报文的发送满足协议规定的帧间距。
在上述实施例的基础上,本申请实施例可额外在设备内部增加一个FIFO模块,该FIFO模块可用于缓存多帧报文的报文信息,这样在当前帧报文发送之前,则可先从FIFO模块中获取下一帧报文的报文信息,然后根据下一帧报文的报文信息获取下一帧报文对应的DIC变量值。
也就是说,通过设置FIFO模块,这样就不用处理完当前帧报文后,才获取下一帧报文,并计算下一帧报文对应的DIC变量值,而是可以提前从FIFO模块中提取出下一帧报文来进行DIC变量值的计算,如此减少了计算时间的耽搁,使得既可以确保多帧报文之间实现时序上的连续发送,也能满足协议规定的帧间距。
在上述实施例的基础上,实际应用中,本申请实施例设计了一种设备内部的报文处理系统,如图2所示,包括FIFO模块210、接口模块220以及DIC计算模块230,FIFO模块210可用于缓存多帧报文的报文信息,从外部输送进来的帧报文,首先进入FIFO模块210缓存起来,接口模块220用于从FIFO模块210中读取缓存的帧报文进行处理后发送出去,而DIC计算模块230则用于计算每帧报文对应的DIC变量值,并可将计算获得的DIC变量值发送给接口模块220,使得接口模块220可以根据DIC变量值来调整帧间距。
其中,FIFO模块210缓存的多帧报文的报文信息包括报文的INFO信息以及报文数据等,报文的INFO信息包括报文的长度信息以及其他可操作或识别的信息。这里的接口模块220可以是上述提到的XGMII接口,由于XGMII接口的时钟是156.25MHz,因此为了能快速的实现报文的INFO信息的读取和处理,报文输入的时钟必须大于156.25MHz。由于输入时钟大于输出时钟,因此下一帧报文的INFO信息可以在上一帧报文发送完之前被DIC计算模块提前获取并进行处理。
而DIC计算模块230可通过下述的两种方式来获取下一帧报文的INFO信息并计算获得对应的DIC变量值,两种方式包括:
方式(1):通过接口模块在当前帧报文发送完之前,向DIC计算模块发送指示信息,该指示信息用于指示DIC计算模块从FIFO模块中读取下一帧报文的长度信息;然后通过DIC计算模块根据下一帧报文的长度信息确定下一帧报文对应的DIC变量值,通过接口模块从DIC计算模块获取下一帧报文对应的DIC变量值。
这种方式中,由于接口模块用于处理报文的发送以及帧间距的调整,所以接口模块可知晓当前帧报文何时发送完成,如此可在当前帧报文发送完成之前,就向DIC计算模块发送指示信息,DIC计算模块接收到指示信息后,即可主动从FIFO模块中读取下一帧报文的INFO信息,包括下一帧报文的长度信息,DIC计算模块可根据下一帧报文的长度信息确定下一帧报文的通道结束位置,并确定之后帧报文发送的通道起始位置,从而可确定下一帧报文与之后帧报文之间需要间隔多少个IDLE字符,如此可确定下一帧报文对应的DIC变量值。
例如,以XGMII为8通道为例,若下一帧报文的长度信息对8取余还剩1,下一帧报文的通道起始位置在Lane0,而当前帧报文对应的DIC变量值为0,即当前的DIC变量值为0,那么下一帧报文的通道结束位置在Lane1,如果之后帧报文发送的通道起始位置在Lane4,则下一帧报文与之后帧报文之间需要间隔11个IDLE字符,此时DIC变量值为1,即表示下一帧报文对应的DIC变量值为1。
方式(2):通过接口模块在当前帧报文发送完之前,向FIFO模块发送指示信息,该指示信息用于指示FIFO模块将下一帧报文的长度信息发送给DIC计算模块,然后通过DIC计算模块根据下一帧报文的长度信息确定下一帧报文对应的DIC变量值,通过接口模块从DIC计算模块获取下一帧报文对应的DIC变量值。
该方式中,接口模块在当前帧报文发送完之前,指示FIFO模块主动将下一帧报文的长度信息发送给DIC计算模块,这样FIFO模块接收到指示信息后,即可主动将下一帧报文的INFO信息(包含长度信息)发送给DIC计算模块,如此DIC计算模块可提前计算出下一帧报文对应的DIC变量值。
在上述两种方式中,DIC计算模块在获得下一帧报文对应的DIC变量值后可主动将DIC变量值发送给接口模块,当然也可以是接口模块主动从DIC计算模块中读取下一帧报文对应的DIC变量值,如接口模块可在当前帧报文发送完时来从DIC计算模块中读取下一帧报文对应的DIC变量值,或者也可以在当前帧报文发送完之前读取下一帧报文对应的DIC变量值。
在上述实现过程中,通过接口模块指示DIC计算模块主动从FIFO模块中获取下一帧报文的长度信息,或者接口模块指示FIFO模块主动将下一帧报文的长度信息发送给DIC计算模块,这样可提前获取到下一帧报文的长度信息进行DIC变量值的计算,减少了计算时间的耽搁。
在上述实施例的基础上,为了提高DIC计算模块获得下一帧报文对应的DIC变量值的效率,本申请实施例可预先建立一个查找表,该查找表可用于存储相应的信息,这样通过在查找表中可快速查找到下一帧报文对应的DIC变量值。
如可通过DIC计算模块对下一帧报文的长度信息进行模为8或4的取余运算,获得对应的余数,并通过DIC计算模块获取当前帧报文的通道起始位置以及当前帧报文对应的DIC变量值,DIC计算模块再根据余数、当前帧报文的通道起始位置以及当前帧报文对应的DIC变量值,从预先建立的查找表中查找获得下一帧报文对应的DIC变量值,
如表1所示,表1为XGMII为4通道时建立的查找表,此时报文发送的通道起始位置均在Lane0上:
表1
Figure BDA0003785071420000121
比如,以表1为例,表1中第一排的DIC值表示当前帧报文对应的DIC变量值,IFG表示当前帧报文与下一帧报文之间的帧间隔,Next_DIC表示下一帧报文对应的DIC变量值,PacketLength/4表示对4取余的余数。如果当前帧报文的通道起始位置为Lane0,当前帧报文对应的DIC变量值为0,下一帧报文和之后帧报文的通道起始位置均为Lane0,若当前帧报文下一帧报文的报文长度对4取余,如果为1,通过查表,则获得Next_DIC为1,表示下一帧报文对应的DIC变量值为1。所以,按照同样的方式,在4通道时,可通过查表来快速获得下一帧报文对应的DIC变量值。
下面介绍XGMII为8通道时预先建立的查找表,本设计采用XGMII单边沿触发采样,8个通道,报文发送的通道起始位置既可以出现在lane0,也可以出现在lane4,帧间距为平均12个字节,若当前帧报文的通道起始位置在Lane0上时,查找表如表2所示。
表2
Figure BDA0003785071420000122
Figure BDA0003785071420000131
若当前帧报文的通道起始位置在Lane4上时,查找表如表3所示。
表3
Figure BDA0003785071420000132
表2或表3中,第一排的DIC值表示当前帧报文对应的DIC变量值,IFG表示当前帧报文与下一帧报文之间的帧间隔,Next_DIC表示下一帧报文对应的DIC变量值,PacketLength/8表示对8取余的余数。由于提前根据DIC算法整理出了8通道的DIC变量值可能出现的所有情况,所以可通过设计查找表的方法,快速去查询下一帧报文对应的DIC变量值,查找表深度为32,宽度为4bits。查找表就是根据已有的地址去表格中获取相应已计算完成的DIC变量值。
其中,地址由以下几个参数组成:报文长度对8取余运算后的余数、当前帧报文发送的通道起始位置、当前帧报文对应的DIC变量值,查找表的其余参数可包括下一帧报文对应的通道起始位置、下一帧报文对应的DIC变量值,实际应用中,查找表还可包括指示是否在当前帧报文和下一帧报文之间插入一个周期的IDLE控制字。所以,可以通过当前帧报文的一些信息来获得相应的查找地址,然后根据查找地址即可查找获得下一帧报文对应的DIC变量值,其查找的方式与上述4通道的查找方式类似,这里不再重复举例说明。
所以,查找表的地址信息可以通过匹配当前帧报文的相关信息的方式传递,在报文发送完毕前,可以预先拿到查找表的地址信息,保证处理的时效。
在上述实施例的基础上,对于XGMII为8通道来说,其查找表中还可包括下一帧报文对应的通道起始位置,所以还可以通过DIC计算模块根据余数、当前帧报文对应的通道起始位置以及当前帧报文对应的DIC变量值,从预先建立的查找表中查找获得下一帧报文的通道起始位置,这样接口模块在发送下一帧报文时,即可知晓是在哪个通道起始位置上来发送,进而在下一帧报文的通道起始位置发送下一帧报文时,可根据目标IDLE码数量来调整下一帧报文与之后帧报文之间的间距,如在下一帧报文的尾部添加对应目标IDLE码数量的IDLE字符。比如,接口模块获取了DIC计算模块发送的下一帧报文对应的DIC变量值,此时也从收到了FIFO模块中的下一帧报文的报文数据,然后可按照XGMII协议发送报文数据,根据查找表指示内容去判断报文是从Lane0还是Lane4上开始发送,并在报文发送的末尾,根据查找表指示内容去添加需要的IDLE字符。
如此可通过查找表快速获得下一帧报文发送的通道起始位置,进而实现对报文的快速发送处理。
在上述实施例的基础上,上述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,为了避免提前获取到下一帧报文的DIC变量值,但是此时当前帧报文还有很多没有发送的情况,可以在当前帧报文还剩余单位发送长度未发送时,获取下一帧报文对应的DIC变量值。
比如,接口模块发送报文的速度是按照每8bits来发,这8bits可以称为是接口模块的单位发送长度,则可在当前帧报文还剩余8bits或者小于8bits时,向FIFO模块或者DIC计算模块发送指示信息,以指示获取下一帧报文对应的DIC变量值。当然,这里的单位发送长度还可以理解为是经过接口模块的划分,当前帧报文还剩余最后一段数据未发送时的长度,即最后一拍,即在将剩余单位发送长度的当前帧报文的报文数据发送完后,整个当前帧报文全部发送完毕。
本申请实例基于大流量网络安防产品,使用一种报文处理方法通过快速对报文和DIC算法的优化,实现了基于XMGII协议的报文在不同板卡间的传输速率达到了线速。
比如系统分为上下2块业务板处理报文流量,上下板之间通过背板传输、走XGMII接口协议,即上下板之间设置有XGMII接口模块。外部的数据流量通过XGMII接口模块进入到上业务板并处理完成数据后,将多帧报文的数据存入FIFO模块,包括当前帧报文的相关数据以及下一帧报文的相关数据(如下一帧报文的INFO信息)。
DIC计算模块可在当前帧报文发送的最后一拍读取到下一帧报文的INFO信息,然后通过查找建立的查找表,获得下一帧报文对应的DIC变量值,并送给XGMII接口模块。
XGMII接口模块收到下一帧报文的报文数据和DIC计算模块发送过来的DIC变量值,XGMII接口模块根据DIC变量值按照XGMII协议在lane0或lane4上发送下一帧报文并在帧尾添加对应数量的IDLE字符,最后通过XGMII接口发送数据流到背板,此时在背板上传输的数据流就是达到线速的。下业务板通过XGMII物理接口从背板接收到线速的数据流,再进行业务处理。
所以本申请实施例提供的方法具有如下优点:
(1)系统将当前帧报文和下一帧报文的INFO信息同时缓存到FIFO模块以及在当前帧报文的最后一拍获取到下一帧报文的INFO信息;
(2)根据IEEE802.3协议标准的4通道DIC算法,设计了8通道IDC算法的查找表;并提出的DIC计算模块快速查表方法,可以快速的算出下一帧报文的DIC变量值,进而可大幅度提高系统性能,使系统性能达到线速,在产品竞争上更加有优势。
请参照图3,图3为本申请实施例提供的一种报文处理装置300的结构框图,该装置300可以是电子设备上的模块、程序段或代码。应理解,该装置300与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置300包括:
DIC获取模块310,用于在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
IDLE码获取模块320,用于根据所述DIC变量值确定需要插入的目标IDLE码数量;
调整模块330,用于在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
可选地,通过FIFO模块缓存多帧报文的报文信息;所述DIC获取模块310,用于在当前帧报文发送完之前,从所述FIFO模块中获取下一帧报文的报文信息;根据所述下一帧报文的报文信息获取所述下一帧报文对应的DIC变量值。
可选地,所述DIC获取模块310,用于通过接口模块在当前帧报文发送完之前,向DIC计算模块发送指示信息,所述指示信息用于指示所述DIC计算模块从所述FIFO模块中读取下一帧报文的长度信息;通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
可选地,所述DIC获取模块310,用于通过接口模块在当前帧报文发送完之前,向所述FIFO模块发送指示信息,所述指示信息用于指示所述FIFO模块将下一帧报文的长度信息发送给DIC计算模块;通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
可选地,所述DIC获取模块310,用于通过所述DIC计算模块对所述下一帧报文的长度信息进行模为8或4的取余运算,获得对应的余数;通过所述DIC计算模块获取所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值;通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的查找表中查找获得所述下一帧报文对应的DIC变量值。
可选地,所述装置300还包括:
报文发送位置获取模块,用于通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的所述查找表中查找获得所述下一帧报文的通道起始位置;
所述调整模块330,用于在所述下一帧报文的通道起始位置上发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
可选地,所述DIC获取模块310,用于在当前帧报文还剩余单位发送长度未发送时,获取下一帧报文对应的DIC变量值。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
请参照图4,图4为本申请实施例提供的一种用于执行报文处理方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器410,例如CPU,至少一个通信接口420,至少一个存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口420用于与其他节点设备进行信令或数据的通信。存储器430可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器430可选的还可以是至少一个位于远离前述处理器的存储装置。存储器430中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器410执行时,电子设备执行上述图1所示方法过程。
可以理解,图4所示的结构仅为示意,所述电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:
在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
根据所述DIC变量值确定需要插入的目标IDLE码数量;
在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
综上所述,本申请实施例提供一种报文处理方法、装置、电子设备及存储介质,该方法通过在当前帧报文发送完之前就获取下一帧报文对应的DIC变量值,从而可提前算出下一帧报文对应的DIC变量值,根据DIC变量值确定需要插入的目标IDLE码数量,这样在发送下一帧报文时,可以根据目标IDLE码数量来调整报文之间的帧间距,进而本方案可以在保证报文发送的连续性、时序紧凑性,使得发送报文的速率达到线速的同时,也能确保报文的发送满足协议规定的帧间距。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种报文处理方法,其特征在于,所述方法包括:
在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
根据所述DIC变量值确定需要插入的目标IDLE码数量;
在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
2.根据权利要求1所述的方法,其特征在于,通过FIFO模块缓存多帧报文的报文信息;所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
在当前帧报文发送完之前,从所述FIFO模块中获取下一帧报文的报文信息;
根据所述下一帧报文的报文信息获取所述下一帧报文对应的DIC变量值。
3.根据权利要求2所述的方法,其特征在于,所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
通过接口模块在当前帧报文发送完之前,向DIC计算模块发送指示信息,所述指示信息用于指示所述DIC计算模块从所述FIFO模块中读取下一帧报文的长度信息;
通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;
通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
4.根据权利要求2所述的方法,其特征在于,所述当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
通过接口模块在当前帧报文发送完之前,向所述FIFO模块发送指示信息,所述指示信息用于指示所述FIFO模块将下一帧报文的长度信息发送给DIC计算模块;
通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值;
通过所述接口模块从所述DIC计算模块获取所述下一帧报文对应的DIC变量值。
5.根据权利要求3或4所述的方法,所述通过所述DIC计算模块根据所述下一帧报文的长度信息确定所述下一帧报文对应的DIC变量值,包括:
通过所述DIC计算模块对所述下一帧报文的长度信息进行模为8或4的取余运算,获得对应的余数;
通过所述DIC计算模块获取所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值;
通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的查找表中查找获得所述下一帧报文对应的DIC变量值。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过所述DIC计算模块根据所述余数、所述当前帧报文的通道起始位置以及所述当前帧报文对应的DIC变量值,从预先建立的所述查找表中查找获得所述下一帧报文的通道起始位置;
所述在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距,包括:
在所述下一帧报文的通道起始位置上发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
7.根据权利要求1所述的方法,其特征在于,所述在当前帧报文发送完之前,获取下一帧报文对应的DIC变量值,包括:
在当前帧报文还剩余单位发送长度未发送时,获取下一帧报文对应的DIC变量值。
8.一种报文处理装置,其特征在于,所述装置包括:
DIC获取模块,用于在当前帧报文发送完之前,获取下一帧报文对应的空闲字符计数DIC变量值,所述DIC变量值用于记录累计增加或减少的IDLE码的数量,所述DIC变量值的取值范围在设定范围内;
IDLE码获取模块,用于根据所述DIC变量值确定需要插入的目标IDLE码数量;
调整模块,用于在发送所述下一帧报文时,根据所述目标IDLE码数量调整所述下一帧报文与之后帧报文之间的帧间距。
9.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一所述的方法。
CN202210939827.3A 2022-08-05 2022-08-05 报文处理方法、装置、电子设备及存储介质 Pending CN115314161A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210939827.3A CN115314161A (zh) 2022-08-05 2022-08-05 报文处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210939827.3A CN115314161A (zh) 2022-08-05 2022-08-05 报文处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115314161A true CN115314161A (zh) 2022-11-08

Family

ID=83861271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210939827.3A Pending CN115314161A (zh) 2022-08-05 2022-08-05 报文处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115314161A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980039228A (ko) * 1996-11-27 1998-08-17 양승택 10Gb/s광전송 시스템에서의 STM-64 데이타 다중화장치
US6189092B1 (en) * 1997-06-30 2001-02-13 Matsushita Electric Industrial Co., Ltd. Pipeline processor capable of reducing branch hazards with small-scale circuit
CN101223731A (zh) * 2004-12-29 2008-07-16 英特尔公司 在无线局域网中传输和保护长帧
US20080212560A1 (en) * 2007-02-06 2008-09-04 Pmc-Sierra Israel Ltd. Encoding for efficient use of an upstream channel in burst mode
CN103957139A (zh) * 2014-05-09 2014-07-30 天津市德力电子仪器有限公司 一种基于fpga的万兆以太网帧解析方法
US20160119076A1 (en) * 2014-10-24 2016-04-28 Ciena Corporation Channelized oduflex systems and methods
CN110730141A (zh) * 2019-09-27 2020-01-24 中科睿微(宁波)电子技术有限公司 一种聚合调度方法、发送端及计算机可读存储介质
CN111130684A (zh) * 2014-12-22 2020-05-08 华为技术有限公司 一种处理信号的方法及通信设备
CN111934820A (zh) * 2020-07-29 2020-11-13 烽火通信科技股份有限公司 管理信息传输方法、系统及可读存储介质
CN114245010A (zh) * 2021-12-08 2022-03-25 浙江大华技术股份有限公司 图像的调整方法、装置、存储介质及电子装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980039228A (ko) * 1996-11-27 1998-08-17 양승택 10Gb/s광전송 시스템에서의 STM-64 데이타 다중화장치
US6189092B1 (en) * 1997-06-30 2001-02-13 Matsushita Electric Industrial Co., Ltd. Pipeline processor capable of reducing branch hazards with small-scale circuit
CN101223731A (zh) * 2004-12-29 2008-07-16 英特尔公司 在无线局域网中传输和保护长帧
US20080212560A1 (en) * 2007-02-06 2008-09-04 Pmc-Sierra Israel Ltd. Encoding for efficient use of an upstream channel in burst mode
CN103957139A (zh) * 2014-05-09 2014-07-30 天津市德力电子仪器有限公司 一种基于fpga的万兆以太网帧解析方法
US20160119076A1 (en) * 2014-10-24 2016-04-28 Ciena Corporation Channelized oduflex systems and methods
CN111130684A (zh) * 2014-12-22 2020-05-08 华为技术有限公司 一种处理信号的方法及通信设备
CN110730141A (zh) * 2019-09-27 2020-01-24 中科睿微(宁波)电子技术有限公司 一种聚合调度方法、发送端及计算机可读存储介质
CN111934820A (zh) * 2020-07-29 2020-11-13 烽火通信科技股份有限公司 管理信息传输方法、系统及可读存储介质
CN114245010A (zh) * 2021-12-08 2022-03-25 浙江大华技术股份有限公司 图像的调整方法、装置、存储介质及电子装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
刘扬;唐金锋;刘泽响;: "基于DIC算法的万兆以太网RS发送控制方法研究", 机械工程与自动化, no. 05 *
孙涵等: "数据结构 抽象建模、实现与应用", 30 April 2020, 北京:机械工业出版社, pages: 123 *
张治兵;刘刚;周开波;卿瑾;: "10G以太网帧发送速率控制机制分析", 现代电信科技, no. 07, pages 30 - 32 *
王刚;陈龙刚;林洁民;: "基于UPnP的远程协作系统的研究与实现", 武汉理工大学学报, no. 06 *
胡显俊;陈建新;周生强;李一帆;: "支持异构数据通信的IEEE 802.15.4实时带宽分配算法", 计算机科学, no. 06 *

Similar Documents

Publication Publication Date Title
US20180123714A1 (en) Method, Device, and System for Sending and Receiving Code Block Data Stream
US11252111B2 (en) Data transmission
CN108512785B (zh) 一种数据传输协议方法
CN111131091A (zh) 一种面向片上网络的片间互连方法和系统
US20170187587A1 (en) Technologies for inline network traffic performance tracing
WO2019128287A1 (zh) 基于FlexE业务的信元交换方法及系统
US20220021758A1 (en) Data Transmission Method in Flexible Ethernet and Device
CN109547157B (zh) 一种支持时间触发以太网的万兆网络控制器及控制方法
CN108614792B (zh) 1394事务层数据包存储管理方法及电路
US8848526B1 (en) Network processor with traffic shaping response bus interface
CN113542148B (zh) 一种报文聚合方法、装置、网络网卡及可读存储介质
CN106789295A (zh) 一种SpaceWire总线通讯系统及其监视设备
CN115314161A (zh) 报文处理方法、装置、电子设备及存储介质
CN113347096A (zh) 第三方支付数据的传输处理方法
CN115442572A (zh) 数据传输方法及装置
CN108521611B (zh) 一种抗抖动视频数据存取方法以及计算机设备
WO2016192321A1 (zh) 一种相位模糊校正方法及装置、计算机存储介质
JP5808261B2 (ja) フレーム伝送システム
US9906468B2 (en) Packet traffic control in a network processor
CN101296189A (zh) 分布式流处理网络设备以及其中的报文传输方法
CN113193931A (zh) 一种arinc818节点时间确定性传输装置及方法
CN106533869A (zh) 数据转发方法及装置、电子设备
CN115442320B (zh) 一种rdma多队列报文分片重组的实现方法、装置及存储介质
CN110311859A (zh) 一种基于fpga的slip到千兆以太网的转换系统
CN117675705B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20221108