版權(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<PcapIf >中。然后選擇一個(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<T> 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-- 解析ip數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---ip數(shù)據(jù)包解析報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-監(jiān)控ip包流量
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告--監(jiān)控ip包流量
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---監(jiān)控ip數(shù)據(jù)包流量
- 解析arp數(shù)據(jù)包-計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---端口掃描工具設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---端口掃描工具設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)tcp數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--小規(guī)模ip網(wǎng)絡(luò)的建立
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-掃描正在服務(wù)的tcp端口
評(píng)論
0/150
提交評(píng)論