CN103825841A - 一种以太网报文排序方法及装置 - Google Patents

一种以太网报文排序方法及装置 Download PDF

Info

Publication number
CN103825841A
CN103825841A CN201410103385.4A CN201410103385A CN103825841A CN 103825841 A CN103825841 A CN 103825841A CN 201410103385 A CN201410103385 A CN 201410103385A CN 103825841 A CN103825841 A CN 103825841A
Authority
CN
China
Prior art keywords
message
read pointer
sequence number
segment sequence
memory block
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.)
Granted
Application number
CN201410103385.4A
Other languages
English (en)
Other versions
CN103825841B (zh
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.)
Wuhan Interstellar Quantum Information Technology Co., Ltd.
Original Assignee
DATA X 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 DATA X TECHNOLOGIES Co Ltd filed Critical DATA X TECHNOLOGIES Co Ltd
Priority to CN201410103385.4A priority Critical patent/CN103825841B/zh
Publication of CN103825841A publication Critical patent/CN103825841A/zh
Application granted granted Critical
Publication of CN103825841B publication Critical patent/CN103825841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种以太网报文排序方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种以太网报文排序方法及装置。
背景技术
以因特网协议(IP,Intemet Protocol)网络和多协议标签交换(MPLS,Multi-Protocol Label Switching)网络为代表的分组传输和交换网络是下一代网络的发展趋势,目前现网中还存在大量的时分复用(TDM,Time DivisionMultiplexing)设备,出于保护投资的需求,需要一种技术将这两种网络融合起来。电路仿真技术通过在分组网络中构建隧道仿真TDM、同步数字体系(SDH,Synchronous Digital Hierarchy)等低速业务,提供了一种TDM网络向分组网络平滑升级的经济方式。其中,在各种电路仿真技术中以Intemet工程任务组(IETF)的边缘到边缘的伪线仿真(PWE3,Pseudo-Wire Edge-to-EdgeEmulation)为代表被广泛应用。
PWE3是一种端到端的伪线仿真,原理如图4所示,客户业务经由运营商边界网络PE(Provider Edge)设备封装到PW协议数据单元(Pseudo-WiresProtocol Data Unit,PW-PDU)后分组网络传输,到达对端PE设备解封装出原始的客户业务数据,对客户设备(CE,Custom Edge)来说是感受不到分组网络的存在,相当于在客户设备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。
Figure BDA0000479251650000041
S102、计算当前的最大报文序列号,并且根据该报文序列号计算该报文的存储区块号。
其中,计算当前已收到的以太网报文中所包含的最大报文序列号具体为:提取收到的第一个报文的序列号作为初始最大报文序列号max_seq。当后续收到的以太网报文所携带的报文序列号比max_seq大,则更新max_seq;否则,保留当前最大报文序列号。这样,可以保证max_seq为存储器中以太网报文所携带的最大序列号。
本发明实施例根据该报文序列号计算该报文的存储区块号具体为:将该报文序列号与存储器的最大缓存报文数进行取模(也可称为取余)计算,取模计算得到的结果作为该报文的存储区块号。
假设存储器的最大缓存报文数为16个,本发明实施例将该报文序列号与16取模后得到数值seq_id_wrap。该seq_id_wrap为0-15的值,对应数据缓冲区的16个区块。接收到的报文序列号与存储器的最大缓存报文数取模以后得到的存储区块号即为该报文即将需要写入的区块号。
S103、计算最大报文序列号与存储器中的读指针之间的差值,如果计算得到的最大报文序列号与存储器中的读指针之间的差值小于预设的第一标志位,则根据该报文的存储区块号将该报文写入存储区块号对应的区块。其中,存储器中的读指针初始值设置为0。
本发明实施例通过预先设置第一标志位进行异常处理,当最大报文序列号与读指针之间的差值大于第一标志位时(也可称为上溢),说明该报文已经超出存储器重新排序的容错范围,则需要将该报文丢弃。
S104、当最大报文序列号与读指针之间的差值小于第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取该最大报文序列号与读指针之间的存储区块。
如果在一段时间内虽然最大报文序列号与读指针之间的存储区块已经被连续写满,但最大报文序列号与读指针之间的差值小于第二标志位时,表示接收的报文速率小于实际需要的带宽,线路上可能有丢包,导致缓存数据不足(也可称为下溢)。这时,则需要发送告警信息或者重复发送前一报文等。
本发明利用存储器的数据缓存功能将接收到的报文进行重排写入后依次读取,实现报文的乱序重排。并且在利用存储器进行乱序重排的基础上,增加设置第一标志位和第二标志位进行异常处理,即使当存储器出现上溢或下溢时也能确保重排后得到正常序列。
图2示出了本发明实施例存储器的分配示意图,假设存储器最大缓存报文数为16,存储器共分为0~15个可用区块,每个区块深度为报文的最大长度。预先设置第一标志位为15,第二标志位为7,读指针初始值为0,指向缓存0。
假设T0时刻接收到报文0(报文序列号为0),报文序列号0与最大缓存数16进行取模计算得到0,则将报文0写入缓存0区块,当前最大报文序列号为0;T1时刻接收到报文1(报文序列号为1),报文序列号1与最大缓存数16进行取模计算得到1,则将报文1写入缓存1区块,当前最大报文序列号为1;T2时刻接收到报文7(报文序列号为7),报文序列号7与最大缓存数16进行取模计算得到7,则将报文7写入缓存7区块,当前最大报文序列号为7;…以此类推。当缓存0至缓存7之间的区块全部被写满以后,则读指针开始从缓存0依次读取缓存0至缓存7的数据。
假设在缓存0至缓存7之间的区块全部被写满之前(也即读指针尚未开始读取数据,指向缓存0),如果接收到报文16,那么当前最大报文序列号16与读指针0的差值为16,差值大于第一标志位15,则将报文16丢弃。
本发明实施例提出了一种以太网报文排序装置,图3示出了本发明实施例的装置框架示意图,包括:
接收模块301,用于接收以太网报文,该以太网报文携带有报文序列号。
存储器302,用于暂存报文。
其中,存储器302可以由双倍速率同步动态随机存储器(DDR,Double DataRate Synchronous Dynamic Random Access Memory)实现。
处理器303,用于计算当前的最大报文序列号,并且根据该报文序列号计算该报文的存储区块号;计算最大报文序列号与存储器中的读指针之间的差值,如果计算得到的最大报文序列号与存储器中的读指针之间的差值小于预设的第一标志位,则根据该报文的存储区块号将该报文写入存储器中存储区块号对应的区块;当最大报文序列号与读指针之间的差值小于预设的第一标志位、大于等于预设的第二标志位且最大报文序列号与读指针之间的存储区块被连续写满时,利用读指针依次读取该最大报文序列号与读指针之间的存储区块。
其中,存储器中的读指针初始值设置为0。
处理器303还用于当最大报文序列号与读指针之间的差值大于第一标志位时,将该报文丢弃。
处理器303还用于当在一段时间内最大报文序列号与读指针之间的存储区块被连续写满,而最大报文序列号与读指针之间的差值小于第二标志位时,发送告警信息或者请求重复发送前一报文等。
本发明利用存储器的数据缓存功能将接收到的报文进行重排写入后依次读取,实现报文的乱序重排。并且在利用存储器进行乱序重排的基础上,增加设置第一标志位和第二标志位进行异常处理,即使当存储器出现上溢或下溢时也能确保重排后得到正常序列。
本发明所提供的技术方案可适用于现场可编程门阵列(FPGA,Field-Programmable Gate Array)或专用集成电路(ASIC,Application SpecificIntegrated Circuit)实现。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。

