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

下載本文檔

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

文檔簡介

1、計(jì)網(wǎng)大型實(shí)驗(yàn)報(bào)告課程 計(jì)算機(jī)網(wǎng)絡(luò)原理大型實(shí)驗(yàn) 姓名 汪敏倩 班級 計(jì)科1201 學(xué)號 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開源包,eclipes編程器,java語言三、實(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ù)包,再要求對方返回一個(gè)同樣大小的數(shù)據(jù)包來確定兩臺網(wǎng)絡(luò)機(jī)器是否連接相通,時(shí)延是多少。使用格式:Ping空格IP地址。該命令還可以加許多參數(shù)使用,具體是鍵入Ping按回車即可看到詳細(xì)說明。2、Tracert/traceroute 的用處和PING是差不多的。但是也

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

4、源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)接收到應(yīng)答報(bào)文時(shí)不會檢測該報(bào)文的真實(shí)性就會將其記入本機(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:主要用于手動配置靜態(tài)路由。route print-本命令用于顯示路由表中的當(dāng)前項(xiàng)目,由于用IP地址配置了網(wǎng)卡,因此所有的這些項(xiàng)目都是自動添加的。route add-使用本命令

5、,可以將新路由項(xiàng)目添加給路由表。例如,如果要設(shè)定一個(gè)到目的網(wǎng)絡(luò)209.98.32.33的路由,其間要經(jīng)過5個(gè)路由器網(wǎng)段,首先要經(jīng)過本地網(wǎng)絡(luò)上的一個(gè)路由器,其IP為202.96.123.5,子網(wǎng)掩碼為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ù)的目的地。下面這個(gè)例子可以將數(shù)據(jù)的路由改到另一個(gè)路由器,它采用一條包含3個(gè)網(wǎng)段的更直的路徑:route change 2

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

7、為三層交換,這是交換機(jī)的新進(jìn)展。交換機(jī)(二層交換)的工作原理交換機(jī)和網(wǎng)橋一樣,是工作在鏈路層的聯(lián)網(wǎng)設(shè)備,它的各個(gè)端口都具有橋接功能,每個(gè)端口可以連接一個(gè)LAN或一臺高性能網(wǎng)站或服務(wù)器,能夠通過自學(xué)習(xí)來了解每個(gè)端口的設(shè)備連接情況。所有端口由專用處理器進(jìn)行控制,并經(jīng)過控制管理總線轉(zhuǎn)發(fā)信息。 2、路由器的原理:路由器是一種計(jì)算機(jī)網(wǎng)路設(shè)備,它能將數(shù)據(jù)包通過一個(gè)個(gè)網(wǎng)路傳送至目的地,這個(gè)過程稱為路由。路由工作在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)橋),而路由器則更專注于網(wǎng)路層。3、虛擬局域網(wǎng):虛擬局域網(wǎng)(VLAN)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來,相互之間的通信就好像它們在同一個(gè)網(wǎng)段中一樣,由此得名虛擬局域網(wǎng)。4、靜態(tài)路由:靜態(tài)路由是指由用戶或網(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)路由信息在缺省情況下是私有的,不會傳遞給其他的路由器。當(dāng)然,網(wǎng)管員也可以通過對

