一种以太网报文排序方法及装置制造方法及图纸

技术编号:10101384 阅读:129 留言:0更新日期:2014-05-30 17:10
本发明专利技术提供了一种以太网报文排序方法,包括接收以太网报文,该报文携带有报文序列号;计算当前的最大报文序列号及该报文的存储区块号;计算最大报文序列号与读指针之间的差值,如果差值小于预设的第一标志位,则根据报文的存储区块号将报文写入存储区块号对应的区块;其中,读指针初始值为0;当差值小于预设的第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取最大报文序列号与读指针之间的存储区块。本发明专利技术还提供了一种以太网报文排序装置。本发明专利技术利用存储器的数据缓存功能将接收到的报文进行重排写入后依次读取,实现报文的乱序重排。

【技术实现步骤摘要】
一种以太网报文排序方法及装置
本专利技术涉及通信
,尤其涉及一种以太网报文排序方法及装置。
技术介绍
以因特网协议(IP,IntemetProtocol)网络和多协议标签交换(MPLS,Multi-ProtocolLabelSwitching)网络为代表的分组传输和交换网络是下一代网络的发展趋势,目前现网中还存在大量的时分复用(TDM,TimeDivisionMultiplexing)设备,出于保护投资的需求,需要一种技术将这两种网络融合起来。电路仿真技术通过在分组网络中构建隧道仿真TDM、同步数字体系(SDH,SynchronousDigitalHierarchy)等低速业务,提供了一种TDM网络向分组网络平滑升级的经济方式。其中,在各种电路仿真技术中以Intemet工程任务组(IETF)的边缘到边缘的伪线仿真(PWE3,Pseudo-WireEdge-to-EdgeEmulation)为代表被广泛应用。PWE3是一种端到端的伪线仿真,原理如图4所示,客户业务经由运营商边界网络PE(ProviderEdge)设备封装到PW协议数据单元(Pseudo-WiresProtocolDataUnit,PW-PDU)后分组网络传输,到达对端PE设备解封装出原始的客户业务数据,对客户设备(CE,CustomEdge)来说是感受不到分组网络的存在,相当于在客户设备CE1和CE2之间建立一条虚拟连线。如图5所示,在PE1设备对客户数据进行封装后,可能会经由不同的网络路径到达PE2,这样可能会导致PE1发送的报文到达PE2的先后顺序会有变化,导致不能正常恢复出客户数据。另外由于以太网的异步和突发特性,导致到达PE2的数据报文的时间间隔会有变化,由于TDM业务对时钟同步比较敏感。通常PE设备接收到的以太网报文在解封装前会通过一个缓存来吸收网络抖动,并对到达的报文顺序进行重排,以恢复出正常的客户业务数据。目前,接收端报文顺序重排的技术有:1)按照报文所包含的时间戳先后来排序,业务数据在封装到PWE3PDU后可包含一个时戳字段,该字段为可选项,根据报文的时间先后顺序存入相应的缓冲区,按照缓冲区地址从低到高的顺序读取数据以达到报文顺序重排的目的。这种方式需要收发端都支持可选时间戳字段,无法与不支持时间戳的设备互通,有一定的局限性,另外额外的字段会占用一部份网络带宽。2)按照报文中所含的序列号与接收端期望的序列号来对比,将接收到的报文以及对应的序列号分别存入数据缓冲区和序列号索引表,期望的序列号也存入单独的索引表,通过比对接收序列号及期望序列号是否匹配,得到一个索引值指向接收数据缓存区读取数据。这种方式需要在接收端单独维护一个期望序列号索引表,采用硬件方式实现时复杂度比较高,占用硬件资源较多。
技术实现思路
本专利技术针对上述问题,提出了一种以太网报文排序方法及装置,对乱序的以太网报文进行重排。在一个方面,本专利技术提供了一种以太网报文排序方法,包括:接收以太网报文,该报文携带有报文序列号;计算当前的最大报文序列号,并根据报文序列号计算报文的存储区块号;计算最大报文序列号与读指针之间的差值,如果差值小于预设的第一标志位,则根据报文的存储区块号将报文写入存储区块号对应的区块;其中,读指针初始值为0;当差值小于预设的第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取最大报文序列号与读指针之间的存储区块。在另一个方面,本专利技术提供了一种以太网报文排序装置,包括:接收装置,用于接收以太网报文,该报文携带有报文序列号;存储器,用于暂存报文,所述存储器包括读指针和写指针;处理器,用于计算当前的最大报文序列号,并根据报文序列号计算报文的存储区块号;当最大报文序列号与读指针之间的差值小于预设的第一标志位,则根据报文的存储区块号将报文写入存储器的存储区块号对应的区块;其中,读指针初始值为0;当差值小于预设的第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取最大报文序列号与读指针之间的存储区块。本专利技术利用存储器的数据缓存功能将接收到的报文进行重排写入后依次读取,实现报文的乱序重排。附图说明下面将参照附图描述本专利技术的具体实施例,其中:图1示出了本专利技术实施例以太网报文排序方法的流程图;图2示出了本专利技术实施例以太网报文存储示意图;图3示出了本专利技术实施例以太网报文排序装置的结构示意图;图4示出了现有技术中PWE3的原理示意图;图5示出了现有技术中PWE3的流程示意图。具体实施方式为了使本专利技术的技术方案及优点更加清楚明白,以下结合附图对本专利技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是所有实施例的穷举。本专利技术实施例提出了一种以太网报文排序方法,图1示出了本专利技术实施例的方法流程图,包括:S101、接收以太网报文,以太网报文携带有报文序列号。假设接收的以太网报文格式如下表1.1所示,其中,以太网报文携带的16位的报文序列号位于控制字的后两个字节,提取当前报文序列号seq_id。S102、计算当前的最大报文序列号,并且根据该报文序列号计算该报文的存储区块号。其中,计算当前已收到的以太网报文中所包含的最大报文序列号具体为:提取收到的第一个报文的序列号作为初始最大报文序列号max_seq。当后续收到的以太网报文所携带的报文序列号比max_seq大,则更新max_seq;否则,保留当前最大报文序列号。这样,可以保证max_seq为存储器中以太网报文所携带的最大序列号。本专利技术实施例根据该报文序列号计算该报文的存储区块号具体为:将该报文序列号与存储器的最大缓存报文数进行取模(也可称为取余)计算,取模计算得到的结果作为该报文的存储区块号。假设存储器的最大缓存报文数为16个,本专利技术实施例将该报文序列号与16取模后得到数值seq_id_wrap。该seq_id_wrap为0-15的值,对应数据缓冲区的16个区块。接收到的报文序列号与存储器的最大缓存报文数取模以后得到的存储区块号即为该报文即将需要写入的区块号。S103、计算最大报文序列号与存储器中的读指针之间的差值,如果计算得到的最大报文序列号与存储器中的读指针之间的差值小于预设的第一标志位,则根据该报文的存储区块号将该报文写入存储区块号对应的区块。其中,存储器中的读指针初始值设置为0。本专利技术实施例通过预先设置第一标志位进行异常处理,当最大报文序列号与读指针之间的差值大于第一标志位时(也可称为上溢),说明该报文已经超出存储器重新排序的容错范围,则需要将该报文丢弃。S104、当最大报文序列号与读指针之间的差值小于第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取该最大报文序列号与读指针之间的存储区块。如果在一段时间内虽然最大报文序列号与读指针之间的存储区块已经被连续写满,但最大报文序列号与读指针之间的差值小于第二标志位时,表示接收的报文速率小于实际需要的带宽,线路上可能有丢包,导致缓存数据不足(也可称为下溢)。这时,则需要发送告警信息或者重复发送前一报文等。本专利技术利用存储器的数据缓存功能将接收到的报文进行重排写入后依次读本文档来自技高网
...
一种以太网报文排序方法及装置