Claims (10)

1.一种以太网报文排序方法,其特征在于,包括以下步骤:
接收以太网报文,所述报文携带有报文序列号;
计算当前的最大报文序列号,并根据所述报文序列号计算所述报文的存储区块号;
计算所述最大报文序列号与读指针之间的差值,如果所述差值小于预设的第一标志位,则根据所述报文的存储区块号将所述报文写入所述存储区块号对应的区块;其中,所述读指针初始值为0;
当所述差值小于预设的第一标志位、大于等于预设的第二标志位且所述最大报文序列号与所述读指针之间的存储区块被连续写满时,利用所述读指针依次读取所述最大报文序列号与所述读指针之间的存储区块。
2.如权利要求1所述的以太网报文排序方法,其特征在于,所述计算当前的最大报文序列号具体为:将接收的第一个报文的报文序列号作为初始的最大报文序列号,当后续接收的报文的报文序列号比所述最大报文序列号大时,将所述后续接收的报文的报文序列号作为最大报文序列号。
3.如权利要求1所述的以太网报文排序方法,其特征在于,根据所述报文序列号计算所述报文的存储区块号具体为:将所述报文序列号与存储器的最大缓存报文数进行取模计算,取模计算得到的结果作为所述报文的存储区块号。
4.如权利要求1所述的以太网报文排序方法,其特征在于,当所述最大报文序列号与读指针之间的差值大于等于预设的第一标志位时,丢弃所述报文。
5.如权利要求1所述的以太网报文排序方法,其特征在于,当在一段时间内所述最大报文序列号与所述读指针之间的存储区块被连续写满,而所述最大报文序列号与所述读指针之间的差值小于第二标志位时,发送告警信息。
6.一种以太网报文排序装置,其特征在于,包括:
接收装置,用于接收以太网报文,所述报文携带有报文序列号;
存储器,用于暂存所述报文,所述存储器包括读指针和写指针;
处理器,用于计算当前的最大报文序列号,并根据所述报文序列号计算所述报文的存储区块号;当所述最大报文序列号与读指针之间的差值小于预设的第一标志位,则根据所述报文的存储区块号将所述报文写入所述存储区块号对应的区块;其中,所述读指针初始值为0;当所述差值小于预设的第一标志位、大于等于预设的第二标志位且所述最大报文序列号与所述读指针之间的存储区块被连续写满时,利用所述读指针依次读取所述最大报文序列号与所述读指针之间的存储区块。
7.如权利要求5所述的以太网报文排序装置,其特征在于,所述处理器计算当前的最大报文序列号是将接收的第一个报文的报文序列号作为初始的最大报文序列号,当后续接收的报文的报文序列号比所述最大报文序列号大时,更新所述最大报文序列号。
8.如权利要求5所述的以太网报文排序装置,其特征在于,所述处理器将所述报文序列号与存储器的最大缓存报文数进行取模计算,取模计算得到的结果作为所述报文的存储区块号。
9.如权利要求5所述的以太网报文排序装置,其特征在于,所述处理器还用于当所述最大报文序列号与读指针之间的差值大于等于预设的第一标志位时,丢弃所述报文。
10.如权利要求5所述的以太网报文排序装置,其特征在于,所述处理器还用于当在一段时间内所述最大报文序列号与所述读指针之间的存储区块被连续写满,而所述最大报文序列号与所述读指针之间的差值小于第二标志位时,发送告警信息。
CN201410103385.4A 2014-03-19 2014-03-19 一种以太网报文排序方法及装置 Active CN103825841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410103385.4A CN103825841B (zh) 2014-03-19 2014-03-19 一种以太网报文排序方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410103385.4A CN103825841B (zh) 2014-03-19 2014-03-19 一种以太网报文排序方法及装置

