版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著無線網(wǎng)絡(luò)的不斷發(fā)展,有線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的融合必將成為一種趨勢,新型的網(wǎng)絡(luò)設(shè)備的產(chǎn)生也將成為一種必然,有線無線一體化交換機(jī)就是這種設(shè)想的實現(xiàn)。接口管理作為交換機(jī)設(shè)計中的重要軟件組成部分,它在交換機(jī)中抽象底層的硬件驅(qū)動,定義完備的接口,給上層管理提供接口,是交換機(jī)軟件開發(fā)的主要內(nèi)容,對于交換機(jī)的軟硬件的管理和交換性能具有十分重要
2、的意義。</p><p> 本文以某公司的AX7000有線無線一體化企業(yè)級交換機(jī)項目為背景,深入研究了Cisco、Juniper等公司的接口管理設(shè)計模式,提出了自己的設(shè)計方案。基于交換機(jī)的PORT和VLAN實現(xiàn)交換機(jī)的二層接口、三層接口、協(xié)議接口以及各種特性接口的定義,運用Port和VLAN之間的關(guān)系使接口之間相關(guān)聯(lián)。實現(xiàn)虛擬網(wǎng)卡驅(qū)動以支持三層接口,完成交換機(jī)網(wǎng)關(guān)功能。添加ARP和路由信息學(xué)習(xí)管理模塊,保證網(wǎng)絡(luò)
3、安全和數(shù)據(jù)轉(zhuǎn)發(fā)的高效、暢通。最終根據(jù)定義的接口實現(xiàn)命令行的配置功能。</p><p> 關(guān)鍵詞:接口管理 無線控制器 網(wǎng)絡(luò)</p><p><b> Abstract</b></p><p> With the continuous development of wireless networks, the amalgamation of
4、 cable and wireless networks will definitely become a trend, and it is inevitable that a late-model network apparatus, such as the Wire and Wireless Integration Switch, will come into being. As an important software comp
5、onents of the Integration Switch, Interface management which abstracts the underlying hardware drive, defines the whole Interface and provides interface for the superior management, has great significance fo</p>&
6、lt;p> This thesis, via a AX7000 Wire and Wireless integration Enterprise-class Switch project and thoroughly studying on Cisco’s, Juniper’s and some other company’s Interface Management design pattern, puts forward m
7、y own design pattern in which I educed the definability of Ethernet Interface, Layer 3 Interface, Protocol Interface and a variety of some special interface and identified their relations via the Port and VLAN of intrefa
8、ce, and achieved the virtual network card driving which gives support </p><p> Keyword:Interface Management Wireless Controller Network</p><p><b> 目錄</b></p><p><
9、b> 第一章 緒論1</b></p><p> 1.1 項目背景1</p><p> 1.2 項目來源2</p><p> 1.3 項目其間主要完成任務(wù)的工作4</p><p> 1.4 章節(jié)安排4</p><p> 第二章 相關(guān)技術(shù)背景7</p><p&g
10、t; 2.1 TCP/IP及Linux TCP/IP協(xié)議棧7</p><p> 2.2 Linux驅(qū)動9</p><p> 2.3 Linux開源項目13</p><p> 2.3.1 路由管理之Quagga13</p><p> 2.3.2 Linux邏輯總線之D-Bus14</p><p>
11、第三章 無線控制器體系結(jié)構(gòu)17</p><p> 3.1 無線控制器的功能17</p><p> 3.2 無線控制器的體系結(jié)構(gòu)18</p><p> 3.2.1 功能體系結(jié)構(gòu)模塊18</p><p> 3.2.2 物理體系結(jié)構(gòu)模塊20</p><p> 第四章 接口管理需求分析23</p&g
12、t;<p> 4.1 接口管理概念23</p><p> 4.2 接口管理需求24</p><p> 4.3 接口管理建模27</p><p> 第五章 接口管理設(shè)計實現(xiàn)31</p><p> 5.1 軟件模塊設(shè)計實現(xiàn)31</p><p> 5.2 基于接口的應(yīng)用層設(shè)計實現(xiàn)34&l
13、t;/p><p> 5.2.1 命令行模塊設(shè)計實現(xiàn)34</p><p> 5.2.2 協(xié)議模塊設(shè)計實現(xiàn)36</p><p> 5.3 接口底層驅(qū)動模塊設(shè)計實現(xiàn)39</p><p> 5.3.1 虛擬網(wǎng)卡驅(qū)動模塊設(shè)計實現(xiàn)39</p><p> 5.3.2 交換芯片驅(qū)動模塊設(shè)計實現(xiàn)47</p>
14、<p> 5.4 接口管理設(shè)計實現(xiàn)48</p><p> 5.4.1 Port接口48</p><p> 5.4.2 VLAN接口55</p><p> 5.4.3 基于接口的ARP、Route學(xué)習(xí)60</p><p> 5.5 接口管理測試63</p><p> 第六章 結(jié)束語67
15、</p><p> 6.1 全文總結(jié)67</p><p> 6.2 工作展望67</p><p><b> 致謝69</b></p><p><b> 參考文獻(xiàn)71</b></p><p><b> 第一章 緒論</b></p&g
16、t;<p><b> 1.1 項目背景</b></p><p> 上世紀(jì)九十年代以來,網(wǎng)絡(luò)建設(shè)突飛猛進(jìn)。我國的網(wǎng)絡(luò)建設(shè),包括企業(yè)網(wǎng)和廣域網(wǎng)絡(luò),都實現(xiàn)質(zhì)的飛躍。無線網(wǎng)絡(luò)同期也得到廣泛應(yīng)用和發(fā)展。近兩年來,無線網(wǎng)絡(luò)有越來越加快發(fā)展的趨勢。</p><p> 無線網(wǎng)絡(luò)自誕生以來,表現(xiàn)了其獨特靈活性、便利性及高效率的特點。無線網(wǎng)絡(luò)的初步應(yīng)用,可以追溯到第二
17、次世界大戰(zhàn)期間,美國陸軍采用無線電信號作資料傳輸。1971年,夏威夷大學(xué)的研究員創(chuàng)造了第一個被稱作ALOHNET的無線電通信網(wǎng)絡(luò)。無線局域網(wǎng)(WLAN,Wireless Local Area Network)采用無線通信技術(shù)代替?zhèn)鹘y(tǒng)電纜網(wǎng)絡(luò)。上世紀(jì)90年代初,無限局域網(wǎng)絡(luò)設(shè)備相繼出現(xiàn)。以900MHz、2.4MHz 和5GHz為主要頻率。1997年6月,第一個無線局域網(wǎng)標(biāo)準(zhǔn)IEEE802.11正試頒布實施。1999年9月802.11b技術(shù)
18、標(biāo)準(zhǔn)正式發(fā)布,802.11帶來了網(wǎng)絡(luò)建設(shè)的一場“革命”[1]。為無線局域網(wǎng)的物理層和MAC層提供了統(tǒng)一的標(biāo)準(zhǔn),為無線網(wǎng)絡(luò)市場迅速發(fā)展奠定基礎(chǔ)。</p><p> 近年來,國際無線網(wǎng)絡(luò)市場發(fā)展迅速。據(jù)市場調(diào)查,1998年美國無線網(wǎng)絡(luò)服務(wù)的收入為300億美元,收入主要還是來源于移動電話的無線語音服務(wù)。到1999年美國無線網(wǎng)絡(luò)數(shù)據(jù)服務(wù)的收入達(dá)到6億美元。預(yù)計 2003年美國無線網(wǎng)絡(luò)數(shù)據(jù)服務(wù)的收入可以達(dá)到40億美元。到
19、了2005年美國的無線服務(wù)收入將達(dá)到600億美元,其中無線數(shù)據(jù)通信的收入達(dá)到84億美元,將增長14倍。到2006年,全球無線網(wǎng)絡(luò)設(shè)備的市場銷售額將達(dá)到103億美元。2001年全球無線上網(wǎng)人口總數(shù)已達(dá)3900萬人,預(yù)計到2005年底可達(dá)到7.29億人,并且全球?qū)⒂?6%的上網(wǎng)人口通過無線電子設(shè)備上網(wǎng)。無線網(wǎng)絡(luò)的應(yīng)用將持續(xù)高速發(fā)展。人們已經(jīng)不滿足原來的移動電話服務(wù)的內(nèi)容,無線網(wǎng)絡(luò)的語音服務(wù)必然向數(shù)據(jù)服務(wù)發(fā)展。特別是信息技術(shù)的廣泛應(yīng)用,移動辦
20、公和移動商務(wù)的要求,也必然推動無線網(wǎng)絡(luò)應(yīng)用的發(fā)展。無線網(wǎng)絡(luò)補(bǔ)充延伸了有線網(wǎng)絡(luò),擴(kuò)大了網(wǎng)絡(luò)的覆蓋率和提高了網(wǎng)絡(luò)的應(yīng)用范圍[2]。</p><p> 到現(xiàn)在為止,無線局域網(wǎng)一般是由連接到接入點的客戶機(jī)構(gòu)成,而接入點要提供安全功能、管理功能和其他控制網(wǎng)絡(luò)無線部分所需的智能性。由此帶來的問題是,管理多個接入點,對于可能涉及幾百或幾千個接入點的網(wǎng)絡(luò)來說是一種無法應(yīng)付的局面。在這種情況下,一種新的產(chǎn)品——WLAN交換機(jī)應(yīng)運
21、而生。許多資深研究以太網(wǎng)技術(shù)及交換機(jī)技術(shù)的網(wǎng)絡(luò)公司正投入大量研究力量從事無線交換機(jī)的研發(fā),例如Cisco,H3C等等,這兩家公司都已有自己成熟的產(chǎn)品,Cisco的Cisco 4400系列,H3C的WX5002系列,但這些都只停留在無線控制這一塊,而沒有把有線和無線完整的融合起來。無線交換所帶來的,不僅是提升無線網(wǎng)絡(luò)的可管理性、安全性和部署能力,還降低了組網(wǎng)成本,由此成為無線局域網(wǎng)領(lǐng)域一種新的發(fā)展趨勢。</p><p&
22、gt; 傳統(tǒng)的企業(yè)級無線局域網(wǎng)采用的是以太網(wǎng)交換機(jī)+企業(yè)級AP的2級模式,由AP來實現(xiàn)無線局域網(wǎng)和有線網(wǎng)絡(luò)之間的橋接工作。整個網(wǎng)絡(luò)的無線部分, 是以AP為中心的一片片覆蓋區(qū)域組合而成的。這些區(qū)域各自獨立工作,AP作為該區(qū)域的中心節(jié)點,承擔(dān)著數(shù)據(jù)的接收、轉(zhuǎn)發(fā)、過濾、加密,客戶端的接入、斷開、認(rèn)證等任務(wù)。所有的管理工作,比如channel管理和安全性設(shè)置,都必須針對每一臺AP單獨進(jìn)行。當(dāng)企業(yè)的無線局域網(wǎng)規(guī)模較大時,這就成了網(wǎng)絡(luò)管理員相當(dāng)繁
23、重的負(fù)擔(dān)。</p><p> 新出現(xiàn)的無線交換機(jī)通過集中管理、簡化AP來解決這個問題。在這種構(gòu)架中,無線交換機(jī)替代了原來二層交換機(jī)的位置,輕量級AP(Light-Weight AP)(也稱智能天線)取代了原有的企業(yè)級AP[3]。通過這種方式,就可以在整個企業(yè)范圍內(nèi)把安全性、移動性、QoS和其他特性集中起來管理。</p><p> 雖然無線交換機(jī)采用和普通交換機(jī)類似的方式與A
24、P實現(xiàn)連接。但在802.11幀處理上與傳統(tǒng)方式不同:它不將802.11幀轉(zhuǎn)換為以太幀,而是將其封裝進(jìn) 802.3幀當(dāng)中,然后通過專用隧道傳輸?shù)綗o線交換機(jī)。從有線網(wǎng)的角度看,無線交換機(jī)加輕量級AP更像是一臺伸展出很多外接天線的增強(qiáng)型AP。無線交換機(jī)的優(yōu)勢,在于三個主要方面:更高的安全性,更低的TCO,更有效率的管理。</p><p> 在新的AP與交換機(jī)之間的通信的隧道協(xié)議和管理協(xié)議(LWAPP)標(biāo)準(zhǔn)定制以后,不
25、同廠家的無線交換機(jī)和AP不能通信的時代已成為過去,LWAPP 在市場中得到廣泛接受,減少了被迫鎖定于一個廠商,即只有將接入點與同一廠商的WLAN系統(tǒng)設(shè)備共用,才能獲得最優(yōu)運行效果的現(xiàn)象。LWAPP還提供了一個開放標(biāo)準(zhǔn)解決方案,可在多廠商集中WLAN架構(gòu)上提供安全的第二層和第三層網(wǎng)絡(luò)服務(wù)。此外,憑借LWAPP,第三方廠商也可擁有一個用于部署應(yīng)用的通用架構(gòu)。無線交換機(jī)將會成為網(wǎng)絡(luò)設(shè)備發(fā)展的主流。</p><p>&l
26、t;b> 1.2 項目來源</b></p><p> 本文作者實習(xí)公司是業(yè)界唯一一個有線無線一體化寬帶網(wǎng)絡(luò)解決方案提供商。依托它們的產(chǎn)品,用戶可以基于單一平臺部署有線網(wǎng)絡(luò)、WLAN網(wǎng)絡(luò)及企業(yè)統(tǒng)一安全策略。</p><p> 傳統(tǒng)企業(yè)網(wǎng)絡(luò)中,有線網(wǎng)絡(luò)設(shè)備及管理系統(tǒng)、無線網(wǎng)絡(luò)設(shè)備及管理系統(tǒng)、安全策略管理系統(tǒng)各自獨立,分別維護(hù),不但增加了IT人員的負(fù)擔(dān),而且大大增加了企業(yè)
27、的 IT基礎(chǔ)設(shè)施投資。傲天動聯(lián)提供單一的有線無線一體化產(chǎn)品平臺和管理平臺,用戶可以基于同一設(shè)備進(jìn)行WLAN數(shù)據(jù)和有線數(shù)據(jù)的轉(zhuǎn)發(fā)策略控制以及進(jìn)行第七層安全策略部署,極大的簡化了網(wǎng)絡(luò)的部署和管理并大幅度節(jié)約網(wǎng)絡(luò)基礎(chǔ)設(shè)施投資。</p><p> 基于以上的市場需求,公司率先推出了業(yè)界領(lǐng)先、完全自主知識產(chǎn)權(quán)的有線無線一體化解決方案,包括業(yè)界最高轉(zhuǎn)發(fā)性能和最具安全性的AX7000系列高端一體化安全交換機(jī)、適用于中小型企業(yè)
28、的AX5000/3000系列一體化安全交換機(jī)、具有零配置自愈合功能的室外型無線接入點、基于開放式安全平臺的AUTEWARE操作系統(tǒng)等,為客戶提供安全、高速、統(tǒng)一管理、易于部署的整網(wǎng)多業(yè)務(wù)解決方案。</p><p> 而接口管理正是交換機(jī)的核心功能,同樣有線無線一體化交換機(jī)也不例外。在現(xiàn)有的網(wǎng)絡(luò)設(shè)備生產(chǎn)公司中,接口都沒有十分統(tǒng)一的清晰定義,各有巧妙。但是從總體上說,其內(nèi)容涵蓋了系統(tǒng)中所有底層硬件驅(qū)動、上層應(yīng)用,是
29、軟件層面上的一系列核心結(jié)構(gòu)體,主要目的是為了高效合理的管理交換機(jī),并且以它為核心進(jìn)行軟件開發(fā),擴(kuò)展功能,版本的移植。因此接口管理邏輯關(guān)系復(fù)雜,與系統(tǒng)軟硬件功能模塊緊密相關(guān),也是中高端交換機(jī)管理方式的定義。不同的設(shè)計最終呈現(xiàn)給用戶的時候,有很大的差別,從Cisco和Juniper設(shè)備配置文檔中就可見一斑。</p><p> 從Cisco的配置手冊[4]上可以看出,Cisco對接口定義最廣泛,因此也最混亂,接口太多
30、。在Cisco的8540配置文檔中可以看出,接口與路由有很大的關(guān)系,路由是把包從一個鏈路傳送到另外一個鏈路,而為了實現(xiàn)這個過程,就要定義數(shù)據(jù)包從接受到發(fā)送這一過程的接口特征。接口特征包括IP地址,端口地址,數(shù)據(jù)封裝方法和介質(zhì)類型,這些所說的只是其中的一部分。可以看出Cisco的接口定義更像一個面向?qū)ο蟪绦蛑械念?,?dāng)然把它們定義成可以獨立出來的模式,可以很方便的把它們組織成一個樹形結(jié)構(gòu),加快了包在三層交換機(jī)中的轉(zhuǎn)發(fā)速度。</p>
31、;<p> Juniper公司的接口管理[5]相對要清晰一點,把接口的概念分層了,從物理層到鏈路層到網(wǎng)絡(luò)層,邏輯上的可以有好幾層接口,類似一個接口棧,完整的接口棧實現(xiàn)完整的報文從網(wǎng)絡(luò)協(xié)議棧最底層到頂層的處理過程。例如:用戶可以根據(jù)自己的需求配置T3和T1鏈路的物理和邏輯特征或根據(jù)中心交換機(jī)和OC3鏈路的物理和邏輯特點從網(wǎng)絡(luò)的下層核心傳出,這些物理和邏輯的特點就定義了一個接口。而接口的配置應(yīng)該從低到高合理的配置,比如:原來
32、的配置是IP 運行在ATM上,現(xiàn)在想改變原來的模式,IP 要運行在PPP上,PPP運行在ATM 上,則就要先刪除IP,再配置PPP,然后重新配置IP,才能正確的運行。從這些可以看出Juniper公司對接口定義比較嚴(yán)格。而接口的管理也更加的靈活。</p><p> 在作者實習(xí)公司的有線無線一體化交換機(jī)中,接口管理吸收了Cisco和Juniper的優(yōu)點,提出了自己相對簡單但功能全面、靈活的接口管理方案。把接口管理規(guī)
33、劃入兩個主要的邏輯結(jié)構(gòu)中——Port、VLAN中,用這兩個數(shù)據(jù)結(jié)構(gòu)去定義各個接口功能。</p><p> 1.3 項目其間的主要工作</p><p> 本次課題開發(fā)的內(nèi)容是根據(jù)作者實習(xí)公司的產(chǎn)品AX7000和AX5000有限線無線一體化交換機(jī)的研發(fā)而來。這兩款新產(chǎn)品給用戶提供了無線網(wǎng)絡(luò)管理和有線網(wǎng)絡(luò)管理的一體化解決方案,最大化的減小了用戶的投資,并使用戶長期受益。新產(chǎn)品在設(shè)計研發(fā)過程中
34、遵守IEEE的802等標(biāo)準(zhǔn)。系統(tǒng)采用MIPS架構(gòu),LINUX服務(wù)器平臺,進(jìn)行基于高速交換芯片的嵌入式開發(fā)。將優(yōu)化過的一些相關(guān)理論方法應(yīng)用到實際開發(fā)過程中去,保障了系統(tǒng)性能、特性的安全穩(wěn)定。</p><p> 本論文的研究內(nèi)容是實習(xí)公司AX7000和AX5000有線無線一體化交換機(jī)的核心功能接口管理模塊,本文作者主要完成以下幾個方面的工作:</p><p> 項目開始前期。閱讀有關(guān)TCP
35、/IP協(xié)議書籍、Socket編程書籍、線程管理和內(nèi)存管理書籍,硬件芯片文檔,產(chǎn)品設(shè)計架構(gòu)文檔,了解國內(nèi)三層交換機(jī)框架的一些情況。閱讀交換芯片的驅(qū)動源代碼。</p><p> 對產(chǎn)品硬件結(jié)構(gòu)進(jìn)行培訓(xùn),與硬件工程師一起對交換芯片的硬件轉(zhuǎn)發(fā)能力進(jìn)行測試驗證。</p><p> 與交換項目組的開發(fā)人員和軟件架構(gòu)工程師進(jìn)行接口管理方面的設(shè)計。</p><p> 完成接口
36、管理的基礎(chǔ),Linux虛擬網(wǎng)卡驅(qū)動的設(shè)計、編碼、測試。</p><p> 完成RSTP和MSTP的融合,為上層管理提供相應(yīng)的接口。</p><p> 實現(xiàn)ARP,路由學(xué)習(xí)的軟硬件控制,以及一些特色功能接口。</p><p> 調(diào)試報文收發(fā)流程的性能。</p><p><b> 1.4 章節(jié)安排</b></p
37、><p> 論文主要介紹了研究和實現(xiàn)基于無線控制器的接口管理。</p><p><b> 第一章:緒論</b></p><p> 本章介紹了論文研究背景、來源和組織安排。</p><p> 第二章:相關(guān)技術(shù)背景</p><p> 本章介紹了交換機(jī)軟件開發(fā)中與接口管理相關(guān)關(guān)鍵技術(shù)。首先介紹了T
38、CP/IP協(xié)議的基本信息,緊接著對Linux驅(qū)動做了總結(jié),最后對公司使用的兩個開源軟件Quagga,D-Bus進(jìn)行簡單的介紹。</p><p> 第三章:無線控制器體系結(jié)構(gòu)</p><p> 本章對實習(xí)公司的產(chǎn)品AX7000的各個功能做了概述,并從本產(chǎn)品的硬件架構(gòu)和邏輯功能模塊詳細(xì)介紹它的軟件結(jié)構(gòu)和設(shè)計理念。</p><p> 第四章:接口管理的需求分析<
39、;/p><p> 本章論述了接口管理的概念,并分析了接口管理的需求,最終對系統(tǒng)和接口管理進(jìn)行了功能建模。</p><p> 第五章:接口管理的設(shè)計實現(xiàn)</p><p> 本章詳細(xì)論述了AX7000的軟件總體設(shè)計以及各個模塊的功能,然后對接口管理的上層應(yīng)用命令行模塊和協(xié)議模塊和底層驅(qū)動模塊的設(shè)計實現(xiàn)進(jìn)行了詳細(xì)闡述,最后具體的論述了接口管理的設(shè)計與實現(xiàn),并且列出了測試
40、結(jié)果。</p><p><b> 第六章:結(jié)束語</b></p><p> 本章主要總結(jié)了本篇論文的主要內(nèi)容,介紹了AX7000投入市場后情況,展望了未來的工作。</p><p> 第二章 相關(guān)技術(shù)背景</p><p> 2.1 TCP/IP及Linux TCP/IP協(xié)議棧</p><p>
41、; 網(wǎng)絡(luò)發(fā)展最初可以追溯到20世紀(jì)50年代,當(dāng)時人們嘗試把分別獨立發(fā)展的通信技術(shù)和計算機(jī)技術(shù)聯(lián)系起來,使得在技術(shù)上為今后的計算機(jī)網(wǎng)絡(luò)的出現(xiàn)做好了準(zhǔn)備。同時建立了一些基礎(chǔ)的理論性的概念。1983年出現(xiàn)了可用于異構(gòu)網(wǎng)絡(luò)的TCP/IP協(xié)議,并作為BSD UNIX操作系統(tǒng)的一部分,TCP/IP協(xié)議得到了認(rèn)可,逐步流行起。從此真正意義上的Internet誕生了[6]。1991年,internet開始用于商業(yè)用途,internet的商業(yè)化,成為i
42、nternet發(fā)展的催化劑,使得它以空前的速度迅速發(fā)展。</p><p> Linux 正是一個誕生于網(wǎng)絡(luò)、成長于網(wǎng)絡(luò)且成熟于網(wǎng)絡(luò)的奇特的操作系統(tǒng)。1991年,芬蘭大學(xué)生Linus Torvalds把自己開發(fā)了基于UNIX的開源操作系統(tǒng)Linux,為了不讓這個羽毛未豐的操作系統(tǒng)矢折,Linus將自已的作品Linux通過Internet發(fā)布。從此一大批知名的、不知名的電腦黑客、編程人員加入到開發(fā)過程中來,Linu
43、x逐漸成長起來。 </p><p> 現(xiàn)在Linux已經(jīng)是一種自由的UNIX類多用戶、多任務(wù)的操作系統(tǒng),可運行在多種計算機(jī)平臺,已成為應(yīng)用廣泛、可靠性高、功能強(qiáng)大的計算機(jī)操作系統(tǒng)。Linux 具有內(nèi)核小、效率高、源代碼開放等優(yōu)點,還內(nèi)含了TCP/IP網(wǎng)絡(luò)協(xié)議,很適合在服務(wù)器領(lǐng)域和嵌入式領(lǐng)域使用。而這兩個領(lǐng)域主要用途之一就是進(jìn)行網(wǎng)絡(luò)通信。</p><p> Linux支持TCP/IP,I
44、PX,X.25,AppleTalk等協(xié)議,各種具體協(xié)議實現(xiàn)的源碼見linux/net/目錄下相應(yīng)的名稱[7]。與本文構(gòu)件化相關(guān)的TCP/IP協(xié)議棧相關(guān)內(nèi)容在linux/net/ipv4目錄下,其中l(wèi)inux/net/ipv4/af_inet.c是主要的管理文件。 </p><p> 與OSI模型一樣,Linux的TCP/IP協(xié)議棧也是典型的層次架構(gòu),如圖2.1所示。網(wǎng)卡驅(qū)動程序提供的I/O之上是地址解析協(xié)議和反
45、向地址解析協(xié)議(ARP/RARP),主要功能為將網(wǎng)卡硬件設(shè)備號(MAC地址)與分配的IP地址連接起來,在Linux kernel源碼中的實現(xiàn)文件是arp.c及rarp.c。再向上是IP協(xié)議、ICMP協(xié)議和IGMP協(xié)議,該層實際完成功能與OSI模型中的網(wǎng)絡(luò)層相似,其中以IP協(xié)議為核心,ICMP協(xié)議及IGMP協(xié)議協(xié)助IP協(xié)議以共同完成IP尋址、路由轉(zhuǎn)發(fā)及簡單的錯誤回報、流量控制等功能,在內(nèi)核源碼中的實現(xiàn)文件包含了以ip_為前綴的一系列文件及
46、icmp.c、igmp.c。再上是兩個傳輸層的協(xié)議,包括面向連接的TCP協(xié)議和無連接的UDP協(xié)議,在內(nèi)核源碼中的實現(xiàn)文件是以tcp_為前綴的一系列文件及udp.c。最上層是豐富的應(yīng)用層協(xié)議,內(nèi)核源碼中并不包含此部</p><p> 圖 2.1 TCP/IP協(xié)議棧</p><p> 分內(nèi)容的具體實現(xiàn)文件,而是由具體的應(yīng)用程序根據(jù)RFC標(biāo)準(zhǔn)對其加以實現(xiàn)。所以對TCP/IP協(xié)議棧按層次構(gòu)件化
47、的任務(wù)主要集中在三層上:ARP/RARP層,IP/ICMP/IGMP層,TCP/UDP層。圖2.2描述了Linux對TCP/IP協(xié)議族的實現(xiàn)機(jī)制。</p><p> 圖2.2 Linux 對TCP/IP協(xié)議族實現(xiàn)</p><p> Linux支持BSD的套接字和全部的TCP/IP協(xié)議,是通過網(wǎng)絡(luò)協(xié)議將其視為一組相連的軟件層來實現(xiàn)的,BSD套接字(BSD Socket)由通用的套接字管理
48、軟件支持,該軟件是INET套接字層,用來管理基于IP的TCP與UDP端口到端口的互聯(lián)問題[8]。從協(xié)議分層來看,IP是網(wǎng)絡(luò)層協(xié)議,TCP是一個可靠的端口到端口的傳輸層協(xié)議,它是利用IP層進(jìn)行傳接報文的,同時也是面向連接的,通過建立一條虛擬電路在不同的網(wǎng)路間傳輸報文,保證所傳輸報文的無丟失性和無重復(fù)性。用戶數(shù)據(jù)報文協(xié)議(User Datagram Protocol,UDP)也是利用IP層傳輸報文,但它是一個非面向連接的傳輸層協(xié)議,利用IP
49、層傳輸報文時,當(dāng)目的方網(wǎng)際協(xié)議層收到IP報文后,必須識別出該報文所使用的上層協(xié)議(即傳輸層協(xié)議),因此,在IP報頭上中,設(shè)有一個“協(xié)議”域(Protocol)。通過該域的值,即可判別其上層協(xié)議類型。</p><p> 對于TCP傳輸,傳輸節(jié)點間先要建立連接,然后通過該連接傳輸已排好序的報文,以保證傳輸?shù)恼_性,IP層中的代碼用于實現(xiàn)網(wǎng)際協(xié)議,這些代碼將IP頭增加到傳輸數(shù)據(jù)中,同時也把收到的IP報文正確的傳送到T
50、CP層或UDP層。TCP是一個面向連接協(xié)議,而UDP則是一個非面向連接協(xié)議,當(dāng)一個UDP報文發(fā)送出去后,Linux并不知道也不去關(guān)心它是否成功地到達(dá)了目的主機(jī)。IP層之下,是支持所有Linux網(wǎng)絡(luò)應(yīng)用的網(wǎng)絡(luò)設(shè)備層,例如點到點協(xié)議 (Point to Point Protocol,PPP)和以太網(wǎng)層。網(wǎng)絡(luò)設(shè)備并非總代表物理設(shè)備,其中有一些(例如回送設(shè)備)則是純粹的軟件設(shè)備,網(wǎng)絡(luò)設(shè)備與標(biāo)準(zhǔn)的Linux設(shè)備不同,它們不是通過mknod命令創(chuàng)建
51、的,必須是底層軟件找到并進(jìn)行了初始化之后,這些設(shè)備才被創(chuàng)建并可用。因此只有當(dāng)啟動了正確設(shè)置的以太網(wǎng)設(shè)備驅(qū)動程序的內(nèi)核后,才會有/dev/eth0文件,ARP協(xié)議位于IP層和支持地址解析的協(xié)議層之間。</p><p> 2.2 Linux驅(qū)動</p><p> Linux設(shè)備驅(qū)動程序在 Linux的內(nèi)核源代碼中占有很大的比例,源代碼的長度日益增加,主要是驅(qū)動程序的增加。在Linux內(nèi)核的
52、不斷升級過程中,驅(qū)動程序的結(jié)構(gòu)還是相對穩(wěn)定。在2.4.xx到2.6.xx的變動里,驅(qū)動程序的編寫做了一些改變,但是從2.4.xx的驅(qū)動到2.6.xx的移植只需做少量的工作。 </p><p> Linux 系統(tǒng)的設(shè)備分為字符設(shè)備(char device),塊設(shè)備(block device)和網(wǎng)絡(luò)設(shè)備(network device)三種。字符設(shè)備是指存取時沒有緩存的設(shè)備。塊設(shè)備的讀寫都有緩存來支持,并且塊設(shè)備必須
53、能夠隨機(jī)存取(random access),字符設(shè)備則沒有這個要求。典型的字符設(shè)備包括鼠標(biāo)、鍵盤、串行口等。塊設(shè)備主要包括硬盤軟盤設(shè)備,CD-ROM等。一個文件系統(tǒng)要安裝進(jìn)入操作系統(tǒng)必須在塊設(shè)備上[9]。</p><p> 每個設(shè)備文件都有其文件屬性(c/b),表示是字符設(shè)備還是塊設(shè)備。另外每個文件都有2個設(shè)備號,第一個是主設(shè)備號,標(biāo)識驅(qū)動程序;第二個是從設(shè)備號,標(biāo)識使用同一個設(shè)備驅(qū)動程序的、不同的硬件設(shè)備。設(shè)
54、備文件的主設(shè)備號必須與設(shè)備驅(qū)動程序在登記時申請的主設(shè)備號一致,否則用戶進(jìn)程將無法訪問驅(qū)動程序。</p><p> 系統(tǒng)調(diào)用時是操作系統(tǒng)內(nèi)核與應(yīng)用程序之間的接口,設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核與機(jī)器硬件之間的接口[10]。設(shè)備驅(qū)動程序是內(nèi)核的一部分,它完成以下功能:</p><p><b> 對設(shè)備初始化和釋放</b></p><p> 把數(shù)據(jù)
55、從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù)</p><p> 讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請求的數(shù)據(jù)</p><p> 檢測和處理設(shè)備出現(xiàn)的錯誤</p><p> 圖2.3完整地表現(xiàn)了Linux驅(qū)動和系統(tǒng)之間的關(guān)系。</p><p> 圖 2.3 Linux 設(shè)備驅(qū)動模塊圖</p><p> Linu
56、x的設(shè)備驅(qū)動程序可以分為3個主要組成部分[11]:</p><p> 自動配置和初始化子程序,負(fù)責(zé)監(jiān)測所有驅(qū)動的硬件設(shè)備是否存在和能否正常工作。如果該設(shè)備正常,則對這個設(shè)備及其相關(guān)的設(shè)備驅(qū)動程序需要的軟件狀態(tài)進(jìn)行初始化。這部分驅(qū)動程序僅在初始化時被調(diào)用一次。</p><p> 服務(wù)于I/O請求的子程序,又稱為驅(qū)動程序的上半部分。調(diào)用這部分程序是由于系統(tǒng)調(diào)用的結(jié)果。這部分程序在執(zhí)行時,系
57、統(tǒng)仍認(rèn)為是與進(jìn)行調(diào)用的進(jìn)程屬于同一個進(jìn)程,只是由用戶態(tài)變成了核心態(tài),具有進(jìn)行此系統(tǒng)調(diào)用的用戶程序的運行環(huán)境,因而可以在其中調(diào)用sleep()等與進(jìn)程運行環(huán)境有關(guān)的函數(shù)。</p><p> 中斷服務(wù)子程序,又稱為驅(qū)動程序的下半部分。在Linux系統(tǒng)中,并不是直接從中斷向量表中調(diào)用設(shè)備驅(qū)動程序的中斷服務(wù)子程序,而是由Linux系統(tǒng)來接收硬件中斷,再由系統(tǒng)調(diào)用中斷服務(wù)子程序。中斷可以在任何一個進(jìn)程運行時產(chǎn)生,因而在中
58、斷服務(wù)程序被調(diào)用時,不能依賴于任何進(jìn)程的狀態(tài),也就不能調(diào)用任何與進(jìn)程運行環(huán)境有關(guān)的函數(shù)。因為設(shè)備驅(qū)動程序一般支持同一類型的若干設(shè)備,所以一般在系統(tǒng)調(diào)用中斷服務(wù)子程序時,都帶有一個或多個參數(shù),以唯一標(biāo)識請求服務(wù)的設(shè)備。</p><p> 在Linux中,幾乎所有的內(nèi)容都是文件,對設(shè)備驅(qū)動的訪問也是以文件操作的方式實現(xiàn)[12]。無論是字符設(shè)備還是塊設(shè)備,用戶對設(shè)備的操作都是通過虛擬文件系統(tǒng)(VFS)轉(zhuǎn)化為設(shè)備驅(qū)動與
59、硬件操作程序的交互。即使是訪問網(wǎng)絡(luò)設(shè)備的socket接口,也是通過VFS實現(xiàn)的。Linux通過VFS為用戶提供了一個統(tǒng)一的設(shè)備訪問接口,使用戶能夠透明地訪問設(shè)備驅(qū)動程序。所有的硬件設(shè)備都可以使用和操作系統(tǒng)調(diào)用接口來打開、關(guān)閉、讀寫和I/O控制,而驅(qū)動程序的主要任務(wù)就是實現(xiàn)這些系統(tǒng)調(diào)用函數(shù)。Linux系統(tǒng)中的所有硬件設(shè)備都使用一種特殊的設(shè)備文件來表示。每個設(shè)備文件都有兩個設(shè)備號:一個是主設(shè)備號,它用來標(biāo)識該設(shè)備的種類,也標(biāo)識該設(shè)備使用的驅(qū)
60、動程序;另一個是次設(shè)備號,用來標(biāo)識使用同一設(shè)備驅(qū)動程序的不同硬件設(shè)備。</p><p> 實現(xiàn)一個嵌入式Linux設(shè)備驅(qū)動的大致流程如下: </p><p> 定義主、次設(shè)備號,也可以動態(tài)獲取。</p><p> 實現(xiàn)驅(qū)動初始化和清除函數(shù),如果驅(qū)動程序采用模塊方式,則要實現(xiàn)模塊初始化和清除函數(shù)。</p><p> 設(shè)計所要實現(xiàn)的文件操
61、作,定義file_operations結(jié)構(gòu)。</p><p> 實現(xiàn)所需的文件操作調(diào)用,如read、write等。</p><p> 實現(xiàn)中斷服務(wù)函數(shù),并用request_irq向內(nèi)核注冊。中斷并不是每個設(shè)備驅(qū)動所需要。</p><p> 將驅(qū)動編譯到內(nèi)核或編譯成模塊,用insmod命令加載。 </p><p><b> 生
62、成設(shè)備節(jié)點文件。</b></p><p> file_operation結(jié)構(gòu)中的成員幾乎全部是函數(shù)指針,它們是系統(tǒng)調(diào)用函數(shù)的真正處理函數(shù),所以實質(zhì)上就是函數(shù)跳轉(zhuǎn)表。每個進(jìn)程對設(shè)備的操作都會根據(jù)major、minor設(shè)備號,轉(zhuǎn)換成對file_operation結(jié)構(gòu)的訪問。常用的操作包括以下幾種:</p><p> lseek,移動文件指針的位置,只能用于可以隨機(jī)存取的設(shè)備。&
63、lt;/p><p> read,進(jìn)行讀操作,參數(shù)buf為存放讀取結(jié)果的緩沖區(qū),count為所要讀取的數(shù)據(jù)長度。返回值為負(fù)表示讀取操作發(fā)生錯誤;否則,返回實際讀取的字節(jié)數(shù)。對于字符型,要求讀取的字節(jié)數(shù)和返回的實際讀取字節(jié)數(shù)都必須是inodei_blksize的倍數(shù)。</p><p> write,進(jìn)行寫操作,與read類似。</p><p> readdir,取得下
64、一個目錄入口點,只有與文件系統(tǒng)相關(guān)的設(shè)備程序才使用。</p><p> select,進(jìn)行選擇操作。如果驅(qū)動程序沒有提供select入口,select操作會認(rèn)為設(shè)備已經(jīng)準(zhǔn)備好進(jìn)行任何I/O操作。</p><p> ioctl,進(jìn)行讀、寫以外的其他操作,參數(shù)cmd為自定義的命令。</p><p> mmap,用于把設(shè)備的內(nèi)容映射到地址空間,一般只有塊設(shè)備驅(qū)動程序
65、使用。</p><p> open,打開設(shè)備準(zhǔn)備進(jìn)行I/O操作。返回0表示打開成功,返回負(fù)數(shù)表示失敗。如果驅(qū)動程序沒有提供open入口,則只要/dev/driver文件存在就認(rèn)為打開成功。</p><p> release,即close操作。</p><p> 在用戶自己的驅(qū)動程序中,首先要根據(jù)驅(qū)動程序的功能,完成file_operation結(jié)構(gòu)中函數(shù)實現(xiàn)。不
66、需要的函數(shù)接口可以直接在 file_operation結(jié)構(gòu)中初始化為NULL。file_operation變量會在驅(qū)動程序初始化時注冊到系統(tǒng)內(nèi)部。當(dāng)操作系統(tǒng)對設(shè)備操作時,會調(diào)用驅(qū)動程序注冊的file_operation結(jié)構(gòu)中的函數(shù)指針。</p><p> 對于網(wǎng)絡(luò)設(shè)備來說在Linux里有專門的處理。Linux的網(wǎng)絡(luò)系統(tǒng)主要是基于BSD unix的socket 機(jī)制。在系統(tǒng)和驅(qū)動程序之間定義有專門的數(shù)據(jù)結(jié)構(gòu)(sk
67、_buff)進(jìn)行數(shù)據(jù)的傳遞。系統(tǒng)里支持對發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的緩存,提供流量控制機(jī)制,提供對多協(xié)議的支持。</p><p> 所有的Linux網(wǎng)絡(luò)驅(qū)動程序都遵循通用的接口。設(shè)計時采用的是面向?qū)ο蟮姆椒?。一個設(shè)備就是一個對象(device結(jié)構(gòu)),它內(nèi)部有自己的數(shù)據(jù)和方法。每一個設(shè)備的方法被調(diào)用時的第一個參數(shù)都是這個設(shè)備對象本身。這樣這個方法就可以存取自身的數(shù)據(jù)(類似面向?qū)ο蟪绦蛟O(shè)計時的this引用)。 一個網(wǎng)絡(luò)設(shè)備
68、最基本的方法有初始化、發(fā)送和接收。網(wǎng)絡(luò)驅(qū)動的收發(fā)報文流程圖如圖2.4。</p><p> 圖 2.4 網(wǎng)絡(luò)驅(qū)動收發(fā)報文流程圖</p><p> 初始化程序完成硬件的初始化,完成device中變量的初始化和系統(tǒng)資源的申請。發(fā)送程序是在驅(qū)動程序的上層協(xié)議層有數(shù)據(jù)要發(fā)送時自動調(diào)用的。一般驅(qū)動程序中不對發(fā)送數(shù)據(jù)進(jìn)行緩存,而是直接使用硬件的發(fā)送功能把數(shù)據(jù)發(fā)送出去。接收數(shù)據(jù)一般是通過硬件中斷來通知
69、的。在中斷處理程序里,把硬件幀信息填入一個skbuff 結(jié)構(gòu)中,然后調(diào)用netif_rx()傳遞給上層處理。</p><p> 2.3 Linux開源項目</p><p> 1998年4月7日,由Tim O`Reilly出面,組織并主持了一次“自由軟件峰會”,討論“自由軟件”的稱謂問題。最終使用“Open Source”(“開源”)這個詞。2008年Gartner發(fā)表一份研究報告,認(rèn)為
70、在未來幾年,幾乎所有企業(yè)都將使用開源軟件。 Gartner集團(tuán)在一份名為“The State of Open Source 2008”的研究報告中預(yù)測:到2012年,(全球)90%以上的企業(yè)都將使用開源軟件[13]。</p><p> 2.3.1 路由管理之Quagga</p><p> Quagga[14]是開源的路由軟件,為Linux平臺上實現(xiàn)了OSPF版本2,OSPF本版3,RI
71、P版本1和版本2,RIPng以及BGP-4等路由協(xié)議。Quagga是由Kunihiro Ishiguro開發(fā)的GNU Zebra的衍生而來。Quagga樹的目標(biāo)是建立很多緊密聯(lián)系在Quagga周圍的組織,而不是像GNU Zebra現(xiàn)在的集中控制處理一樣。Quagga體系結(jié)構(gòu)包括兩個功能模塊,一個是Vtysh,一個是Zebra。</p><p> Zebra[15]。Zebra是一種TCP/IP路由軟件,它支持B
72、GP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。它符合 GNU的GPL標(biāo)準(zhǔn),可以運行在Linux和其它Unix變體系統(tǒng)上。Zebra是最先進(jìn)的路由軟件之一,最新版本可以從GUN Zebra Web站點上下載。</p><p> Zebra可以利用模塊法對各種協(xié)議進(jìn)行管理,這種設(shè)計是獨一無二的。它可以根據(jù)用戶的需要激活或者停止協(xié)議。</p><p>
73、 除此以外,Quagga體系結(jié)構(gòu)擁有豐富的庫文件來支持協(xié)議的實現(xiàn)和客戶端守護(hù)進(jìn)程的開發(fā),明確的配置和管理。Quaaga的守護(hù)進(jìn)程都是可配置的,可利用Vtysh——Quagga的CLI。Vtysh作為所有守護(hù)進(jìn)程的終端,組織對Quagga所有的命令節(jié)點。</p><p> Quagga體系結(jié)構(gòu)如下圖所示[16]:</p><p> 圖 2.5 Quagga結(jié)構(gòu)圖</p>
74、<p> 2.3.2 Linux邏輯總線之D-Bus</p><p> D-Bus[17](其中D原先是代表桌面“Desktop”的意思)是一個提供簡單的應(yīng)用程序互通訊的自由軟件,它是作為freedesktop.org項目的一部分開發(fā)的。D-Bus深深地受到了DCOP系統(tǒng)的影響而且將在KDE 4版本的release中取代DCOP。它已經(jīng)被應(yīng)用在Qt4,GNOME,WINDOWS以及Maemo等系統(tǒng)中
75、。GNOME也逐漸用它來取代了大部分早期的Bonobo機(jī)制。</p><p> D-Bus是相對來講比較新的進(jìn)程間通信(IPC)機(jī)制。在桌面操作系統(tǒng)中,扮演著一個統(tǒng)一中間層的一個角色。有很多的項目都用了D-Bus,比如:GNOME、Hildon等。 相對于其它的IPC,D-Bus丟掉了一些不必要的、復(fù)雜的東西,也正是因為這個原因,D-Bus比較快、簡單。</p><p> D-Bus不
76、和低層的IPC直接競爭,比如sockets, shared memory or message queues。D-Bus的主要目的是提供如下的一些更高層的功能:</p><p><b> 結(jié)構(gòu)化的名字空間</b></p><p> 獨立于架構(gòu)的數(shù)據(jù)格式</p><p> 支持消息中的大部分通用數(shù)據(jù)元素</p><p&g
77、t; 帶有異常處理的通用遠(yuǎn)程調(diào)用接口</p><p><b> 支持廣播類型的通信</b></p><p> 在系統(tǒng)和用戶之間有明確的區(qū)分,這對于處理多用戶系統(tǒng)非常重要不局限于任何特定的編程語言,同時提供了語言綁定方法,來和一些通用的高級語言綁定,比如C, C++, Python等。D-Bus的設(shè)計得益于在桌面系統(tǒng)中其它IPC的長期經(jīng)驗總結(jié),正是有了這些豐富的經(jīng)
78、驗,才使得D-Bus的設(shè)計得以優(yōu)化。同時D-Bus也不會受累于緩慢的功能改進(jìn)(creeping featurism)。</p><p> D-Bus的架構(gòu)以及一些術(shù)語[18]:在D-Bus中,“bus”是核心的概念,它是一個通道,不同的程序可以通過這個通道做些操作,比如方法調(diào)用、發(fā)送信號和監(jiān)聽特定的信號。通常情況下,只會存在一個系統(tǒng)通道,但是可以有不同的會話通道(每人一個桌面會話)。</p>&l
79、t;p> 通過D-Bus發(fā)送消息通常包含如下步驟:創(chuàng)建和發(fā)送消息給后臺bus daemon進(jìn)程,這個過程中會有兩個上下文的切換,后臺bus daemon進(jìn)程會處理該消息,并轉(zhuǎn)發(fā)給目標(biāo)進(jìn)程。這也會引起上下文的切換目標(biāo)程序接收到消息,然后根據(jù)消息的種類做不同的響應(yīng),要么給個確認(rèn)、要么應(yīng)答、還有就是忽略它。最后一種情況對于“通知”類型的消息而言,前兩種都會引起進(jìn)一步的上下文切換。</p><p> 如果準(zhǔn)備使
80、用D-Bus在不同的進(jìn)程之間傳遞大量的數(shù)據(jù),D-Bus可能不是最有效的方法,最有效的方法是使用共享內(nèi)存,但是對共享內(nèi)存的管理也是相當(dāng)復(fù)雜的。D-Bus的地址和名字是為了把消息正確的送給接收者[19],IPC機(jī)制需要具有某種或某些尋址能力。D-Bus所設(shè)計的尋址方案是非常靈活和高效的。每個通道(bus)都有它私人的名字空間,和別的通道區(qū)分開來。</p><p> 第三章 無線控制器體系結(jié)構(gòu)</p>
81、<p> 3.1 無線控制器的功能</p><p> 無線控制器從根本上說是一種企業(yè)級交換機(jī)。企業(yè)級交換機(jī)屬于高端交換機(jī),一般采用模塊化的結(jié)構(gòu),可作為企業(yè)網(wǎng)絡(luò)骨干構(gòu)建高速局域網(wǎng),所以它通常用于企業(yè)網(wǎng)絡(luò)的最頂層。</p><p> 企業(yè)級交換機(jī)可以提供用戶化定制、優(yōu)先級隊列服務(wù)和網(wǎng)絡(luò)安全控制,并能很快適應(yīng)數(shù)據(jù)增長和改變的需要,從而滿足用戶的需求。對于有更高需求的網(wǎng)絡(luò),企業(yè)級交
82、換機(jī)不僅能傳送海量數(shù)據(jù)和控制信息,更具有硬件冗余和軟件可伸縮性特點,保證網(wǎng)絡(luò)的可靠運行。從它所處的位置可以清楚地看出它自身的要求非同一般,起碼在帶寬、傳輸速率以背板容量上要比一般交換機(jī)要高出許多,所以企業(yè)級交換機(jī)一般都是千兆以上以太網(wǎng)交換機(jī)。企業(yè)級交換機(jī)所采用的端口一般都為光纖接口,這主要是為了保證交換機(jī)高的傳輸速率?,F(xiàn)在通常這么認(rèn)為,如果是作為企業(yè)的骨干交換機(jī)時,能支持500個信息點以上大型企業(yè)應(yīng)用的交換機(jī)為企業(yè)級交換機(jī)[20]。&l
83、t;/p><p> 無線控制器是對傳統(tǒng)的企業(yè)級交換機(jī)的新的擴(kuò)展,綜合了無線交換與有線交換的兩種功能。通過實現(xiàn)WLAN,無線控制器既提供有線用戶的大量接入,同時又可提供多個AP及大量無線用戶接入。</p><p> 無線控制器通過集中管理簡化AP來解決無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)的無縫接入[21]。在這種構(gòu)架中,無線交換機(jī)替代了原來二層交換機(jī)的位置,輕量級AP(Light-Weight A
84、P)(也稱智能天線Intelligent Antenna)取代了原有的企業(yè)級AP。通過這種方式,就可以在整個企業(yè)范圍內(nèi)把安全性、移動性、QoS和其他特性集中起來管理。</p><p> 無線交換機(jī)的應(yīng)用使網(wǎng)絡(luò)管理員在混合和匹配用戶安全性能時變得更加靈活,無須再升級或重新配置AP。安全性能包括802.1x、WEP、TKI協(xié)議和AES等等[22],囊括了從第2層驗證和加密到第3層VPN安全機(jī)制。</p>
85、<p> 無線LAN交換技術(shù)也可防止非法接入點的入侵。傳統(tǒng)的交換機(jī)加企業(yè)級AP的做法是無法控制非法AP接入的,而且檢查非法AP的接入也非常麻煩。而采用無線交換機(jī)時,當(dāng)非法接入點連接到網(wǎng)絡(luò),WLAN交換機(jī)會驗證它是否是被允許的設(shè)備或用戶。如果交換機(jī)確定該設(shè)備是非法的,它將關(guān)閉非法接入點并自動告警。并且由于對于無線信號的調(diào)制、數(shù)據(jù)的轉(zhuǎn)發(fā)、安全性控制和遠(yuǎn)程管理處理都是分布式的,每臺AP都需要相當(dāng)強(qiáng)的處理能力;而對于無線交換機(jī)加
86、輕量級AP的方案,由于所有的處理能力都集中在一臺無線交換機(jī)上,分布的輕量級AP只是非常簡單的受控設(shè)備,只負(fù)責(zé)發(fā)送接收無線信號,因此無需很強(qiáng)的處理能力,也就大幅降低了成本,這樣整個無線局域網(wǎng)的成本就大大降低了[23]。</p><p> 另一方面,無線交換機(jī)可以在輕量級AP開啟的時候,自動給輕量級AP升級固件或更新配置,而不像普通的AP那樣,需要由管理員來一臺一臺的進(jìn)行固件升級或更新配置,大大減小了管理的重復(fù)勞動
87、強(qiáng)度,減小了管理開支。</p><p> 無線交換機(jī)通過實時監(jiān)控空間、網(wǎng)絡(luò)增長和用戶密度等,動態(tài)地調(diào)整帶寬、接入控制、QoS和移動用戶等參數(shù),因而成為WLAN系統(tǒng)的大腦。</p><p> 無線交換機(jī)可以動態(tài)地智能地調(diào)整輕量級AP的信道和功率,這項突破性的技術(shù)是獨一無二的。例如,當(dāng)某個輕量級AP失效時,WLAN交換機(jī)將自動探測失敗點,指導(dǎo)附近的輕量級AP調(diào)整功率和信道設(shè)置來進(jìn)行補(bǔ)償。當(dāng)
88、一個新的AP加入,無線交換機(jī)可自動探測,上載適當(dāng)?shù)墓β屎托诺涝O(shè)置,并調(diào)整附近AP的信道和減小其功率,以免發(fā)生沖突。由于無線交換機(jī)是一種專用系統(tǒng),AP和交換機(jī)之間需要專用的隧道協(xié)議和管理協(xié)議,無線交換機(jī)的標(biāo)準(zhǔn)化協(xié)議正在草擬之中,其核心是輕量接入點協(xié)議(LWAPP, Light-weight Access Point Protocol),專門規(guī)范交換機(jī)和AP間的配置信息,以實現(xiàn)不同廠家WLAN交換機(jī)和AP之間的互聯(lián)。</p>
89、<p> 3.2 無線控制器的體系結(jié)構(gòu)</p><p> 本文作者在實習(xí)中所參與的項目是公司開發(fā)的有線無線一體化交換機(jī)AX7000和AX5000的研發(fā)。</p><p> 這兩款網(wǎng)絡(luò)設(shè)備都是基于MIPS架構(gòu),使用Marvell公司的高速轉(zhuǎn)發(fā)芯片,基于Linux的開發(fā)。此產(chǎn)品是市場上第一款集無線和有線一體化的企業(yè)級交換機(jī),現(xiàn)已在很多單位使用,并獲得了客戶的好評。下面將以AX7
90、000為主詳細(xì)論述交換機(jī)的接口管理設(shè)計與實現(xiàn)。</p><p> 3.2.1 功能體系結(jié)構(gòu)模塊</p><p> 首先是三層交換的概念。三層交換(也稱多層交換技術(shù),或IP交換技術(shù))是相對于傳統(tǒng)交換概念而提出的。眾所周知,傳統(tǒng)的交換技術(shù)是在OSI 網(wǎng)絡(luò)標(biāo)準(zhǔn)模型中的第二層――數(shù)據(jù)鏈路層進(jìn)行操作的,而三層交換技術(shù)在網(wǎng)絡(luò)模型中的第三層實現(xiàn)了分組的高速轉(zhuǎn)發(fā)。簡單的說,三層交換技術(shù)就是“二層交換技
91、術(shù)加三層轉(zhuǎn)發(fā)”。但它不是簡單的二層交換設(shè)備硬件和三層路由交換硬件的疊加[24]。三層交換技術(shù)的出現(xiàn),解決了局域網(wǎng)中網(wǎng)段劃分之后網(wǎng)段中的子網(wǎng)必須依賴路由器進(jìn)行管理的局面,解決了傳統(tǒng)路由器低速、復(fù)雜所造成的網(wǎng)絡(luò)瓶頸問題。</p><p> 從硬件的實現(xiàn)上看,目前第二層交換機(jī)的接口模塊都是通過高速背板/總線交換數(shù)據(jù)的。在第三層交換機(jī)中,與路由器有關(guān)的第三層路由硬件模塊也插接在高速背板/總線上,這種方式使得路由模塊可以
92、與需要路由的其他模塊間高速地交換數(shù)據(jù),從而突破了傳統(tǒng)的外接路由器接口速率的限制(10Mbit/s---100Mbit/s)。在軟件方面,第三層交換機(jī)將傳統(tǒng)的基于軟件的路由器重新進(jìn)行了界定:</p><p> 數(shù)據(jù)封包的轉(zhuǎn)發(fā):如IP封包的轉(zhuǎn)發(fā),這些有規(guī)律的過程通過硬件高速實現(xiàn); </p><p> 第三層路由軟件:如路由信息的更新、路由表維護(hù)、路由計算、路由的確定等功能,用優(yōu)化、高效的軟
93、件實現(xiàn)。</p><p> AX7000是實習(xí)公司研發(fā)的高端產(chǎn)品,在有線網(wǎng)絡(luò)的基礎(chǔ)上實現(xiàn)WLAN,通過AP和交換機(jī)的Capwap隧道協(xié)議實現(xiàn)無線網(wǎng)絡(luò)的轉(zhuǎn)發(fā)、控制、管理。當(dāng)然此產(chǎn)品也可只用于有線網(wǎng)絡(luò)就如同其他的高端三層交換機(jī)一樣。</p><p> AX7000的體系結(jié)構(gòu)如下圖所示:</p><p> 圖 3.1 AX7000系統(tǒng)結(jié)構(gòu)圖</p>&
94、lt;p> 如圖3.1所示,AX7000功能模塊主要有以下模塊,</p><p> 硬件模塊;硬件主要是指Marvell高速ASIC轉(zhuǎn)發(fā)芯片和多核并行CPU。</p><p> 操作系統(tǒng);使用Linux2.6內(nèi)核。</p><p> 芯片驅(qū)動模塊;使芯片在Linux系統(tǒng)上可正常運轉(zhuǎn)。</p><p> 接口管理;管理Marve
95、ll高層驅(qū)動SDK,控制交換芯片,給用戶交互的命令行,給應(yīng)用層的協(xié)議提供接口函數(shù)。</p><p> 應(yīng)用層;主要分為無線網(wǎng)絡(luò)的協(xié)議和有線網(wǎng)絡(luò)的橋協(xié)議和路由協(xié)議以及配置命令行。這些協(xié)議維持自己的狀態(tài)機(jī),處理分流給自己的報文,命令行模塊則提供給用戶對交換機(jī)進(jìn)行配置的功能。</p><p> 針對AX7000的設(shè)計,對這些功能模塊的抽象可以很好理解網(wǎng)絡(luò)報文在AX7000中的處理流程。當(dāng)報文
96、通過硬件接口進(jìn)入交換機(jī),首先它被存儲在交換芯片的存儲單元中,然后報文根據(jù)硬件芯片中的表項,進(jìn)行轉(zhuǎn)發(fā)。如果是可以二層轉(zhuǎn)發(fā),則直接被交換芯片轉(zhuǎn)發(fā)出去,這個報文的處理流程結(jié)束。如果報文要進(jìn)行IP轉(zhuǎn)發(fā),則報文根據(jù)自己的目的IP在路由表中查找,如果找到本身對應(yīng)的路由表項,則根據(jù)路由的下一條轉(zhuǎn)發(fā),報文到此處理結(jié)束。如果報文是特殊報文比如是CAPWAP或RIP或其他特殊報文,則報文通過接口管理模塊分流到相應(yīng)的應(yīng)用協(xié)議處理,報文到此處理結(jié)束。當(dāng)交換機(jī)處
97、于不同的網(wǎng)絡(luò)中時,給交換機(jī)配置VLAN、IP、QoS等等其他功能,則通過命令行功能來實現(xiàn),而這些的設(shè)置最終都通過接口管理提供的函數(shù),設(shè)置到硬件的相應(yīng)寄存器中。</p><p> 3.2.2 物理體系結(jié)構(gòu)模塊</p><p> AX7000交換機(jī)CPU采用Cavium network 公司的CN38XX,這是一款多MIPS64核、集成多I/O,硬件加速器等功能的網(wǎng)絡(luò)處理器。該處理器特點如
98、下[25]:</p><p> 單芯片多核:最多16 MIPS64 cores/芯片。</p><p> 集成高性能網(wǎng)絡(luò)接口:最大4×10/100/1000 ethernet MACs(RGMII) 或者SPI4.2接口。</p><p> 集成64bit 133M PCI/PCI-X接口。</p><p> 數(shù)據(jù)加控制雙平
99、面支持。</p><p> 最多可處理30milion 個包每秒。</p><p><b> 硬件包處理。</b></p><p> 硬件工作隊列,調(diào)度,排序和同步。</p><p> 硬件TCP加速器,包括校驗和和計數(shù)器。</p><p> 高帶寬的L2 catch。</p>
100、;<p> 充分連貫的內(nèi)存系統(tǒng)。</p><p> 72/144bit DDR2 DRAM接口,最大800MHz。</p><p> AX7000高速ASIC芯片采用Marvell公司的DX家族的275和804兩塊芯片。此類芯片為用戶提供1G加密吞吐率和最多24GE/4SPF/2*10GE個端口,適用于部署中型企業(yè)。除普通的交換管理功能外,該處芯片有特點如下:</
101、p><p> 無阻塞,全線速性能;</p><p> 最優(yōu)的MAC地址配置空間;</p><p> 通過PCI或MII/RGMII管理;</p><p> 先進(jìn)的QoS,提供4到8個優(yōu)先級隊列;</p><p> PCL實現(xiàn)QoS和安全管理;</p><p> 動態(tài)管理片上存儲單元。&l
102、t;/p><p> AX7000內(nèi)存采用2-4G DDR667,使用冗余電源,支持業(yè)務(wù)板、風(fēng)扇熱插拔。AX7000的硬件架構(gòu)圖[26]如下:</p><p> 圖 3.2 AX7000硬件架構(gòu)圖</p><p> 如上圖所顯示,AX7000的兩塊交換芯片引出了四個插槽。芯片作為CPU的外設(shè),以兩種方式連到CPU,一種是直接掛到PCI總線上,一種是通過MV82210
103、芯片用SPI通道相連。CPU的板載網(wǎng)卡也提供4*GE/SPF口,這些口是通過CPU來進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)主要是通過Linux內(nèi)核提供的Linux TCP/IP協(xié)議棧來進(jìn)行轉(zhuǎn)發(fā)。這樣就可以把CPU模塊抽象為一個高速的與804、275級聯(lián)的第三塊交換芯片來看待,相應(yīng)的通過一些特定的虛擬技術(shù)對CPU模塊做一些性能的軟件支持,就可以為整個系統(tǒng)提供統(tǒng)一的操作,而不是同一個系統(tǒng)上跑兩套用戶交互命令結(jié)構(gòu)。這就是接口管理所要做的的一部分工作。</p&g
104、t;<p> 最終AX7000所成型的產(chǎn)品如下圖形所示。</p><p> 圖 3.3 AX7000實圖</p><p> AX7000有線無線一體化交換機(jī)具有的特點:</p><p> 高度集成的有線無線一體化設(shè)計;</p><p> 靈活,強(qiáng)大的混合組網(wǎng)能力;</p><p> 集中式WL
105、AN交換和智能RF管理;</p><p> Triple-play(數(shù)據(jù)/音頻/視頻)實時支持;</p><p> 高達(dá)88G的數(shù)據(jù)交換。</p><p> AX7000的各個物理硬件模塊從底層對以上的特點進(jìn)行了有力的支撐。而另一方面的主要支撐就是基于這些硬件的軟件結(jié)構(gòu),接口管理就是這個架構(gòu)中的核心。因此接口的定義、組織以及提供的操作函數(shù)都是這個軟件設(shè)計中的重
106、中之重。</p><p> 第四章 接口管理需求分析</p><p> 接口管理是交換機(jī)的核心軟件模塊。接口管理涉及到底層驅(qū)動和上層對用戶交互的作用,同時要對TCP/IP各層的功能協(xié)議的控制提供接口。接口管理在交換機(jī)軟件中與其他模塊有很強(qiáng)的聯(lián)系,所以對于接口管理的設(shè)計需要很好的包容性和穩(wěn)定性。</p><p> 4.1 接口管理概念</p>&l
107、t;p> 接口模型體現(xiàn)了在許多工程設(shè)計中都具有的結(jié)構(gòu)化思想。接口管理即對接口的管理,它包括了接口的定義,接口的組織,接口的操作等等。如第一章中所述接口管理從總體上說,其內(nèi)容涵蓋了系統(tǒng)中所有底層硬件驅(qū)動、上層應(yīng)用,是軟件層面上對系統(tǒng)的Port、VLAN兩個核心結(jié)構(gòu)體的操作,主要目的是為了高效合理的管理交換機(jī),并且以它為核心進(jìn)行軟件開發(fā),容易擴(kuò)展功能,便于版本的移植。因此接口管理邏輯關(guān)系復(fù)雜,與系統(tǒng)軟硬件功能模塊緊密相關(guān),也是中高端
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于無線控制器的接口管理
- 基于無線控制器的接口管理.pdf
- 智能小車的無線控制器設(shè)計畢業(yè)論文
- 畢業(yè)論文---基于lpc2138無線終端控制器的硬件設(shè)計
- 基于fpga電梯控制器設(shè)計畢業(yè)論文
- 畢業(yè)論文-基于fpga的電梯控制器設(shè)計
- 基于fpga電梯控制器的設(shè)計畢業(yè)論文
- 畢業(yè)論文---基于單片機(jī)控制的電梯控制器
- 畢業(yè)論文--交通控制器設(shè)計
- 畢業(yè)論文——交通控制器設(shè)計
- 基于fpga的微波爐控制器【畢業(yè)論文】
- 基于matlab的pid控制器設(shè)計 畢業(yè)論文正式
- 基于usb接口的溫度控制器畢業(yè)設(shè)計
- 直流電機(jī)無線遙控控制器設(shè)計【畢業(yè)論文】
- 畢業(yè)論文--基于單片機(jī)控制的步進(jìn)電機(jī)控制器
- 畢業(yè)論文-基于fpga的空調(diào)控制器的設(shè)計
- 畢業(yè)論文---模糊pid控制器設(shè)計
- 太陽能控制器畢業(yè)論文
- 基于fpga的交通燈控制器設(shè)計——畢業(yè)論文
- 無線遙控畢業(yè)論文--基于at89c2051四路無線遙控節(jié)能燈控制器
評論
0/150
提交評論