【技术保护点】
一种以太网报文排序方法,其特征在于,包括以下步骤:接收以太网报文,所述报文携带有报文序列号;计算当前的最大报文序列号,并根据所述报文序列号计算所述报文的存储区块号;计算所述最大报文序列号与读指针之间的差值,如果所述差值小于预设的第一标志位,则根据所述报文的存储区块号将所述报文写入所述存储区块号对应的区块;其中,所述读指针初始值为0;当所述差值小于预设的第一标志位、大于等于预设的第二标志位且所述最大报文序列号与所述读指针之间的存储区块被连续写满时,利用所述读指针依次读取所述最大报文序列号与所述读指针之间的存储区块。

【技术特征摘要】
1.一种以太网报文排序方法,其特征在于,包括以下步骤:接收以太网报文,所述报文携带有报文序列号;计算当前的最大报文序列号,并根据所述报文序列号计算所述报文的存储区块号;计算所述最大报文序列号与读指针之间的差值,如果所述差值小于预设的第一标志位,则根据所述报文的存储区块号将所述报文写入所述存储区块号对应的区块;其中,所述读指针初始值为0;当所述差值小于预设的第一标志位、大于等于预设的第二标志位且所述最大报文序列号与所述读指针之间的存储区块被连续写满时,利用所述读指针依次读取所述最大报文序列号与所述读指针之间的存储区块;当在一段时间内所述最大报文序列号与所述读指针之间的存储区块被连续写满,而所述最大报文序列号与所述读指针之间的差值小于第二标志位时,发送告警信息或请求重复发送前一报文。2.如权利要求1所述的以太网报文排序方法,其特征在于,所述计算当前的最大报文序列号具体为:将接收的第一个报文的报文序列号作为初始的最大报文序列号,当后续接收的报文的报文序列号比所述最大报文序列号大时,将所述后续接收的报文的报文序列号作为最大报文序列号。3.如权利要求1所述的以太网报文排序方法,其特征在于,根据所述报文序列号计算所述报文的存储区块号具体为:将所述报文序列号与存储器的最大缓存报文数进行取模计算,取模计算得到的结果作为所述报文的存储区块号。4.如权利要求1所述的以太网报文排序方法,其特征在于,当所述最大报文序列号与读指针之间的差值大于等于预设的第一标志位时,丢弃所述报文...

【专利技术属性】
技术研发人员:张浩明
申请(专利权)人:北京众合德信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1