計(jì)網(wǎng)實(shí)驗(yàn)報(bào)告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)[學(xué)習(xí)類(lèi)別]_第1頁(yè)
計(jì)網(wǎng)實(shí)驗(yàn)報(bào)告(抓取本地網(wǎng)卡的IP數(shù)據(jù)包)[學(xué)習(xí)類(lèi)別]_第2頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余22頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)網(wǎng)大型實(shí)驗(yàn)報(bào)告課程 計(jì)算機(jī)網(wǎng)絡(luò)原理大型實(shí)驗(yàn) 姓名 汪敏倩 班級(jí) 計(jì)科1201 學(xué)號(hào) 201226100117 一、實(shí)驗(yàn)?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ù)包的各個(gè)部分字段。二、實(shí)驗(yàn)軟件2.1任務(wù)一:cmd.exe命令解釋程序2.2任務(wù)二:Packet.Tracer模擬器2.3任務(wù)三:Wincap網(wǎng)絡(luò)抓包器,jnetpcap開(kāi)源包,eclipes編程器,java語(yǔ)言三、實(shí)驗(yàn)步驟

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

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

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

5、,可以將新路由項(xiàng)目添加給路由表。例如,如果要設(shè)定一個(gè)到目的網(wǎng)絡(luò)3的路由,其間要經(jīng)過(guò)5個(gè)路由器網(wǎng)段,首先要經(jīng)過(guò)本地網(wǎng)絡(luò)上的一個(gè)路由器,其IP為,子網(wǎng)掩碼為24,那么你應(yīng)該輸入以下命令:route add 3 mask 24 metric 5route change-你可以使用本命令來(lái)修改數(shù)據(jù)的傳輸路由,不過(guò),你不能使用本命令來(lái)改變數(shù)據(jù)的目的地。下面這個(gè)例子可以將數(shù)據(jù)的路由改到另一個(gè)路由器,它采用一條包含3個(gè)網(wǎng)段的更直的路徑:route change 2

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

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

8、式)。路由器與交換機(jī)(Switch)在概念上有一定重疊但也有不同:交換機(jī)泛指工作于任何網(wǎng)路層次的數(shù)據(jù)中繼設(shè)備(盡管多指網(wǎng)橋),而路由器則更專(zhuān)注于網(wǎng)路層。3、虛擬局域網(wǎng):虛擬局域網(wǎng)(VLAN)是一組邏輯上的設(shè)備和用戶(hù),這些設(shè)備和用戶(hù)并不受物理位置的限制,可以根據(jù)功能、部門(mén)及應(yīng)用等因素將它們組織起來(lái),相互之間的通信就好像它們?cè)谕粋€(gè)網(wǎng)段中一樣,由此得名虛擬局域網(wǎng)。4、靜態(tài)路由:靜態(tài)路由是指由用戶(hù)或網(wǎng)絡(luò)管理員手工配置的路由信息。當(dāng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)或鏈路的狀態(tài)發(fā)生變化時(shí),網(wǎng)絡(luò)管理員需要手工去修改路由表中相關(guān)的靜態(tài)路由信息。靜態(tài)路由信息在缺省情況下是私有的,不會(huì)傳遞給其他的路由器。當(dāng)然,網(wǎng)管員也可以通過(guò)對(duì)

9、路由器進(jìn)行設(shè)置使之成為共享的。靜態(tài)路由一般適用于比較簡(jiǎn)單的網(wǎng)絡(luò)環(huán)境,在這樣的環(huán)境中,網(wǎng)絡(luò)管理員易于清楚地了解網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),便于設(shè)置正確的路由信息。3.2.2實(shí)驗(yàn)步驟:1、安裝Packet.Tracer軟件。2、放一個(gè)交換機(jī),然后后面放4個(gè)主機(jī)。3、分別給主機(jī)配置IP地址。分別為: 4、按順序接上交換機(jī)的E0/1 E0/2 E0/3 E0/4端口5、這個(gè)時(shí)候你用PC0去pingPC1,PC2,PC3都是通的。然后接下來(lái)我們把PC0和PC2放一個(gè)VLAN PC1和PC3放一個(gè)VLAN6、在這個(gè)時(shí)候用PC0

