EPON中一種基于QoS的MAC協議設計
引言:
本文引用地址:http://www.j9360.com/article/201706/357846.htmEPON是由IEEE802.3 EFM工作組(Ethernet in the First Mile Study Group)引入的一種新接入技術標準,主要由光線路終端(OLT)、光網絡單元/光網絡終端(ONU)和光分布網絡(ODN)組成。OLT放置在中心交換局側(CO),ONU放置在用戶端。EPON中傳送IEEE802.3規定的以太數據幀。
在下行方向上EPON系統是一個共享介質的廣播網絡。在上行方面EPON系統是一個多點到點的結構,多個ONU共同占用一個標準信道,因此OLT中必須采用一定的MAC協議控制信道的分配以避免多個ONU同時傳送數據造成的以太數據幀的碰撞,通常采用給每個ONU分配不同的傳輸窗口(或時隙)來實現。

上行方向時隙的分配既可以采用固定的時隙分配又可以采用動態的時隙分配。固定時隙酚算法簡單、容易實現,但沒有實現帶寬的統計復用,因此帶寬的利用率低。同時其傳輸周期是固定的,造成一些高優先級的數據的傳輸延時增大,使得網絡的QoS下降。在文獻[2]中提到的輪詢帶寬分配算法(IPACT)是一種方從形式的動態帶寬分配算法,該算法有效地提高了上行信道的利用率,但是由于輪詢周期的變化和沒有區分數據的優先級,使其不適用于對延時和抖動敏感的服務。
本文提出了一種基于EPON的服務質量(QoS)的動態帶寬分配算法,通過將數據包分為不同的優先級和首先傳送對于延時和抖動要求嚴格的數據來提高整個EPON網絡的利用率和服務質量(QoS)。本文將服務分為三個不同的優先級。高優先級的數據始終位于一幀數據的開始處,有效地降低了高優先級數據延時和延時抖動,同時當有新的ONU加入初始化時,高優先數據沒有被打斷,保證了其低時延的要求;在OLT端控制優先級數據的接入量,防止了由于帶寬分配不公正造成的丟包現象。最后,文章對提出的算法進行了理論上的分析。
1 服務優先級的劃分和ONU的隊列管理
(1)在本文中將所有的數據分為三個優先級。
第一是加速轉發服務(EF),這是最高的優先級。它對延時和抖動都有嚴格的要求,音頻、視頻等實時性要求較高的服務都屬于這一優先級。

第二是保證轉發服務(AF)。這一優先級對于延時和抖動沒有嚴格的要求,但是要求保證數據最終被送到接收者,對丟包比較敏感。實時可變比特速率的數據都屬于該優先級。
第三是盡力而為服務(BF),這是最低的優先級。它對延時和抖動不敏感,同時不需要保證帶寬,傳送數據時盡網絡的最大努力去傳送數據。突發性較高的數據和未標明比特率的數據都屬于該優先級。
(2)ONU的隊列管理
為了保證帶寬分配的公正性提高網絡的吞吐量,在ONU端對數據包按其優先級重新排序。在ONU中,每個優先級都有自己的緩存區。用戶端數據到達,根據該數據的優先級,按先入先出的規則插入到對應緩存區的屬部。如圖1所示。
在本文中數據優先級的管理按IEEE802.1d定義的優先級排隊管理規定,在高優先級緩存區溢出的情況下,有高優先級的數據到達可以占用低優先級的緩存區,高優先級的數據比低優先級的數據先得到服務。
2 MAC協議設計
2.1 動態帶寬分配算法
傳統的帶寬分配算法采用基于時隙的MAC協議。在這種方法中,一幀數據中分配給每個ONU的時隙與ONU的請求成比例。所有優先級的數據都被放到一個時隙中。采用這種方法,同一個ONU在不同的數據幀中,其時隙的開始時間隨著數據的突發性和數據包的長度而發生很大的變化,從而造成高優先級數據延時的抖動增加。如圖2(a)所示。
在本文提出的動態帶寬分配算法中,將一幀數據分為高、中、低優先級部分。對于高優先級部分采用如下的方法分配帶寬:
BHi=Hi+Ai
BHi為OLT分配給ONU的高優級的帶寬;
Hi為ONU請求分配的帶寬;
Ai為等待時間內到達的高優先級的數據長度。
由于不能準備測定Ai,同時高優先級的數據可以看作速率近似恒定的數據,所以用上一輪在等待時間內到達的數據長度近似估計Ai。即:
Ai(n)=Ei(n-1)
Ei(n-1)為上一輪等待時間內到達的高優先級的數據的準確長度。
由于高優先級數據近似認為是恒定速率的數據,因此每一幀中分配給ONU的BHi近似相等。可以認為每幀中高優先級數據開始的時間基本固定,不會發生大的變化。從而,降低了高優先級數據的時延抖動。如圖2(b)所示。
對于中優先級的數據,為了保證帶寬分配的公平性,降低中優先級數據的丟包率,筆者通過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讀取信息的負擔。該實現方案有待進一步改進。
評論