2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  計算機網(wǎng)絡(luò)課程設(shè)計報告</p><p>  題 目 端口檢測及IP包的捕獲解析 </p><p>  學(xué)生姓名 </p><p>  班級學(xué)號 </p><p>  指導(dǎo)教師

2、 </p><p>  設(shè)計時間 </p><p>  第一節(jié) 實驗平臺和器材準(zhǔn)備1</p><p>  1.2 實驗平臺1</p><p>  第二節(jié) 需求分析1</p><p>  2.1 實驗要求1</p><p>  2.1.1 基本要求

3、1</p><p>  2.1.3 詳細(xì)功能要求1</p><p>  第三節(jié)、概要設(shè)計1</p><p>  3.1 端口監(jiān)聽1</p><p>  3.2 IP包的捕獲與解析2</p><p>  第四節(jié) 詳細(xì)設(shè)計3</p><p>  4.1端口監(jiān)聽程序框圖3</p>

4、;<p>  4.2端口監(jiān)聽關(guān)鍵代碼3</p><p>  4.2 IP包捕獲與解析程序框圖4</p><p>  4.2.1 寫日志函數(shù)4</p><p>  4.2.1 IP包捕獲與分析5</p><p>  第五節(jié) 實驗結(jié)果分析9</p><p>  5.1 實驗結(jié)果展示9</p&

5、gt;<p>  5.1.1 端口監(jiān)聽9</p><p>  5.1.2 IP包的捕獲與解析析11</p><p>  5.1 實驗結(jié)果分析12</p><p>  5.1.1 端口監(jiān)聽12</p><p>  5.1.2 IP包的捕獲與解析13</p><p>  第六節(jié) 錯誤調(diào)試14<

6、;/p><p>  6.1 數(shù)據(jù)庫連接錯誤14</p><p>  6.1.1 解決方案14</p><p>  6.2 POST亂碼解決方式15</p><p>  6.2.1 錯誤表現(xiàn)15</p><p>  6.2.2解決方案15</p><p>  6.3 Socket連接錯誤1

7、6</p><p>  6.3.1 錯誤表現(xiàn)16</p><p>  6.3.2產(chǎn)生錯誤的原因16</p><p>  6.3.3 解決方式16</p><p>  第八節(jié) 實驗總結(jié)0</p><p>  第九節(jié) 參考資料1</p><p><b>  附件:2</b

8、></p><p>  第一節(jié) 實驗平臺和器材準(zhǔn)備</p><p><b>  1.2 實驗平臺</b></p><p><b>  第二節(jié) 需求分析</b></p><p><b>  2.1 實驗要求</b></p><p>  2.1.1 基

9、本要求</p><p>  本次實驗的要求在網(wǎng)絡(luò)環(huán)境,實現(xiàn)端口檢測以及捕獲網(wǎng)絡(luò)中的IP數(shù)據(jù)包,解析數(shù)據(jù)包的內(nèi)容,將結(jié)果顯示在標(biāo)準(zhǔn)輸出上,并同時寫入日志文件。</p><p>  2.1.3 詳細(xì)功能要求</p><p>  l)實現(xiàn)本機以及局域網(wǎng)內(nèi)計算機的端口監(jiān)控。</p><p>  2)在標(biāo)準(zhǔn)輸出和日志文件中寫入捕獲的IP包的版本、頭長度

10、、服務(wù)類型、數(shù)據(jù)包總長度、數(shù)據(jù)包標(biāo)識、分段標(biāo)志、分段偏移值、生存時間、上層協(xié)議類型、頭校驗和、源IP地址和目的IP地址等內(nèi)容。</p><p>  3)形成記錄結(jié)果的日志文件。</p><p><b>  第三節(jié)、概要設(shè)計</b></p><p><b>  3.1 端口監(jiān)聽</b></p><p>