Publications (2)

Publication Number Publication Date
CN103825841A true CN103825841A (zh) 2014-05-28
CN103825841B CN103825841B (zh) 2017-04-05

Family

ID=50760678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410103385.4A Active CN103825841B (zh) 2014-03-19 2014-03-19 一种以太网报文排序方法及装置

Country Status (1)

Country Link
CN (1) CN103825841B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835138A (zh) * 2017-09-15 2018-03-23 南京安讯科技有限责任公司 一种tcp通讯连接中报文排序方法
CN109936514A (zh) * 2019-04-29 2019-06-25 新华三信息安全技术有限公司 一种报文处理方法和装置
CN112448898A (zh) * 2019-08-28 2021-03-05 无锡江南计算技术研究所 基于序列号机制的消息保序方法
CN113328959A (zh) * 2021-04-13 2021-08-31 新华三信息安全技术有限公司 一种报文转发方法、装置、电子设备及存储介质
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113726811A (zh) * 2021-09-08 2021-11-30 苏州洛翌鑫珂智能科技有限公司 一种电梯视频监控数据传输的丢包补偿方法
CN113783800A (zh) * 2021-11-10 2021-12-10 恒生电子股份有限公司 数据包处理方法、装置、计算机设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277390C (zh) * 2003-05-09 2006-09-27 华为技术有限公司 用rtp数据包的序号进行排序以消除其抖动延时的方法
CN101917472B (zh) * 2010-08-12 2013-05-29 北京星网锐捷网络技术有限公司 一种多链路报文的重组方法、装置及设备
CN103108256A (zh) * 2013-03-08 2013-05-15 苏州工业园区云视信息技术有限公司 一种接收rtp包时消除抖动乱序重包的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835138A (zh) * 2017-09-15 2018-03-23 南京安讯科技有限责任公司 一种tcp通讯连接中报文排序方法
CN109936514A (zh) * 2019-04-29 2019-06-25 新华三信息安全技术有限公司 一种报文处理方法和装置
CN109936514B (zh) * 2019-04-29 2022-06-21 新华三信息安全技术有限公司 一种报文处理方法和装置
CN112448898A (zh) * 2019-08-28 2021-03-05 无锡江南计算技术研究所 基于序列号机制的消息保序方法
CN113328959A (zh) * 2021-04-13 2021-08-31 新华三信息安全技术有限公司 一种报文转发方法、装置、电子设备及存储介质
CN113676413A (zh) * 2021-08-26 2021-11-19 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113676413B (zh) * 2021-08-26 2024-05-17 锐捷网络股份有限公司 一种乱序报文的重排方法、装置及存储介质
CN113726811A (zh) * 2021-09-08 2021-11-30 苏州洛翌鑫珂智能科技有限公司 一种电梯视频监控数据传输的丢包补偿方法
CN113783800A (zh) * 2021-11-10 2021-12-10 恒生电子股份有限公司 数据包处理方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN103825841B (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN103825841B (zh) 一种以太网报文排序方法及装置
US8914662B2 (en) Implementing transparent clock by correcting time information carried in data using residence time information
US7835393B2 (en) System and method for converting multichannel time division multiplexed data into packets
EP2448168A1 (en) Method and system for bearing time synchronization protocol in optical transport network
CN104144094B (zh) 数字总线系统从属节点及其操作方法
CN106921641B (zh) 传输报文的方法和装置
US9465701B2 (en) Relay device and recovery method
US9065764B2 (en) Method, apparatus and system for maintaining quality of service QoS
US9743162B2 (en) Apparatus and method for managing OTN traffic in packet-circuit integrated transport system based on multilayer-integrated fabric switch
CN102457441B (zh) 一种psn数据包处理方法及装置
CN103918231A (zh) 一种光通道数据单元业务交换的装置和方法
CN105573922B (zh) 一种实现数据格式转换的方法和装置
JP7027788B2 (ja) 伝送装置、伝送方法および処理装置
CN102377678B (zh) 一种数据传输处理方法及装置
CN102571561A (zh) 一种pwe3装置及其在抖动缓存读写数据的方法
EP2320585A1 (en) Method and apparatus for improving the effect of the synchronous digital hierarchy virtual concatenation delay compensation buffer
CN105630825B (zh) 一种数据转换方法及装置
JP2008199162A (ja) 多重化されたtdm回線の回線エミュレーション方法及び受信側装置
US8984092B2 (en) Method for transmitting telegrams in an automation system
CN102377673B (zh) 一种报文发送方法及发送设备
CN102546112B (zh) 一种数据封装方法及装置
US20120140776A1 (en) Communication device and communication method
EP2533440B1 (en) Method and device for sequencing members of multiple virtual concatenation groups
CN110808909A (zh) 跨虚拟系统的报文处理方法和装置
CN112887353A (zh) 一种信息处理方法、装置、终端及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170123

Address after: The Northeast Industrial Park Dongxin road East Lake Development Zone 430000 Hubei city of Wuhan Province, No. 11, building D, C

Applicant after: Wuhan Zhonghe Dexin Technology Co. Ltd.

Address before: 100082 Beijing, Xizhimen, North Street, building No. 32, building 11, floor 1201, 1

Applicant before: DATA X TECHNOLOGIES CO., LTD.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180504

Address after: 430000 No. 7 (10), Cross Street East, Jinghe street, Dongxihu District, Wuhan, Hubei

Patentee after: Wuhan interstellar quantum communication technology Limited by Share Ltd

Address before: 430000 C, D, 11 Dongxin Road, Guandong Industrial Park, East Lake Development Zone, Wuhan, Hubei

Patentee before: Wuhan Zhonghe Dexin Technology Co. Ltd.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 430000 No. 7 (10) Cross East Street, Jihe Street, Dongxihu District, Wuhan City, Hubei Province

Patentee after: Wuhan Interstellar Quantum Information Technology Co., Ltd.

Address before: 430000 No. 7 (10) Cross East Street, Jihe Street, Dongxihu District, Wuhan City, Hubei Province

Patentee before: Wuhan interstellar quantum communication technology Limited by Share Ltd

CP01 Change in the name or title of a patent holder