基于click自定義協(xié)議軟件路由器的設計及實現(xiàn)_第1頁
基于click自定義協(xié)議軟件路由器的設計及實現(xiàn)_第2頁
基于click自定義協(xié)議軟件路由器的設計及實現(xiàn)_第3頁
基于click自定義協(xié)議軟件路由器的設計及實現(xiàn)_第4頁
基于click自定義協(xié)議軟件路由器的設計及實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-網絡協(xié)議設計實驗設計文檔基于click自定義協(xié)議軟件路由器的設計與實現(xiàn)二一四年十二月目 錄一、實驗概要及實驗設計1一實驗概要1二實驗目的1三實驗分析11、協(xié)議分析12、協(xié)議設計2二、實驗設計4一實驗流程4二click路由器總體設計51.路由器報文分類概要設計52.路由器報文轉發(fā)概要設計63.Label標簽信息庫構造94.優(yōu)先級調度概要設計95.基于優(yōu)先級的限速功能的概要設計10三click路由器轉發(fā)流程設計111.PSP路由轉發(fā)流程詳細設計112.Label報文轉發(fā)詳細設計12四主要組件設計141.Fastpspsource組件142.LableRouteTable153.LableLook

2、up154.RateLimit16三、實驗演示17一PSP路由轉發(fā)測試171.實驗拓撲圖172.實驗測試方法173.配置文件174.測試結果185.結果總結20二基于Label的路由轉發(fā)測試211.實驗拓撲圖212.配置文件213.測試結果214.結果總結21三優(yōu)先級隊列調度功能測試211.實驗拓撲圖212.實驗測試方法213.配置文件224.測試結果235.結果總結24四標簽流按優(yōu)先級分別進展限速功能測試241.實驗拓撲圖242.配置文件253.測試結果264.結果總結27四、實驗分工27. z-一、實驗概要及實驗設計一實驗概要本實驗目的為基于已有的click開源軟件實現(xiàn)一個自定義協(xié)議的軟件

3、路由器完整轉發(fā)流程,具體包含五個核心任務:報文分類處理;PSP報文分組轉發(fā)流程包含PSP頭檢查、TTL減一、轉發(fā)表;定長標簽交換流程包含標簽頭解封裝、標簽表、標簽頭封裝;標簽流8個優(yōu)先級隊列調度;標簽流按照優(yōu)先級分別進展限速。二實驗目的通過實驗設計,深入理解軟件路由器的根本原理、組成和實現(xiàn),掌握計算機網絡研究所需的根本設計技能,包括系統(tǒng)設計能力、軟件編程能力、整體表述能力和新思想的實驗驗證能力,為開展計算機網絡方向的深入研究奠定實際驗證根底。三實驗分析1、協(xié)議分析一個完整的路由協(xié)議需要完成的功能包含以下容:制定指導數(shù)據(jù)報文分組從一個網絡到另一個網絡的規(guī)定和標準;創(chuàng)立路由表,并維護網絡拓撲構造;

4、運行路由協(xié)議,執(zhí)行路由選擇和分組轉發(fā)功能。這對我們接下來的協(xié)議設計提出了根本的要求,即對于網絡中的每一層都需要定義報文的格式,然后對于報文在網絡中的發(fā)送、接收和轉發(fā)都有穩(wěn)定的拓撲構造。2、協(xié)議設計一個自定義的協(xié)議簇ABC,包括地址編址構造、網絡互連與路由轉發(fā)等多個簡單協(xié)議,對其進展詳細說明如下:(1) 地址編制構造64位,其中前16位為網絡標識,后48為接口標識。實際操作中,接口標識為該接口的MAC地址,與前16位拼接為64位地址。(2) 鏈路層協(xié)議,規(guī)定了以太網的封裝格式如下:其中,IP報文類型定義為0*6000,標簽LABEL報文類型定義為0*6001。(3) 2.5層標簽交換協(xié)議,規(guī)定了

