日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

通用操作系統(tǒng)交換路由器操作系統(tǒng)實現(xiàn)( 三 )


 
值得注重的是,在交換式路由器中,處理引擎通過交換結(jié)構(gòu)交換的是IP包;而通用操作系統(tǒng)中網(wǎng)絡(luò)驅(qū)動通常處理鏈路層的幀 。即控制卡驅(qū)動模塊數(shù)據(jù)通道對上對下的數(shù)據(jù)格式是不同的 。因此,在發(fā)送數(shù)據(jù)時控制卡驅(qū)動模塊需要從得到的鏈路幀中提取IP包再轉(zhuǎn)發(fā)到端口;而接收數(shù)據(jù)時則對來自端口的IP包進(jìn)行鏈路幀封裝再向上提交 。以以太網(wǎng)為例,需要恢復(fù)的包括源和目標(biāo)站的物理地址、載荷類型和幀校驗[3] 。對于承載IP包的以太幀,顯然其目標(biāo)站物理地址和載荷類型[4]都是已知的 。實現(xiàn)時采用的操作系統(tǒng)是Linux,通過在虛擬網(wǎng)絡(luò)驅(qū)動源代碼中進(jìn)行設(shè)置可以使內(nèi)核不進(jìn)行幀校驗[5] 。所以只有源站物理地址未知 。假如要求硬件給出真實的源站物理地址,則增加了硬件的復(fù)雜度;而若在控制卡驅(qū)動模塊中偽造源物理地址,則可能導(dǎo)致內(nèi)核的ARP治理混亂 。為簡化硬件設(shè)計,實現(xiàn)時采用了在控制卡驅(qū)動模塊中偽造源物理地址的辦法,同時修改虛擬網(wǎng)絡(luò)驅(qū)動源代碼,重載幀頭處理函數(shù)[6] 。這樣內(nèi)核ARP表就不受偽造地址的影響,其獲取和刷新通過查詢端口ARP記錄實現(xiàn) 。
2.2 控制通道的功能與實現(xiàn)
控制功能的通信也是基于信元的,其操作包括維護(hù)治理和表同步兩類 。維護(hù)治理主要是進(jìn)行各種查詢,通常通過若干次雙向通信完成 。每次通信有效載荷都只有幾個字節(jié),由一個信元即可承載 。而表同步則是將上層軟件維護(hù)的表復(fù)制到相關(guān)硬件中,包括ARP表、路由和分類表等 。表同步操作涉及大量數(shù)據(jù)傳輸,需要由多個信元承載 ??刂乒δ芏际轻槍υO(shè)備進(jìn)行的,所以在控制/反饋信元中也必須包括目標(biāo)設(shè)備的物理位置信息 。
在實際運行期間,所有的上層應(yīng)用和設(shè)備之間的控制通信復(fù)用控制通道,其特點為:
(1)不同的應(yīng)用可能同時訪問同一設(shè)備;
(2)一個應(yīng)用也可能同時訪問多個設(shè)備;
(3)同一應(yīng)用對于同一個設(shè)備的操作一般都是順序的 。
為支持這種復(fù)用操作,所有承載控制信息和反饋信息的頭部除包括目標(biāo)硬件的物理位置和操作指令外,還包括命令類型、應(yīng)用類型信息 ??刂疲答佊眯旁Y(jié)構(gòu)如圖5所示 。
 
圖5中:處理引擎號和端口號,確定設(shè)備的物理位置;收/發(fā)信元分別為該信元的源端口的和目的端口的對應(yīng)值;命令碼在設(shè)備和應(yīng)用之間定義 。每種可能的操作分配一個代碼;應(yīng)用碼在控制卡驅(qū)動模塊和上層應(yīng)用之間預(yù)定義 。每種可能的應(yīng)用分配一個代碼 。這些應(yīng)用包含網(wǎng)管、路由維護(hù)、硬件維護(hù)和ARP信息獲取等 。
上層應(yīng)用通過內(nèi)核調(diào)用陷井(IOCTL)發(fā)起控制通道操作,同時給出目標(biāo)設(shè)備物理位置、命令類型代碼和應(yīng)用類型代碼 ??刂瓶?qū)動模塊把這些信息填充到控制信元中再將其發(fā)往設(shè)備 。設(shè)備把這些代碼直接復(fù)制到反饋信元中,再在后面追加上反饋信息 。控制卡驅(qū)動模塊為每一種應(yīng)用分配一個循環(huán)緩沖區(qū),把收到的反饋根據(jù)應(yīng)用類型排入相應(yīng)隊列中 。上層應(yīng)用從其所對應(yīng)的循環(huán)緩沖區(qū)中讀取反饋信元,然后根據(jù)信元中的物理位置信息、命令碼就可以確定該反饋對應(yīng)的原始命令,從而對反饋數(shù)據(jù)進(jìn)行適當(dāng)處理 。這樣就實現(xiàn)了各種控制功能對控制通道的復(fù)用 。如圖6所示 。
3 結(jié)論
鑒于傳統(tǒng)路由器體系結(jié)構(gòu)和交換式路由器體系結(jié)構(gòu)的區(qū)別,通用操作系統(tǒng)及在其上開發(fā)的路由軟件無法直接應(yīng)用于交換式路由器 。本文提出的中間層方案可以有效地解決這個問題 。該方案全面考慮了數(shù)據(jù)通信和治理維護(hù)方面的需求,為上層提供了與原有模型基本相同的接口,并使得路由軟件在不損失其靈活性和可升級性的條件下直接應(yīng)用于交換式路由器中 。雖然該方案只是在特定的平臺和特定的操作系統(tǒng)上得到了實現(xiàn),但是不難看出,這種思路對操作系統(tǒng)并沒有非凡的依靠性,完全可以移植到其他通用操作系統(tǒng)上 。本文提出的方案已經(jīng)在國家863項目實用化綜合接入系統(tǒng)的高速邊緣路由器的研制中取得了良好的實際效果 。本文為國產(chǎn)高性能路由器的軟件開發(fā)提出了一種高效快捷的解決方案,該方案具有良好的應(yīng)用前景 。

推薦閱讀