EPON中点到点LAN 和共享LAN仿真的实现
作者:杨柳,华中科技大学 毛谦,武汉邮电科学研究院
以太网无源光网络(EPON)是点到多点的网络拓扑与以太网技术的结合。因而可以被看作是点到多点LAN。在上行方向(ONU到OLT),EPON是多点到点网络,在下行方向(OLT到ONU),EPON 是一个广播网络。而且,EPON中OLT和
ONU之间是不对等的,它们属于主从关系。
然而到目前为止,IEEE 802.3标准中只定义了两种LAN:点到点(P2P)LAN和共享LAN。这两种LAN有一个共同的特点,那就是LAN中任何节点所发出的帧都可以到达同一个LAN中所有其它的节点。现有的路由器和基于IEEE 802.1D标准的网桥,都只知道P2P LAN和共享LAN,它们并不知道P2MP LAN。而且,P2MP模式的EPON与生成树协议(STP)并不兼容。若在P2MP LAN上运行STP会导致
数据帧的多拷贝转发或某些节点无法接收数据帧。
考虑到基于IEEE 802.1D标准的路由器和网桥正被大量使用,EPON要能被广泛接受并得以应用,就必须要与现有的路由器和网桥等设备兼容。因此EPON必须具有仿真成标准的P2P LAN或共享LAN的能力。本文给出了EPON设备的设计方案,该方案在OLT和ONU 中分别增加了反射和过滤功能,以实现P2P LAN仿真
(P2PE)和共享LAN仿真(SE)。
P2PE和SE
所谓P2PE,就是仿真EPON外部的某个节点与EPON内部的某个ONU之间的点到点通信;或者是EPON内部的某两个ONU之间的点到点通信。所谓SE就是仿真
EPON内部的ONU之间的多播或广播。
从上面对P2PE和SE的定义来看,要在EPON中实现P2PE和SE,必须解决以下
三个问题:
首先,EPON下行方向是广播发送,非常适合于单拷贝广播(SCB),但是却不能进行点到点的通信。为了在OLT和ONU之间提供P2PE业务,就必须在OLT 和ONU
之间建立一个虚拟的P2P链路,即逻辑链路,并由LLID来标识。
第二,由于各个ONU之间没有直接的物理连接,ONU之间的通信要通过 OLT进行中转,因此OLT必须具备将来自某一个ONU的帧反射到除了源 ONU外的其它ONU
的能力。
第三,为了能够最大限度地利用EPON下行信道的广播特性,实现单拷贝广播,除了为每一个点到点的逻辑链路指定一个LLID外,EPON中还要定义一个通用的广播LLID。此外,通用的广播LLID 还可以用来区分是EPON内部ONU发送的广播帧,还是EPON外部节点发送的广播帧。EPON外部节点所发送的广播帧,可以被EPON内部所有的ONU接收,这种广播帧可以用通用广播LLID来标识;而对于
EPON内部ONU所发出的广播帧,由于它不能被源ONU所接收,因而,这种反射帧不能使用通用广播LLID 来标识,而必须使用源ONU的LLID,还要另定义一个
模式比特(MB),来表示反射帧是单播还是广播。
P2PE和SE的系统方案
我们提出了一套EPON设备(OLT和ONU)的设计方案,见图1。需要说明的是,为了能突出本文的重点,我们在图1中省略了EPON系统的其他功能,如时分多
址接入(TDMA)、带宽分配、ONU的测距等。
图1的(a)和(b)中,EPON PHY模块为OLT和ONU提供符合IEEE 802.3ah草案1.3的1000BASE-PX光接口。帧接收(FR)模块和帧发送(FT)模块完成与标准的全双工千兆以太网MAC相同的功能。简单地说,FR去除接收到的帧的前导码,完成CRC校验,然后将帧传送给解析/复用模块;FT在要发送的帧中加上前导码和CRC,然后送交给PHY发送。解析模块负责对接收到的帧的类型进行解析,然后送往不同的电路。复用模块按照一定的顺序,调度不同类型的帧进行发送。网络侧接口和用户侧接口都可以看作是普通的以太网二层或三层交换平台。OLT的网络侧接口为OLT提供1000BASE-X或1000BASE-T的上联接口。ONU的用户侧
接口可以提供若干个10/100M的以太网接口。
上述若干模块的功能都是在OLT和ONU之间传输以太网包所必须的功能,我们称之为基本功能模块。而OLT中的发现模块、地址学习与反射模块、反射数据帧缓存以及ONU中的请求注册模块、帧过滤功能模块则是完成ONU 的注册、LLID的
分配以及反射功能的关键模块。
1)发现模块和注册模块
发现模块和注册模块的主要功能就是完成ONU的注册和LLID的分配。 EPON上行由多个ONU以TDMA方式共享。为了避免上行数据发生冲突,并提高效率,ONU的上行发送是在OLT的控制下进行的。OLT要将所有在线的ONU 都登记在册,并根据一定的带宽分配算法,为每一个在线的ONU分配发送窗口。没有获得授权的ONU不能发送任何数据。因此,新连接到网络中的ONU,必须首先完成发现和注册过程,该过程同时也是建立逻辑链路和分配LLID的过程。一旦逻辑链路建立后,ONU就能在OLT为它指定的时间内享用上行带宽资源。在发现和注册过程中使用到了四个MPCP消息:GATE、REGISTER_REQ、 REGISTER、REGISTER_ACK。 OLT中的发现模块将要定期或不定期地开发现窗,即广播发现GATE消息,为刚上线还没有注册的ONU提供注册的机会。当一个未注册的ONU接收到了发现GATE消息后,其注册模块就在发现窗时间内向OLT反馈一个REGISTER _REQ消息。在一个发现窗内,所有未注册的ONU都可以向OLT提出注册请求,这就有可能产生
碰撞。因此,为了降低碰撞的概率,缩短注册成功的时间, ONU的注册模块在
发送REGISTER_REQ消息之前都要随机延迟一段时间。
在发出了发现GATE后,OLT的发现模块可能会成功地接收到多个ONU的 REGISTER_REQ消息。它将按照先来先服务的顺序处理这些消息。一旦OLT接受了某一个ONU的注册请求后,其发现模块就会为它分配一个LLID,并通过 REGISTER消息将这个LLID传递给该ONU。ONU中的注册模块接收到这个 LLID后,就将它存放到LLID寄存器中。至此,这个ONU与OLT之间的逻辑链路就已经建立成功。注册模块将在这个逻辑链路上向OLT发送REGISTER_ACK消息。OLT的发现模块接收到这个确认消息后,就表示这个ONU的注册过程已经完成。OLT
就会在今后的时间内为这个ONU安排上行发送授权。
2)OLT中的地址学习与反射(AL&R)模块
AL&R模块只存在于OLT中,它主要完成三个功能:MAC地址和LLID的学习、反
射帧检查、为将要发送的下行帧查找LLID。
a)MAC地址和LLID的学习
学习的目的是为了实现上行帧的反射功能,因此AL&R模块只学习来自 ONU的上行帧的源地址(SA)和LLID,而不学习下行帧。学习的结果存放在一个地址表中。该地址表包括两栏:MAC地址栏和LLID栏,作用是将MAC地址与LLID值对应起来。由于一个ONU可以连接多个用户设备,因此MAC地址与 LLID之间不是
一一对应的,而是多个MAC地址对应一个LLID。
b)反射帧检查
AL&R模块的另一个功能是从接收到的上行数据帧中找出需要反射的帧,然后通知解析模块将该帧存放到反射数据帧缓存中,以便实现ONU之间的通信。为此,AL&R模块要检查接收到的上行帧的目的地址(DA)。如果DA是单播且能够在地址表中找到,说明该帧的目的设备是EPON内部用户。那么这个帧将要被反射回EPON,AL&R模块就通知解析模块将该帧存放到反射数据帧缓存中。如果DA是广播,那么这个帧即要送到上行数据帧缓存中,又要送到反射数据帧缓存中。
c)为将要发送的下行帧查找LLID
下行方向的帧有两种,分别存放在下行数据帧缓存和反射数据帧缓存中。下行数据帧缓存中的帧是来自EPON外部节点的帧,而反射数据帧缓存中的帧是将要被反射的上行帧。AL&R模块对这两种类型的帧的处理是不一样的,如图2所示。对于来自下行数据帧缓存中的帧,如果是单播帧,AL&R模块将其DA作为索引在地址表中查找对应的 LLID。如果DA在地址表中,就将对应的LLID值插入到帧的前导码中,模式比特设置为单播。如果DA不在地址表中,或者这个帧是一个广播帧,那么就使用一个通用的广播LLID值,模式比特设置为广播。对于来自反射数据帧缓存中的帧,如果是单播帧,则方法同上;如果是广播帧,则要根据
SA地址来查找 LLID,且模式比特设置为广播。