O.引言
光突發(fā)交換(Optical Burst Switching,OBS)網絡是基于現有的技術條件,結合光線路交換和光分組交換的優(yōu)點,有效實現IP over WDM的解決方案。OBS網絡包括核心節(jié)點和邊緣節(jié)點。核心節(jié)點的主要功能是根據突發(fā)控制包(BCP:Burst Contro1 Packet)提供的信息進行路由和信道資源調度、設置光交換矩陣,為突發(fā)數據包BDP (Burst Data Packet)預留全光通道。
OBS網絡的性能很大程度上取決于突發(fā)控制包在核心節(jié)點的處理速度,與OBS偏置時間(Offset Time)的大小直接相關。目前,用軟件的方法實現的基于JIT協議的核心節(jié)點,處理速度一般在ms量級。為了提高BCP包的處理速度,文獻用硬件化方法把JIT協議的突發(fā)控制包處理時間降到us量級。考慮到JIT協議調度算法的簡單性,調度處理速度很快,調度算法在獨立模塊中實現并沒有必要,反而會由于模塊的增加帶來額外的延時,而需要消耗更多的處理時間。本文提出了一種面向JIT協議的核心節(jié)點控制器的結構,將網絡層路由功能和OBS層信道調度功能整合到同一個模塊中處理,一方面,模塊的整合可以縮短BCP的處理時間;另一方面,該結構中,轉發(fā)是在調度之后再執(zhí)行,使得路由選擇可以在最優(yōu)的輸出端口沒有可用信道的情況下,選擇其它可行的輸出端口,再進行信道的調度,從而減少丟包的概率。
1 控制器的設計與實現
實現中選用了顯式建立、估算拆除的JIT(Just—In—Time)信令協議,該協議只有SETUP消息,沒有REALEASE消息。核心節(jié)點收到并完成SETUP消息的處理后,立即為其預留資源,并根據SETUP消息中包含的偏置時間和數據包長度估算出釋放資源的時間。
1.1 系統組成
圖l為OBS核心控制器系統框圖,分為接收模塊、幀解析模塊、交叉矩陣、發(fā)送模塊、路由和調度模塊。在各功能模塊之間都設置了緩存結構,使得各個模塊可以獨立的工作,從而在各模塊之間實現流水線式的工作方式。各模塊的主要功能如下:
接收模塊接收控制信道上的數據,恢復成以太幀后,寫入到接收緩存中。
幀解析模塊從接收緩存中讀取以太幀,解析出相應協議域信息,進行相應處理。如果不是BCP包,直接進行轉發(fā)操作;如果是BCP包,把調度相關信息發(fā)送給路由和調度模塊,并根據路由和調度模塊返回的消息進行轉發(fā)或丟棄。
路由和調度模塊負責實現網絡層的路由選擇功能和OBS層的信道調度功能,其中包含一個轉發(fā)路由表和一個信道資源庫,轉發(fā)路由表保存本節(jié)點的路由表信息,用于路由查詢;信道資源庫記錄本節(jié)點各輸出端口的數據信道資源占用情況,并負責控制光開關矩陣。
交叉矩陣將輸入緩存中的分組交換到輸出緩存中。發(fā)送模塊更新BCP包的偏置時間,再將其組成以太幀發(fā)送到控制信道上。
1.2 主要模塊的設計與實現
1.2.1 幀解析模塊
幀解析模塊負責解析幀的類型及幀的內容,并作部分網絡層協議及OBS層協議的處理,同時控制路由和調度模塊的工作。其主要工作可分為如下幾個部分:l、從接收緩存中讀取收到的數據包,并記錄接收到的時間,用于更新BCP包的偏置時間;2、網絡層協議的處理,包括類型信息、包長、目的網絡地址的獲取及TTL的更新等;3、OBS層協議的處理,包括偏置時問的計算及更新,對路由和調度模塊的控制等;4、對處理好的數據包,本地包上傳到本節(jié)點的網管模塊,需要繼續(xù)轉發(fā)的,則發(fā)送到輸出緩存中。
幀解析模塊的狀態(tài)轉移圖如圖2所示。上電后首先進入Idle狀態(tài),在Idle狀態(tài)下檢查接收緩存是否有新的數據包,有的話則進入ReadMAC狀態(tài),讀取MAC頭信息,判斷MAC幀類型,非IP數據包則將其丟棄,否則進入ReadIP狀態(tài),這個狀態(tài)下讀取IP數據包的長度,以及類型,TTL等信息,如果是不是BCP包,進入Route狀態(tài),進行路由選擇,如果是本地包,則上傳到網管模塊中,否則進入Update狀態(tài);如果是BCP包,則進入Route&Schedule狀態(tài),啟動路由和調度模塊的工作。如果調度不成功,則要將該BCP包丟棄,如果成功,也進入Update狀態(tài);在Update狀態(tài)下,對TTL進行更新,如果調度出來的波長號發(fā)生改變,也要更新相應信息。之后,就進入Forward狀態(tài),將已更新好的數據包發(fā)送到輸出緩存中,進行下一幀的處理。
1.2.2 路由和調度模塊
圖3所示為路由表和信道資源庫的結構示意圖。路由表包含多條路由表項,每條表項包括目的網絡地址及輸出端口號兩部分信息。查找路由的過程為:從首條表項開始,將目的網絡地址依次與各表項中網絡地址進行匹配,匹配成功即輸出端口號。Ptr用來指向當前的匹配表項,如需二次查找,只需從Ptr指向的表項開始繼續(xù)查找。
信道資源庫包含所有端口的信道分配信息,每個端口作為一組,包含一個控制單元CU及一組定時器,每個定時器對應于一個信道。信道空閑時定時器也處于空閑狀態(tài),每次為BCP成功分配信道以后,就需要打開光開關控制信號,同時肩動相應定時器,時間設置為偏置時間+預留時間,定時結束,關閉光開關控制信號??刂茊卧筛鶕鞫〞r器的工作狀態(tài)確定各信道的使用狀態(tài),進行信道分配。
圖3路由表和信道資源庫的結構示意圖路由和調度功能的實現過程如下:首先檢測各幀解析模塊的調度請求信號,如果有效,讀取目的網絡地址,同時啟動路由和調度過程,先到路由表查找到第一個與目的網絡地址匹配的路由表項,得到輸出端口;再到信道資源庫里檢查該端口是否有空閑的數據信道,有的話預留該信道,設置光開關矩陣,啟動相應定時器,調度成功,返回給幀解析模塊輸出端口和數據信道的信息;如果不存在空閑信道,則需要繼續(xù)到路由表中查找匹配表項,找到后再次到信道資源庫中搜索空閑信道,如此繼續(xù);如果搜索完路由表中所有表項后仍無法找到空閑信道,則返回調度失敗信號給幀解析模塊。
2 實驗測試
我們對本設計進行了硬件化實現。圖4為用QuartusII工具得到的電路時序仿真圖。圖中1、2、3、4、5為狀態(tài)指示信號,依次對應幀接收完成信號、讀取狀態(tài)信號,協議處理狀態(tài)信號,路由和調度狀態(tài)信號,轉發(fā)狀態(tài)信號;6,7為輸出信號,分別對應調度完成信號和光開關設置信號。
圖2 BCP包接收處理過程的工作時序(參見結尾)由圖4可見,在一個OBS包的處理過程中,依次經歷了幀數據的讀取、協議處理、路由和調度、轉發(fā)等多個狀態(tài),其中從BCP包接收完成到發(fā)出光開關設置信號僅用了lOOns,相比于現有的實現方案,有了很大的提高。完全可以滿足現有OBS網絡對核心節(jié)點開關速度的要求。
3 總結
本文提出了一種將路由選擇和信道調度整合在一個模塊中處理的OBS核心節(jié)點控制系統的結構,并在FPGA平臺上驗證了本設計的可行性和有效性。測試結果表明:接收完BCP包到發(fā)出光開關設置信號的最短時間為lOOns。顯著縮短了控制包在核心節(jié)點的處理時間。