網(wǎng)絡(luò)協(xié)議分析_第1頁
網(wǎng)絡(luò)協(xié)議分析_第2頁
網(wǎng)絡(luò)協(xié)議分析_第3頁
網(wǎng)絡(luò)協(xié)議分析_第4頁
網(wǎng)絡(luò)協(xié)議分析_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重慶交通大學(xué)信息科學(xué)與工程學(xué)院課程設(shè)計報告姓 名: 廖微 學(xué) 號 631206040326班 級: 通信工程專業(yè) 2012級 3 班 課程設(shè)計項目名稱: 網(wǎng)絡(luò)協(xié)議分析綜合課程實驗 課程設(shè)計項目性質(zhì): 設(shè)計性 實驗室(中心): 軟件實驗中心 指 導(dǎo) 教 師 : 王 勇 課程設(shè)計完成時間: 2015 年 1 月 10 日第 16 頁 共 16 頁教師評閱:實驗?zāi)康拿鞔_;操作步驟正確;設(shè)計文稿(表格、程序、數(shù)據(jù)庫、網(wǎng)頁)符合要求;保存路徑正確; 實驗結(jié)果符合要求 實驗分析總結(jié)全面;實驗報告規(guī)范; 簽名: 年 月 日實驗成績:一、實驗?zāi)康囊?、課程設(shè)計目的1、了解wireshark軟件,學(xué)會運用wire

2、shark軟件抓包。2、通過wireshark抓包了解各種協(xié)議,可以和幀格式對應(yīng)去理解3、明白在網(wǎng)絡(luò)中信息在主機和客戶端是如何進行交互的。二、相關(guān)知識計算機網(wǎng)絡(luò)的分層:(1)OSI七層結(jié)構(gòu) 物理層(Physical Layer):為兩個相鄰節(jié)點提供一個物理連接,將信息以比特流方式在通信線路上傳送。數(shù)據(jù)鏈路層(Data Link Layer,DL):在兩個相鄰節(jié)點間的線路上,無差錯地傳送以幀為單位的數(shù)據(jù)。網(wǎng)絡(luò)層(Network Layer):在計算機網(wǎng)絡(luò)中兩臺主機之間傳送以分組或包為單位的數(shù)據(jù)。傳輸層(Transport Layer):在計算機網(wǎng)絡(luò)中兩個端系統(tǒng)之間傳送以報文為單位的數(shù)據(jù)。會話層(

3、Session Layer):在兩個互相通信的應(yīng)用進程之間建立、組織和協(xié)調(diào)其交互。表示層(Presentation Layer):用戶信息的語法表示。應(yīng)用層(Application Layer):用戶的各種應(yīng)用程序。(2) TCP/IP體系結(jié)構(gòu) (3) 五層協(xié)議結(jié)構(gòu) 三、課程設(shè)計主要內(nèi)容及原理1、首先,瀏覽器分析URL,因為是以字母(cn)而非數(shù)字結(jié)尾,可得知當前使用的是域名,必須首先解析其對應(yīng)的IP地址2、在DNS緩存中查找項,命中則執(zhí)行下面第X步,否則就發(fā)起DNS請求,請求解析域名3、瀏覽器構(gòu)建DNS包,遞交給傳輸層實體同時告知該包為DNS包。4、傳輸層實體構(gòu)建UDP包,源端口按主機當前情

4、況選擇,目的端口為53(53端口為DNS(Domain Name Server,域名服務(wù)器)服務(wù)器所開放,主要用于域名解析),然后將包遞交網(wǎng)絡(luò)層。5、網(wǎng)絡(luò)層實體以源IP為,目的IP為DNS服務(wù)器的即3等字段封裝UDP包以構(gòu)建IP包。同時,網(wǎng)絡(luò)層實體通過子網(wǎng)掩碼運算得知目的主機不在本子網(wǎng),則應(yīng)發(fā)給網(wǎng)關(guān)。在ARP緩存中查找項,如果命中則執(zhí)行第7步,否則6、進行ARP廣播,找到的網(wǎng)關(guān),找到的同時并更新ARP緩存。 7、此時在ARP緩存中查找到了則直接發(fā)送到該網(wǎng)段的網(wǎng)關(guān),網(wǎng)關(guān)然后再將IP幀的封裝包傳送到數(shù)

