无源光网络中传输汇聚层组帧的实现方法及系统与流程

文档序号:11254425阅读:639来源:国知局
无源光网络中传输汇聚层组帧的实现方法及系统与流程

本发明涉及无源光网络领域,具体涉及一种无源光网络中传输汇聚层组帧的实现方法及系统。



背景技术:

随着通信技术的发展,pon(passiveopticalnetwork,无源光网络)已经成为了一种应用广泛的高速带宽接入技术。pon系统一般包括olt(opticallineterminal,光线路终端)、odn(opticaldistributionnetwork,光分配网络)和onu(opticalnetworkunit,光网络单元)。在下行方向,olt将数据通过odn广播到所有的onu;在上行方向,为了避免光冲突,则采用时分复用的方式,每个onu只在被olt授权的时隙进行数据传输。在pon系统中,无论上行还是下行,数据业务(例如以太网帧)和其他业务(例如omci管理帧)最终都是通过封装成tc(传输汇聚层)组帧来进行传输,tc组帧包括三部分:gem(g-ponencapsulationmode,gpon封装方式)数据帧、gem空闲帧和tc开销(tcoverhead)。

在pon系统的相关标准中(gpon标准itu-tg.984.3,xgpon标准itu-tg.987.3,ngpon2标准和xgs-pon标准itu-tg.989.3,以下简称pon协议),对tc组帧的结构进行了详细描述。目前,实现pon协议封装的tc组帧的电路设计存在的问题为:

(1)由于tc组帧是连续、且速率恒定的(例如gpon中gtc长度(不含开销),最小可以为5字节,最大超过38000字节,xg-pon中最小可以为8字节,最大超过155520字节));而实际业务数据(如以太网业务)是突发可变的,因此为了进行速率适配,需要一个很大的数据缓存(至少能存储1/2帧最大长度tc组帧)来存储突发的业务数据,但这会占用较大的电路面积。

(2)tc组帧的开销是固定的,因此,在保证恒定线速率的前提下,空闲帧数目越少,传送的数据业务帧越多,封装效率越高。但是目前为随机插入空闲帧,其升组帧效率较低,进而降低了整个pon系统的吞吐量和qos(qualityofservice,服务质量)。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:实现无源光网络中传输汇聚层组帧时,如何动态控制数据帧组帧和空闲帧的插入,在保证tc组帧恒定线速率的同时,尽可能增加数据帧的组帧几率,最大限度的减少空闲帧插入,从而提高整个pon系统的吞吐量和qos。

为达到以上目的,本发明提供的无源光网络中传输汇聚层组帧的实现方法,包括以下步骤:

步骤a:当gem空闲帧长度+gem数据帧长度<所有gem帧长度+数据帧组帧门限值、并且参与tc组帧的数据帧长度>0时,若gem帧总长度-gem空闲帧长度-gem数据帧长度<gem帧帧头长度+参与tc组帧的数据帧长度;将参与tc组帧的数据帧进行分片,得到参与分片的数据帧,将参与分片的数据帧增加gem帧头后,封装至gem帧,封装至gem帧的数据帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度-gem帧帧头长度,转到步骤b;

步骤b:当需要插入空闲帧时,若gem空闲帧长度+gem数据帧长度+从数据帧组帧电路到fec处理电路之间的路径长度<所有gem帧长度、并且参加组帧的数据帧长度=0时,若gem帧总长度-gem空闲帧长度-gem数据帧长度是否≤最小长度的空闲帧,则插入以下长度空闲帧,形成tc组帧,插入空闲帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度。

本发明提供的实现上述方法的无源光网络中传输汇聚层组帧的实现系统,包括数据帧分片单元和空闲帧插入单元;

数据帧分片单元用于:当gem空闲帧长度+gem数据帧长度<所有gem帧长度+数据帧组帧门限值、并且参与tc组帧的数据帧长度>0时,若gem帧总长度-gem空闲帧长度-gem数据帧长度<gem帧帧头长度+参与tc组帧的数据帧长度;将参与tc组帧的数据帧进行分片,得到参与分片的数据帧,将参与分片的数据帧增加gem帧头后,封装至gem帧,封装至gem帧的数据帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度-gem帧帧头长度;

