計網(wǎng)實驗報告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)剖析(共23頁)_第1頁
計網(wǎng)實驗報告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)剖析(共23頁)_第2頁
計網(wǎng)實驗報告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)剖析(共23頁)_第3頁
計網(wǎng)實驗報告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)剖析(共23頁)_第4頁
計網(wǎng)實驗報告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)剖析(共23頁)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計網(wǎng)大型實驗報告課程 計算機(jī)網(wǎng)絡(luò)原理大型實驗 姓名 汪敏倩 班級 計科1201 學(xué)號 7 一、實驗?zāi)康?.1任務(wù)一:了解常用網(wǎng)絡(luò)命令Ping、Tracert/traceroute、Arp、Route的工作原理及使用。1.2任務(wù)二:了解交換機(jī)的工作原理,掌握常用交換機(jī)的配置和應(yīng)用以及靜態(tài)路由的配置。1.3任務(wù)三:抓取本地網(wǎng)卡的IP數(shù)據(jù)包,并且分析IP數(shù)據(jù)包的各個部分字段。二、實驗軟件2.1任務(wù)一:cmd.exe命令解釋程序2.2任務(wù)二:Packet.Tracer模擬器2.3任務(wù)三:Wincap網(wǎng)絡(luò)抓包器,jnetpcap開源包,eclipes編程器,java語言三、實驗

2、步驟或?qū)嶒炘?.1任務(wù)一:3.1.1實驗原理:1、Ping是Windows下的一個命令在Unix和Linux下也有這個命令。ping也屬于一個通信協(xié)議,是TCP/IP協(xié)議的一部分。利用“ping”命令可以檢查網(wǎng)絡(luò)是否連通,可以很好地幫助我們分析和判定。它所利用的原理是這樣的:利用網(wǎng)絡(luò)上機(jī)器IP地址的唯一性,給目標(biāo)地址發(fā)送一個,再要求對方返回一個同樣大小的數(shù)據(jù)包來確定兩臺網(wǎng)絡(luò)機(jī)器是否連接相通,是多少。使用格式:Ping空格。該命令還可以加許多參數(shù)使用,具體是鍵入Ping按回車即可看到詳細(xì)說明。2、Tracert/traceroute 的用處和PING是差不多的。但是也有本質(zhì)的區(qū)別。用ping的

3、時候是不會顯示經(jīng)過的路徑的。但是用tracerert的時候就可以顯示經(jīng)過的路由,并且顯示它經(jīng)過那個路由,花了多少時間,并且每個路由都會測試3次。它可以讓你知道,你的計算機(jī)離目的計算機(jī)在網(wǎng)絡(luò)上的距離有多遠(yuǎn),經(jīng)過多久才能到達(dá)。使用格式:Tracert/traceroute空格 。3、ARP即地址解析協(xié)議,是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議。主機(jī)發(fā)送信息時將包含目標(biāo)IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存一節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個

4、主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)接收到應(yīng)答報文時不會檢測該報文的真實性就會將其記入本機(jī)ARP緩存;使用格式:arp -a或arp g:用于查看緩存中的所有項目。arp -a Ip:用于顯示與該IP地址指向的接口相關(guān)的ARP緩存項目。arp s Ip 物理地址:向ARP緩存中人工輸入一個靜態(tài)項目。arp-d Ip:人工刪除一個靜態(tài)項目。4、route:主要用于手動配置靜態(tài)路由。route print-本命令用于顯示中的當(dāng)前項目,由于用IP地址配置了網(wǎng)卡,因此所有的這些項目都是自動添加的。route add-使用本命令,可以將新項目添加給。例如,如果要設(shè)定一

5、個到目的網(wǎng)絡(luò)209.98.32.33的,其間要經(jīng)過5個,首先要經(jīng)過本地網(wǎng)絡(luò)上的一個路由器,其IP為202.96.123.5,為255.255.255.224,那么你應(yīng)該輸入以下命令:route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5route change-你可以使用本命令來修改數(shù)據(jù)的傳輸,不過,你不能使用本命令來改變數(shù)據(jù)的目的地。下面這個例子可以將數(shù)據(jù)的改到另一個,它采用一條包含3個的更直的路徑:route change 209.98.32.33 mask 255.255.255.224 202.96.123.2