5、據(jù)鏈路層。數(shù)據(jù)鏈路層將IP幀的封裝包加上頭部和尾部組裝成幀,發(fā)送到物理層。 8、傳輸?shù)轿锢韺?,物理層確保原始的數(shù)據(jù)可在各種物理媒體上傳輸。物理層是比特流的傳送,因此不需要在加控制信息。9、先傳輸?shù)奖緳C的數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層要檢測所接收到的幀是否有差錯,數(shù)據(jù)鏈路層就簡單地丟棄這個出差錯的幀,如果需要改正數(shù)據(jù)在數(shù)據(jù)鏈路層時出現(xiàn)的差錯,此時采用可靠傳輸協(xié)議來糾正差錯。然后利用逆ARP協(xié)議將MAC解析為IP地址,此時可以直接在ARP緩存找到網(wǎng)關(guān),并將數(shù)據(jù)包直接發(fā)送到該路由器10、在網(wǎng)絡(luò)層,根據(jù)控制信息進行必要的操作,然后剝離幀的控制信息將幀還原成為IP數(shù)據(jù)包。就根據(jù)首部中的

6、目的地址查找路由器中的路由表,找出轉(zhuǎn)發(fā)分組接口。然后往傳輸層進行發(fā)送11、在傳輸層中,會對IP包進行解析,去掉頭部,此時的稱其為用戶數(shù)據(jù)包UDP。然后將UDP發(fā)送給應(yīng)用層12、應(yīng)用層經(jīng)過對控制信息的處理,此時就只剩下數(shù)據(jù)項,就將數(shù)據(jù)項直接發(fā)送給服務(wù)器。服務(wù)器收到數(shù)據(jù)后,給解析出來的IP地址直接發(fā)送到主機,此時的發(fā)送過程和前幾步是一樣的 這樣主機和DNS服務(wù)器就完成了一次DNS包的傳輸和,如果要進行數(shù)據(jù)的傳輸,還需要和web服務(wù)器進行一次三次握手,這樣雙方就能通信了三、課程設(shè)計過程簡述先利用ipconfig/flushdns將本地的DNS服務(wù)器緩存清除,然后打開wireshark,選正確自己所選

7、用的網(wǎng)卡。然后將學(xué)校主頁的地址寫入網(wǎng)頁的地址欄,在打開網(wǎng)頁之前,先運行wireshark,然后開始抓包,對于這次抓的包進行分析。首先通過客戶端到服務(wù)器端,先將五層協(xié)議的通路走通。主機要發(fā)送信息首先要經(jīng)過應(yīng)用層,這一層是應(yīng)用進程間通信和交互原則,常用的有HTTP協(xié)議,在這層,首先將數(shù)據(jù)包打包。然后將數(shù)據(jù)包發(fā)送到運輸層,運輸層主要有TCP和UDP協(xié)議,按照相應(yīng)的信息,把數(shù)據(jù)包打包成UDP包或者TCP包,只要給數(shù)據(jù)包加上頭部即可。然后將UDP包(TCP包)發(fā)送到下一層,網(wǎng)絡(luò)層。網(wǎng)絡(luò)層要做的事情也是封裝,將上層傳送下來的包進行IP封裝。封裝好了之后將數(shù)據(jù)傳送到數(shù)據(jù)鏈路層,將IP數(shù)據(jù)包組裝成幀,組裝成幀

8、需要將IP數(shù)據(jù)包加上頭部和尾部。之后就傳送到物理層,通過物理層的傳輸,傳輸?shù)椒?wù)器端的數(shù)據(jù)鏈路層,在服務(wù)器端,就等于是對封裝包的一層一層的剝離,等于是客戶端封裝的逆過程。這就是數(shù)據(jù)的一次傳輸,之后的數(shù)據(jù)傳輸還是按照這個過程來的。應(yīng)用進程的數(shù)據(jù)在各層之間傳遞所經(jīng)過的變化描述如下:(為簡單起見,假定兩個主機是直接相連的。)假定主機1的應(yīng)用進程AP1向主機2的應(yīng)用進程AP2傳送數(shù)據(jù)。AP1先將其數(shù)據(jù)交給本主機的第5層應(yīng)用層。第五層加上必要的控制信息H5就變成了下一層的數(shù)據(jù)單元。第4層運輸層收到這個數(shù)據(jù)單元后,加上本層的控制信息H4再交給第3層網(wǎng)絡(luò)層,成為第3層的數(shù)據(jù)單元。以此類推,不過到了第2層數(shù)據(jù)

9、鏈路層后,控制信息分成兩部分,分別加到數(shù)據(jù)單元的首部和尾部,而第1層物理層由于是比特流的傳送所以不再加上控制信息。四、課程設(shè)計結(jié)果及分析(1)DNS協(xié)議的分析。獲取輸入URL的域名地址,例如域名到IP地址的解析過程如下:當某一個應(yīng)用進程需要把主機名解析為IP地址時,該應(yīng)用進程就調(diào)用解析程序,并成為DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數(shù)據(jù)報的形式發(fā)給本地域名服務(wù)器。本地域名服務(wù)器在查找域名后,把對應(yīng)的IP地址放在回答報文中返回。應(yīng)用進程獲得目的主機的IP地址后即可進行通信?;局R:DNS的報文格式是: 其中12個字節(jié)的為頭部部分,其次是查詢問題,回答,授權(quán)和額外信