空闲帧插入单元用于:当需要插入空闲帧时,若gem空闲帧长度+gem数据帧长度+从数据帧组帧电路到fec处理电路之间的路径长度<所有gem帧长度、并且参加组帧的数据帧长度=0时,若gem帧总长度-gem空闲帧长度-gem数据帧长度是否≤最小长度的空闲帧,则插入以下长度空闲帧,形成tc组帧,插入空闲帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度。

与现有技术相比,本发明的优点在于:

(1)本发明根据自主研发的计算方式,减少了大容量的数据帧缓存,进而显著减少了设计电路的面积。

(2)本发明根据自主研发的空闲帧插入算法,在保证恒定线路速率的同时,尽可能插入最少长度的空闲帧,以提升组帧效率,进而显著提升了整个pon系统的吞吐量和qos。

(3)本发明自主研发的算法比较简单,能够城在于fpga(field-programmablegatearray)或者asic(applicationspecificintegratedcircuit,专门目的而设计的集成电路),适用于任意的pon系统,特别适用于在单个电路中支持多模olt或多模pon系统(例如同时支持gpon和xgpon),非常适于推广。

附图说明

图1为本发明实施例中无源光网络中传输汇聚层组帧的实现方法的流程图;

图2本发明实施例中无源光网络中传输汇聚层组帧的实现系统的连接框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

本发明实施例中的无源光网络包括:

gpon(gigabit-capablepassiveopticalnetworks),gpon中的传输汇聚层为gtc;

xg-pon(10-gigabit-capablepassiveopticalnetworks),xg-pon中的传输汇聚层为xgtc;

ng-pon2(40-gigabit-capablepassiveopticalnetworks),ng-pon2中的传输汇聚层为ng-pon2tc;

xgs-pon,其传输汇聚层为xgs-pontc。

参见图1所示,本发明实施例中无源光网络中传输汇聚层组帧的实现方法,包括以下步骤:

s1:将tc组帧所有gem帧长度全部置0,所有gem帧长度包括已读取和未读取的gem数据帧长度和gem空闲帧长度,转到s2。

s2:根据tc协议或者是带宽分配,得到tc组帧的总长度;根据tc组帧的总长度和数据开销长度,得到需要组帧的gem帧总长度,计算公式为:gem帧总长度=tc组帧的总长度-数据开销。数据开销长度包括tc层开销和fec开销,转到s3。

s3:当gem空闲帧长度+gem数据帧长度<所有gem帧长度+数据帧组帧门限值(该值可以预先配置)、并且参与tc组帧的数据帧长度(该长度在新的突发到来时或者分片时更新)>0时,判断gem帧总长度-gem空闲帧长度-gem数据帧长度是否≥gem帧帧头长度+参与tc组帧的数据帧长度;

若是,增加gem帧头(对于gpon协议,gem帧帧头长度=5)、并将整个数据帧封装至gem帧后,更新gem数据帧长度和参与tc组帧的数据帧长度,重新执行s3;

更新后的gem数据帧长度=更新前的gem数据帧长度+gem帧帧头长度+参与tc组帧的数据帧长度,参与tc组帧的数据帧长度=0;

否则将参与tc组帧的数据帧分为2片:参与分片的数据帧和未参与分片的数据帧,将参与分片的数据帧增加gem帧头后,封装至gem帧,转到s4。

封装至gem帧的数据帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度-gem帧帧头长度;

未参与分片的数据帧长度=参加组帧的数据帧长度-(gem帧总长度-gem空闲帧长度-gem数据帧长度-gem帧帧头长度)。

s4:按照pon协议规定的加密算法(例如aes128),对s3中封装至gem帧的数据帧进行加密,转到s5。

