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

下載本文檔

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

文檔簡介

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

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

3、1</p><p>  2.1.3 詳細(xì)功能要求1</p><p>  第三節(jié)、概要設(shè)計(jì)1</p><p>  3.1 端口監(jiān)聽1</p><p>  3.2 IP包的捕獲與解析2</p><p>  第四節(jié) 詳細(xì)設(shè)計(jì)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é) 實(shí)驗(yàn)結(jié)果分析9</p><p>  5.1 實(shí)驗(yàn)結(jié)果展示9</p&

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

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

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

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

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

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

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

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

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

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

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

16、分析器可以分析不同的協(xié)議。</p><p>  寫入日志函數(shù)使用Java寫入文件相關(guān)語句,將輸出流中的字節(jié)截取并寫入到TXT文件中。</p><p><b>  第四節(jié) 詳細(xì)設(shè)計(jì)</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é) 實(shí)驗(yàn)結(jié)果分析</p><p>  5.1 實(shí)驗(yàn)結(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 實(shí)驗(yàn)結(jié)果分析</p><p>  5.1.1 端口監(jiān)聽</p><p>  結(jié)果展示界面中顯示有較多接口被占用,其中53號(hào)端口為DNS服務(wù),所以在打開局域網(wǎng)的時(shí)候可以發(fā)現(xiàn)53號(hào)端口被占用,而關(guān)閉局域網(wǎng)后發(fā)現(xiàn)該端口未被占用;135號(hào)端口主要用于使用RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)協(xié)議并提供DCOM(分布式組件對(duì)象模型)服務(wù)。8086

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

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

23、n表示報(bào)頭長度20字節(jié),沒有選擇項(xiàng)字段,而之所以要定義頭長度變量,是因?yàn)椴煌倪x擇項(xiàng)字段不同</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報(bào)文總長度</p><p>  id = 0x353E (13630)</p>

25、;<p>  ID表示該數(shù)據(jù)包的標(biāo)識(shí)符</p><p>  flags = 0x2 (2) </p><p>  Flags表示該數(shù)據(jù)包是否分片,第二位是不分片位(DF),當(dāng)DF被設(shè)置被設(shè)置為1時(shí),表示路由器不能對(duì)報(bào)文進(jìn)行分片處理。第三位表示還有后繼分片(MF),當(dāng)路由器對(duì)報(bào)文進(jìn)行分片時(shí),除了最后一個(gè)分片的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)先級(jí)</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表示頭校驗(yàn)和,以及給出的判斷</p><p>  source = 10.96.122.137</p><p>  destination = 106.120.168.168</p><p><b>  第六節(jié) 錯(cuò)誤調(diào)試</b></p><p>  6.1 數(shù)據(jù)庫連接錯(cuò)誤</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 錯(cuò)誤表現(xiàn)</p><p><b>  6.2.2解決方案</b>&

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

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

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

34、;  IOException指發(fā)生 I/O 錯(cuò)誤時(shí)引發(fā)的異常。</p><p>  IOException 是使用流、文件和目錄訪問信息時(shí)引發(fā)的異常的基類。</p><p>  BindException異常類簡介:</p><p>  BindException是.net包中的一個(gè)類,當(dāng)一個(gè)端口是因?yàn)楸徽加枚鴴伋霎惓#摦惓⑹荁indException的一個(gè)實(shí)例

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

36、供訪問網(wǎng)絡(luò)底層的能力。它用于windows系統(tǒng)下的直接的網(wǎng)絡(luò)編程。Winpcap提供了一個(gè)強(qiáng)大的編程接口,它很容易地在各個(gè)操作系統(tǒng)之間進(jìn)行移植。</p><p>  jNetPcap是libpcap的一個(gè)Java完整封裝,它通過對(duì)接了WinPcap來截獲網(wǎng)卡數(shù)據(jù)包。jNetPcap使用與libpcap相同風(fēng)格的API。libpcap是unix/linux平臺(tái)下的網(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中最為核心的類,是一個(gè)對(duì)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著 潘愛民,徐明偉譯.計(jì)算機(jī)網(wǎng)絡(luò)(第四版).清華大學(xué)出版社.2006.03.</p>&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論