荊 倩,沈三民
(中北大學 儀器科學與動態測試教育部重點實驗室,太原 030051)
很多互聯網服務供應商(Internet Service Provider,ISP)已經開始部署千兆無源光網絡(Gigabit Passive Optical Network, GPON)系統,以應對客戶迅速增長的帶寬需求[1]。GPON支持高數據速率,其中下行為2.5 Gbit/s,上行為1.25 Gbit/s。其最多可以將64個光網絡單元(Optical Network Unit, ONU)連接到1個分路器上。但對于一些新服務,如分辨率不斷增長(4k或8k)的視頻廣播互聯網協議電視(Internet Protocol Television, IPTV)來說,GPON的帶寬依然無法滿足要求[2]。這就需要開發出支持更高傳輸速率的技術。
為此,研究人員做了很多相關研究。目前,下一代10 Gbit/s無源光網絡 (next Generation 10 Gbit/s Passive Optical Network, XG-PON)的最終規范已經被標準化為ITU-T G.987系列,其規定了一些通用要求[3],例如:XG-PON的參考配置,光分配網絡(Optical Distribution Network, ODN)架構(包含或不包含與以往標準GPON方案的共存),工作波長和遷移場景等[4]。文獻[5]為了支持語音、視頻等多業務,保證不同的服務質量(Quality of Service, QoS)和有效克服輕載懲罰問題,提出了一種支持多業務的以太網無源光網絡(Ethernet Passive Optical Network, EPON)動態帶寬分配(Dynamic Bandwidth Allocation,DBA)算法;文獻[6]提出了GIANT算法的修改版本,即X-GIANT算法,并嘗試改進XG-PON網絡中QoS參數;文獻[7]針對PON接入技術和現有各種帶寬分配算法存在的不足,基于數據服務優先級劃分和ONU隊列管理機制,提出了一種DBA算法;文獻[8]提出了用于XG-PON的一種DBA方案,即數據挖掘預測,該方案處理了ODN范圍為40 km時不同ONU距離下的使用情況;文獻[9]為了合理分配EPON上行信道帶寬,提出了一種能夠區分服務等級的固定周期輪詢DBA算法,該算法將ONU的業務分為3個等級,根據不同的業務等級動態分配上行帶寬,有效保證整個EPON的QoS以及帶寬分配的公平性;文獻[10]提出了帶“公平性”的DBA算法,對所有ONU應用最大最小公平DBA算法。雖然DBA算法可以改變最小帶寬分配,但其依然會為受保護的傳輸容器(T-CONT)分配所保留。總的來說,文獻[11]的實驗結果表明,用于EPON的DBA不能直接用于XG-PON中,因為其服務延遲非常大。
本文的主要研究目標是降低XG-PON中“三合一”服務的延遲。文中提出了用于XG-PON的改進的GIANT DBA算法,比較了當前未修改的GIANT算法與本文所提的改進GIANT算法的結果,并詳細解釋了本文為降低“三合一”服務延遲所作出的改進。
DBA算法的主要目的是公平分配PON中的每個ONU在上行方向上的帶寬,下行方向則廣播所有ONU,并由指定的ONU(與幀中的參數完全相同)接收。另一方面,上行方向由光線路終端(Optical Line Terminal,OLT)通過時隙控制。換言之,時分復用將帶寬分為時隙,并按需求將帶寬分配至ONU。
OLT使用每個傳輸幀的帶寬映射(Band Width mapping, BWmap)部分指定分配標識(Allocation Identification, Alloc-ID)、啟動時間、授權大小、動態帶寬報告和其他字段。通過Alloc-ID識別ONU,啟動時間是指ONU在上行方向啟動數據傳輸的時間,授權大小表示在上行方向上特定Alloc-ID的總數據量,并報告下一個上行幀中的需求(即數據大小)。具體的Alloc-ID及其提供的負載可以表示為
式中:B(t)為時間t內的緩沖區占用;D為某一固定時長;A(t,t+D)為在時間間隔(t,t+D)過程中新進入緩沖區的流。
OLT必須保證在負載較重的情況下對ONU公平地分配動態帶寬[12]。若存在兩個ONU,且第1個ONU的負載較重,而第2個ONU沒有需要傳輸的數據,則OLT必須確保分配至ONU1的時隙大于ONU2。ONU周期性地向OLT單元報告其緩沖區占用情況,可以通過兩種方式實現報告:(1)狀態報告;(2)流量報告。狀態報告需要ONU和OLT協作,因為每個ONU都發送其自身緩沖區占用的相關信息,該信息包含在下一代傳輸匯聚幀的動態帶寬報告字段中,OLT則根據緩沖區占用的相關信息來劃分時隙。流量報告則通過ONU數據流的處理授予帶寬。
輪詢法是網絡模擬器(Network Simulator, NS)-3的DBA算法的簡單實現,特別是在XG-PON包中使用的算法。該算法的原理為:一定量的任務,每個任務依次運行,但前提是其持有循環令牌。在XG-PON包的實現中,是指每個周期內每個T-CONT的位元組字段數量。每個ONU隊列處理的最小時間可表示為
式中:T為每個ONU/T-CONT的處理時間(ONU能夠發送數據);C為一個周期的時長;N為ONU的總數量。該方法的缺陷在于:T的數值較小時會增加OLT的處理時間。
GIANT算法必須先定義其所使用的T-CONT。T-CONT是一組流,其僅在上行方向有意義,而Alloc-ID僅存在于每個PON的命名空間中,T-CONT的外部標識符是分等級的[13]。通常,T-CONT可以分為以下4類:
(1) T-CONT1:具有最高優先級的固定帶寬(如語音服務),指所有的ISP向網絡中的客戶確保最低帶寬;
(2) T-CONT2:具有第2高優先級的保證帶寬(如IPTV服務);
(3) T-CONT3:具有較高優先級的非保證帶寬;
(4) T-CONT4:文件傳送協議(File Transfer Protocol, FTP)或簡單網絡管理協議等,具有最低優先級的盡力服務帶寬。
本文GIANT DBA算法在第一次迭代中通過T-CONT的優先級劃分帶寬,將T-CONT1的帶寬分配給每個Alloc-ID。一般互聯網絡中,所有客戶保證帶寬的T-CONT1為64 kbit/s,保證帶寬不能超過RA(RA為保證帶寬閾值),并向其分配非保證帶寬RNA,直到T-CONT的可用帶寬耗盡為止。GIANT的最大和最小服務間隔表示為SImax和SImin,這些標識符代表著帶寬要求。此外,標識符ABmin和ABsur分別為最小分配字節和剩余分配字節。
GIANT算法動態地為T-CONT1和T-CONT2確定AB和SImax的數值,并詢問T-CONT4和T-CONT3。每當SI定時器過期時,為對應的T-CONT重新分配AB。
值得一提的是,媒體接入控制器在分配過程的每個周期內制定決策。ONU可以添加多個Alloc-ID,如果添加一個新Alloc-ID,那么控制器將檢測可用資源,并驗證總分配帶寬是否超過總鏈路容量。保證服務速率等于ABmin/SImax,其中剩余容量等于ABsur/SImin。保證容量和剩余容量之和為T-CONT3的允許總帶寬。
剩余帶寬的分配必須首先檢查T-CONT處理的對象是T-CONT3還是T-CONT4,以及SImin定時器是否大于1。若定時器大于1,則將其按1遞減。此外,當確定指針啟動的T-CONT3幀字節數等于0時,則添加后續序列中Alloc-ID減1的T-CONT3。也即:若啟動指針為N,新數值為N+i(i為迭代次數),在下一次迭代中,將檢查下一個請求是否大于0和SImin是否等于0,然后分配剩余帶寬。
傳統方案在每個輪詢周期對T-CONT1、T-CONT2、T-CONT3和T-CONT4依次進行分配,先對T-CONT1靜態分配固定帶寬,然后分配T-CONT2和T-CONT3的確保帶寬,最后分配T-CONT4的盡力而為帶寬。根據優先級順序進行2次分配。與傳統方案相比,本文方法根據處理對象和定時器對帶寬進行動態分配,總體時間復雜度與傳統方案相差不大,但對象分配的帶寬有差異,從而導致服務的延遲有所不同。
圖1所示為本文所提GIANT DBA算法仿真模型的基本拓撲結構,包括OLT、ONU、客戶端和服務器。由于NS-3無法考慮到物理層參數,包括光纖長度、分光比、OLT和ONU之間的不同距離等,所以服務器必須納入其中。這些服務器包括視頻點播(Video on Demand, VoD)服務器、超文本傳輸協議(Hyper Text Transfer Protocol, HTTP)服務器以及互聯網協議電話(Voice over Internet Protocol, VoIP)服務器。該組服務器通過1 Gbit/s的線路與OLT互連,延遲時間為2 ms。ONU包括一臺個人計算機,其表示服務消耗,采用了相同的線路參數。VoD服務的數據速率為10 Mbit/s,停止時間設為0,表示在整個模擬過程中該服務始終保持開啟運行。將VoIP設為標準數據速率64 kbit/s。由HTTP服務器生成HTTP流量,數據速率為1 Mbit/s。
圖1 本文所提GIANT DBA算法仿真模型的基本拓撲結構
本文準備了兩個模擬場景:第1個場景使用輪詢DBA,沒有給出緩沖區分配的動態報告。第2個場景使用了本文所提GIANT DBA算法。為了比較兩種算法,本文對每個場景進行了兩種不同的模擬:(1)64個ONU(XG-PON單個OLT端口的理想化模型);(2)過載接口,其中200個ONU連接到該接口。
在第1個場景中,使用輪詢DBA算法,另一種方法是未修改的GIANT DBA算法。兩個算法均應用到T-CONT代表的所有服務中,模型包括3個服務,以觀察流量延遲。64個ONU的延遲僅為6~7 ms,因為OLT單元能夠為每個ONU授予足夠的帶寬,如圖2所示。由圖可知,丟包率為0,總帶寬等于服務所需帶寬之和。VoIP的延遲幾乎保持不變,不會在通話期間造成任何干擾或回聲;通過ONU或機頂盒中的緩沖服務,降低VoD的抖動;網頁瀏覽HTTP代表著具有較高優先級的T-CONT2。
圖2 不使用DBA算法時的傳輸延遲
需要注意的是,NS-3不能通過在QoS Tag庫中標記數據包,將數據包分配到現實的T-CONT中,其使用標簽對每個數據包進行標記,但在本文仿真中使用了通過節點的IP地址對數據包進行模擬標記,修改后的拓撲結構如圖3所示。
圖3 GIANT DBA算法修改后的拓撲
使用所提GIANT DBA算法對64個ONU的場景再次進行模擬。圖4所示為使用本文所提GIANT DBA算法時的傳輸延遲。仿真結果與預期相符,GIANT DBA算法的結果較好,每個ONU的延遲更低。將GIANT DBA算法應用到OLT單元,VoD服務的延遲得到了明顯改善。
圖4 使用GIANT DBA算法時的傳輸延遲
本文在使用和不使用DBA算法的模擬中,對數據包丟失數量進行了比較,如圖5所示,由圖可知,兩者之間存在明顯差異。在不使用DBA輪詢的模擬中,每個ONU的丟包數量大約為4 000個。但當使用未修改的GIANT DBA算法時,由于VoD的數據是單獨處理的且采用隨機序列,一些ONU的丟包數為300個。
圖5 使用和不使用DBA算法時的丟包數量對比
NS-3利用回調函數提供一些數據包獲得的細節,如處理數據包數量或丟包數量。在配置回調函數后,其可以調用指定函數以提供結果。在該函數中,可以創建運行時間的計算或記錄。例如,NS-3模擬工具可以在數據包因為堆棧溢出而被丟棄時隨時調用該函數。一方面,回調函數僅適用于點對點(Point to Point, P2P)鏈路,但NS-3的XG-PON包中沒有包含回調的實施,因此,其無法得到更多關于數據包丟失的數據;另一方面,由于所有數據都存儲在一個集合中,可以得到每個數據包的發送和接收時間。
在第2個場景中,使用本文所提的改進GIANT DBA算法,并將其與未修改的GIANT DBA進行比較。使用的拓撲相同,包括1個OLT、64個ONU(每個ONU包含3種服務:數據、視頻和語音)。改進算法首先檢查T-CONT的緩沖區占用,并根據T-CONT的類型分配適當的帶寬。如果保證帶寬的緩沖區占用超過1,則存在3種情況:(1) 若緩沖區占用<4,則分配數值=4;(2) OLT檢查BWmap(包含BWmap分配使用歷史的數據庫),以得到過去是否對該ONU進行過分配;(3) 檢查分配帶寬是否等于分配字節。
通常,只有在該類型的T-CONT的定時器過期(即等于0)時才測試這些條件,這表明定時器未過期,也表示T-CONT沒有緊急數據,且在下一輪減少1。
在仿真中,所有的服務是一起測試的,為了更好地說明問題,每個服務如圖6~ 8所示。由圖6可知,與使用未修改GIANT DBA算法相比,本文所提方法將HTTP服務的延遲分別降低了0.8和0.3 ms;由圖7可知,在VoD服務中,未修改GIANT DBA算法的平均延遲為6.4 ms,而本文所提的改進方法則將ODN上每個ONU的延遲降低了0.35 ms;由圖8可知,對于VoIP服務,本文所提的方法降低了約0.2 ms的延遲,這些充分說明了本文改進方法的有效性。
圖6 HTTP服務的傳輸延遲對比
圖7 VoD服務的傳輸延遲對比
圖8 VoIP服務的傳輸延遲對比
本文提出了XG-PON GIANT DBA算法,并提出了縮減服務延遲的改進方案。除使用具有最高優先級T-CONT1的VoIP服務外,每個服務的延遲均得到了降低,這是因為T-CONT1不使用DBA,其在初始化階段即被授予保證帶寬,是具有最高優先級的固定帶寬,屬于靜態分配,T-CONT1的VoIP服務延遲幾乎保持不變。本文所提改進GIANT DBA算法將HTTP服務和VoD服務的延遲分別降低了0.30和0.35 ms,實現了較好的網絡性能。