EPON中一种基于QoS的MAC协议设计
,笔者通过OLT控制每个ONU中优先级数据的接入量,采用如下的带宽分配算法: 如果i=N∑i=0 Mi BMi为分配给中优先级的带宽; Mi为ONU请求带宽; Btatol为总的可用带宽。 给每个ONU分配中优先级带宽是请求的带宽的一定比例,它控制了每个ONU中优先级数据的接入量,从而降低由于个别ONU数据量过多造成其它ONU丢包率增加的概率,同时保证了对每个ONU带宽分配的公证性。 对于低优先级的数据,在前两级数据传送完毕有剩余带宽的情况下再进行分配,其带宽分配接等比例的分配方法分配。即 BLi为分配给低优先级的带宽。 对中、低优先级的带宽分配,是在搜集到所有ONU的请求信息后才进行。因此,在搜索到所有数据到第一个ONU收到OLT发送的准许消息,中间存在一段包括带宽分配计算时间和环路延时的空白时间。同时,对于新的算法中数据帧被分成了两个独立的部分,可以利用高优先级数据的传送过程,计算中低优先级的带宽分配并给第一个ONU发送准许消息。从而,有效地解决了空白时间的问题。如图3所示。 2.2 近似无中断的开窗法测距 为了保证ONU的即插即用,OLT必须每隔一定的时间,发送一个广播GATE消息,用来检测是否有新的ONU加入。如果有,OLT必须对该ONU初始化,该过程主要包括:对该ONU进行测距,获得ONU的地址等。一般采用开窗法对ONU初始化。在传统的带宽分配算法中,必须停止一切数据的传送,留出特定的时间进行ONU的初始化工作。由此,高优先级数据传送被切断,造成延时加大。 在笔者提出的带宽分配算法中,数据帧分为两个部分。开窗时可以只利用中低优先级部分,而高优先级部分分持续传送数据。由于ONU与OLT的距离为2km~20km,其延时一般在50μs~100μs之间。总的环球延时一般不超过1ms,而本设计中一帧数据的时间一般为2ms,高优先级数据量较少,故可以利胳低优先级部分开窗完成ONU的初始化,而不必切断高优先级数据的传输。 3 结果理论分析 数据包的延时主要由三部分组成:数据包到达至请求信息发送的时间dpoII、ONU请求信息发送至接收到准许该数据包传送的时间dcycle和数据开始发送至该数据包发送时数据包的等待时间dqueue。总的延时是三者之和。如图5所示。 其中dpoII一般为一帧数据时间的一半,即dpoII=T/2; dcycle一般为一个或几个循环,但是在笔者提出的算法中对于高优先级的数据由于准许的数据长度与请求的相同,所以可以认为dcycle为0,这就大大降低了高优先级数据的延时。 Dqueue一般与该数据包前数据量有关,传统的算法中其最大值可为(WMAX-Q)/R。其中WMAX为最大准许长度,Q为该数据包的长度,R为数据速率。在新的算法中,由于将数据帧分为两部分,高优先级数据较少,若该数据包为高优先级数据,则其前数据量减少,从而dqueue减小。 同时通过前面的分析可知,由于在对ONU进行初始化时没有切断高优先级数据的传送,有效地降低了高优先级数据的延时;另外由于将数据帧分开,有效地降低了高优先级数据的抖动性。 对于中低优先级的数据,由于其对延时不敏感,但为保证整个网络的QoS,必须保证其带宽分配的公正性,通过前面的分析可知,笔者提出的带宽分配算法很好地保证了这一点。 本文提出了一种新的带宽分配算法,该方法区分不同的优先级进行服务,很好地降低了高优先级数据的延时和延时的抖动性,另外该算法控制中优先级数据的接入量,保证了中低优先级数据在每个ONU间带宽分配的公正性。但是该算法计算量很大,要给每个ONU发送两次准许消息,加重了OLT的计算和发送数据的负担以及ONU读取信息的负担。该实现方案有待进一步改进。
- 5条DBA最佳实践指导(04-25)
- 数据库管理员DBA必读(05-01)
- 多个dump文件做Oracle中大数据量输出(05-05)
- MySQL服务器安装之后如何调节性能(05-22)
- Oracle 11g 革新依旧遵循某些惯例(07-18)
- 教你使用Linux系统的Shell脚本维护Oracle(08-12)