5、標簽交換頭的封裝格式,并約定標簽交換頭后默認為PSP格式的報文。(4) 網絡層協(xié)議,定義了網絡層報文頭格式。其中TOS為0-15,表示報文的傳輸優(yōu)先級;標識符標注報文的序號;載荷長度為不包括報文頭的報文容長度;下一報頭類型為1時表示為ABC_ICMP協(xié)議,為2時表示為ABC_UDP協(xié)議;跳數(shù)限制最大為64,并且每經過一個路由器,其值減1,其值為0時報文被丟棄;源地址和目的地址分別記錄發(fā)送方和目的方地址。(5) 定義了ABC_UDPABC不可靠傳輸協(xié)議報文頭格式。(6) 根本實驗拓撲如下圖,根據(jù)以太網報文頭中包含的以太網的目的地址、源地址和報文類型, ABC協(xié)議就能實現(xiàn)一個簡單的報文收發(fā)過程。(

6、7) 包含轉發(fā)過程的實驗拓撲一個簡單的轉發(fā)過程包含以下的步驟:從發(fā)送方接收報文;更改報文的源地址以及目的地址;通過端口發(fā)出報文。示意圖如下:二、實驗設計一實驗流程1. 準備工作a) 下載修改后的Click源代碼;b) 安裝Fedora虛擬機,配置開發(fā)、測試環(huán)境;c) 編譯源碼,運行Demo實驗;d) 學習Click根底知識,查看源碼,了解組件的設計方法和組件的配置文件。2. 系統(tǒng)概要設計充分了解實驗任務,進展初步的概要設計,設計包括組件的功能和組織。3. 編碼4. 實驗環(huán)境搭建5. 代碼集成和測試首先各個組件需要通過單元測試,最后集成起來進展系統(tǒng)測試。6. 編寫實驗報告文檔二click路由器總

7、體設計1. 路由器報文分類概要設計報文主要分為四種類型:ARP Query報文、ARP Response報文、PSP報文、Label報文。從輸入組件中獲取數(shù)據(jù)包,發(fā)送到數(shù)據(jù)包分類器。概要圖如下列圖所示:其中,根據(jù)以太網頭部類型信息進展分類,如下所示:類型碼0*08060*60000*60010*08062. 路由器報文轉發(fā)概要設計路由器報文轉發(fā)的概要設計圖如下所示,其中包含兩條主線:一是基于PSP協(xié)議的路由轉發(fā),二是基于Label標簽的路由轉發(fā)。兩條主線的公用組件的作用如下表所示:FromDevice從指定端口獲取數(shù)據(jù)包,轉發(fā)給下一個組件Classifier數(shù)據(jù)包類型分類器,根據(jù)以太網頭部類型

8、信息把數(shù)據(jù)分為四類:ARP Query 、ARP Response 、PSP 報文、Label 報文TTL - 1將報文的TTL 進展減一操作,當TTL為時,不再轉發(fā)報文ARP Query查詢目的IP對應的Mac地址Modify Ether Header修改以太網頭部ToDevice將數(shù)據(jù)包發(fā)送到指定端口對于PSP報文的路由轉發(fā),其中的兩個組件功能如下:Get Dest Address獲取PSP報文的目的地址Lookup Router Table查詢路由表,得到要轉發(fā)的端口對于Label報文的路由轉發(fā),其中的兩個組件的功能如下:Lookup LIB根據(jù)標簽號,查詢標簽信息庫,得到新的標簽號和轉

9、發(fā)端口。Modify Label for ne*t jump修改標簽頭部信息中的標簽號為查表得到新標簽號(1) 對于PSP報文路由轉發(fā),首先根據(jù)PSP頭部中的目的地址查詢路由表,得到轉發(fā)端口;然后進展TTL-1、修改Ether頭部中的目的Mac,然后從查詢到的轉發(fā)端口進展發(fā)送。(2) 對于急于標簽的路由轉發(fā),首先根據(jù)Label頭部的標簽號查詢標簽信息庫,得到新的標簽號和轉發(fā)端口,并修改Label頭部的標簽號為新的標簽號。然后進展TTL-1,修改Ether頭部中的目的Mac,然后從查詢到的轉發(fā)端口進展發(fā)送。3. Label標簽信息庫構造標簽信息庫維護基于標簽交換的路由轉發(fā)信息。當一個帶有標簽的報