11、;  創(chuàng)建一個服務(wù)器s,依次開放0—65535間所有的端口,當(dāng)開放過程拋出IO流異常e,并且e是java.net.BindException的一個實例時,輸出該端口被占用。</p><p>  3.2 IP包的捕獲與解析</p><p>  在Java平臺下通過第三方包來進行底層網(wǎng)絡(luò)嗅探。使用JnetPCAP對接WinPCAP來截獲網(wǎng)卡數(shù)據(jù)包,分為四步走。</p><p

12、>  第一步:獲取網(wǎng)卡列表。</p><p>  通過Pcap.findAllDevs(alldevs, errbuf) 這個靜態(tài)方法將所有本機網(wǎng)卡加入到alldevs的List&lt;PcapIf &gt中。然后選擇一個網(wǎng)卡進行監(jiān)聽。</p><p><b>  第二步:打開連接</b></p><p>  調(diào)用Pcap

13、.openLive(device.getName(), snaplen, flags, timeout, errbuf)靜態(tài)方法,返回一個Pcap對象。其中5個參數(shù)分別表示設(shè)備的系統(tǒng)名稱(不是設(shè)備別名)、每次捕捉的數(shù)據(jù)量、捕捉方式、超時和錯誤信息緩沖區(qū)。</p><p><b>  第三步:監(jiān)聽抓包</b></p><p>  調(diào)用pcap.loop(int cnt,

14、 JPacketHandler&lt;T&gt; handler, T user) 方法即可進行監(jiān)聽,在loop方法的參數(shù)中有兩點需要關(guān)注,第一點是用戶指定的數(shù)據(jù)包分析器,在之后的文章中將詳細(xì)介紹;第二點是一個泛型參數(shù),表示傳輸給分析器的用戶指定類型的消息。</p><p><b>  第四步:數(shù)據(jù)包分析</b></p><p>  使用繼承JPack

15、etHandler來實現(xiàn)自己的處理方法。<br>在JPacketHandler有一個nextPacket(JPacket packet, T user) 方法,這是典型的通過事件機制來實現(xiàn)處理數(shù)據(jù)包的方法。每當(dāng)Pcap嗅探到一個數(shù)據(jù)包后,調(diào)用用戶之前綁定的分析器中的nextPacket方法進行處理。注意這個方法是阻塞的,也就避免了潛在的同步問題。傳進的JPacket參數(shù)包含了這個數(shù)據(jù)包中的所有信息,通過不同的內(nèi)置Header

16、分析器可以分析不同的協(xié)議。</p><p>  寫入日志函數(shù)使用Java寫入文件相關(guān)語句,將輸出流中的字節(jié)截取并寫入到TXT文件中。</p><p><b>  第四節(jié) 詳細(xì)設(shè)計</b></p><p>  4.1端口監(jiān)聽程序框圖</p><p>  4.2端口監(jiān)聽關(guān)鍵代碼</p><p>  4

17、.2 IP包捕獲與解析程序框圖</p><p>  4.2.1 寫日志函數(shù)</p><p>  1.寫日志函數(shù)程序框圖</p><p>  2.寫日志函數(shù)關(guān)鍵代碼</p><p>  4.2.1 IP包捕獲與分析</p><p>  1.IP包捕獲與分析程序框圖</p><p>  2.IP捕獲

18、與分析關(guān)鍵代碼</p><p>  第五節(jié) 實驗結(jié)果分析</p><p>  5.1 實驗結(jié)果展示</p><p>  5.1.1 端口監(jiān)聽</p><p><b>  1.關(guān)閉局域網(wǎng)</b></p><p><b>  2.打開局域網(wǎng)</b></p><

19、p>  5.1.2 IP包的捕獲與解析析</p><p><b>  1、捕獲網(wǎng)卡信息 </b></p><p><b>  2.IP包解析結(jié)果</b></p><p>  3.日志文件生成</p><p><b>  4.日志內(nèi)容</b></p>&l