10、去PING 它們3個(gè)主機(jī)。只有PC2是通的,因?yàn)樗麄冊(cè)谝粋€(gè)VLAN當(dāng)中。VLAN就是相當(dāng)于在一個(gè)局域網(wǎng)中一樣的。7、放好兩個(gè)路由器,兩個(gè)主機(jī),之間用交叉線連接,如圖設(shè)置, 和4和28是3個(gè)網(wǎng)段8、和29是主機(jī)IP,這里默認(rèn)網(wǎng)關(guān)是指你連接到路由器端口的端口IP。9、和30是2個(gè)路由器端口IP。連接2個(gè)主機(jī)。配置圖如下:10、5和6是兩個(gè)路由器連接端口的IP,配置如下:11、全部配置好后,我們可以用PC

11、0去pingPC1是不通的。(你要先在路由器中把左右2個(gè)端口打開(kāi)哦。?。?2、因?yàn)闆](méi)有路由轉(zhuǎn)發(fā)條件。所以接下來(lái)就要配置2個(gè)路由器的靜態(tài)路由。左邊路由器:右邊路由器:其中在上面的配置 其實(shí)就一句話,IP route +IP地址+子網(wǎng)掩碼+下一跳的端口IP。不過(guò)要先進(jìn)入配置模式,需要輸入 config terminal。3.3任務(wù)三:3.3.1實(shí)驗(yàn)原理:Wincap:Winpcap是一個(gè)Win32平臺(tái)下用于抓包和分析的系統(tǒng)。包括一個(gè)內(nèi)核級(jí)別的packet filter,一個(gè)底層的DLL(packet.dll)和一個(gè)高級(jí)的獨(dú)立于系統(tǒng)的DLL(Wpcap.dll)。Jnetpcap:一個(gè)基于java的

12、開(kāi)源包,通過(guò)wincap來(lái)抓取網(wǎng)卡數(shù)據(jù)包。百度上暫無(wú)簡(jiǎn)介,也沒(méi)有中文教程,只有一個(gè)英文版的操作文檔。Java:本人最熟悉的編程語(yǔ)言,簡(jiǎn)介,易懂強(qiáng)大。但是java不支持網(wǎng)絡(luò)抓包,所以需要加載一個(gè)jpcap,在網(wǎng)上也有好多關(guān)于jpcap的教程,但是它是32位的,電腦是64位,所以用不了;只能用jnetpcap,通過(guò)調(diào)用wincap來(lái)抓取網(wǎng)卡的數(shù)據(jù)包。抓取到的一個(gè)數(shù)據(jù)包是囊括好多字段(ip,udp,date等等下面會(huì)進(jìn)行展示),然后截取數(shù)據(jù)包中的IP字段。3.3.2實(shí)驗(yàn)步驟:1、 先安裝wincap;2、 把下載好的jnetpcap中的jnetpcap.jar包拷貝到%JAVA_HOME%jreli

13、bext目錄下,然后把jnetpcap.dll拷貝到%JAVA_HOME%jrebin目錄下。3、 然后再eclipes中加載這個(gè)jar包。右鍵項(xiàng)目工程-propertities-java build path-add externals JARS然后導(dǎo)入jnetpcap.jar包就可以了。4、 代碼編寫(xiě)。首先查找電腦中的網(wǎng)絡(luò)設(shè)備,通過(guò)pcap.findAllDevs()來(lái)實(shí)現(xiàn)本機(jī)網(wǎng)絡(luò)設(shè)備的篩選。5、 在篩選出的網(wǎng)絡(luò)設(shè)備中選擇一個(gè)網(wǎng)絡(luò)設(shè)備進(jìn)行抓包,通過(guò)alldevs.get(int)來(lái)實(shí)現(xiàn)。6、 打開(kāi)選中的設(shè)備,開(kāi)始抓包。Snaplen:數(shù)據(jù)包長(zhǎng)度,64*1024表示整個(gè)包的長(zhǎng)度。Flags:

