下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、題目網(wǎng)絡(luò)連通性測(cè)試軟件的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名班級(jí)學(xué)號(hào)專業(yè)一. 對(duì)指導(dǎo)教師下達(dá)的課題任務(wù)的學(xué)習(xí)與理解internet是一個(gè)跨越全球的計(jì)算機(jī)網(wǎng)絡(luò)。通過internet可以在全球范圍內(nèi)將信息快速、有效和方便地傳遞。internet就像信息高速公路,它是人們?nèi)粘I畹闹匾M成部分,所以對(duì)網(wǎng)絡(luò)連通性的研究很有實(shí)用價(jià)值。本次畢設(shè)主要是研究網(wǎng)絡(luò)的連通性,并研究網(wǎng)絡(luò)的帶寬和拓?fù)涮匦?。設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于icmp協(xié)議的網(wǎng)絡(luò)連通性測(cè)試軟件,用于測(cè)試網(wǎng)絡(luò)的連通性。當(dāng)源主機(jī)與目的主機(jī)之間的鏈路可達(dá)時(shí),給出鏈路的時(shí)延特性,和所經(jīng)歷的路由;當(dāng)源主機(jī)與目的主機(jī)之間的鏈路不可達(dá)時(shí),報(bào)告故障結(jié)點(diǎn)的ip地址。二. 閱讀文獻(xiàn)資料進(jìn)行調(diào)
2、研的綜述1 winsock api編程傳統(tǒng)的網(wǎng)絡(luò)api有netbios、重定向器、郵槽和管道,現(xiàn)今比較普遍使用的網(wǎng)絡(luò)編程是winsock api。winsock api是一種與協(xié)議無關(guān)的網(wǎng)絡(luò)api。2 tcp/ip協(xié)議tcp/ip協(xié)議包含的范圍非常的廣,是一種四層協(xié)議,包含了各種硬件軟件需求的定義,我們這里只介紹軟件方面的知識(shí)。udp協(xié)議(user datagram protocol 用戶數(shù)據(jù)報(bào)協(xié)議)。是一種保護(hù)消息邊界的,不保障可靠數(shù)據(jù)的傳輸。tcp協(xié)議(transmission control protocol 傳輸控制協(xié)議)。是一種流傳輸?shù)膮f(xié)議.他提供可靠的,有序的,雙向的,面向連接的傳
3、輸。其中,保護(hù)消息邊界,就是指?jìng)鬏攨f(xié)議把數(shù)據(jù)當(dāng)作一條獨(dú)立的消息在網(wǎng)上傳輸,接收端只能接收獨(dú)立的消息。也就是說存在保護(hù)消息邊界,接收端一次只能接收發(fā)送端發(fā)出的一個(gè)數(shù)據(jù)包。而面向流則是無保護(hù)消息保護(hù)邊界的,如果發(fā)送端連續(xù)發(fā)送數(shù)據(jù),接收端有可能在 一次接收動(dòng)作中,會(huì)接收兩個(gè)或者更多的數(shù)據(jù)包。所以,udp協(xié)議的保護(hù)消息邊界使得每一個(gè)消息都是獨(dú)立的。而流傳輸,卻把數(shù)據(jù)當(dāng)作一串?dāng)?shù)據(jù)流,它不認(rèn)為數(shù)據(jù)是一個(gè)一個(gè)的消息。icmp通常被認(rèn)為是ip層的一部分。它傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。icmp協(xié)議通常被ip層或更高層使用。一些icmp報(bào)文把差錯(cuò)報(bào)文返回給用戶進(jìn)程。icmp報(bào)文是在ip數(shù)據(jù)報(bào)內(nèi)部被傳輸?shù)摹?/p>
4、所有報(bào)文的前4個(gè)字節(jié)都是一樣的,但是剩下的其他字節(jié)則互不相同。類型字段可以有15個(gè)不同的值,以描述特定類型的icmp報(bào)文。某些icmp報(bào)文還使用代碼字段的值來進(jìn)一步描述不同的條件。檢驗(yàn)和字段覆蓋整個(gè)icmp報(bào)文。icmp的檢驗(yàn)和是必需的。3 tcp/ip協(xié)議與winsock網(wǎng)絡(luò)編程接口的關(guān)系winsock實(shí)際上可看作是tcp/ip協(xié)議的一種封裝,你可以通過調(diào)用winsock的接口函數(shù)來調(diào)用tcp/ip的各種功能。例如我想用tcp/ip協(xié)議發(fā)送數(shù)據(jù),你就可以使用winsock的接口函數(shù)send()來調(diào)用tcp/ip的發(fā)送數(shù)據(jù)功能,至于具體怎么發(fā)送數(shù)據(jù),winsock已經(jīng)幫你封裝好了這種功能。4
5、winsock編程的流程對(duì)于任何基于winsock的編程首先我們必須要初始化winsock dll庫(kù)。int wsastarup( word wversionrequested , lpwsadata lpwsadata );其中,wversionrequested是我們要求使用的winsock的版本。調(diào)用這個(gè)接口函數(shù)可以初始化winsock 。然后我們必須創(chuàng)建一個(gè)套接字(socket)。socket socket( int af , int type , int protocol );套接字可以說是winsock通訊的核心。winsock通訊的所有數(shù)據(jù)傳輸,都是通過套接字來完成的,套接字包含
6、了兩個(gè)信息,一個(gè)是ip地址,一個(gè)是port端口號(hào),使用這兩個(gè)信息,我們就可以確定網(wǎng)絡(luò)中的任何一個(gè)通訊節(jié)點(diǎn)。當(dāng)我們調(diào)用了socket()接口函數(shù)創(chuàng)建了一個(gè)套接字后,我們必須把套接字與你需要進(jìn)行通訊的地址建立聯(lián)系,我們可以通過綁定函數(shù)bind()來實(shí)現(xiàn)這種聯(lián)系。在聯(lián)系之前,我們必須把主機(jī)字節(jié)轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)的順序。當(dāng)綁定完成之后,服務(wù)器端必須建立一個(gè)監(jiān)聽的隊(duì)列來接收客戶端的連接請(qǐng)求。int listen( socket s ,int backlog );這個(gè)函數(shù)可以讓我們把套接字轉(zhuǎn)成監(jiān)聽模式。如果客戶端有了連接請(qǐng)求,我們還必須使用 int accept( socket s , struct sock
7、addr far* addr , int far* addrlen );來接受客戶端的請(qǐng)求.而客戶端的建立的流程則是初始化winsock ,然后創(chuàng)建socket套接字,再使用 int connect( socket s , const struct sockaddr far* name , int namelen ) ;來連接服務(wù)端。當(dāng)服務(wù)器端和客戶端建立連接以后,無論是客戶端,還是服務(wù)器端都可以使用int send( socket s , const char far* buf , int len , int flags );int recv( socket s , char far* bu
8、f , int len , int flags );函數(shù)來接收和發(fā)送數(shù)據(jù),因?yàn)?tcp連接是雙向的.當(dāng)要關(guān)閉通訊連結(jié)的時(shí)候,任何一方都可以調(diào)用int shutdown( socket s , int how ) ;來關(guān)閉套接字的指定功能。再調(diào)用int closesocket( socket s) ;來關(guān)閉套接字句柄。5 網(wǎng)絡(luò)連通性測(cè)試原理網(wǎng)絡(luò)連通性測(cè)試使用icmp報(bào)文和ip首部中的ttl字段(生存周期)。ttl字段是由發(fā)送端初始設(shè)置一個(gè)8 bit字段。每個(gè)處理數(shù)據(jù)報(bào)的路由器都需要把ttl的值減1或減去數(shù)據(jù)報(bào)在路由器中停留的秒數(shù)。由于大多數(shù)的路由器轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的時(shí)延都小于1秒鐘,因此ttl最終成為
9、一個(gè)跳站的計(jì)數(shù)器,所經(jīng)過的每個(gè)路由器都將其值減1。當(dāng)路由器收到一份ip數(shù)據(jù)報(bào),如果其ttl字段是0或1,則路由器不轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)(接收到這種數(shù)據(jù)報(bào)的目的主機(jī)可以將它交給應(yīng)用程序,這是因?yàn)椴恍枰D(zhuǎn)發(fā)該數(shù)據(jù)報(bào)。但是在通常情況下,系統(tǒng)不應(yīng)該接收ttl字段為0的數(shù)據(jù)報(bào))。相反,路由器將該數(shù)據(jù)報(bào)丟棄,并給信源機(jī)發(fā)一份icmp“超時(shí)”信息。連通性測(cè)試的關(guān)鍵在于包含這份icmp信息的ip報(bào)文的信源地址是該路由器的ip地址。我們現(xiàn)在可以得到連通性的操作過程。它發(fā)送一份ttl字段為1的ip數(shù)據(jù)報(bào)給目的主機(jī)。處理這份數(shù)據(jù)報(bào)的第一個(gè)路由器將ttl值減1,丟棄該數(shù)據(jù)報(bào),并發(fā)回一份icmp超時(shí)報(bào)文(報(bào)文格式如圖1所示)。
10、這樣就得到了該路徑中的第一個(gè)路由器的地址。然后模塊發(fā)送一份ttl值為2的數(shù)據(jù)報(bào),這樣我們就可以得到第二個(gè)路由器的地址。繼續(xù)這個(gè)過程直至該數(shù)據(jù)報(bào)到達(dá)目的主機(jī)。但是目的主機(jī)哪怕接收到ttl值為1的ip數(shù)據(jù)報(bào),也不會(huì)丟棄該數(shù)據(jù)報(bào)并產(chǎn)生一份超時(shí)icmp報(bào)文,這是因?yàn)閿?shù)據(jù)報(bào)已經(jīng)到達(dá)其最終目的地。那么我們?cè)撊绾闻袛嗍欠褚呀?jīng)到達(dá)目的主機(jī)了呢?0 7 8 15 16 31類型(0或1)代碼(0或1)檢驗(yàn)和未用(必須為0)ip首部(包括選項(xiàng))原始ip數(shù)據(jù)報(bào)中數(shù)據(jù)的前8字節(jié)圖1 icmp超時(shí)報(bào)文發(fā)送一份udp數(shù)據(jù)報(bào)給目的主機(jī),但選擇一個(gè)不可能的值作為udp端口號(hào)(大于30000),使目的主機(jī)的任何一個(gè)應(yīng)用程序都不
11、可能使用該端口。因?yàn)?,?dāng)該數(shù)據(jù)報(bào)到達(dá)時(shí),將使目的主機(jī)的udp模塊產(chǎn)生一份“端口不可達(dá)”錯(cuò)誤的icmp報(bào)文(如圖2所示)。當(dāng)?shù)竭_(dá)故障節(jié)點(diǎn)時(shí),路由器收到一份ip數(shù)據(jù)報(bào)但又不能轉(zhuǎn)發(fā)時(shí),就發(fā)送一份icmp主機(jī)不可達(dá)報(bào)文。這樣我們就知道故障結(jié)點(diǎn)的ip地址了。圖2 udp端口不可達(dá)返回的icmp報(bào)文這樣,連通性測(cè)試所要做的就是區(qū)分接收到的icmp報(bào)文是超時(shí)報(bào)文還是端口不可達(dá)報(bào)文,或是主機(jī)不可達(dá)以判斷什么時(shí)候結(jié)束。連通性測(cè)試通過在udp數(shù)據(jù)報(bào)中存放發(fā)送請(qǐng)求的時(shí)間值來計(jì)算往返時(shí)間。當(dāng)應(yīng)答返回時(shí),用當(dāng)前時(shí)間減去存放在udp報(bào)文中的時(shí)間值,即是往返時(shí)間。6 拓?fù)渫茰y(cè)方法icmp 協(xié)議是用于在主機(jī)、路由器之間傳送控
12、制信息或差錯(cuò)信息的協(xié)議。通常用這種協(xié)議來測(cè)試主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)信息。基于icmp 協(xié)議的拓?fù)浒l(fā)現(xiàn)方法的原理是,首先對(duì)一個(gè)指定的地址空間所有可能的ip 地址發(fā)出icmp echo 請(qǐng)求,通過icmp echo 應(yīng)答來判斷網(wǎng)絡(luò)中設(shè)備的可達(dá)性,發(fā)現(xiàn)活動(dòng)結(jié)點(diǎn)。然后再測(cè)量已發(fā)現(xiàn)的活動(dòng)結(jié)點(diǎn),利用icmp 超時(shí)和端口不可達(dá)信息來發(fā)現(xiàn)源結(jié)點(diǎn)到目的結(jié)點(diǎn)的路由信息;最后,分析獲取的數(shù)據(jù),構(gòu)造網(wǎng)絡(luò)拓?fù)溥B接情況。使用icmp 協(xié)議原理較為簡(jiǎn)單,對(duì)目標(biāo)網(wǎng)絡(luò)所做的限制條件少,適用性強(qiáng),在進(jìn)行拓?fù)浒l(fā)現(xiàn)的同時(shí)也檢測(cè)了網(wǎng)絡(luò)設(shè)備的活動(dòng)性。但拓?fù)浒l(fā)現(xiàn)的準(zhǔn)確性不好,對(duì)于路由器之間的連接關(guān)系的分析比較麻煩,構(gòu)造網(wǎng)絡(luò)拓?fù)鋱D
13、較困難。而且,如果對(duì)一定范圍的ip 逐一測(cè)試,費(fèi)時(shí)且增加網(wǎng)絡(luò)的負(fù)擔(dān)。三. 根據(jù)任務(wù)書的任務(wù)及文獻(xiàn)調(diào)研結(jié)果,初步擬定的執(zhí)行(實(shí)施)方案(含具體進(jìn)度計(jì)劃)1 實(shí)施方案此次畢設(shè)主要分為以下幾個(gè)部分一步步實(shí)現(xiàn):1、向目標(biāo)主機(jī)發(fā)送udp報(bào)文,ttl從1開始依次增加,udp端口大于30000。2、根據(jù)路由器返回的報(bào)文得到網(wǎng)絡(luò)的連通性、主機(jī)之間路徑的每個(gè)路由節(jié)點(diǎn)、往返時(shí)間。3、結(jié)果用可視化界面顯示,并完善界面使得整個(gè)界面更人性化。2 設(shè)計(jì)進(jìn)度(1)認(rèn)真學(xué)習(xí)和理解畢業(yè)設(shè)計(jì)任務(wù)書的要求,完成開題報(bào)告。 2周(2)學(xué)習(xí)和掌握網(wǎng)絡(luò)套接口api,學(xué)習(xí)和理解icmp協(xié)議的編程接口。 2周(3)對(duì)系統(tǒng)各模塊的功能進(jìn)行詳細(xì)
14、設(shè)計(jì)。 2周(4)編程實(shí)現(xiàn)基于icmp協(xié)議的網(wǎng)絡(luò)連通性測(cè)試軟件的功能模塊,并所設(shè)計(jì)的軟件進(jìn)行測(cè)試和分析。 6周(5)整理資料,撰寫論文,準(zhǔn)備答辯。 2周參考文獻(xiàn)1 n. hu, p. steenkiste. evaluation and characterization of available bandwidth probing techniquesj. ieee journal on selected areas in communications, 2003, 21(6): 879-894.2 a. feldmann, c. greenberg. netscope: traffic en
15、gineering for ip networksj. ieee network special issue on internet traffic engineering, 2000: 11-19.3 g.bianchi,a.capone.throughput analysis of end-to-end measurement-based admission control in ipc. proceedings of ieee infocom, 2000: 1461-1470.4 wrichard stevens.tcpip詳解卷1:協(xié)議m.范建華,胥光輝,張濤等譯,北京:機(jī)械工業(yè)出版社,2006:50-80.5 汪曉平,鐘軍等,visual c+網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn)m.北京:人民郵電出版社,2003:445-463.6 劉 敏, 李忠誠(chéng), 過曉冰等. 端到端的可用帶寬測(cè)量方法j. 軟件學(xué)報(bào), 2006, 17(1): 108-116.7 林宇, 程時(shí)端, 鄔海濤等. ip網(wǎng)端到端性能測(cè)量技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF(陜) 008-2019 同心度測(cè)量?jī)x校準(zhǔn)規(guī)范
- 《設(shè)計(jì)批評(píng)》課件
- 財(cái)務(wù)政策與流程再造計(jì)劃
- 風(fēng)險(xiǎn)管理策略的制定與實(shí)施計(jì)劃
- 生物下冊(cè):生物的遺傳和變異習(xí)題課件人教
- 2024-2025學(xué)年年七年級(jí)數(shù)學(xué)人教版下冊(cè)專題整合復(fù)習(xí)卷28.1 銳角三角函數(shù) 達(dá)標(biāo)訓(xùn)練(含答案)
- 生產(chǎn)計(jì)劃中的資源配置
- 寄生蟲病防治獸藥行業(yè)相關(guān)投資計(jì)劃提議范本
- 品牌重塑的時(shí)機(jī)與策略計(jì)劃
- 醫(yī)療健康大數(shù)據(jù)相關(guān)行業(yè)投資方案
- 生態(tài)安全與國(guó)家安全
- 2024年保密協(xié)議書(政府機(jī)關(guān))3篇
- 研發(fā)部年終總結(jié)和規(guī)劃
- 石油開采技術(shù)服務(wù)支持合同
- 山東省煙臺(tái)市2024屆高三上學(xué)期期末考試英語試題 含解析
- 《汽車專業(yè)英語》期末試卷附答案第1套
- 2024年廉潔經(jīng)營(yíng)承諾書2篇
- 醫(yī)學(xué)細(xì)胞生物學(xué)(溫州醫(yī)科大學(xué))知到智慧樹章節(jié)答案
- 《如何培養(yǎng)良好心態(tài)》課件
- 《中醫(yī)養(yǎng)生腎》課件
- 鄉(xiāng)鎮(zhèn)(街道)和村(社區(qū))應(yīng)急預(yù)案編制管理百問百答
評(píng)論
0/150
提交評(píng)論