一种GPON系统中数据帧重组的方法技术方案

技术编号:4115798 阅读:323 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种GPON系统中数据帧重组的方法。现有技术中数据重组时直接对数据流进行操作,数据搬移占用带宽过大。本发明专利技术方法首先初始化一个自由链表并建立一个空闲队列,自由链表中存储着各个空闲空间的节点;其次建立K个数据队列,每个数据队列对应一个端口号,每个数据队列由头指针、尾指针和计数器三部分所组成;然后提取用户数据帧的净负荷、数据长度、数据类型和端口号并将接收数据包存入存储空间并将存放数据的地址放入数据队列中;最后读取存储空间中存放的数据包并将存放数据的地址从数据队列中剔除。本发明专利技术在数据出队、入队时只是对地址进行操作,避免了数据的搬移,从而实现了在数据帧重组时的可靠,高效。

【技术实现步骤摘要】

本专利技术属于光纤接入网领域,具体涉及一种GP0N系统中数据帧重组的方法。
技术介绍
随着IPTV、 HDTV、网络游戏等高带宽业务的出现,用户对接入带宽的需 求将进一歩增加,现有的以ADSL为主的宽带接入方式己经很难满足用户对高 带宽、双向传输能力以及安全性等方面的要求。各国电信运营商把关注的目 光投向了 FTTx,计划利用光纤这一迄今为止最好的传输媒质来突破接入的 瓶颈,FTTx被视为下一代宽带接入技术的代表,是未来最后一公里 的终极形式。GP0N (Gigabit-capable Passive Optical Networks)吉比特无源光网 络,是FTTx的主要实现技术之一,是接入网发展的趋势。相关技术标准参考 ITU—T Recommeendation G. 984. 3 Gigabit-c即able Passive Optical Networks (GPON)- Transmission convergence (TC) layer specification。根据协议,GEM数据帧具有如下一些特点(l)PLI域指示GEM净荷的长度;(2)PTI域指示数据的完整性,PTI1: 0=00,表示不是帧尾,PTI1: 0=01,表示是帧尾,数据包结束;(3)每个数据对应一个Port-ID,将Port-ID 相同的数据,根据PTI的低两位指示,组合成一个完整的数据帧;(4)HEC校 验,确定帧头是否正确;(5)协议需要支持Port-ID间插。
技术实现思路
本专利技术的目的是针对现有技术中数据重组时直接对数据流进行操作,数 据搬移占用带宽过大的问题,提供了一种GPON系统中数据帧重组的方法,该 方法采用数据结构中链表的思想,在调度过程中只对地址进行操作,从而免 去了数据搬移所消耗的大量带宽。本专利技术方法的步骤是步骤(l).初始化一个自由链表并建立一个空闲队列。自由链表中存储着 各个空闲空间的节点,空闲队列包含头指针和尾指针;步骤(2).建立K个数据队列,每个数据队列对应一个端口号P0RT-ID,每3个数据队列由头指针、尾指针和计数器(用以记录每个队列中数据包的数量) 三部分所组成,K为自然数;步骤(3).根据ITU-T Reco腿eendation G. 984. 3协议提取用户数据帧的 净负荷(Payload)、数据长度(PLI)、数据类型(PTI)和端口号(PORT-ID);步骤(4).将接收数据包存入存储空间并将存放数据的地址放入数据队列 中,具体步骤是a. 当计数器非零(即队列非空)时,将空闲队列头指针所指向的地址作 为内容存入PORT-ID所对应的尾指针指向的地址(当计数器为零时,不进行 这一步);b. 将PORT-ID所对应的尾指针指向空闲队列头指针所指向的地址;c. 读出空闲队列的头指针所指向的内容(链表中所存的内容也是一个地 址),并将空闲队列的头指针指向它。同时PORT-ID对应的计数器加1,并将 接收到的数据存入对应的存储空间;步骤(5).读取存储空间中存放的数据包并将存放数据的地址从数据队列中剔除,具体步骤是d. 将PORT-ID对应的头指针指向的地址为内容,写入空闲队列的尾地址 指向的地址;e. 将空闲队列的尾指针指向PORT-ID对应的头指针所指向的地址;f. 读出PORT-ID对应的头指针所指向的内容,将PORT-ID对应的头指针 指向它。同时PORT-ID对应的计数器减l,并从存储器中读取数据。本专利技术所具有的有益效果是本专利技术针对数据帧重组时,需要对数据进行解封装,将传输过程中被分 割的数据重新拼接,组成一个完整的数据帧。如果直接对数据流进行操作, 需要搬移大量的数据,占用了过多的带宽。用硬件实现队列的思想,在数据 出队、入队时只是对地址进行操作,避免了数据的搬移,从而实现了在数据 帧重组时的可靠,高效。 附图说明图1是初始状态时,自由链表的初始值的示意图; 图2是数据帧重组的实现框图3是队列1中有一个数据包时,自由链表及各个头尾指针的值示意图; 图4是队列2中有一个数据包时,自由链表及各个头尾指针的值示意图;图5是队列1中有两个数据包时,自由链表及各个头尾指针的值示意图; 图6是队列2中有两个数据包时,自由链表及各个头尾指针的值示意图; 图7是队列1中有三个数据包时,自由链表及各个头尾指针的值示意图; 图8是队列1中有一个数据包出队时,自由链表及各个头尾指针的值示 意图。具体实施例方式一种GP0N系统中数据帧重组的方法,该实施例的硬件实现平台是FPGA (Field Programmable Gate Array:现场可编程门阵列)。包括如下步骤步骤(l).初始化一个自由链表并建立一个空闲队列。自由链表中存储着 各个空闲空间的节点,初始值如图1所示。空闲队列包含头指针和尾指针, 且空闲队列的头尾指针front、 rear分别指向地址0和地址N;步骤(2).以两个数据队列为例,说明入队和出队的操作过程,更多数据 队列的操作方法类似。建立2个数据队列(即1(=2),每个数据队列对应一个 端口号P0RT-ID,每个数据队列由头指针和尾指针组成,队列1的头尾指针分 别是ql—front, ql—rear,队列2的头尾指针分别是q2_front, q2_rear,计 数器cntl、 cnt2均为0;如图(2)所示,步骤(3).根据ITU-T Recommeendation G. 984. 3协议提取 用户数据帧的净负荷、数据长度、数据类型和端口号P0RT-ID;根据协议,需 要支持两个Port-ID的间插。因此需要判断PTI的低两位,以此知道是否应 分配新的存储空间。首先判断PTI的低两位。如果低两位是OO,说明这是是 一个新的分片(fragment),把该fragment的Port-ID和PLI存入备份1或2 当中(备份1和2之间,采用乒乓操作)。如果低两位是01,将此时的Port-ID 和备份1、 2中的Port-ID相比较,如果都不相同,则说明也是新的fragment, 需要分配新的地址空间。如果此时的Port-ID和备份l、 2中任何一个相同, 说明,此fragment是一个完整的数据帧的一部分,不需要分配新的存储空间。 当地址累加器计数到和PLI相等时,表示该数据包已经存入DDR II当中,可以进行入队操作。步骤(4).将接收数据包存入存储空间并将存放数据的地址放入队列中,具 体步骤是1、当队列1开始有数据入队时,此时计数器cntl为零时,表示队列1 中没有数据,跳过第一步;2、 将PORT-ID所对应的尾指针指ql—rear向空闲队列头指针front所指 向的地址O;3、 读出空闲队列的头指针front所指向的内容(地址l),并将空闲队列 的头指针front指向地址l, cntl加l。此时空闲队列的头指针(front)指向1,空闲队列的尾地址(rear)指 向N,队列1头、尾指针ql—front , ql—rear同时指向0。队列2的头、尾 指针q2—front , q2—rear不变。结果如图(3)所示。 同理,当队列2有数据包入队时,也有有相同的步骤1、 当开始队列2开始有数据入队时,此时计数器cnt2为零时,表示队列1中没有数据,跳过第一步;2、 将P本文档来自技高网...

【技术保护点】
一种GPON系统中数据帧重组的方法,其特征在于包括如下步骤:步骤(1).初始化一个自由链表并建立一个空闲队列,自由链表中存储着各个空闲空间的节点,空闲队列包含头指针和尾指针;步骤(2).建立K个数据队列,每个数据队列对应一个端口号PORT-ID,每个数据队列由头指针、尾指针和计数器三部分所组成,K为自然数;步骤(3).根据ITU-T Recommeendation G.984.3协议提取用户数据帧的净负荷、数据长度、数据类型和端口号;步骤(4).将接收数据包存入存储空间并将存放数据的地址放入数据队列中,具体步骤是:a.当计数器非零时,将空闲队列头指针所指向的地址作为内容存入PORT-ID所对应的尾指针指向的地址;b.将PORT-ID所对应的尾指针指向空闲队列头指针所指向的地址;c.读出空闲队列的头指针所指向的内容,并将空闲队列的头指针指向它;同时PORT-ID对应的计数器加1,并将接收到的数据存入对应的存储空间;步骤(5).读取存储空间中存放的数据包并将存放数据的地址从数据队列中剔除,具体步骤是:d.将PORT-ID对应的头指针指向的地址为内容,写入空闲队列的尾地址指向的地址;e.将空闲队列的尾指针指向PORT-ID对应的头指针所指向的地址;f.读出PORT-ID对应的头指针所指向的内容,将PORT-ID对应的头指针指向它;同时PORT-ID对应的计数器减1,并从存储器中读取数据。...

【技术特征摘要】
1.一种GPON系统中数据帧重组的方法,其特征在于包括如下步骤步骤(1).初始化一个自由链表并建立一个空闲队列,自由链表中存储着各个空闲空间的节点,空闲队列包含头指针和尾指针;步骤(2).建立K个数据队列,每个数据队列对应一个端口号PORT-ID,每个数据队列由头指针、尾指针和计数器三部分所组成,K为自然数;步骤(3).根据ITU-T Recommeendation G.984.3协议提取用户数据帧的净负荷、数据长度、数据类型和端口号;步骤(4).将接收数据包存入存储空间并将存放数据的地址放入数据队列中,具体步骤是a.当计数器非零时,将空闲队列头指针所指向的地址作为内容存入PORT-ID所对...

【专利技术属性】
技术研发人员:陈科明胡睿洪爱金马琪潘剑侠庄世辉尹法纪王晓晖
申请(专利权)人:杭州电子科技大学杭州初灵信息技术股份有限公司
类型:发明
国别省市:86[中国|杭州]

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

1