9、路由器進(jìn)行設(shè)置使之成為共享的。靜態(tài)路由一般適用于比較簡單的網(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地址。分別為: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、這個(gè)時(shí)候你用PC0去pingPC1,PC2,PC3都是通的。然后接下來我們把PC0和PC2放一個(gè)VLAN PC1和PC3放一個(gè)VLAN6、在這個(gè)時(shí)候用PC0

10、去PING 它們3個(gè)主機(jī)。只有PC2是通的,因?yàn)樗麄冊谝粋€(gè)VLAN當(dāng)中。VLAN就是相當(dāng)于在一個(gè)局域網(wǎng)中一樣的。7、放好兩個(gè)路由器,兩個(gè)主機(jī),之間用交叉線連接,如圖設(shè)置,172.16.17.0 和172.16.17.64和172.16.17.128是3個(gè)網(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個(gè)路由器端口IP。連接2個(gè)主機(jī)。配置圖如下:10、172.16.17.65和172.16.17.66是兩個(gè)路由器連接端口的IP,配置如下:11、全部配置好后,我們可以用PC

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

12、開源包,通過wincap來抓取網(wǎng)卡數(shù)據(jù)包。百度上暫無簡介,也沒有中文教程,只有一個(gè)英文版的操作文檔。Java:本人最熟悉的編程語言,簡介,易懂強(qiáng)大。但是java不支持網(wǎng)絡(luò)抓包,所以需要加載一個(gè)jpcap,在網(wǎng)上也有好多關(guān)于jpcap的教程,但是它是32位的,電腦是64位,所以用不了;只能用jnetpcap,通過調(diào)用wincap來抓取網(wǎng)卡的數(shù)據(jù)包。抓取到的一個(gè)數(shù)據(jù)包是囊括好多字段(ip,udp,date等等下面會進(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、 代碼編寫。首先查找電腦中的網(wǎng)絡(luò)設(shè)備,通過pcap.findAllDevs()來實(shí)現(xiàn)本機(jī)網(wǎng)絡(luò)設(shè)備的篩選。5、 在篩選出的網(wǎng)絡(luò)設(shè)備中選擇一個(gè)網(wǎng)絡(luò)設(shè)備進(jìn)行抓包,通過alldevs.get(int)來實(shí)現(xiàn)。6、 打開選中的設(shè)備,開始抓包。Snaplen:數(shù)據(jù)包長度,64*1024表示整

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

15、包,檢查下一個(gè)包。8、 那有的小伙伴要問了,不是要規(guī)定抓包數(shù)的嗎。在哪里呢?是的,在jnetpcap中規(guī)定數(shù)據(jù)包抓取數(shù)目的在這里。通過pcap.loop(int,print,name)來規(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;impor

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

17、StringBuilder errbuf = new StringBuilder(); /錯(cuò)誤存放 /* * 取得設(shè)備列表 */ int r = Pcap.findAllDevs(alldevs, errbuf); if (r = Pcap.NOT_OK | alldevs.isEmpty() System.err.printf("找不到設(shè)備,請重試 %s", errbuf .toString(); return; System.out.println("找到的網(wǎng)絡(luò)設(shè)備如下:"); int i = 0; for (PcapIf device : alld

18、evs) System.out.printf("#%d: %s %sn", i+, device.getName(), device .getDescription(); System.out.println("請輸入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.pri

19、ntf("n從改設(shè)備上 '%s' 抓取到:n", device .getDescription();* 打開選中的設(shè)備 */ int snaplen = 64 * 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.pri

20、ntf("打開設(shè)備是產(chǎn)生錯(cuò)誤: " + errbuf.toString(); return; PcapPacketHandler<Object> print = new PcapPacketHandler<Object>() Ip4 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

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

22、r.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("!在抓獲的改包中沒有IP數(shù)據(jù)"); System.out.println("

23、正在重新抓取。"); */ /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臺主機(jī),設(shè)置好IP以后,我們不管用哪一臺主機(jī)去ping另一臺主機(jī)都是通的:在通過交換機(jī)配置了vlan以后,把PC0和PC2放在一個(gè)局域網(wǎng),PC1和PC

24、3放在一個(gè)局域網(wǎng),現(xiàn)在只有同在一個(gè)局域網(wǎng)內(nèi)的主機(jī)之間是可以互相連通的,比如用PC0去ping其他三臺主機(jī),只有PC2是可以ping通的:對于路由器的設(shè)置,在配置好各個(gè)端口和主機(jī)的IP地址以后,用一個(gè)網(wǎng)段的主機(jī)去ping另一個(gè)網(wǎng)段的主機(jī)是ping不通的:通過route命令配置了路由表以后,連接這個(gè)網(wǎng)段的路由器就知道它要到達(dá)的目的網(wǎng)段的下一跳端口的IP地址,通過查找靜態(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é)及體會在實(shí)驗(yàn)編寫的過

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論