10、息,所有的請求報文都有查詢問題,后面3個都是DNS服務(wù)器返回的應(yīng)答報文所填充的。標識(2字節(jié))可以看作是DNS的標志。標志也是兩字節(jié),是十分重要的部分。抓包截圖如下:這部分我們可以對照wireshark的截圖來觀察DNS協(xié)議的標志:QR(1比特):查詢/響應(yīng)的標志位,1為響應(yīng),0為查詢。0就表示該DNS協(xié)議為查詢報文。opcode(4比特):定義查詢或響應(yīng)的類型(若為0則表示是標準的,若為1則是反向的,若為2則是服務(wù)器狀態(tài)請求)。這個查詢的類型是標準的。AA: 授權(quán)應(yīng)答(Authoritative Answer) - 這個比特位在應(yīng)答的時候才有意義,指出給出應(yīng)答的服務(wù)器是查詢域名的授權(quán)解析服務(wù)

11、器。注意因為別名的存在,應(yīng)答可能存在多個主域名,這個AA位對應(yīng)請求名,或者應(yīng)答中的第一個主域名。TC(1比特):截斷標志位。1表示響應(yīng)已超過512字節(jié)并已被截斷。0表示響應(yīng)沒有被截斷。RD(1比特):該位為1表示客戶端希望得到遞歸回答。zero(3比特):為0,保留位。在接下來我們還可以看見四個選項Questions 1 表明問題數(shù)為1回答數(shù)Answer RRs: 0 權(quán)威數(shù)Authority RRs: 0 附加數(shù)Additional RRs: 0我們可以看到問題是詢問的域名解析。下面的圖描述DNS服務(wù)器對域名進行解析:我們可以從answer中看出,目的IP解析出來是

12、。(2)瀏覽器將DNS包遞給傳輸層3、傳輸層構(gòu)建UDP包,遞交網(wǎng)絡(luò)層傳輸層構(gòu)建的UDP包使用了UDP的傳輸協(xié)議,將這個包遞交給了網(wǎng)絡(luò)層,從wireshark抓包分析中我們可以看到,源端口用的是53358端口,目的端口是53端口,長度為46字節(jié)。UDP傳輸協(xié)議(4)網(wǎng)絡(luò)層將UDP包封裝為IP包IP數(shù)據(jù)報的格式為:通過這個IP幀格式,我們就可以將IP封裝包進行解讀。版本:IPv4。首部長度:20字節(jié)。區(qū)分服務(wù):只有在使用區(qū)分服務(wù)時,該字段才起作用,一般情況下都不起作用??傞L度:指首部和數(shù)據(jù)之和的長度為59字節(jié)。標識:IP軟件在存儲器中維持一個計數(shù)器,每產(chǎn)生一個數(shù)據(jù)報,計數(shù)器就加1,此時計數(shù)器的值是

13、7565。標志:占三位,但是目前只有前兩位有意義。第一個是最低標記位MF=0,表示這是若干數(shù)據(jù)報片中的最后一個。中間標記為DF=0,表示不能分片。片偏移:因為沒有分片,所以片偏移為零。生存時間:TTL(Time to live)表示跳數(shù),一共有64跳,表明在因特網(wǎng)中該數(shù)據(jù)報最多可經(jīng)過64個路由器。因為是問題發(fā)送端,所以還沒有經(jīng)過路由器。協(xié)議:由圖可知,運用了UDP傳輸協(xié)議。首部校驗和:只檢驗數(shù)據(jù)包的首部,檢驗出來的結(jié)果是correct。源IP地址:本機地址目的IP地址:3 學(xué)校的DNS服務(wù)器IP地址。(4)進行ARP廣播,找到網(wǎng)關(guān)硬件類 型協(xié) 議類

14、型 12op 發(fā)送端以太網(wǎng)地址發(fā)送端IP地址目的端以太網(wǎng)地址目的IP地址在wireshark中,我們可以看到類型是一個Broadcast,在詢問誰3網(wǎng)關(guān)。ARP包的外部還有以太網(wǎng)幀,增加了一個頭部和尾部。在ARP協(xié)議中,我們可以看到:硬件類型:1。以太網(wǎng)的硬件類型協(xié)議類型:是IP協(xié)議中的一個。1(硬件地址長度):MAC地址長度,為6個字節(jié)。2(協(xié)議地址長度):因為使用的IPv4,所以協(xié)議長度4個字節(jié)。op操作符:1,該包為一個請求包。發(fā)送端MAC地址:00:1a:a9:7e:50:a8發(fā)送端IP地址:目的端MAC地址:00:00:00:00:00:00目的I