s5:当需要插入空闲帧时,若gem空闲帧长度+gem数据帧长度+从数据帧组帧电路到fec处理电路之间的路径长度(对于gpon协议,路径长度=11)<所有gem帧长度,且参加组帧的数据帧长度=0,此时判断gem帧总长度-gem空闲帧长度-gem数据帧长度是否>最小长度的空闲帧(对于gpon协议,最小长度的空闲帧=5):

若是,插入以下长度的空闲帧后更新gem空闲帧长度,重新执行s5;插入空闲帧的长度=所有gem帧长度-gem空闲帧长度+gem数据帧长度-路径长度;更新后的gem空闲帧长度=更新前gem空闲帧长度+插入空闲帧的长度。

否则插入以下长度空闲帧,形成tc组帧,插入空闲帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度,转到s6。

s5中插入空闲帧的长度小于最小长度的空闲帧最小长度的空闲帧,只取最小长度的空闲帧中前插入空闲帧的长度个字节即可。

s6:按照pon协议规定的fec(forwarderrorcorrection,前向纠错)算法,在tc组帧中增加fec校验字节、并更新所有gem帧长度;若电路配置不支持fec时,s6仅更新所有gem帧长度,转到s7。

s7:按照pon协议规定的扰码算法,对线路数据进行扰码,加扰线路数据,转到s8。

s8:输出最终的tc组帧。

参见图2所示,本发明实施例中的实现上述方法的无源光网络中传输汇聚层组帧的实现系统,包括数据帧分片单元、数据帧加密单元、空闲帧插入单元、fec处理单元和数据加扰单元。

数据帧分片单元用于:当gem空闲帧长度+gem数据帧长度<所有gem帧长度+数据帧组帧门限值、并且参与tc组帧的数据帧长度>0时:

若gem帧总长度-gem空闲帧长度-gem数据帧长度<gem帧帧头长度+参与tc组帧的数据帧长度;将参与tc组帧的数据帧进行分片,得到参与分片的数据帧,将参与分片的数据帧增加gem帧头后,封装至gem帧,封装至gem帧的数据帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度-gem帧帧头长度。

若gem帧总长度-gem空闲帧长度-gem数据帧长度≥gem帧帧头长度+参与tc组帧的数据帧长度,则增加gem帧头、并将增加gem帧头的数据帧封装至gem帧,更新gem数据帧长度和参与tc组帧的数据帧长度后,重新执行数据帧分片单元的工作流程;更新后的gem数据帧长度=更新前的gem数据帧长度+gem帧帧头长度+参与tc组帧的数据帧长度。

数据帧加密单元用于:按照pon协议规定的加密算法(例如aes128),对数据帧分片单元封装至gem帧的数据帧进行加密。

空闲帧插入单元用于:当需要插入空闲帧时,若gem空闲帧长度+gem数据帧长度+从数据帧组帧电路到fec处理电路之间的路径长度<所有gem帧长度、并且参加组帧的数据帧长度=0时:

若gem帧总长度-gem空闲帧长度-gem数据帧长度是否≤最小长度的空闲帧,则插入以下长度空闲帧,形成tc组帧,插入空闲帧的长度=gem帧总长度-gem空闲帧长度-gem数据帧长度。

若gem帧总长度-gem空闲帧长度-gem数据帧长度是否>最小长度的空闲帧,则插入以下长度的空闲帧后更新gem空闲帧长度,重新执行空闲帧插入单元的工作流程;插入空闲帧的长度=所有gem帧长度-gem空闲帧长度+gem数据帧长度-路径长度;更新后的gem空闲帧长度=更新前gem空闲帧长度+插入空闲帧的长度。

fec处理单元用于:按照pon协议规定fec算法,增加fec校验字节;fec功能是一个可选的功能,当电路配置不需要支持fec时,fec处理单元处理单元仅仅完成所有gem帧长度的更新。

数据加扰单元用于:按照pon协议规定的扰码算法,对线路数据进行扰码;加扰线路数据。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1