6、50 metric 3route delete-使用本命令可以從中刪除路由。例如:route delete 209.98.32.333.2任務(wù)二:3.2.1實驗原理:1、交換機(jī)的原理:局域網(wǎng)交換機(jī)擁有許多端口,每個端口有自己的專用帶寬,并且可以連接不同的網(wǎng)段。交換機(jī)各個端口之間的通信是同時的、并行的,這就大大提高了信息吞吐量。為了進(jìn)一步提高性能,每個端口還可以只連接一個設(shè)備。傳統(tǒng)的交換機(jī)本質(zhì)上是具有流量控制能力的多端口網(wǎng)橋,即傳統(tǒng)的(二層) 交換機(jī)。把路由技術(shù)引入交換機(jī),可以完成網(wǎng)絡(luò)層路由選擇,故稱為三層交換,這是交換機(jī)的新進(jìn)展。交換機(jī)(二層交換)的工作原理交換機(jī)和網(wǎng)橋一樣,是工作在鏈路層的聯(lián)

7、網(wǎng)設(shè)備,它的各個端口都具有橋接功能,每個端口可以連接一個LAN或一臺高性能網(wǎng)站或服務(wù)器,能夠通過自學(xué)習(xí)來了解每個端口的設(shè)備連接情況。所有端口由專用處理器進(jìn)行控制,并經(jīng)過控制管理總線轉(zhuǎn)發(fā)信息。 2、路由器的原理:路由器是一種計算機(jī)網(wǎng)路設(shè)備,它能將數(shù)據(jù)包通過一個個網(wǎng)路傳送至目的地,這個過程稱為路由。路由工作在OSI模型的第三層(即網(wǎng)路層,例如Internet Protocol(IP)層)。路由器就是連接兩個以上網(wǎng)路線路的設(shè)備。 由于位于兩個或更多個網(wǎng)路的交匯處,從而可在它們之間傳遞分組(一種數(shù)據(jù)的組織形式)。路由器與交換機(jī)(Switch)在概念上有一定重疊但也有不同:交換機(jī)泛指工作于任何網(wǎng)路層次的

8、數(shù)據(jù)中繼設(shè)備(盡管多指網(wǎng)橋),而路由器則更專注于網(wǎng)路層。3、虛擬局域網(wǎng):虛擬局域網(wǎng)(VLAN)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來,相互之間的通信就好像它們在中一樣,由此得名虛擬局域網(wǎng)。4、靜態(tài)路由:靜態(tài)路由是指由用戶或手工配置的路由信息。當(dāng)網(wǎng)絡(luò)的或鏈路的狀態(tài)發(fā)生變化時,需要手工去修改中相關(guān)的靜態(tài)路由信息。靜態(tài)路由信息在缺省情況下是私有的,不會傳遞給其他的。當(dāng)然,網(wǎng)管員也可以通過對進(jìn)行設(shè)置使之成為共享的。靜態(tài)路由一般適用于比較簡單的網(wǎng)絡(luò)環(huán)境,在這樣的環(huán)境中,易于清楚地了解網(wǎng)絡(luò)的,便于設(shè)置正確的路由信息。3.2.2實驗步驟:1

9、、安裝Packet.Tracer軟件。2、放一個交換機(jī),然后后面放4個主機(jī)。3、分別給主機(jī)配置IP地址。分別為:172.16.17.1 172.16.17.2 172.16.17.3 172.16.17.44、按順序接上交換機(jī)的E0/1 E0/2 E0/3 E0/4端口5、這個時候你用PC0去pingPC1,PC2,PC3都是通的。然后接下來我們把PC0和PC2放一個VLAN PC1和PC3放一個VLAN6、在這個時候用PC0去PING 它們3個主機(jī)。只有PC2是通的,因為他們在一個VLAN當(dāng)中。VLAN就是相當(dāng)于在一個局域網(wǎng)中一樣的。7、放好兩個路由器,兩個主機(jī),之間用交叉線連接,如圖設(shè)置,

