Lab2-2011211307-周俊霞2011211320計算機網絡實驗-抓包_第1頁
Lab2-2011211307-周俊霞2011211320計算機網絡實驗-抓包_第2頁
Lab2-2011211307-周俊霞2011211320計算機網絡實驗-抓包_第3頁
Lab2-2011211307-周俊霞2011211320計算機網絡實驗-抓包_第4頁
Lab2-2011211307-周俊霞2011211320計算機網絡實驗-抓包_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北郵計算機網絡實驗二協(xié)議數據的捕獲和解析班級:2011211307姓名:周俊霞學號:2011211320日期:2013年12月28日實驗二:協(xié)議數據的捕獲和解析實驗類別協(xié)議分析驗證型二.、實驗內容和實驗目的本次實驗主要包含下列內容:1)使用Wireshark軟件捕獲在使用ping命令時產生的ICMP消息;2)分析網絡層IP包頭格式,理解各字段的作用,對于分段和校驗和進行驗證;3)使用Wireshark軟件捕獲在使用ARP消息,分析其消息格式,理解工作原理;4)使用Wireshark捕獲DHCP消息,分析其消息序列,理解DHCP功能操作原理;5)使用Wireshark捕獲TCP消息,分析TCP報文段頭格式,理解連接建立和釋放的原理,差錯控制原理、序號和窗口管理的原理。通過本實驗來深入理解分層體系結構,理解和掌握TCP/IP協(xié)議棧的代表協(xié)議——IP、TCP、UDP、ICMP、ARP和DHCP協(xié)議的要點。三、實驗設備環(huán)境1臺裝有MSWindows系列操作系統(tǒng)的計算機,能夠連接到Internet,并已安裝Wireshark軟件。實驗步驟(1)準備工作1.下載Wireshark軟件并了解其功能和使用方法。2.確保計算機已經連接到網絡。3.啟動Wireshark1,設置捕獲接口(Interface)為本機網卡,選中混雜模(promiscuousmode)捕獲選項,設置合適的捕獲過濾器(CaptureFilter):對于ping命令,設置過濾器為icmp對于DHCP消息,設置過濾器為udpport67對于ARP消息,設置過濾器為arp對于通過網頁瀏覽應用來捕獲TCP消息,設置過濾器為tcpport80開始捕獲;(2)數據捕獲捕獲ICMP協(xié)議數據運行ping命令(如:c>ping),遠程主機地址可以是本機地址、網關路由器地址,也可以是域名(如)將捕獲到的數據保存為文件。2.使用Windows中ping命令的-l選項(例如:c>ping-l8000),制作大于8000字節(jié)的IP包并發(fā)送,捕獲后分析其分段傳輸的包結構。捕獲DHCP協(xié)議數據1.使用ipconfig命令釋放計算機的IP地址(c>ipconfig-release);2.使用ipconfig命令重新申請IP地址(c>ipconfig-renew)。此時wireshark窗口中可以捕獲到完整的DHCP地址分配的流程,將捕獲到的數據保存為文件。捕獲ARP協(xié)議數據采用與捕獲DHCP協(xié)議數據相同的方法釋放IP地址并重新申請,在wireshark窗口中可以捕獲到ARP請求和響應消息,保存為文件。捕獲TCP協(xié)議數據打開瀏覽器,輸入一個頁面內容較簡單網頁URL,如;網頁全部顯示后關閉瀏覽器。(3)協(xié)議分析運行Wireshark軟件,打開所捕獲的數據文件,完成下列分析工作:1.IP包頭分析:對于采用ping命令-l選項捕獲的ICMP消息,對承載ICMP消息的IP包進行分析,記錄包頭各字段的值,對照講義和教材分析各字段的功能,并對于校驗和和分段進行驗證;對于WindowsVista和Windows7操作系統(tǒng),需要以管理員身份運行;2.ICMP消息分析:記錄并分析ICMP消息中分析各字段的功能;3.DHCP消息分析:針對一次地址分配過程(TransactionID相同的4個消息),分析其通信過程,畫出地址分配的消息序列圖,并記錄采用DHCP協(xié)議配置的各個參數。4.ARP消息分析:對照講義理解ARP操作過程,記錄分析消息中各字段的功能。5.TCP報頭及消息分析:針對TCP連接建立、連接釋放、數據和應答報文段,對照講義和教材分析各字段的功能;針對一次完整的TCP通信過程,畫出消息序列圖,應包含連接建立、數據傳送和連接釋放階段。上述分析工作應在實驗報告中進行詳細描述,具體要求參見第9節(jié)。撰寫實驗報告按要求撰寫實驗報告,對于捕獲到的數據進行認真分析,歸納各協(xié)議的工作原理和實現(xiàn)要點。實驗分析1.IP協(xié)議分析1)采用ping命令-l選項捕獲的ICMP消息字段報文(16進制)內容版本號-包頭長度45版本號IPV4,包頭長20字節(jié)服務類型00正常時延,正常吞吐量,正??煽啃钥傞L度0078數組分組長120字節(jié)標識1a52標識為6738標志00MF=0DF=0,不允許分片,片偏移00偏移量為0生存周期40每跳生存時間為64秒協(xié)議01攜帶數據來自ICMP協(xié)議頭部校驗和423aIP頭部校驗和為16進制423a源地址0ad3042d源地址為5目的地址0ad30427目的地址為9字段報文(16進制)內容版本號-包頭長度45版本號IPV4,包頭長20字節(jié)服務類型00正常時延,正常吞吐量,正??煽啃钥傞L度0078數組分組長120字節(jié)標識1a52標識為6738標志00MF=0DF=0,不允許分片片偏移0偏移量為0生存周期40每跳生存時間為64秒協(xié)議01攜帶數據來自ICMP協(xié)議頭部校驗和0000IP頭部校驗和不正確源地址0ad3042d源地址為5目的地址0ad30427目的地址為92)IP包頭校驗和的校驗原理當數據到達時,所有的16位(半字)累加起來,然后再取結果的補碼。字段報文(16進制)內容版本號-包頭長度45版本號IPV4,包頭長20字節(jié)服務類型00正常時延,正常吞吐量,正??煽啃钥傞L度0078數組分組長120字節(jié)標識1a52標識為6738標志00MF=0DF=0,不允許分片,片偏移00偏移量為0生存周期40每跳生存時間為64秒協(xié)議01攜帶數據來自ICMP協(xié)議頭部校驗和423aIP頭部校驗和為16進制423a源地址0ad3042d源地址為5目的地址0ad30427目的地址為945000078la5200004001423a0ad3042d0ad304274500------->01000101000000000078------->00000000001110001a52------->000110100101001000and00------->000000000000000040and01------->0100000000000001423a------->01000010001110100ad3------->0000101011010011042d------->00000100001011010ad3------->00001010110100110427------->0000010000100111簡單求和后發(fā)現(xiàn)結果為:1111111111111111符合條件,是正確的包,即IP頭部校驗和為423a是正確的。3)IP包分段原理:首先同一個數據報的所有分段包含同樣的Identification(標識)值,同時每一個分段使用DF、MF和offset來表示該分段的信息。1.DF代表不分段(DontFragment),它讓路由器不要分割該數據報,因為目標主機無法將分片重組回原來的數據報,而數據報在分段后,此位置0;2.MF表示更多的分段(MoreFragment),除了最后一個分段以外其他所有的分段必須設置這一位,將其置1,最后一個分段置0;3.Fragmentoffset分段偏移域指明了該分段在當前數據報中的什么位置上。除了一個數據包的最后一個分段以外,其他所有的分段必須是8字節(jié)的倍數,這里8字節(jié)是基本分段單位。由截獲的數據報來看,一共六段,除第一段offset為0外,其他各段偏移量為1480的倍數,也即前邊每一段數據報(除包頭)的長度,1480也為8的倍數,由此指明了各段在當前數據包中的位置。同時,除最后一段MF為0外,其他各段MF為1,表明各段不是一個完整的數據報,而是分割之后形成的分段。2.ICMP協(xié)議分析1)ICMP的功能ICMP報文被封裝在IP包里,并且ICMP協(xié)議數據包對IP分組在傳送時出現(xiàn)的異常情況進行報告,對IP報文傳輸時出現(xiàn)的差錯、擁塞、路由改變、以及路由器或主機信息的獲取等情況,向源端主機提交報告,由源主機采取相應措施,改進傳輸質量。2)其中有Destinationunreachable、timeexceeded、sourcequench、redirect、ECHOandECHOreply、timestamprequestandreply幾種不同功能的ICMP報文。記錄ICMP的包格式,自己查找資料總結各字段的功能。3)ICMP協(xié)議包構成:前8字節(jié)由報文類型(1字節(jié))、代碼(1字節(jié))、校驗和(2字節(jié)),選項部分(4字節(jié))。ICMP報文分為兩大類——差錯報告報文與詢問報文,差錯報文共有五種、詢問報文有兩種下圖為ICMP請求包TYPE類型為8code代碼為0checksum校驗和為4f8Identifier(大端表示)為1,(小端表示)為256sequencenumber序列號(大端表示)為21,(小端表示)為5376下圖ICMP應答包TYPE類型為0code代碼為0checksum校驗和為5748Identifier(大端表示)為1,(小端表示)為256sequencenumber序列號(大端表示)為21,(小端表示)為5376由此可見,請求和應答數據包的區(qū)別在于類型,請求包為Type8,而應答包為Type0。ICMP與IP協(xié)議同處于TCP/IP模型的網際層,但ICMP報文是封裝在IP數據報的數據部分進行傳輸的。3.DHCP協(xié)議分析1)對照講義和教材理解DHCP的功能,觀察DHCPACK消息的各字段,自己查找資料理解各字段的功能,總結采用DHCP協(xié)議可以提供哪些配置參數。DHCP是動態(tài)主機配置協(xié)議(Dynamichostconfigurationprotocol)的簡稱,它提供對于遠程主機的自動配置,包括IP地址、路由地址、子網掩碼、DNS服務器地址,是一個應用層上的協(xié)議。作為BOOTP的拓展,它的作用是給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段。它也是client-server的范例。下圖是DHCPACK消息包含的各字段ClientIPClientIPMessagetype bootreply(2) 操作碼Hardwaretype Ethernet 硬件類型Hardwareaddresslength 6 硬件地址長度Hops 0 跳數TransactionID 0xb247a900 事務標識Secondselapsed 0 過去的秒數ClientIPaddress 0 客戶IPYourIPaddress 0 你的主機IP地址NextserverIPaddress 下一個服務器的IP地址RelayagentIPaddress 中介代理的IP地址ClientMACaddress 9c:b7:0d:da:92:19 客戶MAC地址DHCPmessagetype DHCPACK(5) DHCP消息類型Serveridentifier 供應商標識符Subnetmask 子網掩碼Router 路由IPaddressleasetime 2hours IP地址的租用時間DomainNameserver:/域名服務器DHCP向網絡主機提供配置參數,它由兩個基本部分組成:一部分是向網絡主機傳送專用的配置信息,另一部分是給主機分配網絡地址。DHCP是用于向客戶傳送配置信息的,客戶從DHCP服務器那里獲得配置信息后應該可以和Internet上任何一臺主機通信。在初始化一臺主機時并不需要配置所有這些參數,客戶和服務器可以通過一種商討機制決定傳送哪些參數。DHCP允許(不要求)客戶參數配置不直接與IP協(xié)議相關,而且它也不將最加入的主機加入域名系統(tǒng)(DNS)中。根據捕獲到消息,畫出DHCP地址分配過程的消息序列圖。注意DHCP是采用client-server模式工作的,你捕獲到的消息中,DHCPserver是否由路由器充當?是否有DHCPRelay?用戶申請用戶申請IP發(fā)送DHCPdiscoverDHCP服務器廣播DHCP服務器廣播發(fā)送一個DHCPoffer用戶收到用戶收到DHCPoffer,并發(fā)送一個DHCPrequest來申請租用時間DHCP服務器發(fā)送DHCPACK分配給客戶一個IP地址DHCP服務器發(fā)送DHCPACK分配給客戶一個IP地址discoverofferrequestackdiscoverofferrequestack1.執(zhí)行ipconfig/renew更新所有適配器,由于本地主機沒有被分配到IP地址,并且也不知道DHCP服務器的地址,所以發(fā)送DHCPDiscover報文時,源地址為,目的地址為55。本地網絡上的所有主機都能收到DHCPDiscover報文。2.只有DHCP服務器收到這個DHCP,Discover報文后,向網絡廣播DHCPOffer報文作為回復。3.本地主機()收到DHCPOffer報文后,向DHCP服務器發(fā)送DHCPRequest報文4.DHCP()服務器收到DHCPRequest報文后,回復DHCPACK報文,給本地主機分配一個IP地址。本地主機就得到了一個臨時IP地址(0)。至此四次握手完成。在我捕獲到的消息中,DHCPsever由路由器充當,無DHCPrelay,因為在同一網段內。4.ARP協(xié)議分析1)根據捕獲到的消息,對照講義,理解ARP的功能和操作原理。本地局域網內的主機用廣播的方式發(fā)送ARP報文,來獲取彼此的硬件地址。ARP基本功能:在以太網協(xié)議中規(guī)定,同一局域網中的一臺主機要和另一臺主機迚行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協(xié)議棧中,網絡層和傳輸層只關心目標主機的IP地址。這就導致在以太網中使用IP協(xié)議時,數據鏈路層的以太網協(xié)議接到上層IP協(xié)議提供的數據中,只包含目的主機的IP地址。于是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協(xié)議要做的事情。所謂地址解析(addressresolution)就是主機在發(fā)送幀前將目標IP地址轉換成目標MAC地址的過程。記錄ARP的包格式,自己查找資料總結各字段的功能。硬件信息、協(xié)議信息Mac和IP信息源地址硬件信息、協(xié)議信息Mac和IP信息源地址目標地址ARP報文的格式:①硬件類型:指明硬件的類型,以太網是1。②協(xié)議類型:指明發(fā)送者映射到數據鏈路標識的網絡層協(xié)議的類型;IP對應0x0800。③硬件地址長度:也就是MAC地址的長度,單位是字節(jié),這里是6。④協(xié)議地址長度:網絡層地址的長度,即IP地址長度,單位是字節(jié)。⑤操作:指明是ARP請求(1)還是ARP應答(2)⑥剩下的字段都比較簡單,不作說明5、TCP協(xié)議分析1)對照講義和教材理解TCP報文段的首部各字段的功能,以表格的方式總結每個字段的名字、長度和功能。源端口和目的端口域標明了一個連接的兩個端點(16位)+(16位)序列號發(fā)送TCP包的序列(32位)確認號指定下一個期望的字節(jié)(32位)TCP頭長度指明在頭部TCP頭部包含多少個32位的字(4位)+后邊的(6位保留位)+(6位標志域)URG用來指示出緊急數據在當前數據段中的位置ACK表示是否包含確認信息PUSH表示這是帶有PUSH標志的數據RST被用于重置一個已經混亂的連接SYN被用于建立連接的過程FIN被用于釋放一個連接窗口大小表示接收方的窗口大小(16位)校驗和提供額外可靠性(16位)緊急指針16位,指向后面是優(yōu)先數據的字節(jié),在URG標志設置了時才有效可選項:長度不定,但長度必須以字節(jié)。如果沒有選項就表示這個一字節(jié)的域等于0。數據的開始處偏移量能夠被32整除,一般額外的零以保證TCP頭是32位的整數倍。針對連接建立消息和連接釋放消息,分析相應標志位和序號的作用,參照講義中的示例畫出連接建立和連接釋放過程的消息序列圖,在圖上標出對應的標志位和序號。窗口大小標志位端口窗口大小標志位端口建立連接:在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接。第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài);第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。完成三次握手,客戶端與服務器開始傳送數據釋放連接:雖然TCP連接是全雙工的,但可將其視為一對單工連接,每個連接單獨釋放,兩個單工之間獨立。步驟:客戶端1發(fā)送一個FIN,用來關閉1到2的數據發(fā)送服務器2收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號+1,和SYN一樣,一個FIN將占用一個序號服務器2關閉與客戶端1的連接,發(fā)送一個FIN給客戶端1客戶端1發(fā)回ACK報文確認,并將確認信號設置為收到序號+1ack=x+1ack=yAckack=x+1ack=y針對TCP的數據傳輸過程中的數據報文段和應答報文段,分析發(fā)送序號、應答序號、應答標志位、窗口大小、數據長度、MSS等字段的作用,參照講義中的示例畫出數據傳輸過程的消息序列圖,其中應包括數據校驗錯和數據丟失導致的數據重傳情形,在圖上應標出對應的序號、標志位和窗口大小。每個TCP報文頭部都包含源端口號(sourceport)和目的端口號(destinationport),用于標識和區(qū)分源端設備和目的端設備的應用進程。在TCP/IP協(xié)議棧中,源端口號和目的端口號分別與源IP地址和目的IP地址組成套接字(socket),唯一的確定一條TCP連接。序列號(Sequencenumber)字段用來標識TCP源端設備向目的端設備發(fā)送的字節(jié)流,它表示在這個報文段中的第一個數據字節(jié)。如果將字節(jié)流看作在兩個應用程序間的單向流動,則TCP用序列號對每個字節(jié)進行計數。序列號是一個32bits的數。既然每個傳輸的字節(jié)都被計數,確認序號(Acknowledgementnumber,32bits)包含發(fā)送確認的一端所期望接收到的下一個序號。因此,確認序號應該是上次已成功收到的數據字節(jié)序列號加1。TCP的流量控制由連接的每一端通過聲明的窗口大小(windowssize)來提供。窗口大小用數據包來表示,例如Windowssize=3,表示一次可以發(fā)送三個數據包。窗口大小起始于確認字段指明的值,是一個16bits字段。窗口大小可以調節(jié)。校驗和(checksum)字段用于校驗TCP報頭部分和數據部分的正確性。最常見的可選字段是MSS(MaximumSegmentSize,最大報文大?。?。MSS指明本端所能夠接收的最大長度的報文段。當一個TCP連接建立時,連接的雙方都要通告各自的MSS協(xié)商可以傳輸的最大報文長度。我們常見的MSS有1024(以太網可達1460字節(jié))字節(jié)。對照教材6-33圖,理解TCP狀態(tài)轉換的過程,按照你所捕獲的消息,畫出Client側的狀態(tài)轉換圖,并進行解釋。synsynSynackSynackackackHostconnectHostconnectSynsentSynsentConnectbuildConnectbuildFinwait1Finwait1Finwait2Finwait2TimedwaitTimedwaitClosed-returntofirststepClosed-returntofirststep 當客戶機器上的一個應用程序發(fā)出CONNECT請求的時候,本地的TCP創(chuàng)建一條連接記錄,并將它標記為SYNSENT狀態(tài),然后發(fā)送一個SYN數據段。當SYN+ACK到達時候,三步握手完成,連接建立開始發(fā)送和接收數據。當應用結束時,發(fā)出CLOSE原語,從而使本地的TCp實體發(fā)送一個FIN數據段,并等待相應ACK,當ACK到達時,發(fā)生一次狀態(tài)遷移,切換到FINWAIT2,而且連接的一個方向現(xiàn)在被關閉。當另一方也關閉

溫馨提示

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

評論

0/150

提交評論