B.1.1 基本描述
本附录描述了将P2MP拓扑纳入以太网框架所需的机制和控制协议。P2MP是基于树状(或者是树及分枝)拓扑的非对称媒介。连接在树干上的数据终端设备(DTE)称为光线路终端(OLT),连接在树枝上的DTE称为光网络单元(ONU)。OLT一般置于服务提供商侧,而ONU一般放在用户侧。
在下行方向(从OLT到ONU),OLT发送的信号通过一个1:N的无源分路器(或几个分路器的级联)到达各个ONU。在上行方向(从各个ONU到OLT),一个ONU发送的信号只会到达OLT,而不会到达其他ONU。为避免数据冲突并提高用户接入网的利用效率,需要对ONU的传输进行仲裁。这种仲裁是通过给各ONU分配发送窗口(授权)来实现的。每个ONU只能等到其授权到达后才可以发送数据。当一个ONU的授权到达后,该ONU在所指配的时间窗口内以线速发送数据帧。

本附录讨论的内容涉及在不同ONU之间分配上行发送资源,ONU加入网络的发现和注册,以及向上层报告拥塞状态以进行PON系统内的动态带宽分配和统计复用。
本附录不涉及具体的带宽分配策略、终端设备认证、服务质量定义、提供以及管理。
本附录规定了多点控制协议(MPCP),该协议定义了一个多点MAC控制子层以控制一个光多点网络。
每个PON由一个OLT节点和多个ONU节点组成,其中OLT是树的根节点,ONU是树的叶节点。PON网络在任何一个时刻都只允许一个ONU在上行方向发送数据。OLT中的MPCP协议负责对各传输进行准确定时。各ONU报告的的拥塞状态信息有助于优化PON网络内的带宽资源分配。
在ONU的自动发现过程中,通过分配逻辑链路ID(LLID)将ONU绑定到OLT的一个端口上,同时将MAC动态绑定到此OLT上,最终实现ONU的注册。实施多点MAC控制功能,要求用户接入设备包含点到多点物理层。
B.1.2 基本特征
一个采用光介质的点到多点以太网络应具有以下特征:
a) 支持规范定义的点到点仿真(P2PE);
b) OLT 支持多个LLID 和MAC 客户端;
c) 每个ONU 至少支持一个LLID;
d) 支持单拷贝广播机制;
e) 支持动态带宽分配的灵活体系结构;
f) 使用32 比特时间戳来发布定时信息;
g) 基于MAC 控制的体系结构;
h) 对已发现设备进行测距来提高网络性能;
i) 进行连续测距以补偿往返时间的变化。
B.1.3 多点MAC控制在IEEE 802.3体系中的位置
多点MAC控制定义了点到多点光网络的MAC控制。图 2描绘了多点MAC控制子层和MAC子层、MAC控制客户端的关系。多点MAC控制子层取代并扩展了MAC控制子层以支持多个客户端及其它的MAC控制功能。
多点MAC控制的定义延续了MAC控制子层的定义,MAC控制子层定义参见IEEE 802.3 31章。MAC控制子层设置了多种功能来处理实时控制和MAC子层操作。本附录定义了MAC控制机制的扩展功能以支持同时操作多个下层MAC。本附录同时还定义了MAC控制的一种具体协议实现。
本附录定义的多点MAC控制子层能够支持未来新功能的实现并允许将这些新功能加入到本标准中,多点控制协议(MPCP)和P2MP的管理协议等均属于此类。非实时或准静态的控制(例如MAC操作参数的配置等)由层管理提供。多点MAC控制子层的操作对MAC是透明的。如图 2所示,分层系统包括多个MAC实体和一个物理层。每个MAC实体在OLT和ONU间提供点到点仿真业务。对于MAC实体与所有的ONU同时通信的特殊情况,可通过发送所有ONU都能接收到的单个帧拷贝来实现,这最大限度地利用了下行信道的广播特性,称为单拷贝广播(SCB)。
由于帧在到达MAC前由RS子层进行过滤,所以每个ONU只需要一个MAC实体。这样使得ONU MAC下层的仿真功能对MAC及其上层是透明的。
虽然图 2中OLT内有多个MAC,但实际上OLT也可以只使用一个单播MAC地址。在EPON网络内,MAC是通过注册过程中动态指配的LLID来唯一标识的。
B.1.4 功能框图
图B. 2为多点MAC控制体系结构的功能块框图。

B.1.5 服务接口
MAC客户端通过标准的服务接口和控制复用器通信。多点MAC控制子层通过标准的服务接口和下层的MAC子层通信。类似地,多点MAC控制子层内部通过原语和接口进行通信。
B.1.6 状态图约定
状态图包括相关的变量、常量、函数的定义。状态图中的标注和定时器约定如下:
[start x_timer, y]设置定时器x_timer的失效时间y。
[stop x_timer]通过设置x_timer_not_done为不确定,放弃对定时器x_timer的操作。
状态图使用如下缩写, 例如MA_CONTROL.request 缩写为MACR ,
MA_CONTROL.indication缩写为MACI。
状态图中的比特向量的标注使用0表示第一个接收到的比特,以此类推(例如数据[0:15])。当使用字节向量时,0用来标识第一个接收到的字节,以此类推(例如m_sdu[0..1])。
a<b:用于比较两个(周期)时间值的函数,如b大于a那么返回值为真。这个比较是将a减去b并检查MSB得到。如果MSB(a-b)=1,那么返回值为真,否则返回值为假。同时,还定义了
如下函数:
a>b等价于!(a<b或a=b);
a≥b等价于!(a<b);
a≤b等价于!(a>b)。