10、文進入路由器的時候,首先根據(jù)標簽頭部的Label ID查找標簽信息庫,得到下一跳的Label ID和轉發(fā)端口。其構造信息如下:4. 優(yōu)先級調度概要設計對于標簽交換,當輸入組件獲取數(shù)據(jù)包,經數(shù)據(jù)分類器分類后,確定為Label報文,轉發(fā)給優(yōu)先級分類器。優(yōu)先級分類器根據(jù)Label頭部中的QOS字段進展優(yōu)先級判定,分別參加不同優(yōu)先級的隊列中。優(yōu)先級調度組件根據(jù)優(yōu)先級調度算法進展調度,從不同優(yōu)先級的隊列中獲取數(shù)據(jù)包,發(fā)送到待發(fā)送數(shù)據(jù)隊列。其中,調度算法是為了保證低優(yōu)先級的報文不至于餓死,采用時間片輪轉的方式,即給高優(yōu)先的隊列分配更多的時間。5. 基于優(yōu)先級的限速功能的概要設計三click路由器轉發(fā)流程設

11、計1. PSP路由轉發(fā)流程詳細設計組件/流程功能描述FastPSPSource組件按照一定的速度產生PSP報文,模擬發(fā)送端FromDevice組件從指定的端口獲取數(shù)據(jù)包,轉發(fā)到下一個組件Classifier組件數(shù)據(jù)包分類器,根據(jù)以太網頭部的類型信息進展分類,PSP報文的類型信息為0*6000Get Dest Address該步驟從PSP報文頭部獲取目的地址,用來查詢路由表,獲取轉發(fā)端口Lookup Router table根據(jù)目的地址,查找路由表,獲取轉發(fā)端口TTL-1將報文TTL進展減一操作ARP QueryARP查詢,獲取下一跳的目的Mac地址Modify Ethernet Header根

12、據(jù)查詢到的下一跳目的Mac地址,修改報文以太網頭部目的Mac字段Add to Queue添加到待發(fā)送數(shù)據(jù)包的隊列中ToDevice組件從Queue中獲取數(shù)據(jù)包,從指定網口發(fā)送出去2. Label報文轉發(fā)詳細設計發(fā)送者生成PSP報文,經過AddLabelHeader組件添加標簽頭,發(fā)送到路由器;Click 路由器從網口承受數(shù)據(jù),進過分類器后,確定為基于標簽交換的報文。然后查詢標簽信息庫,并修改下一條標簽號,經過TTL-1,目的MAC地址修改,轉發(fā)到相應端口。承受者從網口獲取數(shù)據(jù)包,丟掉LabelHeader。組件/流程功能介紹AddLabelHeader在普通PSP數(shù)據(jù)包上添加標簽頭信息,讓路由

13、器可以基于標簽進展交換Lookup LIB查詢標簽信息庫,獲取下一跳Label ID和輸出端口Modify Label for ne*t jump修改標簽頭 Label ID字段,讓下一跳路由可以轉發(fā)Remove Label Header移除Label Header,得到PSP報文四主要組件設計1. Fastpspsource組件組件名字Fastpspsource功能描述按照一定的速度生成PSP報文端口類型PORTS_0_1 0個輸入端口,一個輸出端口處理方式PULL方式參數(shù)描述FASTPSPSOURCE(RATE, LIMIT, LENGTH, SRCETH, SRCIP, SPORT, D

14、STETH, DSTIP, DPORT)RATE:發(fā)送速度;LIMIT:生成最大報文數(shù)量;LENGTH:報文的長度SRCETH:源Mac地址SRCIP:源IP地址SPORT:源端口號DSTETH:目的Mac地址DSTIP:目的IP地址DPORT:目的端口號2. LableRouteTable主要功能:定義標簽信息構造,維護標簽信息庫,可以向里面添加、查詢、刪除標簽信息。3. LableLookup組件名字LableLookup功能描述(1) 靜態(tài)配置標簽信息庫(2) 實現(xiàn)基于標簽的查找轉發(fā)端口類型一個輸入端口,多個輸出端口處理方式PUSH方式當一個帶有標簽的報文發(fā)送到LabelLookup組件