10、172.16.17.0 和172.16.17.64和172.16.17.128是3個網(wǎng)段8、172.16.17.1和172.16.17.129是主機(jī)IP,這里默認(rèn)網(wǎng)關(guān)是指你連接到路由器端口的端口IP。9、172.16.17.2和172.16.17.130是2個路由器端口IP。連接2個主機(jī)。配置圖如下:10、172.16.17.65和172.16.17.66是兩個路由器連接端口的IP,配置如下:11、全部配置好后,我們可以用PC0去pingPC1是不通的。(你要先在路由器中把左右2個端口打開哦。?。?2、因為沒有路由轉(zhuǎn)發(fā)條件。所以接下來就要配置2個路由器的靜態(tài)路由。左邊路由器:右邊路由器:其中在

11、上面的配置 其實就一句話,IP route +IP地址+子網(wǎng)掩碼+下一跳的端口IP。不過要先進(jìn)入配置模式,需要輸入 config terminal。3.3任務(wù)三:3.3.1實驗原理:Wincap:Winpcap是一個Win32平臺下用于和分析的系統(tǒng)。包括一個內(nèi)核級別的packet filter,一個底層的DLL(packet.dll)和一個高級的獨(dú)立于系統(tǒng)的DLL(Wpcap.dll)。Jnetpcap:一個基于java的開源包,通過wincap來抓取網(wǎng)卡數(shù)據(jù)包。百度上暫無簡介,也沒有中文教程,只有一個英文版的操作文檔。Java:本人最熟悉的編程語言,簡介,易懂強(qiáng)大。但是java不支持網(wǎng)絡(luò)抓包

12、,所以需要加載一個jpcap,在網(wǎng)上也有好多關(guān)于jpcap的教程,但是它是32位的,電腦是64位,所以用不了;只能用jnetpcap,通過調(diào)用wincap來抓取網(wǎng)卡的數(shù)據(jù)包。抓取到的一個數(shù)據(jù)包是囊括好多字段(ip,udp,date等等下面會進(jìn)行展示),然后截取數(shù)據(jù)包中的IP字段。3.3.2實驗步驟:1、 先安裝wincap;2、 把下載好的jnetpcap中的jnetpcap.jar包拷貝到%JAVA_HOME%jrelibext目錄下,然后把jnetpcap.dll拷貝到%JAVA_HOME%jrebin目錄下。3、 然后再eclipes中加載這個jar包。右鍵項目工程-propertiti

13、es-java build path-add externals JARS然后導(dǎo)入jnetpcap.jar包就可以了。4、 代碼編寫。首先查找電腦中的網(wǎng)絡(luò)設(shè)備,通過pcap.findAllDevs()來實現(xiàn)本機(jī)網(wǎng)絡(luò)設(shè)備的篩選。5、 在篩選出的網(wǎng)絡(luò)設(shè)備中選擇一個網(wǎng)絡(luò)設(shè)備進(jìn)行抓包,通過alldevs.get(int)來實現(xiàn)。6、 打開選中的設(shè)備,開始抓包。Snaplen:數(shù)據(jù)包長度,64*1024表示整個包的長度。Flags:模式,把選中的網(wǎng)卡設(shè)置成混亂狀態(tài)。Timeout:表示最大等待時間10S;通過pcap.openlive(name,snaplen,flags,timeout,errbuf)

14、打開選中的設(shè)備開始抓包。7、 把抓取到的數(shù)據(jù)包進(jìn)行處理,因為我們要抓取的是IP數(shù)據(jù)包,所以這里定義了IP4的協(xié)議。通過nextPacket(packet,obj)對每個抓取到的包進(jìn)行處理。If(packet.hasHeader(ip)來判斷抓取到的一個數(shù)據(jù)包中是否包含IP數(shù)據(jù)段,如果包括IP數(shù)據(jù)段,就把IP數(shù)據(jù)段截取出來存放到JBuffer buf中,然后輸出。如果數(shù)據(jù)包中沒有IP數(shù)據(jù)段就直接放棄該包,檢查下一個包。8、 那有的小伙伴要問了,不是要規(guī)定抓包數(shù)的嗎。在哪里呢?是的,在jnetpcap中規(guī)定數(shù)據(jù)包抓取數(shù)目的在這里。通過pcap.loop(int,print,name)來規(guī)定抓取包的

15、數(shù)量。其中int型的就是抓包數(shù)。完整代碼:package com.demo;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import org.jnetpcap.Pcap;import org.jnetpcap.PcapIf;import org.jnetpcap.nio.JBuffer;import org.jnetpcap.packet.PcapPacket;import org.jnetpcap.packet.PcapPacketHandler;import work.Ip4;Suppr

16、essWarnings(deprecation)public class findIp1 static int sb=0;/設(shè)備號static int num=0;/抓包數(shù) public static void main(String args) List alldevs = new ArrayList();/設(shè)備存放 StringBuilder errbuf = new StringBuilder(); /錯誤存放 /* * 取得設(shè)備列表 */ int r = Pcap.findAllDevs(alldevs, errbuf); if (r = Pcap.NOT_OK | alldevs.i

17、sEmpty() System.err.printf(找不到設(shè)備,請重試 %s, errbuf .toString(); return; System.out.println(找到的網(wǎng)絡(luò)設(shè)備如下:); int i = 0; for (PcapIf device : alldevs) System.out.printf(#%d: %s %sn, i+, device.getName(), device .getDescription(); System.out.println(請輸入2個數(shù)字,第一個是設(shè)備選擇,第二個是抓包數(shù):); Scanner scan=new Scanner(System.

18、in); sb=scan.nextInt(); num=scan.nextInt(); scan.close(); PcapIf device = alldevs.get(sb); / 選擇一個設(shè)備 Sytem.err.printf(n從改設(shè)備上 %s 抓取到:n, device .getDescription();* 打開選中的設(shè)備 */ int snaplen = 64 * 1024; / 捕獲整個包 int flags = Pcap.MODE_PROMISCUOUS; /設(shè)置為混亂狀態(tài) int timeout = 10 * 1000; /最大超時數(shù) Pcap pcap = Pcap .o

19、penLive(device.getName(), snaplen, flags, timeout, errbuf); if (pcap = null) System.err.printf(打開設(shè)備是產(chǎn)生錯誤: + errbuf.toString(); return; PcapPacketHandler print = new PcapPacketHandler() Ip4 ip=new Ip4(); int i=0; public void nextPacket(PcapPacket packet, Object obj) i+; /System.out.println(packet); /

20、if( packet.hasHeader(TC.ID) if(packet.hasHeader(ip) / System.out.print(packet); JBuffer buf=ip; System.out.println(第+i+個:); System.out.println(buf); System.out.println(); else System.out.println(第+i+個+抓取的數(shù)據(jù)包中不包含IP段,舍棄。); System.out.println(); /* String str=packet.toString(); int index = str.indexOf(

21、time to live); int index1 = str.indexOf(Udp); if(index!=-1&index1!=-1) String str1=str.substring(str.indexOf(Ip),str.indexOf(Udp); System.out.print(str1); else System.out.println(!在抓獲的改包中沒有IP數(shù)據(jù)); System.out.println(正在重新抓取。); */ /System.out.println(packet); /System.out.print(packet); / ; pcap.loop(nu

22、m, print, wmq); pcap.close(); 4、 實驗結(jié)果及分析4.1任務(wù)一:Ping命令使用結(jié)果截圖:Tracert命令使用結(jié)果截圖:ARP地址解析協(xié)議使用結(jié)果截圖:Route命令使用結(jié)果截圖:4.2任務(wù)二:首先交換機(jī)連接了4臺主機(jī),設(shè)置好IP以后,我們不管用哪一臺主機(jī)去ping另一臺主機(jī)都是通的:在通過交換機(jī)配置了vlan以后,把PC0和PC2放在一個局域網(wǎng),PC1和PC3放在一個局域網(wǎng),現(xiàn)在只有同在一個局域網(wǎng)內(nèi)的主機(jī)之間是可以互相連通的,比如用PC0去ping其他三臺主機(jī),只有PC2是可以ping通的:對于路由器的設(shè)置,在配置好各個端口和主機(jī)的IP地址以后,用一個網(wǎng)段的主

23、機(jī)去ping另一個網(wǎng)段的主機(jī)是ping不通的:通過route命令配置了路由表以后,連接這個網(wǎng)段的路由器就知道它要到達(dá)的目的網(wǎng)段的下一跳端口的IP地址,通過查找靜態(tài)路由表就可以找到:4.3任務(wù)三:輸入2個數(shù)字,一個是設(shè)備選擇,另外一個是抓包數(shù)。第一個包:第二個包:第三個包:第四個包:第五個包:可以看到每個包都是不一樣的IP數(shù)據(jù)包,但是其中的數(shù)據(jù)可以看得很清楚。在這里我要展示一下抓取到的完整的包時怎么樣的,只需要在代碼中解封掉一句代碼的注釋就可以了。其中還包含其他的數(shù)據(jù),還有Data數(shù)據(jù)段的數(shù)據(jù)。五、實驗總結(jié)及體會在實驗編寫的過程中遇到了很多問題,只有慢慢的把這些問題都解決之后才能完成這個實驗,比如說在做任務(wù)二的時候,靜

溫馨提示

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

評論

0/150

提交評論