14、模式,把選中的網(wǎng)卡設(shè)置成混亂狀態(tài)。Timeout:表示最大等待時(shí)間10S;通過(guò)pcap.openlive(name,snaplen,flags,timeout,errbuf)打開(kāi)選中的設(shè)備開(kāi)始抓包。7、 把抓取到的數(shù)據(jù)包進(jìn)行處理,因?yàn)槲覀円ト〉氖荌P數(shù)據(jù)包,所以這里定義了IP4的協(xié)議。通過(guò)nextPacket(packet,obj)對(duì)每個(gè)抓取到的包進(jìn)行處理。If(packet.hasHeader(ip)來(lái)判斷抓取到的一個(gè)數(shù)據(jù)包中是否包含IP數(shù)據(jù)段,如果包括IP數(shù)據(jù)段,就把IP數(shù)據(jù)段截取出來(lái)存放到JBuffer buf中,然后輸出。如果數(shù)據(jù)包中沒(méi)有IP數(shù)據(jù)段就直接放棄該包,檢查下一個(gè)包。8、

15、那有的小伙伴要問(wèn)了,不是要規(guī)定抓包數(shù)的嗎。在哪里呢?是的,在jnetpcap中規(guī)定數(shù)據(jù)包抓取數(shù)目的在這里。通過(guò)pcap.loop(int,print,name)來(lái)規(guī)定抓取包的數(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.jnetpc

16、ap.packet.PcapPacket;import org.jnetpcap.packet.PcapPacketHandler;import work.Ip4;SuppressWarnings(deprecation)public class findIp1 static int sb=0;/設(shè)備號(hào)static int num=0;/抓包數(shù) public static void main(String args) List alldevs = new ArrayList();/設(shè)備存放 StringBuilder errbuf = new

17、StringBuilder(); /錯(cuò)誤存放 /* * 取得設(shè)備列表 */ int r = Pcap.findAllDevs(alldevs, errbuf); if (r = Pcap.NOT_OK | alldevs.isEmpty() System.err.printf(找不到設(shè)備,請(qǐng)重試 %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.getN

18、ame(), device .getDescription(); System.out.println(請(qǐng)輸入2個(gè)數(shù)字,第一個(gè)是設(shè)備選擇,第二個(gè)是抓包數(shù):); Scanner scan=new Scanner(System.in); sb=scan.nextInt(); num=scan.nextInt(); scan.close(); PcapIf device = alldevs.get(sb); / 選擇一個(gè)設(shè)備 Sytem.err.printf(n從改設(shè)備上 %s 抓取到:n, device .getDescription();* 打開(kāi)選中的設(shè)備 */ int snaplen = 64

19、 * 1024; / 捕獲整個(gè)包 int flags = Pcap.MODE_PROMISCUOUS; /設(shè)置為混亂狀態(tài) int timeout = 10 * 1000; /最大超時(shí)數(shù) Pcap pcap = Pcap .openLive(device.getName(), snaplen, flags, timeout, errbuf); if (pcap = null) System.err.printf(打開(kāi)設(shè)備是產(chǎn)生錯(cuò)誤: + errbuf.toString(); return; PcapPacketHandler print = new PcapPacketHandler() Ip4

20、 ip=new Ip4(); int i=0; public void nextPacket(PcapPacket packet, Object obj) i+; /System.out.println(packet); /if( packet.hasHeader(TC.ID) if(packet.hasHeader(ip) / System.out.print(packet); JBuffer buf=ip; System.out.println(第+i+個(gè):); System.out.println(buf); System.out.println(); else System.out.p

21、rintln(第+i+個(gè)+抓取的數(shù)據(jù)包中不包含IP段,舍棄。); System.out.println(); /* String str=packet.toString(); int index = str.indexOf(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(!在抓獲的改包中沒(méi)

22、有IP數(shù)據(jù)); System.out.println(正在重新抓取。); */ /System.out.println(packet); /System.out.print(packet); / ; pcap.loop(num, print, wmq); pcap.close(); 4、 實(shí)驗(yàn)結(jié)果及分析4.1任務(wù)一:Ping命令使用結(jié)果截圖:Tracert命令使用結(jié)果截圖:ARP地址解析協(xié)議使用結(jié)果截圖:Route命令使用結(jié)果截圖:4.2任務(wù)二:首先交換機(jī)連接了4臺(tái)主機(jī),設(shè)置好IP以后,我們不管用哪一臺(tái)主機(jī)去ping另一臺(tái)主機(jī)都是通的:在通過(guò)交換機(jī)配置了vlan以后,把PC0和PC2放在一個(gè)局

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論