15、P地址:3然后將IP數(shù)據(jù)包發(fā)送到數(shù)據(jù)鏈路層。(5)數(shù)據(jù)鏈路層將IP數(shù)據(jù)報封裝為幀Ethernet II結(jié)構(gòu)為 6字節(jié) 6字節(jié) 2字節(jié) 46-1500字節(jié) 4字節(jié)目標MAC地址源MAC地址類型數(shù)據(jù)FCS可以與圖片相對應(yīng)的進行解讀:目的MAC地址:00:1a:a9:7e:50:a8源MAC地址:9c:2a:70:50:e2:d3類型:IP表示上層用的IP數(shù)據(jù)包。FCS:Frame Check Sequence,用于糾錯,含有一個4位的冗余校驗碼。 (6)在數(shù)據(jù)鏈路層中加上頭部和尾部,然后發(fā)送到物理層,交給物理層之后發(fā)送給外部線路。(7)服務(wù)器的物理層接收到數(shù)據(jù),并把數(shù)據(jù)發(fā)送給上層

16、的數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層先要檢查MAC地址,并對所收到的幀進行糾錯和檢錯。沒有錯誤后,去掉以太幀的首部和尾部之后,將IP包發(fā)送給網(wǎng)絡(luò)層,網(wǎng)絡(luò)層去掉IP頭部之后,把UDP包發(fā)回給傳輸層,最后傳輸層將DNS包發(fā)送給服務(wù)器端。(8)DNS服務(wù)器將發(fā)送過來的DNS中域名進行解析,解析出IP地址后按照上述所說的過程將IP地址發(fā)送給主機。在這個包里面,可以看到,返回來了的IP地址。(9)瀏覽器構(gòu)建了HTTP包,請求傳輸數(shù)據(jù),并且發(fā)送給了傳輸層。HTTP有兩類報文:(1)請求報文從客戶想服務(wù)器發(fā)送請求報文(2)響應(yīng)報文從服務(wù)器到客戶端的回答 在wireshark的截圖中,我們可以看

17、到該HTTP顯示是一個請求報文。在上面我們可以看到請求的方法,請求的版本等。Host頭域指定請求資源的Intenet主機和端口號,上面包含了url的原始服務(wù)器()。connection告訴服務(wù)器一直保持鏈接。user-agent表明用戶代理使用的瀏覽器。Accept-language表示了用戶希望優(yōu)先得到中文網(wǎng)頁。(10)建立鏈接需要用TCP協(xié)議,因為網(wǎng)頁的傳輸是需要可靠的服務(wù)的,因此使用傳輸控制協(xié)議TCP TCP協(xié)議的格式我們可以對照TCP的幀結(jié)構(gòu)來解讀TCP的幀結(jié)構(gòu)源端口:2字節(jié),50280代理服務(wù)器列表目的端口:2字節(jié),80端口,開放了HTTP協(xié)議。序號:4字節(jié),為1。TCP是面向字節(jié)流

18、的。在一個TCP連接中傳送的字節(jié)流中的每一個自己都按順序編號。保留:占6位,目前是全部置為0。緊急URG:當URG=1時,表明緊急指針字段有效。此時就告訴系統(tǒng)這個數(shù)據(jù)的優(yōu)先級比較高,要優(yōu)先傳送。在該圖中,URG=0,只說明這是個普通的數(shù)據(jù)。確認ACK:ACT=0時,確認號無效,這說明了連接還沒有建立,因為TCP規(guī)定,連接建立后所有傳送的報文段都必須把ACK置1,圖中,ACK=1。推送PSH:當兩個應(yīng)用進程進行交互式通信時,有時在一端的應(yīng)用進程希望在鍵入一個命令后立即能夠收到對方的響應(yīng)。此時PSH置為1.復(fù)位RST:當RST=1時,表明TCP連接中出現(xiàn)嚴重差錯,必須釋放連接,然后重新建立運輸連接

