CN109274697B - 数据帧转义方法、系统及相关装置 - Google Patents

数据帧转义方法、系统及相关装置 Download PDF

Info

Publication number
CN109274697B
CN109274697B CN201811398765.XA CN201811398765A CN109274697B CN 109274697 B CN109274697 B CN 109274697B CN 201811398765 A CN201811398765 A CN 201811398765A CN 109274697 B CN109274697 B CN 109274697B
Authority
CN
China
Prior art keywords
byte
escape
double
disambiguation
data frame
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.)
Active
Application number
CN201811398765.XA
Other languages
English (en)
Other versions
CN109274697A (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.)
Hunan Uucode Information Co ltd
Original Assignee
Hunan Uucode Information 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 Hunan Uucode Information Co ltd filed Critical Hunan Uucode Information Co ltd
Priority to CN201811398765.XA priority Critical patent/CN109274697B/zh
Publication of CN109274697A publication Critical patent/CN109274697A/zh
Application granted granted Critical
Publication of CN109274697B publication Critical patent/CN109274697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2858Access network architectures
    • H04L12/2859Point-to-point connection between the data network and the subscribers

Landscapes

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

Abstract

本申请公开了一种数据帧解转义方法和与之相对的数据帧转义方法,区别于现有采用逐字扫描方式进行转义/解转义的串行实现方法,本申请通过将每个待解转义/转义的数据帧按一定长度进行拆分,并行的对所有需要进行解转义/转义的数据块执行转义/解转义操作,在执行完后再按原顺序重组得到解转义后/转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升转义/解转义效率,得以应用于数据量负载更高的网络环境。本申请还同时公开了一种数据帧解转义/转义系统、装置、计算机可读存储介质以及数据处理设备,具有上述有益效果。

Description