15、,首先獲取Label標簽頭部的標簽號,查找標簽信息庫,以獲取“Out Label和“Out Port,然后修改標簽頭部的標簽號為“Out Label,并從“Out Port端口發(fā)送出去。流程圖如下:4. RateLimit組件名字RateLimit功能描述限制一個報文流的速度,即每秒發(fā)送多少報文端口類型PORTS_1_1 1個輸入端口,1個輸出端口處理方式PULL參數(shù)描述RateLimit (RATE)RATE:報文流的最大速率,即最多每秒發(fā)送多少個報文三、實驗演示一PSP路由轉發(fā)測試1. 實驗拓撲圖2. 實驗測試方法實驗拓撲圖如下所示:Client 從Eth1網口發(fā)送數(shù)據(jù)到Router1 E

16、th1,Router1轉發(fā)到Router2,Router2收到數(shù)據(jù)后再次轉發(fā)給Client 的Eth2,Client收到數(shù)據(jù)后打印消息容。3. 配置文件i. Client 發(fā)送報文配置文件FastPSPSource(2,2000,128,00:0C:29:0E:9F:0D,0*0100000A,2345,00:0C:29:61:C0:3E ,0*0200000A,2346) -> PSPPrint() -> ToDevice(eth1);ii. Client 承受報文配置文件FromDevice(eth2) -> PSPPrint() -> Discard;iii. R

17、outer1 轉發(fā)報文配置文件psp : Print("Forward PSP Pkt") -> rt : PSPLookup(.1.0.0.0.0 0,.2.0.0.0.0 0) ;c0 : Classifier(12/0600, -);out0 : Queue(200) -> todevice0 : ToDevice(eth1);FromDevice(eth1) -> c0;c00->psp;c01->Discard;rt0-> PSPMacap(00:0C:29:F4:DD:E6) -> Print(rt2) -> ou

18、t0;iv. Router2 轉發(fā)報文配置文件psp : Print("Forward PSP Pkt") -> rt : PSPLookup(.1.0.0.0.0 1,.2.0.0.0.0 1) ;c0 : Classifier(12/0600, -);out0 : Queue(200) -> todevice0 : ToDevice(eth2);FromDevice(eth1) -> c0;c00->psp;c01->Discard;rt0->Discard;rt1-> PSPMacap(00:0C:29:0E:9F:17) -

19、> Print(rt2) -> out0;4. 測試結果v. 客戶端發(fā)送報文vi. Router1 建立路由表以及轉發(fā)vii. Router2 建立路由表以及轉發(fā)viii. Client 承受到數(shù)據(jù)包并打印5. 結果總結實驗采用通過模擬兩臺路由器之間的路由轉發(fā)來測試,從實驗結果來看,Client 從Eth1網口發(fā)送出去的數(shù)據(jù)包,進過Router1和Router2的路由轉發(fā)后,能成功到達目的端。該實驗結果說明,基于PSP報文的路由轉發(fā)功能完整實現(xiàn)。二基于Label的路由轉發(fā)測試1. 實驗拓撲圖2. 配置文件3. 測試結果4. 結果總結三優(yōu)先級隊列調度功能測試1. 實驗拓撲圖2. 實驗

20、測試方法Client發(fā)送優(yōu)先級不同的數(shù)據(jù)包到Router1。Router1在接收到數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包優(yōu)先級不同,放置到相應的優(yōu)先級隊列中。由于采用包限流調度算法,越高的優(yōu)先級隊列能在一秒通過更多的數(shù)據(jù)包,越低的優(yōu)先級隊列通過的數(shù)據(jù)包個數(shù)越少。因此,低優(yōu)先級的數(shù)據(jù)包會被緩存在隊列中,高優(yōu)先級的數(shù)據(jù)包能盡快地從隊列中被讀出,使得從優(yōu)先級隊列中讀出數(shù)據(jù)包的順序和Client發(fā)送數(shù)據(jù)包的順序會有差異。通過比照讀出數(shù)據(jù)包和發(fā)送數(shù)據(jù)包的順序,我們就可以驗證優(yōu)先級隊列調度的功能是否正常、合理。Client發(fā)送數(shù)據(jù)包順序如下:依次分別發(fā)送5個優(yōu)先級為n的數(shù)據(jù)包,其中n從8變化到1,并循環(huán)往復。即發(fā)送5個優(yōu)先