19、。還可以用來拒絕一個非法的報文段或拒接打開一個連接。此時RST=0,表明TCP連接沒有出現(xiàn)錯誤,也不用拒絕打開連接。同步SYN:在連接建立是用來同步的序號。當SYN=1而ACK=0時,表明這是一個連接請求報文段。當同時置1時,表示連接接收報文。當前的TCP協(xié)議正好是一個連接接受的報文段。終止FIN:用來釋放一個連接。此時FIN=0,表示數(shù)據(jù)還沒有發(fā)送完,不用中止連接。窗口:占兩字節(jié)。窗口指的是發(fā)送本報文段的一方的接收窗口。窗口值告訴告訴對方:從本報文段首部的確認信號算起,接收方目前允許對方發(fā)送的數(shù)據(jù)量。此時的窗口值為16425。最后剩下的了校驗和和選項,選項的長度是可變的。(11) 連接建立

20、即此時主機向服務(wù)器發(fā)送請求報文段,完成3次握手第一次握手TCP規(guī)定同部位SYN=1,SYN報文段不帶數(shù)據(jù),序號為0,我與服務(wù)器第一次握手SYN=1,報文段的數(shù)據(jù)為0。第二次握手 服務(wù)器發(fā)回確認包, 標志位為 SYN,ACK. 將確認序號設(shè)置為客戶的序號加1,即0+1=1。第三次握手TCP客戶收到服務(wù)器確認報文段后,再向服務(wù)器發(fā)出確認報文段ACK=1,TCP規(guī)定若無數(shù)據(jù)則消耗序號。此時序號還為1,則傳輸?shù)男盘枱o序號。TCP建立連接的三次握手如圖:(12) 數(shù)據(jù)傳送 完成三次握手后,客戶端和服務(wù)器端就可以傳送數(shù)據(jù)了。比如網(wǎng)頁的圖片聲音等數(shù)據(jù),但是在傳輸數(shù)據(jù)的時候,還是需要通過5層協(xié)議來傳輸,傳輸?shù)?/p>

21、方法和上述的相同。(13) 連接釋放 當雙方都不需要數(shù)據(jù)的時候就會釋放連接,雙方任一一方都可先釋放。TCP規(guī)定,請求釋放方A先提出釋放連接則FIN=1,且要消耗序號。B接到釋放請求后會發(fā)出確認及ACK=1,這時請求釋放方無數(shù)據(jù)發(fā)送給B了,但B可再發(fā)數(shù)據(jù)給A,若B也無數(shù)據(jù)發(fā)送了,因此也要發(fā)送釋放連接報段;B也無數(shù)據(jù)發(fā)送了也發(fā)送了釋放連接報段,這時FIN也應(yīng)為1,無數(shù)據(jù),有序號A收到釋放報文后也要發(fā)出后確認,則釋放連接全部結(jié)束,雙方都不會放送數(shù)據(jù),也不會收到對方的數(shù)據(jù)。此過程為四次握手。 五、心得體會本次實驗主要結(jié)合了計算機網(wǎng)絡(luò)這門課程的基礎(chǔ)知識,在課本知識的基礎(chǔ)上使用Wireshark軟件進行抓

22、包并且對網(wǎng)絡(luò)體系結(jié)構(gòu)進行分析,本次實驗的主要內(nèi)容是主要分析了應(yīng)用層的DNS協(xié)議,運輸層的UDP用戶數(shù)據(jù)報協(xié)議,網(wǎng)絡(luò)層的IP協(xié)議,解決IP地址與MAC地址映射問題的ARP協(xié)議,數(shù)據(jù)鏈路層中的硬件地址等。主機要發(fā)送信息首先要經(jīng)過應(yīng)用層,這一層是應(yīng)用進程間通信和交互原則,常用的有HTTP協(xié)議,在這層,首先將數(shù)據(jù)包打包。然后將數(shù)據(jù)包發(fā)送到運輸層,運輸層主要有TCP和UDP協(xié)議,按照相應(yīng)的信息,把數(shù)據(jù)包打包成UDP包或者TCP包,只要給數(shù)據(jù)包加上頭部即可。然后將UDP包(TCP包)發(fā)送到下一層,網(wǎng)絡(luò)層。網(wǎng)絡(luò)層要做的事情也是封裝,將上層傳送下來的包進行IP封裝。封裝好了之后將數(shù)據(jù)傳送到數(shù)據(jù)鏈路層,將IP數(shù)據(jù)包組裝成幀,組裝成幀需要將IP數(shù)據(jù)包加上頭部和尾部。之后就傳送到物理層,通過物理層的傳輸,傳輸?shù)椒?wù)器端的數(shù)據(jù)鏈路層,在服務(wù)器端,就等于是對封裝包的一層一層的剝離,等于是客戶端封裝的逆過程。這就是數(shù)據(jù)的一次傳輸,之后的數(shù)據(jù)傳輸還是按照這個

溫馨提示

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

評論

0/150

提交評論