CN101674502A - 一种gpon系统中数据帧重组的方法 - Google Patents
一种gpon系统中数据帧重组的方法 Download PDFInfo
- Publication number
- CN101674502A CN101674502A CN200910152729A CN200910152729A CN101674502A CN 101674502 A CN101674502 A CN 101674502A CN 200910152729 A CN200910152729 A CN 200910152729A CN 200910152729 A CN200910152729 A CN 200910152729A CN 101674502 A CN101674502 A CN 101674502A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- pointed
- port
- pointer
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种GPON系统中数据帧重组的方法。现有技术中数据重组时直接对数据流进行操作,数据搬移占用带宽过大。本发明方法首先初始化一个自由链表并建立一个空闲队列,自由链表中存储着各个空闲空间的节点;其次建立K个数据队列,每个数据队列对应一个端口号,每个数据队列由头指针、尾指针和计数器三部分所组成;然后提取用户数据帧的净负荷、数据长度、数据类型和端口号并将接收数据包存入存储空间并将存放数据的地址放入数据队列中;最后读取存储空间中存放的数据包并将存放数据的地址从数据队列中剔除。本发明在数据出队、入队时只是对地址进行操作,避免了数据的搬移,从而实现了在数据帧重组时的可靠,高效。
Description
技术领域
本发明属于光纤接入网领域,具体涉及一种GPON系统中数据帧重组的方法。
背景技术
随着IPTV、HDTV、网络游戏等高带宽业务的出现,用户对接入带宽的需求将进一步增加,现有的以ADSL为主的宽带接入方式已经很难满足用户对高带宽、双向传输能力以及安全性等方面的要求。各国电信运营商把关注的目光投向了FTTx,计划利用光纤这一迄今为止最好的传输媒质来突破接入的“瓶颈”,FTTx被视为下一代宽带接入技术的代表,是未来“最后一公里”的终极形式。
GPON(Gigabit-capable Passive Optical Networks)吉比特无源光网络,是FTTx的主要实现技术之一,是接入网发展的趋势。相关技术标准参考ITU-T Recommeendation G.984.3 Gigabit-capable Passive OpticalNetworks(GPON):Transmission convergence(TC)layer specification。
根据协议,GEM数据帧具有如下一些特点:(1)PLI域指示GEM净荷的长度;(2)PTI域指示数据的完整性,PTI【1:0】=00,表示不是帧尾,PTI【1:0】=01,表示是帧尾,数据包结束;(3)每个数据对应一个Port-ID,将Port-ID相同的数据,根据PTI的低两位指示,组合成一个完整的数据帧;(4)HEC校验,确定帧头是否正确;(5)协议需要支持Port-ID间插。
发明内容
本发明的目的是针对现有技术中数据重组时直接对数据流进行操作,数据搬移占用带宽过大的问题,提供了一种GPON系统中数据帧重组的方法,该方法采用数据结构中链表的思想,在调度过程中只对地址进行操作,从而免去了数据搬移所消耗的大量带宽。
本发明方法的步骤是:
步骤(1).初始化一个自由链表并建立一个空闲队列。自由链表中存储着各个空闲空间的节点,空闲队列包含头指针和尾指针;
步骤(2).建立K个数据队列,每个数据队列对应一个端口号PORT-ID,每个数据队列由头指针、尾指针和计数器(用以记录每个队列中数据包的数量)三部分所组成,K为自然数;
步骤(3).根据ITU-T Recommeendation 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对应的计数器减1,并从存储器中读取数据。
本发明所具有的有益效果是:
本发明针对数据帧重组时,需要对数据进行解封装,将传输过程中被分割的数据重新拼接,组成一个完整的数据帧。如果直接对数据流进行操作,需要搬移大量的数据,占用了过多的带宽。用硬件实现队列的思想,在数据出队、入队时只是对地址进行操作,避免了数据的搬移,从而实现了在数据帧重组时的可靠,高效。
附图说明
图1是初始状态时,自由链表的初始值的示意图;
图2是数据帧重组的实现框图;
图3是队列1中有一个数据包时,自由链表及各个头尾指针的值示意图;
图4是队列2中有一个数据包时,自由链表及各个头尾指针的值示意图;
图5是队列1中有两个数据包时,自由链表及各个头尾指针的值示意图;
图6是队列2中有两个数据包时,自由链表及各个头尾指针的值示意图;
图7是队列1中有三个数据包时,自由链表及各个头尾指针的值示意图;
图8是队列1中有一个数据包出队时,自由链表及各个头尾指针的值示意图。
具体实施方式
一种GPON系统中数据帧重组的方法,该实施例的硬件实现平台是FPGA(Field Programmable Gate Array:现场可编程门阵列)。包括如下步骤:
步骤(1).初始化一个自由链表并建立一个空闲队列。自由链表中存储着各个空闲空间的节点,初始值如图1所示。空闲队列包含头指针和尾指针,且空闲队列的头尾指针front、rear分别指向地址0和地址N;
步骤(2).以两个数据队列为例,说明入队和出队的操作过程,更多数据队列的操作方法类似。建立2个数据队列(即K=2),每个数据队列对应一个端口号PORT-ID,每个数据队列由头指针和尾指针组成,队列1的头尾指针分别是q1_front,q1_rear,队列2的头尾指针分别是q2_front,q2_rear,计数器cnt1、cnt2均为0;
如图(2)所示,步骤(3).根据ITU-T Recommeendation G.984.3协议提取用户数据帧的净负荷、数据长度、数据类型和端口号PORT-ID;根据协议,需要支持两个Port-ID的间插。因此需要判断PTI的低两位,以此知道是否应分配新的存储空间。首先判断PTI的低两位。如果低两位是00,说明这是是一个新的分片(fragment),把该fragment的Port-ID和PLI存入备份1或2当中(备份1和2之间,采用乒乓操作)。如果低两位是01,将此时的Port-ID和备份1、2中的Port-ID相比较,如果都不相同,则说明也是新的fragment,需要分配新的地址空间。如果此时的Port-ID和备份1、2中任何一个相同,说明,此fragment是一个完整的数据帧的一部分,不需要分配新的存储空间。当地址累加器计数到和PLI相等时,表示该数据包已经存入DDR II当中,可以进行入队操作。
步骤(4).将接收数据包存入存储空间并将存放数据的地址放入队列中,具体步骤是:
1、当队列1开始有数据入队时,此时计数器cnt1为零时,表示队列1中没有数据,跳过第一步;
2、将PORT-ID所对应的尾指针指q1_rear向空闲队列头指针front所指向的地址0;
3、读出空闲队列的头指针front所指向的内容(地址1),并将空闲队列的头指针front指向地址1,cnt1加1。
此时空闲队列的头指针(front)指向1,空闲队列的尾地址(rear)指向N,队列1头、尾指针q1_front,q1_rear同时指向0。队列2的头、尾指针q2_front,q2_rear不变。结果如图(3)所示。
同理,当队列2有数据包入队时,也有有相同的步骤:
1、当开始队列2开始有数据入队时,此时计数器cnt2为零时,表示队列1中没有数据,跳过第一步;
2、将PORT-ID所对应的尾指针q2_rear指向空闲队列头指针front所指向的地址1;
3、读出空闲队列的头指针front所指向的内容(地址2),并将空闲队列的头指针front指向地址2,cnt2加1。
此时空闲队列头指针(front)指向2,空闲队列尾地址(rear)指向N,队列2头、尾指针q2_front,q2_rear同时指向1。队列1的头、尾指针q1_front,q1_rear不变。结果如图(4)所示。
接下来,如果队列1又有队列入队。
1、将空闲队列头指针front指向的地址2为内容,存入PORT-ID所对应的尾指针q1_rear指向的地址,写入空闲队列。此操作的目的是保存队列的中间节点,这样,所有的队列节点都存放在一个自由链表当中。
2、将PORT-ID所对应的尾指针指q1_rear向空闲队列头指针front所指向的地址2;
3、读出空闲队列的头指针front所指向的内容(地址3),并将空闲队列的头指针front指向地址3。cnt1加1,cnt1变为2。
此时,front指向3,rear指向N,q1_rear变为2,q1_front不变。队列1变为0→2。结果如图(5)所示。
同理,如果队列2又有队列入队。和上述步骤类似,就不再赘述。
入队结束后,front指向4,rear指向N,q2_rear变为3,q2_front不变。队列2变为1→3。结果如图(6)所示。
此时队列1再有一个数据包入队时:
1、将空闲队列头指针front指向的地址4为内容,存入PORT-ID所对应的尾指针q1_rear指向的地址,写入自由链表中。
2、将PORT-ID所对应的尾指针指q1_rear向空闲队列头指针front所指向的地址4;
3、读出空闲队列的头指针front所指向的内容(地址5),并将空闲队列的头指针front指向地址5。cnt1加1,cnt1变为3。cnt2,q2_front,q_2rear不变。
结果如图(7)所示。此时的队列1变为0→2→4。队列2不变仍为1→3。
出队操作和入队相类似,下面以队列1出队的情况加以分析示例:
1、将PORT-ID对应的头指针q1_front指向的地址0为内容,写入空闲队列的尾地址rear指向的地址中。即将0写入地址N。
2、将空闲队列的尾指针rear指向PORT-ID对应的头指针q1_front所指向的地址0。
3、读出PORT-ID对应的头指针q1_front所指向的内容(地址2),将PORT-ID对应的头指针q1_front指向它。同时PORT-ID对应的计数器cnt1减1变为2。
此时q1_front变为2,q1_rear不变。队列1变为2→4。cnt1变为2,front变为5,rear变为0。结果如图(8)所示。
Claims (1)
1.一种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,并从存储器中读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910152729A CN101674502B (zh) | 2009-09-28 | 2009-09-28 | 一种gpon系统中数据帧重组的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910152729A CN101674502B (zh) | 2009-09-28 | 2009-09-28 | 一种gpon系统中数据帧重组的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101674502A true CN101674502A (zh) | 2010-03-17 |
CN101674502B CN101674502B (zh) | 2012-10-03 |
Family
ID=42021444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910152729A Active CN101674502B (zh) | 2009-09-28 | 2009-09-28 | 一种gpon系统中数据帧重组的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101674502B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655440A (zh) * | 2011-03-03 | 2012-09-05 | 中兴通讯股份有限公司 | 对多套Turbo译码器进行调度的方法和装置 |
CN105187370A (zh) * | 2015-06-05 | 2015-12-23 | 北京奇虎科技有限公司 | 数据处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101409708A (zh) * | 2008-11-08 | 2009-04-15 | 浙江工业大学 | 基于fpga的gpon gtc成帧子层 |
-
2009
- 2009-09-28 CN CN200910152729A patent/CN101674502B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655440A (zh) * | 2011-03-03 | 2012-09-05 | 中兴通讯股份有限公司 | 对多套Turbo译码器进行调度的方法和装置 |
CN105187370A (zh) * | 2015-06-05 | 2015-12-23 | 北京奇虎科技有限公司 | 数据处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101674502B (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101056253B (zh) | 以太网数据重组装置及方法 | |
US7636358B1 (en) | Asynchronous transfer mode (ATM) switch and method for switching ATM traffic | |
US6621828B1 (en) | Fused switch core and method for a telecommunications node | |
CN105917606A (zh) | 用于光子网络的系统及方法 | |
JP2007274684A (ja) | 一種の受動光ネットワーク(pon)システムで記憶機能を実現する方法とその装置 | |
FR2724277A1 (fr) | Dispositif de mise en forme de trafic et appareil de communication par paquets. | |
US6944153B1 (en) | Time slot interchanger (TSI) and method for a telecommunications node | |
CN101674502B (zh) | 一种gpon系统中数据帧重组的方法 | |
CN101552931B (zh) | 一种实现吉比特无源光网络封装模式帧重组的系统和方法 | |
US6628657B1 (en) | Method and system for transporting synchronous and asynchronous traffic on a bus of a telecommunications node | |
WO2017012565A1 (en) | Highly efficient method for inverse multiplexing in an ethernet access network | |
CN101370312B (zh) | 一种基于环路的混合交换光网络的构造方法 | |
CN109391461A (zh) | 透传业务频率的方法和设备 | |
CN109981496A (zh) | 用于xgpon olt的omci组帧装置及组帧方法 | |
CN102056031A (zh) | 传输多路业务的方法和装置 | |
US20140233383A1 (en) | Management of Traffic Buffering in Internal and External Memories in a Passive Optical Network | |
CN103152292A (zh) | Xgpon系统中onu端的xgem组帧装置及组帧方法 | |
US6920156B1 (en) | Method and system for transporting synchronous and asynchronous traffic on a synchronous bus of a telecommunications node | |
US6778529B1 (en) | Synchronous switch and method for a telecommunications node | |
CN110012367A (zh) | 用于gpon olt的omci组帧装置及组帧方法 | |
CN102469007A (zh) | Onu计算上行队列的上报长度的方法 | |
CN109040868A (zh) | 一种xgspon中onu端上行组帧的方法及系统 | |
CN103384225A (zh) | 基于输入交叉点缓存快速分组交换网络的流量控制方法 | |
CN202385242U (zh) | 基于光分组交换的异步多波长网状网自适应节点装置 | |
CN109660373A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |