Wireshark抓包工具計算機網(wǎng)絡實驗_第1頁
Wireshark抓包工具計算機網(wǎng)絡實驗_第2頁
Wireshark抓包工具計算機網(wǎng)絡實驗_第3頁
Wireshark抓包工具計算機網(wǎng)絡實驗_第4頁
Wireshark抓包工具計算機網(wǎng)絡實驗_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE PAGE 58實驗一 Wireshark使用一、實驗目的1、熟悉并掌握Wireshark的基本使用;2、了解網(wǎng)絡協(xié)議實體間進行交互以及報文交換的情況。二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、預備知識要深入理解網(wǎng)絡協(xié)議,需要觀察它們的工作過程并使用它們,即觀察兩個協(xié)議實體之間交換的報文序列,探究協(xié)議操作的細節(jié),使協(xié)議實體執(zhí)行某些動作,觀察這些動作及其影響。這種觀察可以在仿真環(huán)境下或在因特網(wǎng)這樣的真實網(wǎng)絡環(huán)境中完成。Wireshark是一種可以運行在Windows, UNIX, Linux等操作系統(tǒng)上的分組嗅探器,是一個開源免

2、費軟件,可以從 HYPERLINK 下載。運行Wireshark程序時,其圖形用戶界面如圖2所示。最初,各窗口中并無數(shù)據(jù)顯示。Wireshark的界面主要有五個組成部分:命令和菜單協(xié)議篩選框捕獲分組列表選定分組首部明細分組內(nèi)容左:十六進制右:ASCII碼圖1命令菜單(command menus):命令菜單位于窗口的最頂部,是標準的下拉式菜單。協(xié)議篩選框(display filter specification):在該處填寫某種協(xié)議的名稱,Wireshark據(jù)此對分組列表窗口中的分組進行過濾,只顯示你需要的分組。捕獲分組列表(listing of captured packets):按行顯示已被

3、捕獲的分組內(nèi)容,其中包括:分組序號、捕獲時間、源地址和目的地址、協(xié)議類型、協(xié)議信息說明。單擊某一列的列名,可以使分組列表按指定列排序。其中,協(xié)議類型是發(fā)送或接收分組的最高層協(xié)議的類型。分組首部明細(details of selected packet header):顯示捕獲分組列表窗口中被選中分組的首部詳細信息。包括該分組的各個層次的首部信息,需要查看哪層信息,雙擊對應層次或單擊該層最前面的“”即可。分組內(nèi)容窗口(packet content):分別以十六進制(左)和ASCII碼(右)兩種格式顯示被捕獲幀的完整內(nèi)容。四、 實驗步驟啟動Web瀏覽器(如IE);啟動Wireshark;開始分組捕

4、獲:單擊工具欄的按鈕,出現(xiàn)如圖3所示對話框,options按鈕可以進行系統(tǒng)參數(shù)設置,在絕大部分實驗中,使用系統(tǒng)的默認設置即可。當計算機具有多個網(wǎng)卡時,選擇其中發(fā)送或接收分組的網(wǎng)絡接口(本例中,第一塊網(wǎng)卡為虛擬網(wǎng)卡,第二塊為以太網(wǎng)卡)。單擊“Start”開始進行分組捕獲;圖3在運行分組捕獲的同時,在瀏覽器地址欄中輸入某個網(wǎng)頁的URL,如:當完整的頁面下載完成后,單擊捕獲對話框中的“stop”按鈕,停止分組捕獲。此時, Wireshark主窗口顯示已捕獲的你本次通信的所有協(xié)議報文;在協(xié)議篩選框中輸入“http”,單擊“apply”按鈕,分組列表窗口將只顯示HTTP協(xié)議報文。選擇分組列表窗口中的第一

5、條http報文,它是你的計算機發(fā)向服務器(HYPERLINK /)的HTTP GET報文。當你選擇該報文后,以太網(wǎng)幀、IP數(shù)據(jù)報、TCP報文段、以及HTTP報文首部信息都將顯示在分組首部子窗口中,其結(jié)果如圖4。圖4五、 實驗報告內(nèi)容在實驗基礎上,回答以下問題:列出在第5步中分組列表子窗口所顯示的所有協(xié)議類型;從發(fā)出HTTP GET報文到接收到對應的HTTP OK響應報文共需要多長時間?(分組列表窗口中Time列的值是從Wireshark開始追蹤到分組被捕獲的總的時間數(shù),以秒為單位)你主機的IP地址是什么?你訪問的服務器的IP地址是什么?實驗二 使用Wireshark分析以太網(wǎng)幀與ARP協(xié)議一、

6、實驗目的分析以太網(wǎng)幀,MAC地址和ARP協(xié)議二、實驗環(huán)境與因特網(wǎng)連接的計算機網(wǎng)絡系統(tǒng);主機操作系統(tǒng)為windows;使用Wireshark、IE等軟件。三、實驗步驟:IP地址用于標識因特網(wǎng)上每臺主機,而端口號則用于區(qū)別在同一臺主機上運行的不同網(wǎng)絡應用程序。在鏈路層,有介質(zhì)訪問控制(Media Access Control,MAC)地址。在局域網(wǎng)中,每個網(wǎng)絡設備必須有唯一的MAC地址。設備監(jiān)聽共享通信介質(zhì)以獲取目標MAC地址與自己相匹配的分組。Wireshark 能把MAC地址的組織標識轉(zhuǎn)化為代表生產(chǎn)商的字符串,例如,00:06:5b:e3:4d:1a也能以Dell:e3:4d:1a顯示,因為組

7、織唯一標識符00:06:5b屬于Dell。地址ff:ff:ff:ff:ff:ff是一個特殊的MAC地址,意味著數(shù)據(jù)應該廣播到局域網(wǎng)的所有設備。在因特網(wǎng)上,IP地址用于主機間通信,無論它們是否屬于同一局域網(wǎng)。同一局域網(wǎng)間主機間數(shù)據(jù)傳輸前,發(fā)送方首先要把目的IP地址轉(zhuǎn)換成對應的MAC地址。這通過地址解析協(xié)議ARP實現(xiàn)。每臺主機以ARP高速緩存形式維護一張已知IP分組就放在鏈路層幀的數(shù)據(jù)部分,而幀的目的地址將被設置為ARP高速緩存中找到的MAC地址。如果沒有發(fā)現(xiàn)IP地址的轉(zhuǎn)換項,那么本機將廣播一個報文,要求具有此IP地址的主機用它的MAC地址作出響應。具有該IP地址的主機直接應答請求方,并且把新的映

8、射項填入ARP高速緩存。發(fā)送分組到本地網(wǎng)外的主機,需要跨越一組獨立的本地網(wǎng),這些本地網(wǎng)通過稱為網(wǎng)關或路由器的中間機器連接。網(wǎng)關有多個網(wǎng)絡接口卡,用它們同時連接多個本地網(wǎng)。最初的發(fā)送者或源主機直接通過本地網(wǎng)發(fā)送數(shù)據(jù)到本地網(wǎng)關,網(wǎng)關轉(zhuǎn)發(fā)數(shù)據(jù)報到其它網(wǎng)關,直到最后到達目的主機所在的本地網(wǎng)的網(wǎng)關。1、俘獲和分析以太網(wǎng)幀 (1)選擇 工具-Internet 選項-刪除文件(2)啟動Wireshark 分組嗅探器(3)在瀏覽器地址欄中輸入如下網(wǎng)址: HYPERLINK /wireshark-labs /wireshark-labs 會出現(xiàn)美國權利法案。(4)停止分組俘獲。在俘獲分組列表中(listing

9、of captured packets)中找到HTTP GET 信息和響應信息,如圖1所示。(如果你無法俘獲此分組,在Wireshark下打開文件名為ethernet-ethereal-trace-1的文件進行學習)。HTTP GET信息被封裝在TCP分組中,TCP分組又被封裝在IP數(shù)據(jù)報中,IP數(shù)據(jù)報又被封裝在以太網(wǎng)幀中)。在分組明細窗口中展開Ethernet II信息(packet details window)?;卮鹣旅娴膯栴}:1、你所在的主機48-bit Ethernet 地址是多少?2、Ethernet 幀中目的地址是多少?這個目的地址是的Ethernet 地址嗎?圖1HTTP GE

10、T信息和響應信息2、分析地址ARP協(xié)議(1)ARP CachingARP協(xié)議用于將目的IP轉(zhuǎn)換為對應的MAC地址。Arp命令用來觀察和操作緩存中的內(nèi)容。雖然arp命令和ARP有一樣的名字,很容易混淆,但它們的作用是不同的。在命令提示符下輸入arp可以看到在你所在電腦中ARP緩存中的內(nèi)容。為了觀察到你所在電腦發(fā)送和接收ARP信息,我們需要清除ARP緩存,否則你所在主機很容易找到已知IP和匹配的MAC地址。步驟如下:(1)清除ARP cache,具體做法:在MSDOS環(huán)境下,輸入命令arp d * command ,The d 表示清除操作, * 刪除all table entries.(2)選擇

11、 工具-Internet 選項-刪除文件(3)啟動Wireshark分組俘獲器(4)在瀏覽器地址欄中輸入如下網(wǎng)址:/wireshark-labs/ HTTP-wireshark-lab-file3.html(5)停止分組俘獲。(6)選擇 Analyze-Enabled Protocols-取消IP選項-選擇OK。如圖3所示: 圖3 利用Wireshark俘獲的ARP分組四、實驗報告根據(jù)實驗,回答下面問題:由于此實驗是關于Ethernet 和ARP 的,所以,只需在分組俘獲列表中顯示IP層下面的協(xié)議,具體做法為:選擇 Analyze-Enabled Protocols-不選擇IP協(xié)議-selec

12、t ok如圖2所示:實驗三 使用Wireshark分析IP協(xié)議一、實驗目的1、分析IP協(xié)議2、分析IP數(shù)據(jù)報分片二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、實驗步驟IP協(xié)議是因特網(wǎng)上的中樞。它定義了獨立的網(wǎng)絡之間以什么樣的方式協(xié)同工作從而形成一個全球戶聯(lián)網(wǎng)。因特網(wǎng)內(nèi)的每臺主機都有IP地址。數(shù)據(jù)被稱作數(shù)據(jù)報的分組形式從一臺主機發(fā)送到另一臺。每個數(shù)據(jù)報標有源IP地址和目的IP地址,然后被發(fā)送到網(wǎng)絡中。如果源主機和目的主機不在同一個網(wǎng)絡中,那么一個被稱為路由器的中間機器將接收被傳送的數(shù)據(jù)報,并且將其發(fā)送到距離目的端最近的下一個路由器。這個過程

13、就是分組交換。IP允許數(shù)據(jù)報從源端途經(jīng)不同的網(wǎng)絡到達目的端。每個網(wǎng)絡有它自己的規(guī)則和協(xié)定。IP能夠使數(shù)據(jù)報適應于其途徑的每個網(wǎng)絡。例如,每個網(wǎng)絡規(guī)定的最大傳輸單元各有不同。IP允許將數(shù)據(jù)報分片并在目的端重組來滿足不同網(wǎng)絡的規(guī)定。在4_1_JoiningTheInternet下打開已俘獲的分組,分組名為:dhcp_isolated.cap。感興趣的同學可以在有動態(tài)分配IP的實驗環(huán)境下俘獲此分組,此分組具體俘獲步驟如下:1、使用DHCP獲取IP地址(1)打開命令窗口,啟動Wireshark。(2)輸入“ipconfig /release”。這條命令會釋放主機目前的IP地址,此時,主機IP地址會變?yōu)?/p>

14、(3)然后輸入“ipconfig /renew”命令。這條命令讓主機獲得一個網(wǎng)絡配置,包括新的IP地址。(4)等待,直到“ipconfig /renew”終止。然后再次輸入“ipconfig /renew” 命令。(5)當?shù)诙€命令“ipconfig /renew” 終止時,輸入命令“ipconfig /release” 釋放原來的已經(jīng)分配的IP地址(6)停止分組俘獲。如圖1所示: 圖1 Wireshark俘獲的分組下面,我們對此分組進行分析:IPconfig 命令被用于顯示機器的IP地址及修改IP地址的配置。當輸入命ipconfig /release命令時,用來釋放機器的當前IP地址。釋放之

15、后,該機沒有有效的IP地址并在分組2中使用地址作為源地址。分組2是一個DHCP Discover(發(fā)現(xiàn))報文,如圖2所示。當一臺沒有IP地址的計算機申請IP地址時將發(fā)送該報文。DHCP Discovery報文被發(fā)送給特殊的廣播地址:55,該地址將到達某個限定廣播范圍內(nèi)所有在線的主機。理論上,55能夠廣播到整個因特網(wǎng)上,但實際上并不能實現(xiàn),因為路由器為了阻止大量的請求淹沒因特網(wǎng),不會將這樣的廣播發(fā)送到本地網(wǎng)之外。在DHCP Discover報文中,客戶端包括自身的信息。特別是,它提供了自己的主機名(MATTHEWS)和其以太網(wǎng)接口的物理地址(00:07:e9:53:87:d9)。這些信息都被DH

16、CP用來標識一個已知的客戶端。DHCP服務器可以使用這些信息實現(xiàn)一系列的策略,比如,分配與上次相同的IP地址,分配一個上次不同的IP地址,或要求客戶端注冊其物理層地址來獲取IP地址。在DHCP Discover報文中,客戶端還詳細列出了它希望從DHCP服務器接收到的信息。在Parameter Request List中包含了除客戶端希望得到的本地網(wǎng)絡的IP地址之外的其他數(shù)據(jù)項。這些數(shù)據(jù)項中許多都是一臺即將連入因特網(wǎng)的計算機所需要的數(shù)據(jù)。例如,客戶端必須知道的本地路由器的標識。任何目的地址不在本地網(wǎng)的數(shù)據(jù)報都將發(fā)送到這臺路由器上。也就是說,這是發(fā)向外網(wǎng)的數(shù)據(jù)報在通向目的端的路徑上遇到的第一臺中間

17、路由器。 圖2 DHCP Discovery客戶端必須知道自己的子網(wǎng)掩碼。子網(wǎng)掩碼是一個32位的數(shù),用來與IP地址進行“按 圖2 Parameter Request List位邏輯與運算”從而得出網(wǎng)絡地址。所有可以直接通信而不需要路由器參與的機器都有相同的網(wǎng)絡地址。因此,子網(wǎng)掩碼用來決定數(shù)據(jù)報是發(fā)送到本地路由器還是直接發(fā)送到本地目的主機??蛻舳诉€必須知道它們的域名和它們在本地域名服務器上的標識。域名是一個可讀的網(wǎng)絡名。IP地址為的DHCP服務器回復了一個DHCP OFFER報文。該報文也廣播到55,因為盡管客戶端還不知道自己的IP地址,但它將接收到發(fā)送到廣播地址的報文。這個報文中包含了客戶端請

18、求的信息,包括IP地址、本地路由器、子網(wǎng)掩碼、域名和本地域名服務器。在分組5中,客戶端通過發(fā)送DHCP Request(請求)報文表明自己接收到的IP地址。最后,在分組6中DHCP服務器確認請求的地址并結(jié)束對話。此后,在分組7中客戶端開始使用它的新的IP地址作為源地址。在分組3和分組7到12的地址ARP協(xié)議引起了我們的注意。在分組3中,DHCP服務器詢問是否有其它主機使用IP地址00(該請求被發(fā)送到廣播地址)。這就允許DHCP服務器在分配IP之前再次確認沒有其它主機使用該IP地址。在獲取其IP地址之后,客戶端會發(fā)送3個報文詢問其他主機是否有與自己相同的IP地址。前4個ARP請求都沒有回應。在分

19、組1013中,DHCP服務器再次詢問哪個主機擁有IP地址00,客戶端兩次回答它占有該IP同時提供了自己的以太網(wǎng)地址。通過DHCP分配的IP地址有特定的租用時間。為了保持對某個IP的租用,客戶端必須更新租用期。當輸入第二個命令ipconfig /renew后,在分組14和15中就會看到更新租用期的過程。DHCP Request請求更新租用期。DHCP ACK包括租用期的長度。如果在租用期到期之前沒有DHCP Request發(fā)送,DHCP服務器有權將該IP地址重新分配給其他主機。最后,在分組16時輸入命令ipconfig /release后的結(jié)果。在DHCP服務器接收到這個報文后,客戶停止對該IP

20、的使用。如有需要DHCP服務器有權重新對IP地址進行分配。2、分析IPv4中的分片在第二個實驗中,我們將考察IP數(shù)據(jù)報首部。俘獲此分組的步驟如下:啟動Wireshark,開始分組俘獲(“Capture”“interface”“start”)。啟動pingplotter(pingplotter 的下載地址為),在“Address to trace:”下面的輸入框里輸入目的地址,選擇菜單欄“Edit”“Options”“Packet”,在“Packet size(in bytes defaults=56):”右邊輸入IP數(shù)據(jù)報大小:5000,按下“OK”。最后按下按鈕“Trace”,你將會看到pi

21、ngplotter窗口顯示如下內(nèi)容,如圖3所示: 圖3 ping plotter停止Wireshark。設置過濾方式為:IP,在Wireshark窗口中將會看到如下情形,如圖4所示。在分組俘獲中,你應該可以看到一系列你自己電腦發(fā)送的“ICMP Echo Request”和由中間路由器返回到你電腦的“ICMP TTL-exceeded messages。 圖4 用ireshark 所俘獲的分組如果你無法得到上圖的分組信息,也可使用已經(jīng)下載的IP分片分組文件:fragment_5000_isolated.cap。然后在Wireshark中,選擇菜單欄“File”“Open”導入上述文件進行學習。下

22、面,我們來分析fragment_5000_isolated.cap中的具體分組:IP層位于傳輸層和鏈路層之間。在fragment_5000_isolated.cap中傳輸層協(xié)議是UDP,鏈路層協(xié)議是以太網(wǎng)。發(fā)送兩個UDP數(shù)據(jù)報,每個包含5000個字節(jié)的數(shù)據(jù)部分和8字節(jié)的UDP首部。在分組1到4和分組5到8分別代表了先后發(fā)送的兩個UDP數(shù)據(jù)報。當IP層接收到5008字節(jié)的UDP數(shù)據(jù)報時,它的工作是將其作為IP數(shù)據(jù)報在以太網(wǎng)傳輸。以太網(wǎng)要求一次傳輸?shù)拈L度不大于1514個字節(jié),其中有14字節(jié)是以太網(wǎng)幀首部。IP被迫將UDP數(shù)據(jù)報作為多個分片發(fā)送。每個分片必須包含以太網(wǎng)幀首部、IP數(shù)據(jù)報首部。每個分片

23、還會包含UDP數(shù)據(jù)報的有效負載(首部和數(shù)據(jù))的一部分。IP將原始數(shù)據(jù)報的前1480個字節(jié)(含1472個字節(jié)的數(shù)據(jù)和含8個字節(jié)的UDP首部)放在第一個分片中。后面兩個分片每個均含1480個字節(jié)的數(shù)據(jù),最后一個分片中包含的數(shù)據(jù)為568個字節(jié))。為了讓接收段重組原始數(shù)據(jù),IP使用首部的特殊字段對分片進行了編號。標識字段用于將所有的分片連接在一起。分組1到4含有相同的標識號0 xfd2b,分組5到8的標識號是0 xfd2c.片漂移量指明了分組中數(shù)據(jù)的第一個字節(jié)在UDP數(shù)據(jù)報中的偏移量。例如分組1和分組5的偏移量都是0,因為它們都是第一個分片。最后在標識字段中有一位用來指明這個分片后是否還有分片。分組1

24、到分組3和分組5到分組7均對該位置進行了置位。分組4和分組8由于是最后一個分片而沒有對該位置位。四、實驗報告內(nèi)容打開文件dhcp_isolated.cap、fragment_5000_isolated.cap,回答以下問題:1、DHCP服務器廣播的本地路由器或默認網(wǎng)關的IP地址是多少?2、在dhcp_isolated.cap中,由DHCP服務器分配的域名是多少?3、在fragment_5000_isolated.cap中,我們看到通過UDP數(shù)據(jù)報發(fā)送的5000字節(jié)被分成了多少分片?在網(wǎng)絡中,一次能傳輸且不需要分片的最大數(shù)據(jù)單元有多大?實驗四 利用Wireshark分析ICMP和DHCP協(xié)議一、

25、實驗目的分析ICMP和DHCP協(xié)議二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、實驗步驟Ping和traceroute命令都依賴于ICMP。ICMP可以看作是IP協(xié)議的伴隨協(xié)議。ICMP報文被封裝在IP 數(shù)據(jù)報發(fā)送。一些ICMP報文會請求信息。例如:在ping中,一個ICMP回應請求報文被發(fā)送給遠程主機。如果對方主機存在,期望它們返回一個ICMP回應應答報文。一些ICMP報文在網(wǎng)絡層發(fā)生錯誤時發(fā)送。例如,有一種ICMP報文類型表示目的不可達。造成不可達的原因很多,ICMP報文試圖確定這一問題。例如,可能是主機關及或整個網(wǎng)絡連接斷開。有時候

26、,主機本身可能沒有問題,但不能發(fā)送數(shù)據(jù)報。例如IP首部有個協(xié)議字段,它指明了什么協(xié)議應該處理IP數(shù)據(jù)報中的數(shù)據(jù)部分。IANA公布了代表協(xié)議的數(shù)字的列表。例如,如果該字段是6,代表TCP報文段,IP層就會把數(shù)據(jù)傳給TCP層進行處理;如果該字段是1,則代表ICMP報文,IP層會將該數(shù)據(jù)傳給ICMP處理。如果操作系統(tǒng)不支持到達數(shù)據(jù)報中協(xié)議字段的協(xié)議號,它將返回一個指明“協(xié)議不可達”的ICMP報文。IANA同樣公布了ICMP報文類型的清單。Traceroute是基于ICMP的靈活用法和IP首部的生存時間字段的。發(fā)送數(shù)據(jù)報時生存時間字段被初始化為能夠穿越網(wǎng)絡的最大跳數(shù)。每經(jīng)過一個中間節(jié)點,該數(shù)字減1。當

27、該字段為0時,保存該數(shù)據(jù)報的機器將不再轉(zhuǎn)發(fā)它。相反,它將向源IP地址發(fā)送一個ICMP生存時間超時報文。生存時間字段用于避免數(shù)據(jù)報載網(wǎng)絡上無休止地傳輸下去。數(shù)據(jù)報的發(fā)送路徑是由中間路由器決定的。通過與其他路由器交換信息,路由器決定數(shù)據(jù)報的下一條路經(jīng)。最好的“下一跳”經(jīng)常由于網(wǎng)絡環(huán)境的變化而動態(tài)改變。這可能導致路由器形成選路循環(huán)也會導致正確路徑?jīng)_突。在路由循環(huán)中這種情況很可能發(fā)生。例如,路由器A認為數(shù)據(jù)報應該發(fā)送到路由器B,而路由器B又認為該數(shù)據(jù)報應該發(fā)送會路由器A,這是數(shù)據(jù)報便處于選路循環(huán)中。生存時間字段長為8位,所以因特網(wǎng)路徑的最大長度為28 -1即255跳。大多數(shù)源主機將該值初始化為更小的值

28、(如128或64)。將生存時間字段設置過小可能會使數(shù)據(jù)報不能到達遠程目的主機,而設置過大又可能導致處于無限循環(huán)的選路中。Traceroute利用生存時間字段來映射因特網(wǎng)路徑上的中間節(jié)點。為了讓中間節(jié)點發(fā)送ICMP生存時間超時報文,從而暴露節(jié)點本身信息,可故意將生存時間字段設置為一個很小的書。具體來說,首先發(fā)送一個生存時間字段為1的數(shù)據(jù)報,收到ICMP超時報文,然后通過發(fā)送生存時間字段設置為2的數(shù)據(jù)報來重復上述過程,直到發(fā)送ICMP生存時間超時報文的機器是目的主機自身為止。因為在分組交換網(wǎng)絡中每個數(shù)據(jù)報時獨立的,所以由traceroute發(fā)送的每個數(shù)據(jù)報的傳送路徑實際上互不相同。認識到這一點很重

29、要。每個數(shù)據(jù)報沿著一條路經(jīng)對中間節(jié)點進行取樣,因此traceroute可能暗示一條主機間并不存在的連接。因特網(wǎng)路徑經(jīng)常變動。在不同的日子或一天的不同時間對同一個目的主機執(zhí)行幾次traceroute命令來探尋這種變動都會得到不同的結(jié)果。為了體現(xiàn)Internet路由的有限可見性,許多網(wǎng)絡都維護了一個traceroute服務器traceroute。Traceroute服務器將顯示出從本地網(wǎng)到一個特定目的地執(zhí)行traceroute的結(jié)果。分布于全球的traceroute服務器的相關信息可在 HYPERLINK 上獲得。1、ping 和 ICMP利用Ping程序產(chǎn)生ICMP分組。Ping向因特網(wǎng)中的某個

30、特定主機發(fā)送特殊的探測報文并等待表明主機在線的回復。具體做法:(1)打開Windows命令提示符窗口(Windows Command Prompt)。(2)啟動Wireshark 分組嗅探器,在過濾顯示窗口(filter display window)中輸入icmp,開始Wireshark 分組俘獲。(3)輸入“ping n 10 hostname” 。其中“-n 10”指明應返回10條ping信息。(4)當ping程序終止時,停止Wireshark 分組俘獲。 實驗結(jié)束后會出現(xiàn)如圖所示的命令窗口:圖1 命令窗口停止分組俘獲后,會出現(xiàn)如圖2所示的界面:圖2 停止分組俘獲后Wireshark的界

31、面圖3是在分組內(nèi)容窗口中顯示了ICMP協(xié)議的詳細信息。觀察這個ICMP分組,可以看出,此ICMP分組的Type 8 and Code 0 即所謂的ICMP “echo request” 分組。圖3 ICMP協(xié)議詳細信息在實驗報告中回答下面問題:(1)你所在主機的IP地址是多少?目的主機的IP地址是多少?(2)查看ping請求分組,ICMP的type 和code是多少?(3)查看相應得ICMP響應信息,ICMP的type 和code又是多少?2. ICMP和Traceroute在Wireshark 下,用Traceroute程序俘獲ICMP分組。Traceroute能夠映射出通往特定的因特網(wǎng)主機

32、途徑的所有中間主機。源端發(fā)送一串ICMP分組到目的端。發(fā)送的第一個分組時,TTL=1;發(fā)送第二個分組時,TTL=2,依次類推。路由器把經(jīng)過它的每一個分組TTL字段值減1。當一個分組到達了路由器時的TTL字段為1時,路由器會發(fā)送一個ICMP錯誤分組(ICMP error packet)給源端。啟動Window 命令提示符窗口啟動Wireshark分組嗅探器,開始分組俘獲。(3)Tracert命令在c:windowssystem32下,所以在MS-DOS 命令提示行或者輸入“tracert hostname” or “c:windowssystem32tracert hostname” (注意在W

33、indows 下, 命令是 “tracert” 而不是“traceroute”。)如圖4所示:(4)當Traceroute 程序終止時,停止分組俘獲。 圖4 命令提示窗口顯示Traceroute程序結(jié)果圖5顯示的是一個路由器返回的ICMP錯誤分組(ICMP error packet)。注意到ICMP錯誤分組中包括的信息比Ping ICMP中錯誤分組包含的信息多。圖5 一個擴展ICMP錯誤分組信息的Wireshark 窗口在實驗報告中回答下面問題:查看ICMP echo 分組 ,是否這個分組和前面使用 ping命令的ICMP echo 一樣?查看ICMP錯誤分組,它比ICMP echo 分組包括

34、的信息多。ICMP錯誤分組比ICMP echo 分組多包含的信息有哪些?3、分析DHCP為了觀察到DHCP的運行機制,我們會執(zhí)行與DHCP相關的命令,同時俘獲DHCP信息。(1)啟動Windows 命令提示符窗口,輸入“ipconfig /release”。這條命令會釋放主機目前的IP地址,此時,主機IP地址會變?yōu)椋?)啟動Wireshark分組俘獲,開始分組俘獲。(3)現(xiàn)在回到Windows命令提示符窗口,輸入“ipconfig /renew”命令。這條命令讓主機獲得一個網(wǎng)絡配置,包括新的IP地址。(4)等待,直到“ipconfig /renew”終止。然后再次輸入“ipconfig /re

35、new” 命令。(5)當?shù)诙€命令“ipconfig /renew” 終止時,輸入命令“ipconfig /release” 釋放原來的已經(jīng)分配的IP地址。(6)最后,輸入“ipconfig /renew”再一次給你的I主機分配IP地址。(7)停止分組俘獲。如圖6所示:圖6 輸入上述ipconfig命令后的命令提示窗口為了只看到DHCP 分組,在filter field 中輸入“bootp”。(DHCP是從BOOTP協(xié)議產(chǎn)生的)。BOOTP 和DHCP使用同樣的端口號,67和68。從圖二中可以看出,第一個ipconfig renew 命令產(chǎn)生四個DHCP分組:a DHCP Discover p

36、acket, a DHCP Offer packet, a DHCP Request packet, and a DHCP ACK packet.圖7 Wireshark窗口中第一個DHCP分組DHCP Discover packet的擴展四、實驗報告回答下列問題:1、DHCP是基于UDP還是TCP發(fā)送的?2、連接層的IP地址是多少?3、DHCP服務器的IP地址是多少?實驗五 使用Wireshark分析TCP協(xié)議一、實驗目的分析TCP協(xié)議二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、實驗步驟1、TCP介紹(1)連接建立:TCP連接通過稱為

37、三次握手的三條報文來建立的。在Wireshark中選擇open-file,選擇文件tcp_pcattcp_n1.cap,其中分組3到5顯示的就是三次握手。第一條報文沒有數(shù)據(jù)的TCP報文段,并將首部SYN位設置為1。因此,第一條報文常被稱為SYN分組。這個報文段里的序號可以設置成任何值,表示后續(xù)報文設定的起始編號。連接不能自動從1開始計數(shù),選擇一個隨機數(shù)開始計數(shù)可避免將以前連接的分組錯誤地解釋為當前連接的分組。觀察分組3,Wireshark顯示的序號是0。選擇分組首部的序號字段,原始框中顯示“94 f2 2e be”。Wireshark顯示的是邏輯序號,真正的初始序號不是0。如圖1所示:圖:邏輯

38、序號與實際初始序號SYN分組通常是從客戶端發(fā)送到服務器。這個報文段請求建立連接。一旦成功建立了連接,服務器進程必須已經(jīng)在監(jiān)聽SYN分組所指示的IP地址和端口號。如果沒有建立連接,SYN分組將不會應答。如果第一個分組丟失,客戶端通常會發(fā)送若干SYN分組,否則客戶端將會停止并報告一個錯誤給應用程序。如果服務器進程正在監(jiān)聽并接收到來的連接請求,它將以一個報文段進行相應,這個報文段的SYN位和ACK位都置為1。通常稱這個報文段為SYNACK分組。SYNACK分組在確認收到SYN分組的同時發(fā)出一個初始的數(shù)據(jù)流序號給客戶端。分組4的確認號字段在Wireshark的協(xié)議框中顯示1,并且在原始框中的值是“94

39、 f2 2e bf”(比“94 f2 2e be”多1)。這解釋了TCP的確認模式。TCP接收端確認第X個字節(jié)已經(jīng)收到,并通過設置確認號為X+1來表明期望收到下一個字節(jié)號。分組4的序號字段在Wireshark的協(xié)議顯示為0,但在原始框中的實際值卻是“84 ca be b3”。這表明TCP連接的雙方會選擇數(shù)據(jù)流中字節(jié)的起始編號。所有初始序號邏輯上都視同為序號0。最后,客戶端發(fā)送帶有標志ACK的TCP報文段,而不是帶SYN的報文段來完成三次握手的過程。這個報文段將確認服務器發(fā)送的SYNACK分組,并檢查TCP連接的兩端是否正確打開合運行。(2)關閉連接當兩端交換帶有FIN標志的TCP報文段并且每一

40、端都確認另一端發(fā)送的FIN包時,TCP連接將會關閉。FIN位字面上的意思是連接一方再也沒有更多新的數(shù)據(jù)發(fā)送。然而,那些重傳的數(shù)據(jù)會被傳送,直到接收端確認所有的信息。在tcp_pcattcp_n1.cap中,通過分組13至16我們可以看到TCP連接被關閉。2、TCP重傳當一個TCP發(fā)送端傳輸一個報文段的同時也設置了一個重傳計時器。當確認到達時,這個計時器就自動取消。如果在數(shù)據(jù)的確認信息到達之前這個計時器超時,那么數(shù)據(jù)就會重傳。重傳計時器能夠自動靈活設置。最初TCP是基于初始的SYN和SYN ACK之間的時間來設置重傳計時器的。它基于這個值多次設置重傳計時器來避免不必要的重傳。在整個TCP連接中,

41、TCP都會注意每個報文段的發(fā)送和接到相應的確認所經(jīng)歷的時間。TCP在重傳數(shù)據(jù)之前不會總是等待一個重傳計算器超時。TCP也會把一系列重復確認的分組當作是數(shù)據(jù)丟失的征兆。在Wireshark中選擇file-open,打開文件pcattcp_retrans_t.cap和pcattcp_retrans_r.cap,對所俘獲的分組進行分析如下:SACK選項協(xié)商在上面的每次跟蹤中,我們能觀察建立連接的三次握手。在SYN分組中,發(fā)送端在TCP的首部選項中通過包括SACK permitted選項來希望使用TCPSACK。在SYN ACK包中接收端表示愿意使用SACK。這樣雙方都同意接收選擇性確認信息。SACK

42、選項如圖2所示:圖2 SACK選項在TCP SACK選項中,如果連接的一端接收了失序數(shù)據(jù),它將使用選項區(qū)字段來發(fā)送關于失序數(shù)據(jù)起始和結(jié)束的信息。這樣允許發(fā)送端僅僅重傳丟失的數(shù)據(jù)。TCP接收端不能傳遞它們接收到的失序數(shù)據(jù)給處于等待狀態(tài)的應用程序,因為它總是傳遞有序數(shù)據(jù)。因此,接收到的失序數(shù)據(jù)要么被丟掉,要么被存儲起來。接收端的存儲空間是有限的,TCP發(fā)送端必須保存一份已發(fā)送的數(shù)據(jù)的副本,以防止數(shù)據(jù)需要重發(fā)。發(fā)送端必須保存數(shù)據(jù)直到它們收到數(shù)據(jù)的確認信息為止。接收端通常會分配一個固定大小的緩沖區(qū)來存儲這些失序數(shù)據(jù)和需要等待一個應用程序讀取的數(shù)據(jù)。如果緩沖區(qū)空間不能容納下更多數(shù)據(jù),那么接收端只有將數(shù)據(jù)

43、丟棄,即使它是成功到達的。接收端的通知窗口字段用來通知發(fā)送端還有多少空間可以用于輸入數(shù)據(jù)。如果數(shù)據(jù)發(fā)送的速度快于應用程序處理數(shù)據(jù)的速度,接收端就會發(fā)送一些信息來告知發(fā)送端其接收窗口正在減小。在這個跟蹤文件中,接收端通知窗口的大小是變化的,從16520個字節(jié)到17520個字節(jié)。TCP發(fā)送端在發(fā)送之前有一個容納數(shù)據(jù)的有限空間。然而,和接收端不同的是,發(fā)送端是限制自己的發(fā)送速率。如果緩沖區(qū)的空間滿了,嘗試寫入更多數(shù)據(jù)的應用程序?qū)⒈蛔枞钡接懈嗟目臻g可以利用為止。(2)分組的丟失與重傳用顯示過濾器tcp.analysis.retransmission搜索重傳。在pcattcp_retrans_t.c

44、ap中應用該過濾器,在這個跟蹤文件中,我們看見分組12是這9次重傳的第一次。如圖所示3:圖3 pcattcp_retrans_t.cap中次重傳通過觀察分組12的細節(jié),我們發(fā)現(xiàn)序號是1001,我們發(fā)現(xiàn)分組5也有同樣的序號。有趣的是,分組5是對1001到2460號字節(jié)的傳輸,而分組12卻是對1001到2000號字節(jié)的重傳。分組20是對2001到2460號字節(jié)的重傳。分組4是對1到1000號字節(jié)的傳輸,分組5是對1001到2460號字節(jié)的傳輸,分組7是對2461到3920號字節(jié)的傳輸。我們已檢查了發(fā)送端上獲取的所有跟蹤記錄。我們從接收端的角度來看同一個連接,我們會發(fā)現(xiàn)有些不同。在pcattcp_r

45、etrans_r.cap中,我們發(fā)現(xiàn)1到1000號字節(jié)是在分組4里被傳送的,而2461到3920號字節(jié)是在分組6(而不是分組7)中被傳送的。在這個跟蹤文件中,分組5是1到1000號字節(jié)的確認。我們沒有看到1001到2460號字節(jié)的傳輸。但是他們確實被傳輸送了,只是在發(fā)送端和接收端的某個環(huán)節(jié)丟失了?,F(xiàn)在我們來看接收端是如何處理這些丟失字節(jié)的。在分組4達到以后,接收端會以確認號1001(分組5)作為響應。在分組6的2461到3920號字節(jié)達到之后,接收端仍然以確認號1001(分組7)作為響應。即使它接到的是附加數(shù)據(jù),確認號仍然是它期望收到的下一個有序字節(jié)的序號。同樣在含有3921到5381號字節(jié)的

46、分組8到達之后,接收端仍然以1001響應。最后,1001到2000號字節(jié)被重傳。在這兩次跟蹤中,我們都在分組12里看到這種情況。于是接收端增加它的確認號到2001。最終2001到2460號字節(jié)被重傳。在這次重傳之后,接收端可以立即從確認字節(jié)2001跳到確認字節(jié)11221。四、實驗報告內(nèi)容在實驗的基礎上,回答以下問題:客戶服務器之間用于初始化TCP連接的TCP SYN報文段的序號(sequence number)是多少?在該報文段中,是用什么來標識該報文段是SYN報文段的?服務器向客戶端發(fā)送的SYNACK報文段序號是多少?該報文段中,ACKnowledgement字段的值是多少?找出pcattc

47、p_retrans_t.cap中所有在到達接收端之前丟失的分組。對于每個丟失的報文段,找出重傳分組(提示:找出第一個丟失的字節(jié)和重傳它們的分組)當接收端發(fā)送一個TCP報文段來確認收到的數(shù)據(jù)時,這個報文段也可能丟失。在pcattcp_retrans_t.cap和pcattcp_retrans_r.cap中存在這樣的丟失嗎?你是怎么得到這樣的答案的?實驗六 使用Wireshark分析UDP一、實驗目的比較TCP和UDP協(xié)議的不同二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、實驗步驟1、打開兩次TCP流的有關跟蹤記錄,保存在tcp_2trans

48、mit.cap中,并打開兩次UDP流中的有關跟蹤文件udp_2transmit.cap 。如圖所示:圖1 TCP 流跟蹤記錄圖2 UDP流跟蹤記錄2、分析此數(shù)據(jù)包:(1)TCP傳輸?shù)恼?shù)據(jù):tcp_2transmit.cap文件的分組1到13中顯示了TCP連接。這個流中的大部分信息與前面的實驗相同。我們在分組1到分組3中看到了打開連接的三次握手。分組10到分組13顯示的則是連接的終止。我們看到分組10既是一個帶有FIN標志的請求終止連接的分組,又是一個最后1080個字節(jié)的(序號是39215000)的重傳。TCP將應用程序?qū)懭牒喜⒌揭粋€字節(jié)流中。它并不會嘗試維持原有應用程序?qū)懭说倪吔缰怠N覀冏?/p>

49、意到TCP并不會在單個分組中傳送1000字節(jié)的應用程序?qū)懭?。?000個字節(jié)會在分組4種被發(fā)送,而分組5則包含了1460個字節(jié)的數(shù)據(jù)一些來自第二個緩沖區(qū),而另一些來自第三個緩沖區(qū)。分組7中含有1460個字節(jié)而分組8中則包含剩余的1080個字節(jié)。(5000-1000-1460-1460=1080)我們注意到實際報告上的2.48秒是從初始化連接的分組1開始到關閉連接的分組10結(jié)束。分組1113未必要計入接收端應用程序的時間內(nèi),因為一旦接收到第一個FIN,TCP層便馬上發(fā)送一個關閉連接的信號。分組1113只可能由每臺計算機操作系統(tǒng)得TCP層后臺傳輸。如果我們注意到第一個包含數(shù)據(jù)的分組4和最后一個分組

50、8之間的時間,我們就大約計算出和由UDP接收端所報告的0.01秒相同的時間。這樣的話,增加TCP傳輸時間的主要原因就是分組10中的重傳。公平的說,UDP是幸運的,因為它所有的分組都在第一時間被接受了。在這個跟蹤文件中,另一個值得注意的是沒有包含數(shù)據(jù)的分組的數(shù)量。所有來自接收端的分組和幾個來自發(fā)送端的分組只包含了TCP報文段的首部??偟膩碚f(包括重傳)一共發(fā)送了6822個字節(jié)來支持5000個字節(jié)的數(shù)據(jù)傳輸。這個開銷正好36。(2)UDP正常數(shù)據(jù)傳輸現(xiàn)在我們來觀察UDP流,在udp _transmit.cap文件的分組1到分組11中顯示。雖然像TCP流那樣傳輸了相同的數(shù)據(jù),但是在這個跟蹤文件中還是

51、很多的不同。和TCP不同,UDP是一個無連接的傳輸協(xié)議。TCP用SYN分組和SYN ACK分組來顯示地打開一個連接,而UDP卻直接開始發(fā)送包含數(shù)據(jù)的分組。同樣,TCP用FIN分組和FIN ACK分組來顯示地關閉一個連接,而UDP卻只簡單地停止包含數(shù)據(jù)的分組的傳輸。為了解決這個問題,在文件udp_2transmit.cap俘獲的分組中,采取的辦法是ttcp發(fā)送端發(fā)送一個只包含4個字節(jié)的特殊UDP 數(shù)據(jù)報來模擬連接建立和連接終止。在發(fā)送任何數(shù)據(jù)之前,發(fā)送端總是發(fā)送一個只包含4個字節(jié)的特殊數(shù)據(jù)報(分組1),而在發(fā)送完所有的數(shù)據(jù)之后,發(fā)送端又發(fā)送額外的5個分組(分組7-11)。接收端也使用第一個特殊的

52、數(shù)據(jù)報來啟動數(shù)據(jù)傳輸?shù)挠嫊r器。如果這個特殊的數(shù)據(jù)報丟失了,它可能用真實數(shù)據(jù)的第一個分組計時器。不過,如果接收端沒有看到這個特殊的數(shù)據(jù)報,它就不能精確地確定數(shù)據(jù)傳輸?shù)拈_始和傳輸?shù)乃袝r間。與TCP不同,UDP 在傳輸?shù)臄?shù)據(jù)中,不會加上序號,因此對于接收端來說不可能確定丟失和重排序重傳的情況。類似的,接收端根據(jù)最后的特殊數(shù)據(jù)報來停止數(shù)據(jù)傳輸計時器。當接收端接收到這5個包中的任一個便停止計時,但是發(fā)送5個分組是因為在傳輸?shù)倪^程中可能丟失其中的一些。如果5個分組全部丟失了,那么接收端便會無限制的等待更多數(shù)據(jù)的到來達。實際數(shù)據(jù)的傳輸是在分組2-6里。每一個分組都包含1000個字節(jié)。1000個字節(jié)的應用程

53、學寫入直接轉(zhuǎn)換成UDP數(shù)據(jù)報。另一方面,TCP并不打算保存應用程序?qū)懭脒吔缍皇菍⑺鼈儾⑷胍粋€字節(jié)流中。與TCP不同,UDP沒有提供接收端到發(fā)送端的反饋。在TCP的例子里,接收端返回只包含有TCP報文段首部而沒有數(shù)據(jù)的報文段。首部本身則攜帶著關于哪些數(shù)據(jù)已經(jīng)被成功接收以及接收端能夠接收多少數(shù)據(jù)的信息。我們已經(jīng)知道UDP不提供可靠的數(shù)據(jù)傳輸,因此并不要求什么數(shù)據(jù)已經(jīng)被成功接收的信息。它也不提供任何信息高速發(fā)送端降低速率,因為接收端或者網(wǎng)絡本身已經(jīng)淹沒。雖然UDP本身并不提供接收端到發(fā)送端的反饋,但是我們確實看到幾個從接收端到發(fā)送端的ICMP分組(分組1214)。ICMP是網(wǎng)絡層協(xié)議(IP)的一個

54、伴隨協(xié)議,并且有提供一定控制和錯誤報告的功能。在這種情況下,ICMP分組暗示一些UDP數(shù)據(jù)報沒有被傳送到,因為端口不可達。這就意味著當數(shù)據(jù)報到達那個端口的時候,沒有接收端在那個端口監(jiān)聽。我們注意到ICMP分組攜帶著一些未傳遞UDP數(shù)據(jù)報的信息。當ttcp接收端看到一個只具有4個字節(jié)數(shù)據(jù)的特殊數(shù)據(jù)報時,它便會知道數(shù)據(jù)傳輸是完整的,并且會因此關閉正在監(jiān)聽的端口。事實上ttcp發(fā)送端發(fā)送5個這樣的分組,并且后面的分組到達的時候發(fā)現(xiàn)接收端已經(jīng)沒有在監(jiān)聽了。當發(fā)送端發(fā)送所有的數(shù)據(jù)而沒有相應的接收標志的時候,將會看到相似的行為。TCP和UDP的另外一個不同之處在于TCP連接時點對點的,換句話說,TCP的使

55、用是在一個連接端和一個發(fā)送端之間的。而對于UDP來說,一個發(fā)送端可能發(fā)向多個接收端(例如廣播和組播通信)或者多個發(fā)送端能夠發(fā)送給一個接收端。如果多個發(fā)送端都發(fā)給這個接收端的話,這個接收端會為每個發(fā)送端報告統(tǒng)計信息。TCP和UDP的最后一個不同之處是它們首部的大小。UDP首部總是8個字節(jié),而TCP首部大小是變化的,但是它絕對不會少于20個字節(jié)。這也就是說傳輸5000個字節(jié)的實際數(shù)據(jù)TCP的開銷是36。四、實驗報告回答下面的問題:1、在udp_2transmit.cap中觀察DUP首部。長度字段是包括首部和數(shù)據(jù)還是只包括數(shù)據(jù)?2、我們觀察到使用ICMP報文來報告UDP數(shù)據(jù)報不可達。為什么TCP不用

56、這個來指示丟失的報文段呢?3、我們計算TCP成功傳輸5000個字節(jié)的實際數(shù)據(jù)的開銷是36。在這個開銷中都包括什么?如果沒有重傳,這個開銷是多少? 實驗七 利用Wireshark分析協(xié)議HTTP一、實驗目的分析HTTP協(xié)議二、實驗環(huán)境與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE等軟件。三、實驗步驟1、利用Wireshark俘獲HTTP分組(1)在進行跟蹤之前,我們首先清空Web 瀏覽器的高速緩存來確保Web網(wǎng)頁是從網(wǎng)絡中獲取的,而不是從高速緩沖中取得的。之后,還要在客戶端清空DNS高速緩存,來確保Web服務器域名到IP地址的映射是從網(wǎng)絡中請求。在WindowsX

57、P機器上,可在命令提示行輸入ipconfig/flushdns完成操作。(2)啟動Wireshrk 分組俘獲器。(3)在Web 瀏覽器中輸入: HYPERLINK (4)停止分組俘獲。圖1 利用Wireshark俘獲的HTTP分組在URL HYPERLINK 中, HYPERLINK 是一個具體的web 服務器的域名。最前面有兩個DNS分組。第一個分組是將域名 HYPERLINK 轉(zhuǎn)換成為對應的IP 地址的請求,第二個分組包含了轉(zhuǎn)換的結(jié)果。這個轉(zhuǎn)換是必要的,因為網(wǎng)絡層協(xié)議IP協(xié)議,是通過點分十進制來表示因特網(wǎng)主機的,而不是通過 HYPERLINK 這樣的域名。當輸入URL http:/時,將要

58、求Web服務器從主機 HYPERLINK 上請求數(shù)據(jù),但首先Web瀏覽器必須確定這個主機的IP地址。隨著轉(zhuǎn)換的完成,Web瀏覽器與Web服務器建立一個TCP連接。最后,Web 瀏覽器使用已建立好的TCP連接來發(fā)送請求“GET/HTTP/1.1”。這個分組描述了要求的行為(“GET”)及文件(只寫“/”是因為我們沒有指定額外的文件名),還有所用到的協(xié)議的版本(“HTTP/1.1”)。2、HTTP GET/response交互(1)在協(xié)議框中,選擇“GET/HTTP/1.1” 所在的分組會看到這個基本請求行后跟隨著一系列額外的請求首部。在首部后的“rn”表示一個回車和換行,以此將該首部與下一個首部

59、隔開?!癏ost”首部在HTTP1.1版本中是必須的,它描述了URL中機器的域名,本例中是 HYPERLINK 。這就允許了一個Web服務器在同一時間支持許多不同的域名。有了這個數(shù)不,Web服務器就可以區(qū)別客戶試圖連接哪一個Web服務器,并對每個客戶響應不同的內(nèi)容,這就是HTTP1.0到1.1版本的主要變化。User-Agent首部描述了提出請求的Web瀏覽器及客戶機器。接下來是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受語言)、Accept-Encoding(接受編碼)、Accept-Charset(接受字符集)。它們告訴Web服務器客戶Web瀏覽

60、器準備處理的數(shù)據(jù)類型。Web服務器可以將數(shù)據(jù)轉(zhuǎn)變?yōu)椴煌恼Z言和格式。這些首部表明了客戶的能力和偏好。Keep-Alive及Connection首部描述了有關TCP連接的信息,通過此連接發(fā)送HTTP請求和響應。它表明在發(fā)送請求之后連接是否保持活動狀態(tài)及保持多久。大多數(shù)HTTP1.1連接是持久的(persistent),意思是在每次請求后不關閉TCP連接,而是保持該連接以接受從同一臺服務器發(fā)來的多個請求。(2)我們已經(jīng)察看了由Web瀏覽器發(fā)送的請求,現(xiàn)在我們來觀察Web服務器的回答。響應首先發(fā)送“HTTP/1.1 200 ok”,指明它開始使用HTTP1.1版本來發(fā)送網(wǎng)頁。同樣,在響應分組中,它后

溫馨提示

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

評論

0/150

提交評論