20、t;p>  5.1 實驗結(jié)果分析</p><p>  5.1.1 端口監(jiān)聽</p><p>  結(jié)果展示界面中顯示有較多接口被占用,其中53號端口為DNS服務(wù),所以在打開局域網(wǎng)的時候可以發(fā)現(xiàn)53號端口被占用,而關(guān)閉局域網(wǎng)后發(fā)現(xiàn)該端口未被占用;135號端口主要用于使用RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)協(xié)議并提供DCOM(分布式組件對象模型)服務(wù)。8086

21、屬于TCP端口號,是一種分布式SCADA網(wǎng)絡(luò)對接端口。</p><p>  5.1.2 IP包的捕獲與解析</p><p>  在運行的結(jié)果中,各個信息分別表示:</p><p>  ******* Ip4 - "ip version 4" - offset=14 (0xE) length=20 protocol suite=NETWORK<

22、;/p><p>  Length表示報頭長度20字節(jié),suite表示協(xié)議棧是network</p><p>  version = 4</p><p>  Version表示IP版本號為4</p><p>  hlen = 5 [5 * 4 = 20 bytes, No Ip Options] </p><p>  hle

23、n表示報頭長度20字節(jié),沒有選擇項字段,而之所以要定義頭長度變量,是因為不同包的選擇項字段不同</p><p>  diffserv = 0x0 (0)</p><p>  Diffserv表示區(qū)分服務(wù)體系結(jié)構(gòu),它基于類的QoS技術(shù),保證IP的服務(wù)質(zhì)量 </p><p>  0000 00.. = [0] code point: not set</p>

24、<p>  .... ..0. = [0] ECN bit: not set</p><p>  .... ...0 = [0] ECE bit: not set</p><p>  length = 52 </p><p>  length報文總長度</p><p>  id = 0x353E (13630)</p>

25、;<p>  ID表示該數(shù)據(jù)包的標(biāo)識符</p><p>  flags = 0x2 (2) </p><p>  Flags表示該數(shù)據(jù)包是否分片,第二位是不分片位(DF),當(dāng)DF被設(shè)置被設(shè)置為1時,表示路由器不能對報文進行分片處理。第三位表示還有后繼分片(MF),當(dāng)路由器對報文進行分片時,除了最后一個分片的MF位設(shè)置為0外,其他所有分片的MF位均設(shè)置1,以便接收者直到收到MF

26、位為0的分片為止。</p><p>  0.. = [0] reserved 預(yù)留</p><p>  .1. = [1] DF: do not fragment: set</p><p>  ..0 = [0] MF: more fragments: not set </p><p>  offset = 0 </p><

27、;p>  Offset表示分片偏移,由于該數(shù)據(jù)包未分片,所以分片偏移為0</p><p>  ttl = 64 [time to live] </p><p>  type = 6 [next: Transmission Control] </p><p>  Type表示優(yōu)先權(quán)和服務(wù)類型TOS,其中優(yōu)先權(quán)分別為:000:路由0

28、01:優(yōu)先級</p><p>  010:立即011:火速100:火速覆蓋101:緊急110:互聯(lián)網(wǎng)絡(luò)控制</p><p>  111:網(wǎng)絡(luò)控制,該數(shù)據(jù)包的優(yōu)先權(quán)值為110,表示互聯(lián)網(wǎng)控制優(yōu)先;其服務(wù)類型是傳輸控制</p><p>  checksum = 0x6D7C (28028) [correct]</p><p>  Ch

29、ecksum表示頭校驗和,以及給出的判斷</p><p>  source = 10.96.122.137</p><p>  destination = 106.120.168.168</p><p><b>  第六節(jié) 錯誤調(diào)試</b></p><p>  6.1 數(shù)據(jù)庫連接錯誤</p><p&g

30、t;  6.1.1 解決方案</p><p>  發(fā)現(xiàn)數(shù)據(jù)庫TCPIP沒開</p><p><b>  打開啟用后正常</b></p><p>  6.2 POST亂碼解決方式</p><p>  6.2.1 錯誤表現(xiàn)</p><p><b>  6.2.2解決方案</b>&