数据帧转义方法、系统及相关装置
技术领域
本申请涉及转义/解转义技术领域,特别涉及一种数据帧转义方法、系统、装置、一种数据帧解转义方法、系统、装置、计算机可读存储介质以及数据处理设备。
背景技术
PPP帧(Point to Point Protocol,点到点协议,基于点对点协议的数据帧) 在异步链路中需要做转义处理,特殊字符0x7d用作转义标志字符,0x7e作为两帧的间隔字符。当0x7e出现于PPP帧时,表示前一字节为帧的结尾字节,而后一字节为另一帧的起始字节;当0x7d它出现在PPP数据帧中时,那么紧接着的下一个字符需要做解转义操作,如当遇到字符0x7d5e时,需解转义为单个字符0x7e,当遇到转义字符0x7d5d时,需解转义为单个字符0x7d。
现有PPP帧的转义机制在发送端需要逐字检查整个PPP帧的内容,并对对应的字段进行转义操作,转义后的帧长度会比原来的PPP帧多出字节;接收端同样需要逐字检查,并把转义过后的数据重新还原出来。逐字扫描并进行转义/解转义操作会耗费大量的操作周期,在STM-1,STM-4的低速网络中CPU 可以胜任,但在数据容量越来越大,速率越来越快、SDH设备要求支持POS 接口书越多越来的STM-16(2.5G)、STM-64(10G)甚至STM-256(40G)中,采用逐字扫描的方法已经无法胜任PPP帧实时转义/解转义的性能要求。
因此,如何克服现有采用逐字扫描方式进行转义/解转义操作存在的技术缺陷,提供一种消耗操作周期更少、耗时更短、效率更高的数据帧转义/解转义方法是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据帧解转义方法和与之相对的数据帧转义方法,区别于现有采用逐字扫描方式进行转义/解转义的串行实现方法,本申请通过将每个待解转义/转义的数据帧按一定长度进行拆分,并行的对所有需要进行解转义/转义的数据块执行转义/解转义操作,在执行完后再按原顺序重组得到解转义后/转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升转义/解转义效率,得以应用于数据量负载更高的网络环境。
本申请的另一目的在于提供了一种数据解帧转义系统、装置,一种数据帧转义系统、装置,计算机可读存储介质以及设置有该数据帧解转义装置和/ 或数据帧转义装置的数据处理设备。
为实现上述目的,本申请提供了一种数据帧解转义方法,该方法包括:
将待解转义数据帧以2N字节数为最小拆分单位进行拆分,得到各待解转义数据块;其中,N为大于等于1的正整数;
同时根据每个所述待解转义数据块是否包含转义标识符确定需要执行解转义操作的待解转义数据块,得到目标数据块;
同时对每个所述目标数据块中相邻排列于所述转义标识符后的字节内容执行所述解转义操作,并在所述解转义操作执行完成后将所述转义标识符所在字节修改为空白字节,得到各解转义数据块;
按所述待解转义数据帧内各内容字节的原顺序重组各所述解转义数据块,得到解转义后数据帧。
可选的,按所述待解转义数据帧内各内容字节的原顺序重组各所述解转义数据块,得到解转义后数据帧,包括:
将各所述解转义数据块按所述原顺序不断执行两相邻数据块间的合并操作,得到各解转义合并数据块;
将各所述解转义合并数据块中的空白字节调整至对应解转义合并数据块的尾部后,执行下一次的合并操作,直至得到唯一的解转义合并数据块;
删去所述唯一的解转义合并数据块中的空白字节,得到所述解转义后数据帧。
为实现上述目的,本申请还提供了一种数据帧解转义系统,该系统包括:
2N字节数拆分单元,用于将待解转义数据帧以2N字节数为最小拆分单元进行拆分,得到各待解转义数据块;其中,N为大于等于1的正整数;
目标数据块确定单元,用于根据每个所述待解转义数据块是否包含转义标识符同时确定需要执行解转义操作的待解转义数据块,得到目标数据块;
并行处理单元,用于同时对每个所述目标数据块中相邻排列于所述转义标识符后的字节内容执行所述解转义操作,并在所述解转义操作执行完成后将所述转义标识符所在字节修改为空白字节,得到各解转义数据块;
解转义后数据帧重组单元,用于按所述待解转义数据帧内各内容字节的原顺序重组各所述解转义数据块,得到解转义后数据帧。
可选的,所述解转义后数据帧重组单元包括:
解转义合并子单元,用于将各所述解转义数据块按所述原顺序不断执行两相邻数据块间的合并操作,得到各解转义合并数据块;
空白字节调整子单元,用于将各所述解转义合并数据块中的空白字节调整至对应解转义合并数据块的尾部后,执行下一次的合并操作,直至得到唯一的解转义合并数据块;
空白字节删去子单元,用于删去所述唯一的解转义合并数据块中的空白字节,得到所述解转义后数据帧。
为实现上述目的,本申请还提供了一种数据帧解转义装置,该装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的数据帧解转义方法的步骤。
为实现上述目的,本申请还提供了一种数据帧转义方法,该方法包括:
将待转义数据帧以单字节为最小拆分单元进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
同时对每个所述目标双字节执行转义操作,得到转义双字节;
按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧。
可选的,同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,包括:
同时判断每个所述双字节中内容字节的值是否为7d或7e;
若是,则将所述内容字节的值为7d或7e的双字节作为所述目标双字节。
可选的,按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧,包括:
将各所述转义双字节和各所述双字节按所述原顺序不断执行两相邻字节段间的合并操作,得到各转义合并数据块;
在将各所述转义合并数据块中的空白字节调整至对应转义合并数据块的尾部后,再进行下一次的合并操作,直至得到唯一的转义合并数据块;
删去所述唯一的转义合并数据块中的空白字节,得到所述转义后数据帧。
为实现上述目的,本申请还提供了一种数据帧转义系统,该系统包括:
单字节拆分及双字节拓展单元,用于将待转义数据帧以单字节为拆分单位进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
目标双字节确定单元,用于同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
转义标识符增加单元,用于同时对每个所述目标双字节执行转义操作,得到转义双字节;
转义后数据帧重组单元,用于按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧。
可选的,所述目标双字节确定单元包括:
值判断子单元,用于同时判断每个所述双字节中内容字节的值是否为7d 或7e;
确定子单元,用于若是,则将所述内容字节的值为7d或7e的双字节作为所述目标双字节。
可选的,所述转义后数据帧重组单元包括:
转义合并子单元,用于将各所述转义双字节和各所述双字节按所述原顺序不断执行两相邻字节段间的合并操作,得到各转义合并数据块;
空白字节调整子单元,用于在将各所述转义合并数据块中的空白字节调整至对应转义合并数据块的尾部后,再进行下一次的合并操作,直至得到唯一的转义合并数据块;
空白字节删去子单元,用于删去所述唯一的转义合并数据块中的空白字节,得到所述转义后数据帧。
为实现上述目的,本申请还提供了一种数据帧转义装置,该装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的数据帧转义方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的数据帧转义方法和/或如上述内容所描述的数据帧解转义方法。
为实现上述目的,本申请还提供了一种数据处理设备,应用于POS线路和以太链路中,包括POS_PHY收发模块、SDH帧同步模块、VC载荷提取模块、PPP/HDLC解转义模块、以太帧转换模块、ETH_PHY收发模块、POS帧协议转换模块、PPP/HDLC转义模块、VC载荷映射模块以及SDH帧映射模块,所述PPP/HDLC解转义模块中设置有如上述内容所描述的数据帧解转义装置和/或所述PPP/HDLC转义模块设置有如上述内容所描述的数据帧转义装置。
可选的,所述数据处理设备具体为FPGA数据处理板卡。
显然,本申请所提供的一种数据帧解转义方法和与之相对的数据帧转义方法,区别于现有采用逐字扫描方式进行解转义/转义的串行实现方法,本申请通过将每个待解转义/转义的数据帧按一定长度进行拆分,并行的对所有需要进行解转义/转义的数据块执行解转义/转义操作,在执行完后再按原顺序重组得到解转义后/转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升转义/解转义效率,得以应用于数据量负载更高的网络环境。
本申请同时还提供了一种数据帧解转义系统、装置,一种数据帧转义系统、装置,计算机可读存储介质以及设置有该数据帧解转义装置和/或数据帧转义装置的数据处理设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为STM-N帧的结构图;
图2为PPP帧的结构图;
图3为本申请实施例提供的一种数据帧解转义方法的流程图;
图4为本申请实施例提供的数据帧解转义方法中一种数据帧重组方法的流程图;
图5为本申请实施例提供的一种数据帧解转义系统的结构框图;
图6为本申请实施例提供的一种数据帧转义方法的流程图;
图7为本申请实施例提供的另一种数据帧转义方法的流程图;
图8为本申请实施例提供的一种数据帧转义系统的结构框图;
图9为本申请实施例提供的一种数据处理设备的结构示意图;
图10为本申请实施例提供的一种PPP帧并行解转义的逻辑示意图;
图11为本申请实施例提供的一种PPP帧并行转义的逻辑示意图。
具体实施方式
为了便于理解后续文中出现的一些专有名词,在此对本申请涉及的技术背景进行详细阐述:
POS是IP数据包通过采用点到点协议PPP(Point to Point Protocol)对IP数据包进行封装,并采用HDLC(High-Level Data Link Control,高级数据链路控制,是一个在同步网上传输数据、面向比特的数据链路层协议)的帧格式映射到SDH/SONET帧(一组在光纤上传输光信号的速率和格式)上,按某个相应的线速进行连续传输,它保留了IP面向非连接的特性。基于POS技术的骨干网络具有较高的带宽,且有多种速率等级可供组网选择,其中STM-1为 155.52M,STM-4为622.08M,STM-16为2488.32M,STM-64为9553.28M, STM-256为40G,组网方案灵活、网络管理性能强,具有快速恢复功能等优势。
SDH网络由STM-N的帧作为物理层承载帧,STM-N的帧结构由3部分组成:段开销(包括再生段开销(RSOH)和复用段开销(MSOH))、管理单元指针(AU-PTR)以及信息净负荷,可参见图1所示的STM-N帧的结构图。信息净负荷是在STM-N帧结构中存放将由STM-N传送的各种信息码块的地方;段开销(SOH)是为了保证信息净负荷正常灵活传送所必须附加的供网络运行、管理和维护(OAM)使用的字节,段开销又分为再生段开销(RSOH) 和复用段开销(MSOH),分别对相应的段层进行监控,再生段开销在STM-N 帧中的位置是第一到第三行的第一到第9×N列,共3×9×N个字节;复用段开销在STM-N帧中的位置是第5到第9行的第一到第9×N列,共5×9×N个字节;管理单元指针(AU-PTR)位于STM-N帧中第4行的9×N列,共9×N个字节,AU-PTR用来指示信息净负荷的第一个字节在STM-N帧内的准确位置,以便接收端能根据这个位置指示符的值(指针值)正确分离信息净负荷。
RFC1619定义了PPP与SONET/SDH的接口,描述了PPP在SONET/SDH网络中的具体应用。当SONET/SDH被配置为点到点的链路时,PPP协议可以很好地支持这种链路。PPP协议将SONET/SDH传输通路视为面向字节的同步链路,提供链路层的数据报封装机制。PPP协议给物理层提供一个字节型接口, PPP帧作为字节流映射进SONET/SDH净负荷中,而PPP帧的载荷部分就可以用于封装用户所需要传输的信息,可参见图2所示的PPP帧的结构图。
本申请的核心是提供一种数据帧解转义方法和与之相对的数据帧转义方法,区别于现有采用逐字扫描方式进行解转义/转义的串行实现方法,本申请通过将每个待解转义/转义的数据帧按一定长度进行拆分,并行的对所有需要进行解转义/转义的数据块执行解转义/转义操作,在执行完后再按原顺序重组得到解转义后/转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升转义/解转义效率,得以应用于数据量负载更高的网络环境。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例一
以下结合图3,图3为本申请实施例提供的一种数据解帧转义方法的流程图,其具体包括以下步骤:
S101:将待解转义数据帧以2N字节数为最小拆分单位进行拆分,得到各待解转义数据块;
其中,N为大于等于1的正整数,随着N的变化,最小拆分单位可为2 字节、4字节、8字节等变化,N具体选用何值,还需要与待解转义数据帧的位宽进行比较。由于最高等级的STM-256的比特数为256,其位宽对应为32 字节(换算关系为1字节=8比特),相应的,STM-64的位宽为8字节、STM-16 的位宽为2字节,因此,通常情况下,N选用为1,即以2字节为最小拆分单位即可,之所以以字节为拆分单位,这是因为如图2所示的PPP帧的最小构成单位即为字节,而进行解转义时要判断的内容也是每个字节中的值。
本步骤旨在按照预设好的最小拆分单位,将一个完整的带解转义数据帧拆分为多个独立的待解转义数据块,以便后续采用并行的处理方式来判断哪些内容需要解转义,加快处理效率。
S102:同时根据每个待解转义数据块是否包含转义标识符确定需要执行解转义操作的待解转义数据块,得到目标数据块;
在S101的基础上,本步骤旨在同时根据每个待解转义数据块是否包含转义标识符确定需要执行解转义操作的待解转义数据块,需要执行解转义操作的待解转义数据块即为目标数据块。
需要说明的是,按照标准协议规定:特殊字符0x7d用作转义标志字符(也称转义标识符),0x7e作为两帧的间隔字符,当0x7e出现于PPP帧时,表示前一字节为帧的结尾字节,而后一字节为另一帧的起始字节;当0x7d它出现在PPP数据帧中时,那么紧接着的下一个字符需要做解转义操作。
因此,本步骤实际上要做的就是判断每个待解转义数据块是否存在转义标识符0x7d,若存在,则将紧邻于该转义标识符0x7d后的字节内容所在的待解转义数据块判定为目标数据块。
S103:同时对每个目标数据块中相邻排列于转义标识符后的字节内容执行解转义操作,并在解转义操作执行完成后将转义标识符所在字节修改为空白字节,得到各解转义数据块;
在S102的基础上,本步骤旨在以并行的方式对每个目标数据块中相邻排列于转义标识符后的字节内容执行解转义操作。按照标准协议规定:若0x7d 后为5e时,需将其解转义为7e,当0x7d后为5d时,需将其解转义为7d。并在解转义完成后,还需要删去转义标识符,其原先所在字节将变为空白字节,最终得到各解转义数据块。需要说明的是,这些解转义数据块中也包含一些未经过解转义操作的待解转义数据块,但当所有目标数据块均完成解转义操作后,这部分未经解转义操作的待解转义数据块也可被称为解转义数据块,代表该数据帧已经全部完成解转义操作,以便以同等地位进行后续的帧重组。
S104:按待解转义数据帧内各内容字节的原顺序重组各解转义数据块,得到解转义后数据帧。
在S103的基础上,本步骤旨在按待解转义数据帧内各内容字节的原顺序重组各解转义数据块,得到解转义后数据帧。考虑到执行过解转义操作的解转义数据块中含有空白字节,为避免数据读取中途收到空白字节的干扰,还可以将这些空白字节统一移至数据帧的尾部,并将其统一删去,仅保留有用的内容。实际操作中,可以采用相邻解转义数据帧两两合并的方式,这一过程也可以通过并行执行的方式增加处理效率,但需要注意的是,在两两合并时还需要遵循原各内容字节的顺序,以防止数据错乱。
进一步的,由于每个待解转义数据帧中包含的转义标识符数量不定,因此其最终形成的解转义后数据帧的位宽也不定,为了将每次得到的变长数据拼接为一个连贯的帧序列,还可以设置一个位宽较长的缓冲队列,每次重组得到的解转义后数据帧都会按顺序排列于该缓冲队列,并每当该缓冲队列数据写满就“弹出”,缓冲队列的位宽可根据实际情况灵活调整,此处并不做具体限定。例如在重组得到的解转义后数据帧的位宽在4~8字节之间时,一种合适的缓冲队列的位宽为16字节。
基于上述技术方案,本申请实施例提供的一种数据帧解转义方法,区别于现有采用逐字扫描方式进行解转义的串行实现方法,本申请通过将每个待解转义的数据帧按一定长度进行拆分,并行的对所有需要进行解转义的数据块执行解转义操作,在执行完后再按原顺序重组得到解转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升解转义效率,得以应用于数据量负载更高的网络环境。
实施例二
以下结合图4,图4为本申请实施例提供的数据帧解转义方法中一种数据帧重组方法的流程图,本实施例针对实施例一中的S104,给出了一种便于通过并行处理来加快重组过程的方式,其具体包括以下步骤:
S201:将各解转义数据块按原顺序不断执行两相邻数据块间的合并操作,得到各解转义合并数据块;
优选的,这一合并过程可同时对两两相邻数据块执行,以充分利用并行处理方式带来的效率提升。具体的,当最小解转义数据块的位宽为2字节时,第一次合并得到的均为4字节的数据块,之后则是以两个相邻的4字节数据块再次执行合并操作,得到均为8字节的数据块,这个过程将持续至最终只剩下唯一的数据块。
此种方式可参见后续实施例七给出的一个具体实施例。
S202:将各解转义合并数据块中的空白字节调整至对应解转义合并数据块的尾部后,执行下一次的合并操作,直至得到唯一的解转义合并数据块;
即对空白字节位置的调整设置在每次合并后,并在调整完成后开始下一次的合并操作,当然,也可以将空白字节位置的调整在合并得到唯一的数据块统一进行,根据实际情况可灵活选择,但最后才对空白字节进行位置调整的方式无法充分利用对每次合并过程中的并行处理能力,前者相当于将一个大任务拆分成了许多小任务,同时执行多个小任务,其效率将由于单一执行一个大任务。
S203:删去唯一的解转义合并数据块中的空白字节,得到解转义后数据帧。
实施例三
下面请参见图5,图5为本申请实施例提供的一种数据帧解转义系统的结构框图,该数据帧解转义系统可以包括:
2N字节数拆分单元100,用于将待解转义数据帧以2N字节数为最小拆分单元进行拆分,得到各待解转义数据块;其中,N≥1;
目标数据块确定单元200,用于根据每个待解转义数据块是否包含转义标识符同时确定需要执行解转义操作的待解转义数据块,得到目标数据块;
并行处理单元300,用于同时对每个目标数据块中相邻排列于转义标识符后的字节内容执行解转义操作,并在解转义操作执行完成后将转义标识符所在字节修改为空白字节,得到各解转义数据块;
解转义后数据帧重组单元400,用于按待解转义数据帧内各内容字节的原顺序重组各解转义数据块,得到解转义后数据帧。
其中,解转义后数据帧重组单元400可以包括:
解转义合并子单元,用于将各解转义数据块按原顺序不断执行两相邻数据块间的合并操作,得到各解转义合并数据块;
空白字节调整子单元,用于将各解转义合并数据块中的空白字节调整至对应解转义合并数据块的尾部后,执行下一次的合并操作,直至得到唯一的解转义合并数据块;
空白字节删去子单元,用于删去唯一的解转义合并数据块中的空白字节,得到解转义后数据帧。
基于上述实施例,本申请还提供了一种数据帧解转义装置,该装置可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
实施例四
以下结合图6,图6为本申请实施例提供的一种数据帧转义方法的流程图,需要说明的是,转义是解转义的逆过程,其具体包括以下步骤:
S301:将待转义数据帧以单字节为最小拆分单元进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
相较于解转义过程后会使得原数据帧长度缩减,进行转义,会增加一部分转义标识符,因此一个位宽为8字节的待转义数据帧在执行完转义操作后,其位宽在8~16字节之间,这增加的部分就是转义标识符所占用的部分,因此在拆分后还需要使用空白字节将将每个拆分得到的内容字节拓展至双字节,以便在每个双字节中的内容字节符合转义判定规则时,在其空白字节中增加转义标识符。
S302:同时根据每个双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
S303:同时对每个目标双字节执行转义操作,得到转义双字节;
按照标准协议规定:当内容字节中的值为7d时,需要在对应的空白字节增加值5d;当内容字节中的值为7e时,不仅需要在对应的空白字节增加值 5e,还需要将7e变更为7d。
S304:按待转义数据帧内各内容字节的原顺序重组各转义双字节和各双字节,得到转义后数据帧。
重组部分可参见实施例一提供的数据帧解转义方法的S104部分,原理一致,只是针对不同的功能对象做了适应性变化,此处不再赘述。
与实例一数据帧长度缩短相对应,转义操作会带来长度的增加,在同样利用缓冲队列来实现帧的连续性时,还需要适当调整缓冲队列的长度。
基于上述技术方案,本申请实施例提供的一种数据帧转义方法,区别于现有采用逐字扫描方式进行转义的串行实现方法,本申请通过将每个待转义的数据帧按一定长度进行拆分,并行的对所有需要进行转义的数据块执行转义操作,在执行完后再按原顺序重组得到转义后数据帧,由于将其每个数据帧拆分成一定长度的数据块,每个数据块是独立存在的,可同时对所有数据块执行相同的操作,可有效提升转义效率,得以应用于数据量负载更高的网络环境。
实施例五
以下结合图7,图7为本申请实施例提供的另一种数据帧转义方法的流程图,区别于实施例四,本实施例通过S402和S403提供了一种具体的并行确定需要执行转义操作的目标双字节的方式,通过S405、S406以及S407提供了一种便于通过并行的方式进行帧重组的方式,这两部分均可单独的与实施例四形成相应的实施例,本实施例仅作为一个同时选优这两个优选方法的实施例存在,具体实施步骤如下:
S401:将待转义数据帧以单字节为最小拆分单元进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
S402:同时判断每个双字节中内容字节的值是否为7d或7e;
S403:将内容字节的值为7d或7e的双字节作为目标双字节;
S404:同时对每个目标双字节执行转义操作,得到转义双字节;
S405:将各转义双字节和各双字节按原顺序不断执行两相邻字节段间的合并操作,得到各转义合并数据块;
S406:在将各转义合并数据块中的空白字节调整至对应转义合并数据块的尾部后,再进行下一次的合并操作,直至得到唯一的转义合并数据块;
S407:删去唯一的转义合并数据块中的空白字节,得到转义后数据帧。
S405、S406以及S407的原理与实施例二提供的方式一致,此部分可参见相应部分的说明,同时也在实施例七中提供了一种具体的实现方式。
实施例六
下面请参见图8,图8为本申请实施例提供的一种数据帧转义系统的结构框图,该数据帧转义系统可以包括:
单字节拆分及双字节拓展单元500,用于将待转义数据帧以单字节为拆分单位进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
目标双字节确定单元600,用于同时根据每个双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
转义操作执行单元700,用于同时对每个目标双字节执行转义操作,得到转义双字节;
转义后数据帧重组单元800,用于按待转义数据帧内各内容字节的原顺序重组各转义双字节和各双字节,得到转义后数据帧。
其中,目标双字节确定单元600可以包括:
值判断子单元,用于同时判断每个双字节中内容字节的值是否为7d或7e;
确定子单元,用于若是,则将内容字节的值为7d或7e的双字节作为所述目标双字节。
其中,转义后数据帧重组单元800可以包括:
转义合并子单元,用于将各转义双字节和各双字节按原顺序不断执行两相邻字节段间的合并操作,得到各转义合并数据块;
空白字节调整子单元,用于在将各转义合并数据块中的空白字节调整至对应转义合并数据块的尾部后,再进行下一次的合并操作,直至得到唯一的转义合并数据块;
空白字节删去子单元,用于删去唯一的转义合并数据块中的空白字节,得到转义后数据帧。
基于上述实施例,本申请还提供了一种数据帧转义装置,该装置可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤,其中,转义部分的操作和解转义部分的操作可分别存储于不同的计算机可读存储介质,也可以在存储于相同存储介质的不同位置。该存储介质可以包括:U 盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器 (Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例七
在上述各实施例的基础上,本实施例为了解决大带宽高容量POS线路的 PPP帧解转义和转义问题,采用了基于FPGA技术制造得到的解转义/转义装置,摒弃了以往逐字扫描的低效方式,采用并行处理的方法实现了PPP帧高速转义解转义,大大提高了处理速度,使得所有速率的接口都可以实现满带宽处理,模块化的实现结构,非常利于扩展和维护。
解转义部分:将接收的未解转义数据进行转义字符0x7d和帧头标志0x7e 的匹配,得出标志位,之后将所有并行数据分成2字节一个处理块,每个处理块分别进行去转义字节处理,之后每两组将剩余的有效字符两两拼接后,得出最终的解转义后字符。得出解转义字符后,采用16字节滑动缓冲区,将长度变化的解转义字符后重组为连续的帧输出。
转义部分:将接收的未转义数据进行字节扩展,之后将所有数据分块做转义处理,得出转义后的数据块后每两组将剩余的有效字符两两拼接后,得出最终的转义后字符。得出转义字符后,采用32字节滑动缓冲区,将长度变化的转义字符重组为连续的帧输出。
以STM-64为例,每次需并行处理8字节即可达到满带宽线速,若为 STM-256则每次需并行处理32字节即可达到满带宽线速,采用该高速并行处理方案后,只需调整单次并行处理的字节数即可满足任意速率的转义解转义操作,且流水线的处理步骤特别适合FPGA的实现和处理。
在一个实现SDH数据流到以太网数据流间进行数据格式转换的实际应用场景中,解转义部分可包含于PPP/HDLC解转义模块,转义部分可包含于 PPP/HDLC转义模块,可参见图10所示的数据处理设备的结构示意图,图中其它模块为实现SDH数据流到以太网数据流间进行数据格式转换这一场景下所需要的常规功能模块,以下将具体展开阐述:
PPP/HDLC解转义模块:
该模块将输入的PPP的数据帧进行7d5d/7d5e字节的解转义操作。模块采用并行解转义的处理方式,将输入数据的每两个字节分组为一个处理块,每个双字节分别进行解转义判断,根据当前字节和上一字节的值来判断当前字节是否需要进行转义操作,解转义操作会将转义字符0x7d删除,并将转义字符后一字节异或0x20得出解转义后的原始数据。将所有的处理数据块进行两两拼接操作,将解转义后生成的有效字符拼接起来,剔除无效字节,进行多步拼接操作后,所有有效字节已按顺序拼接好并得出有效字节的个数,同时无效字节放置于尾部。
由于解转义操作会删除转义字符0x7d,所以每次并行输入解转义模块前的位宽是固定的(若为STM-64位宽为8字节,若为STM-256位宽则为32字节),而解转义后输出的数据位宽是不固定的,如8字节的数据输入做解转义操作后,输出的数据可能为4~8字节中的任意一种长度,而为了将每次得到的变长数据拼接为一个连贯的帧序列,采用了字节滑动缓冲技术,设置一个可容纳 16字节的一个缓冲,将每次得到的解转义后字符和滑动缓冲中已存的字符做字节拼接,若拼接后的数据大于等于8字节,那么将该8字节从滑动缓冲中弹出并输出,余下的字节依然存储于该16字节的滑动缓冲中,若不满足8字节大小,则不弹出数据继续等待下一次解转义操作的数据。之后的处理模块便能得到连续的解转义后的数据帧。上述过程可参见如图11。
PPP/HDLC转义模块:
该模块完成解转义的逆过程。模块采用并行转义的处理方式,先将输入数据做字节扩展,后将每个字节进行转义判断,根据当前字节的值来判断当前字节是否需要进行转义操作,将需要转义的字符进行转义操作,再将所有的双字节数据进行两两拼接操作,将转义后生成的有效字符拼接起来,剔除无效字节,进行多步拼接操作后,所有有效字节已按顺序拼接好并得出有效字节的个数,同时无效字节放置于尾部。
由于转义操作会导致一个字节变为两个字节,所以每次并行输入转义模块前的位宽是固定的,而转义后输出的数据位宽是不固定的,如8字节的数据输入做解转义操作后,输出的数据可能为8~16字节中的任意一种长度,而为了将每次得到的变长数据拼接为一个连贯的帧序列,采用了字节滑动缓冲技术,设置一个可容纳32字节的一个缓冲,将每次得到的转义后字符和滑动缓冲中已存的字符做字节拼接,若拼接后的数据大于等于16字节,那么将该16 字节从滑动缓冲中弹出并输出,剩下的字节依然存储于该32字节的滑动缓冲中,处理模块便能得到连续的转义后的数据帧。上述过程可参见图10。
应用本实施例提供的数据处理设备,通过并行进行解转义/转义操作,可显著提升对数据的处理效率,同时在重组过程中采用两两合并以及不断调整空白字节的位置的方式,使得处理效率更优。利用拥有一定位宽的缓冲队列,还实现了帧的连续性拼接。
以往靠CPU逐字节扫描技术进行转义和解转义时,以8字节为例,在对其进行转义和解转义操作时所需要的操作周期会根据其中包含有的转义关键字的数量而变化,最多将需要16个操作周期。因此,当接口带宽提高到2.5G甚至10G时,现有转义和解转义操作将占用大量运算资源,甚至将导致CPU无法提供所需的运算资源,成为此时无法完成的任务。
相较于现有技术,基于本申请给出的以并行的思想来进行转义和解转义的方案,依然以8字节为例,通过拆分为可独立进行转义和解转义操作的数据块的方式,8字节的转义最少只需要1个操作周期即可完成,使得最大操作效率提高了16倍,且整个转义和解转义操作在每阶段相互独立、互不干扰、不存在相互间的依赖关系,使得即使接口速率提高到10G也能正常的输入输出,在测试期间,应用本申请所提供的方案的设备可支持整机480G的PPP帧流量的输入输出。另外,该转义算法可以兼容支持多种PPP帧的输入带宽,一个转义功能模块即可支持155m,622m,2.5G,10G这4种速率的转义和解转义处理要求,只需调整将数据帧拆分为何种大小的数据块即可快速进行调整。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种数据帧转义方法,其特征在于,包括:
将待转义数据帧以单字节为最小拆分单元进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
同时对每个所述目标双字节执行转义操作,得到转义双字节;
按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧。
2.根据权利要求1所述的数据帧转义方法,其特征在于,同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节,包括:
同时判断每个所述双字节中内容字节的值是否为7d或7e;
若是,将所述内容字节的值为7d或7e的双字节作为所述目标双字节。
3.根据权利要求1或2所述的数据帧转义方法,其特征在于,按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧,包括:
将各所述转义双字节和各所述双字节按所述原顺序不断执行两相邻字节段间的合并操作,得到各转义合并数据块;
在将各所述转义合并数据块中的空白字节调整至对应转义合并数据块的尾部后,再进行下一次的合并操作,直至得到唯一的转义合并数据块;
删去所述唯一的转义合并数据块中的空白字节,得到所述转义后数据帧。
4.一种数据帧转义系统,其特征在于,包括:
单字节拆分及双字节拓展单元,用于将待转义数据帧以单字节为拆分单位进行拆分,并使用空白字节将每个拆分得到的内容字节拓展至双字节;
目标双字节确定单元,用于同时根据每个所述双字节中内容字节的值确定需要执行转义操作的双字节,得到目标双字节;
转义标识符增加单元,用于同时对每个所述目标双字节执行转义操作,得到转义双字节;
转义后数据帧重组单元,用于按所述待转义数据帧内各所述内容字节的原顺序重组各所述转义双字节和各所述双字节,得到转义后数据帧。
5.一种数据帧转义装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述的数据帧转义方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的数据帧转义方法。
7.一种数据处理设备,应用于POS线路和以太链路中,包括POS_PHY收发模块、SDH帧同步模块、VC载荷提取模块、PPP/HDLC解转义模块、以太帧转换模块、ETH_PHY收发模块、POS帧协议转换模块、PPP/HDLC转义模块、VC载荷映射模块以及SDH帧映射模块,其特征在于,所述PPP/HDLC转义模块设置有如权利要求5所述的数据帧转义装置。
8.根据权利要求7所述的数据处理设备,其特征在于,所述数据处理设备具体为FPGA数据处理板卡。
CN201811398765.XA 2018-11-22 2018-11-22 数据帧转义方法、系统及相关装置 Active CN109274697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811398765.XA CN109274697B (zh) 2018-11-22 2018-11-22 数据帧转义方法、系统及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811398765.XA CN109274697B (zh) 2018-11-22 2018-11-22 数据帧转义方法、系统及相关装置

Publications (2)

Publication Number Publication Date
CN109274697A CN109274697A (zh) 2019-01-25
CN109274697B true CN109274697B (zh) 2021-11-12

Family

ID=65189999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811398765.XA Active CN109274697B (zh) 2018-11-22 2018-11-22 数据帧转义方法、系统及相关装置

Country Status (1)

Country Link
CN (1) CN109274697B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176725B (zh) * 2019-12-27 2022-05-06 北京市商汤科技开发有限公司 数据处理方法、装置、设备和存储介质
CN111416814A (zh) * 2020-03-17 2020-07-14 天津光电通信技术有限公司 一种基于fpga实现pos信号有效数据提取的方法
TWI756765B (zh) * 2020-07-31 2022-03-01 優達科技股份有限公司 位元組填充電路以及位元組填充方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567830A (zh) * 2003-06-24 2005-01-19 中兴通讯股份有限公司 传输设备多通道网管装置及方法
CN1852265A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 一种同步帧在ip网络上传输的方法及用于传输的网络设备
US7269186B2 (en) * 2001-08-06 2007-09-11 Qualcomm Incorporated Protocol for framing a payload
CN101699779A (zh) * 2009-11-13 2010-04-28 曙光信息产业(北京)有限公司 光纤同步网络上的数据包的发送装置
CN103678728A (zh) * 2013-11-25 2014-03-26 北京航空航天大学 一种基于fpga+dsp构架的高速数据记录系统及其构建方法
CN104580031A (zh) * 2015-01-28 2015-04-29 中国人民解放军国防科学技术大学 基于多协议链路封装技术的pos解帧成帧装置及方法
CN105703869A (zh) * 2014-11-24 2016-06-22 中兴通讯股份有限公司 一种帧定位方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269186B2 (en) * 2001-08-06 2007-09-11 Qualcomm Incorporated Protocol for framing a payload
CN1567830A (zh) * 2003-06-24 2005-01-19 中兴通讯股份有限公司 传输设备多通道网管装置及方法
CN1852265A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 一种同步帧在ip网络上传输的方法及用于传输的网络设备
CN101699779A (zh) * 2009-11-13 2010-04-28 曙光信息产业(北京)有限公司 光纤同步网络上的数据包的发送装置
CN103678728A (zh) * 2013-11-25 2014-03-26 北京航空航天大学 一种基于fpga+dsp构架的高速数据记录系统及其构建方法
CN105703869A (zh) * 2014-11-24 2016-06-22 中兴通讯股份有限公司 一种帧定位方法及装置
CN104580031A (zh) * 2015-01-28 2015-04-29 中国人民解放军国防科学技术大学 基于多协议链路封装技术的pos解帧成帧装置及方法

Also Published As

Publication number Publication date
CN109274697A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN109274697B (zh) 数据帧转义方法、系统及相关装置
CN1976537B (zh) 传送装置
EP2166710B1 (en) Signal block sequence processing method and signal block sequence processing apparatus
US8989222B1 (en) Justification insertion and removal in generic mapping procedure in an optical transport network
WO2016197894A1 (zh) 一种数据处理的方法、通信设备及通信系统
CN111092686A (zh) 一种数据传输方法、装置、终端设备和存储介质
EP4099712A1 (en) Service bearing method, apparatus and system
US20070248119A1 (en) Transmission system
US8359525B2 (en) Method and apparatus for transmitting data in optical transport network
US11329748B2 (en) Service transmission method and device using flexible optical network, equipment and storage medium
CN112118073B (zh) 一种数据处理方法、光传输设备及数字处理芯片
CN111416680A (zh) 一种基于fpga的gmp映射/解映射处理实现方法
US7630397B2 (en) Efficient scalable implementation of VCAT/LCAS for SDH and PDH signals
JP3902522B2 (ja) 中間ネットワークを介してネットワークの部分間で情報のフレームを移送する方法
JP3734762B2 (ja) Wdm装置
CN113141620B (zh) 一种FlexE业务处理方法和装置
JP2000049791A (ja) Ipデータグラムカプセル化方法及びip処理装置
US10044468B2 (en) Optical transceiver and data mapping method using thereof
CN112788442B (zh) 一种低速业务在otn网络中的承载方法及系统
CN111356037B (zh) 光传送网线路带宽切换方法及装置
KR100399413B1 (ko) 동기식 디지털 계위 전송 시스템의 고계위 신호 연결 장치
JP4322908B2 (ja) 送信装置およびフレーマ回路の制御方法
US6678762B2 (en) Data processor and data processing method
JP2001274763A (ja) データ処理装置およびデータ処理方法

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
GR01 Patent grant
GR01 Patent grant