21、級為8的數(shù)據(jù)包,再發(fā)送5個優(yōu)先級為7的數(shù)據(jù)包······,并循環(huán)往復。其中我們設定數(shù)據(jù)包QoS位的圍為1-8。其中1代表最高優(yōu)先級,8代表最低優(yōu)先級。3. 配置文件1) Router1接收端局部配置文件如下所示:c : Classifier(14/41, 14/42, 14/43, 14/44, 14/45, 14/46, 14/47, 14/48, -);ps : PrioSched;queue1 : Queue(100);queue2 : Queue(100);queue3 : Queue(100);queue4 : Queue(

22、100);queue5 : Queue(100);queue6 : Queue(100);queue7 : Queue(100);queue8 : Queue(100);queue9 : Queue(100);FromDevice(eth1) -> c;c0-> queue1 -> Shaper(6) -> ps;c1-> queue2 -> Shaper(6) -> 1ps;c2-> queue3 -> Shaper(3) -> 2ps;c3-> queue4 -> Shaper(3) -> 3ps;c4->

23、 queue5 -> Shaper(2) -> 4ps;c5-> queue6 -> Shaper(2) -> 5ps;c6-> queue7 -> Shaper(1) -> 6ps;c7-> queue8 -> Shaper(1) -> 7ps;c8-> queue9 -> Shaper(10) -> 8ps;ps -> Discard;根據(jù)數(shù)據(jù)包QoS的不同,定義一個輸出端口數(shù)為9的分類器。優(yōu)先級調度組件PrioSched采用時間片調度方式。同時,定義了9個大小為100的隊列,最后一個隊列處理其他的數(shù)

24、據(jù)包。4. 測試結果1) Client數(shù)據(jù)包發(fā)送順序如下列圖所示:2) Router1從優(yōu)先級隊列中讀出數(shù)據(jù)包的順序如下列圖所示:比照以上數(shù)據(jù)包順序,可以發(fā)現(xiàn),產生數(shù)據(jù)包的優(yōu)先級是從大變化到小,而通過優(yōu)先級隊列的調度,從隊列中讀出的數(shù)據(jù)包的優(yōu)先級從小變化到大。由于對每秒讀出各隊列的數(shù)據(jù)包數(shù)量進展了限制,因此不會有產生低優(yōu)先級被餓死的現(xiàn)象。5. 結果總結四標簽流按優(yōu)先級分別進展限速功能測試1. 實驗拓撲圖1) 實驗測試方法針對不同的優(yōu)先級,設置RateLimit組件不同的參數(shù)以到達限速的目的,報文由發(fā)送方產生并在一秒鐘之發(fā)送200個報文給接收方,接收方接收時進展基于優(yōu)先級的限速,并將結果進展打印

25、。2. 配置文件a) 報文發(fā)送端FastPSPSource(200,200, 128, 00:0c:29:34:3e:ad, 0*800a000a, 2345,00:0C:29:eb:05:0f,0*810a000a,2346) -> ToDevice(eth1);b) 報文接收端: Classifier(13/0041, 13/0042, 13/0043, 13/0044, 13/0045, 13/0046, 13/0047, 13/0048, -);queue1 : Queue(100);queue2 : Queue(100);queue3 : Queue(100);queue4 : Queue(100);queue5 : Queue(100);queue6 : Queue(100);queue7 : Queue(100);queue8 : Queue(100);queue9 : Queue(100);ps : PrioSched;FromDevice(eth1) -> c;c0-> queue1 ->Print

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論