31、lt;/p><p>  加上上面的代碼后正常</p><p>  6.3 Socket連接錯誤</p><p>  6.3.1 錯誤表現(xiàn)</p><p>  6.3.2產(chǎn)生錯誤的原因</p><p>  6.3.3 解決方式</p><p>  優(yōu)化Socket連接,并且在數(shù)據(jù)發(fā)送接收完畢后關(guān)閉流。

32、</p><p><b>  第八節(jié) 實驗總結(jié)</b></p><p>  這次的計算機網(wǎng)絡(luò)課程設(shè)計共做了兩個方面的實驗,一個是端口監(jiān)聽,一個是IP包的捕獲與解析。這兩個實驗跟平常電腦的實驗都有關(guān)系,其中端口檢測在以前參加學(xué)校專業(yè)的創(chuàng)意作品賽時作為了該作品的切入點,那時是宏觀的設(shè)計,在這次的課程設(shè)計中進行了實踐,比較有收獲。IP包的捕獲實驗以前在計算機網(wǎng)絡(luò)的課堂上看到

33、了用Wireshark抓包工具進行捕獲,這次的課程設(shè)計相當(dāng)于用Java語言自己寫出一個抓包工具,雖然有很多瑕疵,但還是比較有成就感的。并且這兩部分的實驗,基本上都使用了新的工具,在實踐過程中,學(xué)到了很多相關(guān)工具的知識,現(xiàn)在總結(jié)一下。</p><p>  在端口檢測部分,學(xué)到了幾個異常類對象的使用:</p><p>  IOException異常簡介:</p><p>

34、;  IOException指發(fā)生 I/O 錯誤時引發(fā)的異常。</p><p>  IOException 是使用流、文件和目錄訪問信息時引發(fā)的異常的基類。</p><p>  BindException異常類簡介:</p><p>  BindException是.net包中的一個類,當(dāng)一個端口是因為被占用而拋出異常,該異常將是BindException的一個實例

35、。</p><p>  printStackTrace:</p><p>  在命令行打印異常信息在程序中出錯的位置及原因。</p><p>  在IP包捕獲與解析部分學(xué)會了使用兩個工具,分別為WinPCAP和JnetPcap。winpcap(windows packet capture)是windows平臺下一個免費,公共的網(wǎng)絡(luò)訪問系統(tǒng)。可以為win32應(yīng)用程序提

36、供訪問網(wǎng)絡(luò)底層的能力。它用于windows系統(tǒng)下的直接的網(wǎng)絡(luò)編程。Winpcap提供了一個強大的編程接口,它很容易地在各個操作系統(tǒng)之間進行移植。</p><p>  jNetPcap是libpcap的一個Java完整封裝,它通過對接了WinPcap來截獲網(wǎng)卡數(shù)據(jù)包。jNetPcap使用與libpcap相同風(fēng)格的API。libpcap是unix/linux平臺下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫,大多數(shù)網(wǎng)絡(luò)監(jiān)控軟件都以它為基礎(chǔ)

37、。</p><p>  使用JNetPcap之前必須在目標(biāo)系統(tǒng)中安裝WinPcap(Windows系統(tǒng)),以提供JNetPcap所需要的鏈接庫。另外要把JNetPcap包和所屬的dll文件都加入到開發(fā)目錄的環(huán)境變量中。</p><p>  Pcap類是JNetPcap中最為核心的類,是一個對LibPcap中方法的Java直接映射,提供了取得網(wǎng)卡設(shè)備列表、打開嗅探、設(shè)置過濾器等等必須的工作。

38、</p><p>  有關(guān)于Jnetpcap中PcapIf、packet、protocol包中相關(guān)類方法的詳解參照代碼注釋。</p><p><b>  第九節(jié) 參考資料</b></p><p>  [1]Andrew S.Tanenbaum著 潘愛民,徐明偉譯.計算機網(wǎng)絡(luò)(第四版).清華大學(xué)出版社.2006.03.</p>&

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論