以太網(wǎng)數(shù)據(jù)幀的監(jiān)聽與分析_第1頁(yè)
以太網(wǎng)數(shù)據(jù)幀的監(jiān)聽與分析_第2頁(yè)
以太網(wǎng)數(shù)據(jù)幀的監(jiān)聽與分析_第3頁(yè)
以太網(wǎng)數(shù)據(jù)幀的監(jiān)聽與分析_第4頁(yè)
以太網(wǎng)數(shù)據(jù)幀的監(jiān)聽與分析_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、以太網(wǎng)數(shù)據(jù)包結(jié)構(gòu)以太網(wǎng)包(幀)格式在以太網(wǎng)的發(fā)展過(guò)程中,出現(xiàn)了很多的幀格式,目前,應(yīng)用最多的是以太網(wǎng)格式,也就是以太網(wǎng)版本,是由、和在年制定的,現(xiàn)在幾乎是以太網(wǎng)的標(biāo)準(zhǔn),它是由所定義的,其幀格式如下圖所示:目的地址(字節(jié))源地址(字節(jié))協(xié)議類型(字節(jié))以太網(wǎng)幀數(shù)據(jù)負(fù)載(字節(jié)到字節(jié))協(xié)議類型說(shuō)明:協(xié)議數(shù)據(jù)包協(xié)議數(shù)據(jù)包協(xié)議數(shù)據(jù)包協(xié)議數(shù)據(jù)包結(jié)構(gòu)如下頁(yè)表是一個(gè)無(wú)連接的協(xié)議,主要就是負(fù)責(zé)在主機(jī)間尋址并為數(shù)據(jù)包設(shè)定路由,在交換數(shù)據(jù)前它并不建立會(huì)話。因?yàn)樗槐WC正確傳遞,另一方面,數(shù)據(jù)在被收到時(shí),不需要收到確認(rèn),所以它是不可靠的。版本號(hào)():長(zhǎng)度比特。標(biāo)識(shí)目前米用的協(xié)議的版本號(hào)。一般的值為(),的值(1包頭長(zhǎng)

2、度():長(zhǎng)度比特。這個(gè)字段的作用是為了描述包頭的長(zhǎng)度,因?yàn)樵诎^中有變長(zhǎng)的可選部分。包頭最小長(zhǎng)度為字節(jié),由于變長(zhǎng)的可選部分最大長(zhǎng)度可能會(huì)變成字節(jié)。服務(wù)類型(分:優(yōu)先級(jí)(而):長(zhǎng)度比特。這個(gè)子段可以拆分成兩個(gè)部)和服務(wù)條款()。(前三位)目前不太使用。則用于應(yīng)用。(字段的詳細(xì)描述)S。8個(gè)BIT的含義是:000前三位不用表示最小時(shí)延,如Telnet服務(wù)使用該位表示吞吐量,如FTP服務(wù)使用該位表示可靠性,如SNMP服務(wù)使用該位表示最小代價(jià)不用包總長(zhǎng)(L:長(zhǎng)度比特。包最大長(zhǎng)度字3節(jié)5。標(biāo)識(shí)符(字段聯(lián)合使用,ti)對(duì)大的上層數(shù)據(jù)包進(jìn)行分段(長(zhǎng)度比特。該字段和和)操作。標(biāo)記():長(zhǎng)度比特。該字段第一位不

3、使用。第二位是位,位設(shè)為1時(shí)表明路由器不能對(duì)該上層數(shù)據(jù)包分段。如果一個(gè)上層數(shù)據(jù)包無(wú)法在不分段的情況下進(jìn)行轉(zhuǎn)發(fā),則路由器會(huì)丟棄該上層數(shù)據(jù)包并返回一個(gè)錯(cuò)誤信息。第三位是位,當(dāng)路由器對(duì)一個(gè)上層數(shù)據(jù)包分段,則路由器會(huì)在除了最后一個(gè)分段的包的包頭中將位設(shè)為。分段序號(hào)():長(zhǎng)度比特。該字段對(duì)包含分段的上層數(shù)生存時(shí)間(個(gè)特定的值。當(dāng)包的值減少。如果防止由于故障而導(dǎo)致?lián)陌x予序號(hào)。由于包在網(wǎng)絡(luò)上傳送的時(shí)候不一定能按順序到達(dá),這個(gè)字段保證了目標(biāo)路由器在接受到包之后能夠還原分段的上層數(shù)據(jù)包。到某個(gè)包含分段的上層數(shù)據(jù)包的包在傳送是丟失,則整個(gè)一系列包含分段的上層數(shù)據(jù)包的包都會(huì)被要求重傳。):長(zhǎng)度比特。當(dāng)包進(jìn)行傳

4、送時(shí),先會(huì)對(duì)該字段賦予某包經(jīng)過(guò)每一個(gè)沿途的路由器的時(shí)候,每個(gè)沿途的路由器會(huì)將減少為,則該包會(huì)被丟棄。這個(gè)字段可以包在網(wǎng)絡(luò)中不停被轉(zhuǎn)發(fā)。協(xié)議():長(zhǎng)度比特。協(xié)議,此處的協(xié)議代碼應(yīng)為。如果是標(biāo)識(shí)了上層所使用的協(xié)議。如果協(xié)議,則此處的協(xié)議代碼應(yīng)為6如果曰.協(xié)議,則此處的協(xié)議代碼應(yīng)為頭部校驗(yàn)():長(zhǎng)度位,由于包頭是變長(zhǎng)的,所以提供一個(gè)頭部校驗(yàn)來(lái)保證包頭中信息的正確性。n)起源和目標(biāo)地址(IP選項(xiàng)(options)主要用于控制和測(cè)試兩大目的。作為選項(xiàng)用戶可以使用也可以不使用選項(xiàng)但作為協(xié)議的組成部分,所有實(shí)現(xiàn)協(xié)議的設(shè)備能處理選項(xiàng)。在使用選項(xiàng)的過(guò)程中,有可能造成數(shù)據(jù)包頭部不是的整數(shù)倍,那么則需要填充域來(lái)湊齊

5、。數(shù)據(jù)報(bào)選項(xiàng)有選項(xiàng)瑪、長(zhǎng)度、和選項(xiàng)數(shù)據(jù)部分組成,其中,選項(xiàng)瑪用于確定該選項(xiàng)的具體內(nèi)容,選項(xiàng)數(shù)據(jù)部分長(zhǎng)度有選項(xiàng)字段決定。1.源路由。所謂源路由是指數(shù)據(jù)包穿越互聯(lián)網(wǎng)所經(jīng)過(guò)的路徑是有源主機(jī)指定的,他區(qū)別于有主機(jī)或路由器的互聯(lián)層軟件自行選擇路由后得出的路徑。源路由選項(xiàng)是非常有用的一個(gè)選項(xiàng),可用于測(cè)試某個(gè)特定網(wǎng)絡(luò)的吞吐量,也可以是數(shù)據(jù)包繞開出錯(cuò)網(wǎng)絡(luò)。源路由選項(xiàng)可以分為兩類,一類是嚴(yán)格源路由選項(xiàng),一類是松散源路由選項(xiàng)。2.記錄路由所謂記錄路由是指記錄下數(shù)據(jù)報(bào)從源主機(jī)到目的主機(jī)所經(jīng)過(guò)的路徑上的各個(gè)路由器的地址,記錄路由功能可以通過(guò)數(shù)據(jù)報(bào)的記錄路由選項(xiàng)完成。利用記錄路由選項(xiàng),可以判斷數(shù)據(jù)報(bào)傳輸過(guò)程中的所經(jīng)過(guò)的

6、路徑,通常還可以測(cè)試互聯(lián)網(wǎng)中路由配置是否正確。3時(shí).間戳所謂時(shí)間戳()就是記錄下數(shù)據(jù)報(bào)經(jīng)過(guò)的每一個(gè)路由器時(shí)的當(dāng)?shù)貢r(shí)間,記錄時(shí)間戳可以使用數(shù)據(jù)報(bào)的時(shí)間戳選項(xiàng)。時(shí)間戳中的時(shí)間采用格林尼治時(shí)間。時(shí)間戳選項(xiàng)提供了數(shù)據(jù)報(bào)傳輸中的時(shí)域參數(shù),用于分析網(wǎng)路吞吐率,擁塞情況,負(fù)載情況等報(bào)文結(jié)構(gòu)如下internet控制消息協(xié)議ICMP是用于報(bào)告錯(cuò)誤并代表IP對(duì)消息進(jìn)行控制。類型(8位)代碼(8位)校驗(yàn)和(16位)標(biāo)示符(16位)序號(hào)(16位)當(dāng)前時(shí)間(32位)類型和代碼字段:一起決定了報(bào)文的類型如下表類SSR碼檔述Q030目飾不可達(dá):網(wǎng)絡(luò)不可達(dá)1主機(jī)不可達(dá)23端口不可達(dá)4需墓進(jìn)行竹片但設(shè)晉了不分片比特56目的網(wǎng)絡(luò)

7、不認(rèn)識(shí)目的主機(jī)不認(rèn)識(shí)S西王機(jī)戰(zhàn)隔豈辭布用)9目的網(wǎng)絡(luò)被耳制集止10目的主機(jī)被強(qiáng)制禁止n由干眼務(wù)類吧T03網(wǎng)錯(cuò)不可達(dá)12由干眼務(wù)類!1TTOW.主機(jī)不可達(dá)13曲干過(guò)法,詭信褲崢制禁止14主機(jī)越校15優(yōu)先挖中止生故40痕端鍍尖用基橄捽秤50對(duì)網(wǎng)絡(luò)1&定穴1對(duì)主機(jī)申応向2對(duì)眼尋類比和網(wǎng)培用宦:=3對(duì)眼務(wù)賓址和主和雨宦遼E0請(qǐng)求虛界厲h諒求90弗由駕詭告100賭由晉請(qǐng)琳110超時(shí)生存時(shí):|為diTiaceroute1在散據(jù)很吉恢期怔生存時(shí)聞為0120壞開口冃缶:包牯洛戸苣鉆|1缺少愿歸的選氐130吋冋就請(qǐng)求140時(shí)截應(yīng)率芒0信息謂求(作財(cái)用160信息應(yīng)嘗:作廈不用1170址址掩碼諂求0地址掩沔應(yīng)吾校驗(yàn)

8、和字段:包括數(shù)據(jù)在內(nèi)的整個(gè)數(shù)據(jù)包的校驗(yàn)和,其計(jì)算方法和頭部校驗(yàn)和的計(jì)算方法是一樣的。標(biāo)識(shí)符字段:用于標(biāo)識(shí)本進(jìn)程序列號(hào)字段:用于判斷回射應(yīng)答數(shù)據(jù)報(bào)。時(shí)間戳:時(shí)間戳請(qǐng)求報(bào)文()和時(shí)間戳應(yīng)答報(bào)文()用于測(cè)試兩臺(tái)主機(jī)之間數(shù)據(jù)報(bào)來(lái)回一次的傳輸時(shí)間。傳輸時(shí),主機(jī)填充原始時(shí)間戳,接收方收到請(qǐng)求后填充接收時(shí)間戳后以的報(bào)文格式返回,發(fā)送方計(jì)算這個(gè)時(shí)間差。一些系統(tǒng)不響應(yīng)這種報(bào)文。報(bào)文結(jié)構(gòu)如下表:(摘自)傳輸控制協(xié)議()向上與用戶應(yīng)用程序進(jìn)程接口,向下與網(wǎng)絡(luò)層協(xié)議接口。用戶應(yīng)用程序采用首先調(diào)用(或),然后將應(yīng)用程序數(shù)據(jù)遞交給這一方式,在網(wǎng)絡(luò)上傳送數(shù)據(jù)。將這些數(shù)據(jù)打包分段并調(diào)用模塊向目的主機(jī)傳送每個(gè)數(shù)據(jù)段。接收方的將

9、段中的數(shù)據(jù)放入接收緩沖器,然后將段重裝為應(yīng)用程序數(shù)據(jù),再將這些數(shù)據(jù)發(fā)送到目的的應(yīng)用程序進(jìn)程。盡管和U都使用相同的網(wǎng)絡(luò)層(),卻向應(yīng)用層提供與U完全不同的服務(wù)。提供一種面向連接的、可靠的字節(jié)流服務(wù)。0001020304050607080910111213141516171819202122232425262728293031Bit源端口號(hào)16位日標(biāo)端口號(hào)16位2字節(jié)順序號(hào)32位序列編號(hào)雌雕俺妙一號(hào)處確認(rèn)編號(hào)頭矗長(zhǎng)度保留點(diǎn)位桂種訂窗口大小16位狡驗(yàn)和15位緊總抬針16位可選項(xiàng)8的倍數(shù)位數(shù)據(jù)源端口號(hào)(16位),標(biāo)識(shí)主機(jī)上發(fā)起傳送的應(yīng)用程序;目的端口(16位)標(biāo)識(shí)主機(jī)上傳送要到達(dá)的應(yīng)用程序。源端和目的

10、端的端口號(hào),用于尋找發(fā)端和收端應(yīng)用進(jìn)程。這兩個(gè)值加上首部中的源端地址和目的端地址唯一確定一個(gè)連接。一個(gè)地址和一個(gè)端口號(hào)有時(shí)也稱為一個(gè)插口(),插口對(duì)()包含客戶地址、客戶端口號(hào)、服務(wù)器地址和服務(wù)器端口號(hào)的四元組可唯一確定互聯(lián)網(wǎng)絡(luò)中每個(gè)連接的雙方。端口唯一確定一個(gè)連接。協(xié)議通過(guò)使用端口來(lái)標(biāo)識(shí)源端和目標(biāo)端的應(yīng)用進(jìn)程。端口號(hào)可以使用0到655之3間5的任何數(shù)字。在收到服務(wù)請(qǐng)求時(shí),操作系統(tǒng)動(dòng)態(tài)地為客戶端的應(yīng)用程序分配端口號(hào)。在服務(wù)器端,每種服務(wù)在眾所周知的端口()為用戶提供服務(wù)。順序號(hào)字段:占比特。用來(lái)標(biāo)識(shí)從源端向目標(biāo)端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個(gè)報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)。確認(rèn)號(hào)字段:占比特。只有標(biāo)

11、志為時(shí),確認(rèn)號(hào)字段才有效。它包含目標(biāo)端所期望收到源端的下一個(gè)數(shù)據(jù)字節(jié)。頭部長(zhǎng)度字段:占4比特。給出頭部占32比特的數(shù)目。沒(méi)有任何選項(xiàng)字段的頭部長(zhǎng)度為字節(jié);最多可以有字節(jié)的頭部。預(yù)留:由跟在數(shù)據(jù)偏移字段后的6位構(gòu)成,預(yù)留位通常為0.標(biāo)志位字段(U、R、):占比特。各比特的含義如下:URG:緊急指針()有效。ACK:確認(rèn)序號(hào)有效。PSH:立即發(fā)送(默認(rèn)要等到發(fā)送緩沖區(qū)存滿再發(fā)送數(shù)據(jù))RST:重建連接。SYN:發(fā)起一個(gè)連接。FIN:釋放一個(gè)連接。窗口大小字段:占16比特。此字段用來(lái)進(jìn)行流量控制。單位為字節(jié)數(shù),這個(gè)值是本機(jī)期望一次接收的字節(jié)數(shù)。TCP校驗(yàn)和字段:占比特。對(duì)整個(gè)TCP報(bào)文段,即TCP頭部

12、和TCP數(shù)據(jù)進(jìn)行校驗(yàn)和計(jì)算,并由目標(biāo)端進(jìn)行驗(yàn)證。緊急指針字段:占16比特。它是一個(gè)偏移量,和序號(hào)字段中的值相加表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào)。選項(xiàng)字段:占32比特??赡馨ù翱跀U(kuò)大因子、時(shí)間戳等選項(xiàng)。TCP三次握手:創(chuàng)建TCP連接、A端SYN=1,ACK=0Seque、端SYN=1,ACK=1SequenceNumber=YYY、A端3SYN=0,ACK=1SequenceNumbe這個(gè)TCP負(fù)載中已經(jīng)可以包含業(yè)務(wù)數(shù)據(jù)了。NumbeAckA上機(jī)E2nd上機(jī)ATCP鏈接撤銷:、A端1FIN=1,ACK=1SequenceNumb、端AFIN=1,ACK=1SequenceNumber=YYYAc

13、k2nd3rd5011歿送序4ih嵌迭暨密222主機(jī)p主機(jī)屢00)確認(rèn)卄ackr送竺號(hào)=叭定義報(bào)頭發(fā)送端端口號(hào)位接收端端口號(hào)位位,標(biāo)示消息端的數(shù)據(jù)位于全體數(shù)據(jù)塊的某一字節(jié)的數(shù)字位,確認(rèn)號(hào)標(biāo)示接收端對(duì)于發(fā)送端接收到數(shù)據(jù)塊數(shù)值數(shù)據(jù)偏移位,預(yù)留位,控制位為窗口位校驗(yàn)碼位位,緊急數(shù)據(jù)指針選祥和填充位本文來(lái)自博客:協(xié)議簡(jiǎn)單分析首先和是兩種不同的協(xié)議,它們來(lái)七層網(wǎng)絡(luò)模型中分別在不同的層次,協(xié)議是網(wǎng)絡(luò)層的協(xié)議,是更高一層的傳輸層的協(xié)議,是建立在協(xié)議之上的,所以一般把和連在一起說(shuō)協(xié)議。系統(tǒng)的協(xié)議棧的數(shù)據(jù)包默認(rèn)是字節(jié)大小,如果一次傳輸?shù)臄?shù)據(jù)大于這個(gè)長(zhǎng)度,會(huì)把分割成幾個(gè)長(zhǎng)度都不大于字節(jié)的數(shù)據(jù)包,每個(gè)數(shù)據(jù)包都會(huì)被賦

14、予一個(gè)(相當(dāng)于每個(gè)數(shù)據(jù)包的順序號(hào),憑這個(gè)接收端可以知道數(shù)據(jù)包的前后順序)之后的數(shù)據(jù)包再被包裹上一層的數(shù)據(jù)的頭,形成數(shù)據(jù)包在網(wǎng)上傳輸(其實(shí)最后還要包一層以太網(wǎng)數(shù)據(jù)包,網(wǎng)絡(luò)上最終傳輸?shù)亩际且蕴W(wǎng)數(shù)據(jù)包)。數(shù)據(jù)包到了目的地后,接收端首先把數(shù)據(jù)包的包頭去掉,取出的包。接收端每收到一個(gè)的數(shù)據(jù)包都需要返回給發(fā)送端一個(gè)的數(shù)據(jù)包告訴發(fā)送端已接到此數(shù)據(jù)包,如果接收端在一定的時(shí)間內(nèi)沒(méi)有收到某個(gè)數(shù)據(jù)包的響應(yīng),會(huì)再次發(fā)送這個(gè)數(shù)據(jù)包,這樣就保證了數(shù)據(jù)都能被接收端接收到(因特網(wǎng)上丟數(shù)據(jù)包是很正常的事,如果沒(méi)有數(shù)據(jù)包重發(fā)機(jī)制,很難保證發(fā)送的數(shù)據(jù)都能被接收端完整的收到)。每個(gè)數(shù)據(jù)包也是由包頭和實(shí)際數(shù)據(jù)組成,包頭包含如下主要內(nèi)

15、容:e字節(jié))發(fā)送端的端口號(hào)(字節(jié))接收端的端口號(hào)包頭中只包含雙方的端口號(hào),雙方的地址在包的包頭所以在數(shù)據(jù)包的包頭中沒(méi)有地址。(字節(jié))數(shù)據(jù)的順序號(hào),表示當(dāng)前數(shù)據(jù)包中的數(shù)據(jù)起始順序號(hào),比如前一個(gè)數(shù)據(jù)包的為十六進(jìn)制的:,數(shù)據(jù)包的實(shí)際數(shù)據(jù)長(zhǎng)度為字節(jié),那么下一個(gè)數(shù)據(jù)包的就要在前一個(gè)數(shù)據(jù)包的基礎(chǔ)上加上,為:(字節(jié))接收到對(duì)方的某個(gè)數(shù)據(jù)包后的回應(yīng)順序號(hào)。如果接收到了對(duì)方主動(dòng)發(fā)送來(lái)的某個(gè)數(shù)據(jù)包,必須要返回對(duì)方一個(gè)回應(yīng)數(shù)據(jù)包,數(shù)據(jù)包的頭部的部分根據(jù)對(duì)方發(fā)送數(shù)據(jù)的和實(shí)際數(shù)據(jù)長(zhǎng)度,返回實(shí)際數(shù)據(jù)長(zhǎng)度,表示已經(jīng)接收到這個(gè)數(shù)據(jù)包。對(duì)方收到這個(gè)回應(yīng),根據(jù)數(shù)值計(jì)算后知道這個(gè)數(shù)據(jù)包已經(jīng)被對(duì)方接收。如果接收不到的回應(yīng),就意味著這

16、個(gè)數(shù)據(jù)包已經(jīng)在網(wǎng)上被丟失,需要重新發(fā)送此數(shù)據(jù)包。(字節(jié))表示數(shù)據(jù)包的包頭長(zhǎng)度,整個(gè)數(shù)據(jù)包的長(zhǎng)度減包頭長(zhǎng)度就能得到數(shù)據(jù)包的實(shí)際傳送的數(shù)據(jù)長(zhǎng)度。(字節(jié))標(biāo)志字節(jié),每一位都是一個(gè)標(biāo)志,以下是幾個(gè)主要標(biāo)志:-表示數(shù)據(jù)包是個(gè)回應(yīng)數(shù)據(jù)包,表示接收到了對(duì)方的某個(gè)數(shù)據(jù)包,具體哪個(gè)包由包頭的部分指示。-表示這是個(gè)有實(shí)際數(shù)據(jù)的包。-表示這是個(gè)建立連接的數(shù)據(jù)包,通訊雙方要通訊,總是由客戶端先發(fā)送數(shù)據(jù)包到服務(wù)端以建立的連接。-表示通訊結(jié)束,拆除連接的數(shù)據(jù)包。下面描述一次傳送數(shù)據(jù)的完整過(guò)程以一個(gè)客戶端向服務(wù)端發(fā)送一些數(shù)據(jù)為例??蛻舳耍↖P:Purt)服務(wù)端(IP:Pcirt)JL1.1SYN客戶端初貽SEQ11111.

17、2SYNACK服務(wù)端初始EEQQ1.3ACK1111-JL-21客戶喘發(fā)送服務(wù)喘數(shù)據(jù)包-112衛(wèi)服務(wù)端發(fā)往客戶端ACKHr12.N+1客戶端發(fā)送服務(wù)端的ACK1客戶喘發(fā)送FINT11I3衛(wèi)服務(wù)端發(fā)送MKFIN、站客戶端發(fā)送碎J11r一次完整的通訊的過(guò)程、建立連接是面向連接的協(xié)議,客戶端和服務(wù)端要通訊就必須先建立一個(gè)連接。首先通訊雙方都有地址,就是地址加端口號(hào)()標(biāo)識(shí)通訊的每一端,客戶端的跟服務(wù)器之間就構(gòu)成一個(gè)套接字。所謂建立連接就是在客戶端的跟服務(wù)器之間建立一個(gè)通道,初始化一些通訊的基礎(chǔ)設(shè)置,以便以后的數(shù)據(jù)通訊的正常進(jìn)行??蛻舳税l(fā)送總是客戶端發(fā)起連接,首先客戶端發(fā)送數(shù)據(jù)包到服務(wù)端以建立連接。數(shù)

18、據(jù)包只有包頭,沒(méi)有實(shí)際數(shù)據(jù)。標(biāo)志字節(jié)的位置位,表示是數(shù)據(jù)包。由客戶端隨機(jī)生成一個(gè)字節(jié)的數(shù)據(jù),作為本次連接通訊客戶端數(shù)據(jù)的起始順序號(hào),以后客戶端發(fā)往服務(wù)端的數(shù)據(jù)包的都在此基礎(chǔ)上加上每次傳送的實(shí)際數(shù)據(jù)長(zhǎng)度依次相加遞增,這樣根據(jù)每個(gè)數(shù)據(jù)包的就能判斷出數(shù)據(jù)包的前后順序,以便接收方根據(jù)數(shù)據(jù)包的順序拼接數(shù)據(jù)包。服務(wù)端回應(yīng)、服務(wù)端收到客戶端的后,首先要發(fā)送一個(gè)數(shù)據(jù)包給客戶端表示收到了這個(gè)數(shù)據(jù)包。數(shù)據(jù)包的標(biāo)志字節(jié)的置位,表示是回應(yīng)數(shù)據(jù)包。設(shè)置為接收到的數(shù)據(jù)包的數(shù)據(jù)包實(shí)際長(zhǎng)度,因?yàn)榻邮盏降牡膶?shí)際數(shù)據(jù)長(zhǎng)度為0但是協(xié)議認(rèn)為實(shí)際長(zhǎng)度為的主動(dòng)發(fā)送的數(shù)據(jù)長(zhǎng)度為1是客戶端主動(dòng)發(fā)送的數(shù)據(jù)包,所以服務(wù)端把設(shè)置為接收到的數(shù)據(jù)包的

19、。通訊可以是雙向的,一旦建立了連接,服務(wù)端也可以向客戶端發(fā)送數(shù)據(jù)。所以服務(wù)端也會(huì)向客戶端發(fā)送一個(gè)包,數(shù)據(jù)包的標(biāo)志字節(jié)的置位,表示是數(shù)據(jù)包,同時(shí)隨機(jī)生成一個(gè)字節(jié)的數(shù)據(jù),作為本次連接通訊服務(wù)端數(shù)據(jù)的起始順序號(hào)。實(shí)際中,服務(wù)端把這兩個(gè)數(shù)據(jù)包合并為一個(gè)數(shù)據(jù)包,和都是置位,和也同時(shí)設(shè)置,作為一個(gè)數(shù)據(jù)包發(fā)送回客戶端??蛻舳嘶貞?yīng)客戶端收到服務(wù)端的數(shù)據(jù)包后,需要回應(yīng)一個(gè)數(shù)據(jù)包,表示接收到此數(shù)據(jù)包。同樣數(shù)據(jù)包的設(shè)置為接收到的數(shù)據(jù)包的(、數(shù)據(jù)包的實(shí)際數(shù)據(jù)長(zhǎng)度也是)。2相互收發(fā)數(shù)據(jù)通訊雙方建立了連接后,就可以相互進(jìn)行數(shù)據(jù)包的傳送。發(fā)送數(shù)據(jù)的一端,把數(shù)據(jù)包的標(biāo)準(zhǔn)字節(jié)的置位,表示是有實(shí)際數(shù)據(jù)的數(shù)據(jù)包。置為前一次的數(shù)據(jù)包

20、的加上前一次數(shù)據(jù)包的長(zhǎng)度。如果數(shù)據(jù)包還兼做包,則把置位,同時(shí)設(shè)置好把數(shù)據(jù)包發(fā)送到對(duì)方。接收方收到對(duì)方主動(dòng)發(fā)送的數(shù)據(jù)數(shù)據(jù)包后,一定要回復(fù)數(shù)據(jù)包,如果同時(shí)有數(shù)據(jù)發(fā)往對(duì)方,可以把實(shí)際數(shù)據(jù)包跟數(shù)據(jù)包合在一起發(fā)送。在拆除連接之前,通訊雙方可以一直相互發(fā)送接收數(shù)據(jù),數(shù)據(jù)的順序都建立在各自的基礎(chǔ)上。圖1中,藍(lán)色部分的數(shù)據(jù)通訊就表示這一階段。3拆除連接雙方數(shù)據(jù)交換完畢,需要拆除連接,結(jié)束通訊??蛻舳税l(fā)送通訊的一方向另一方發(fā)送數(shù)據(jù)包表示要結(jié)束通訊,拆除連接??蛻舳税褦?shù)據(jù)包的標(biāo)準(zhǔn)字節(jié)的置位,表示是通訊結(jié)束數(shù)據(jù)包。服務(wù)端返回,服務(wù)端收到客戶端的數(shù)據(jù)包后,先回應(yīng)一個(gè)數(shù)據(jù)包,然后也發(fā)送一個(gè)數(shù)據(jù)包,還是服務(wù)端也結(jié)束通訊。

21、客戶端回應(yīng)客戶端回應(yīng)表示接收到服務(wù)端的數(shù)據(jù),雙方通訊結(jié)束。報(bào)文結(jié)構(gòu)如下表:源端口號(hào)(位)目標(biāo)端口號(hào)(位長(zhǎng)度(位校驗(yàn)和(位數(shù)據(jù)區(qū)協(xié)議不提供數(shù)據(jù)傳送的保證機(jī)制。如果在從發(fā)送方到接收方的傳遞過(guò)程中出現(xiàn)數(shù)據(jù)報(bào)的丟失,協(xié)議本身并不能做出任何檢測(cè)或提示。因此,通常人們把協(xié)議稱為不可靠的傳輸協(xié)議。但協(xié)議擁有協(xié)議望塵莫及的速度。主要應(yīng)用于視頻電話會(huì)議。ARP協(xié)議數(shù)據(jù)包:R全稱,中文名為地址解析協(xié)議,它工作在數(shù)據(jù)鏈路層,在本層和硬件接口聯(lián)系,同時(shí)對(duì)上層提供服務(wù)。數(shù)據(jù)包常通過(guò)以太網(wǎng)發(fā)送,以太網(wǎng)設(shè)備并不識(shí)別位地址,它們是以位以太網(wǎng)地址傳輸以太網(wǎng)數(shù)據(jù)包。因此,必須把目的地址轉(zhuǎn)換成以太網(wǎng)目的地址。在以太網(wǎng)中,一個(gè)主機(jī)要

22、和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的地址。但這個(gè)目標(biāo)地址是如何獲得的呢?它就是通過(guò)地址解析協(xié)議獲得的。協(xié)議用于將網(wǎng)絡(luò)中的地址解析為的硬件地址(地址),以保證通信的順利進(jìn)行。和報(bào)頭結(jié)構(gòu)和使用相同的報(bào)頭結(jié)構(gòu),如圖所示。硬件糞型P協(xié)誼類型J硬件地址長(zhǎng)度J協(xié)誼長(zhǎng)度J操作類型發(fā)迸方的硬件地址字節(jié))衛(wèi)源物理地址字節(jié))f源IP地址(0-1字節(jié))中源IP地址(2-3字節(jié))Q目標(biāo)硬件地址(07字節(jié))心目標(biāo)硬件地址字節(jié))衛(wèi)目標(biāo)IP地址(0-3字節(jié))(圖報(bào)頭結(jié)構(gòu))?硬件類型字段指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1;協(xié)議類型字段指明了發(fā)送方提供的高層協(xié)議類型,為0進(jìn)制);硬件地址長(zhǎng)度和協(xié)議長(zhǎng)度指

23、明了硬件地址和高層協(xié)議地址的長(zhǎng)度,這樣報(bào)文就可以在任意硬件和任意協(xié)議的網(wǎng)絡(luò)中使用;操作字段用來(lái)表示這個(gè)報(bào)文的類型,請(qǐng)求為,響應(yīng)為,請(qǐng)求為,響應(yīng)為4?發(fā)硬送方的硬件地址(0-字3節(jié)):源主機(jī)硬件地址的前3個(gè)字節(jié);硬?硬發(fā)送方的硬件地址(4-字5節(jié)):源主機(jī)硬件地址的后,個(gè)字節(jié);硬發(fā)送方(字節(jié)):源主機(jī)硬件地址的前個(gè)字節(jié);發(fā)送方(字節(jié)):源主機(jī)硬件地址的后個(gè)字節(jié);目的硬件地址(字節(jié)):目的主機(jī)硬件地址的前個(gè)字節(jié);目的硬件地址(字節(jié)):目的主機(jī)硬件地址的后個(gè)字節(jié);目的(字節(jié)):目的主機(jī)的地址。和的工作原理的工作原理如下:首先,每臺(tái)主機(jī)都會(huì)在自己的緩沖區(qū)中建立一個(gè)列表,以表示地址和地址的對(duì)應(yīng)關(guān)系。當(dāng)源

24、主機(jī)需要將一個(gè)數(shù)據(jù)包要發(fā)送到目的主機(jī)時(shí),會(huì)首先檢查自己列表中是否存在該地址對(duì)應(yīng)的地址如果有,就直接將數(shù)據(jù)包發(fā)送到這個(gè)地址;如果沒(méi)有,就向本地網(wǎng)段發(fā)起一個(gè)請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的地址。此請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的地址、硬件地址、以及目的主機(jī)的地址。網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的是否和自己的地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的地址和地址添加到自己的列表中,如果表中已經(jīng)存在該的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè)響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的地址;源主機(jī)收到這個(gè)響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的地址和地址添加到自己的列表中,并利用此

25、信息開始數(shù)據(jù)的傳輸。如果源主機(jī)一直沒(méi)有收到響應(yīng)數(shù)據(jù)包,表示查詢失敗。的工作原理如下:發(fā)送主機(jī)發(fā)送一個(gè)本地的廣播,在此廣播包中,聲明自己的地址并且請(qǐng)求任何收到此請(qǐng)求的服務(wù)器分配一個(gè)地址;本地網(wǎng)段上的服務(wù)器收到此請(qǐng)求后,檢查其列表,查找該地址對(duì)應(yīng)的地址;如果存在,服務(wù)器就給源主機(jī)發(fā)送一個(gè)響應(yīng)數(shù)據(jù)包并將此地址提供給對(duì)方主機(jī)使用;如果不存在,服務(wù)器對(duì)此不做任何的響應(yīng);源主機(jī)收到從服務(wù)器的響應(yīng)信息,就利用得到的地址進(jìn)行通訊;如果一直沒(méi)有收到服務(wù)器的響應(yīng)信息,表示初始化失敗。#includepcap.htypedefstructeth_headerunsignedchareth_dst6;unsigned

26、chareth_src6;unsignedshorteth_type;eth_header;/以太網(wǎng)頭結(jié)構(gòu)/目的主機(jī)物理地址/源主機(jī)物理地址/以太網(wǎng)幀類型/*4字節(jié)的IP地址*/typedefstructip_addressu_charbyte1;u_charbyte2;u_charbyte3;u_charbyte4;ip_address;/*IPv4首部*/typedefstructip_headeru_charver_ihl;u_chartos;u_shorttlen;/版本(4bits)+首部長(zhǎng)度(4bits)/服務(wù)類型(Typeofservice)總長(zhǎng)(Totallength)u_sh

27、ortidentification;/u_shortflags_fo;u_charttl;u_charproto;u_shortcrc;ip_addresssaddr;ip_addressdaddr;u_intop_pad;ip_header;/*UDP首部*/標(biāo)識(shí)(Identification)/標(biāo)志位(Flags)(3bits)+段偏移量(Fragmentoffset)(13bits)/存活時(shí)間(Timetolive)/協(xié)議(Protocol)/首部校驗(yàn)和(Headerchecksum)/源地址(Sourceaddress)/目的地址(Destinationaddress)/選項(xiàng)與填充(O

28、ption+Padding)typedefstructudp_headeru_shortsport;u_shortdport;u_shortlen;u_shortcrc;/源端口(Sourceport)/目的端口(Destinationport)/UDP數(shù)據(jù)包長(zhǎng)度(Datagramlength)/校驗(yàn)和(Checksum)udp_header;/*回調(diào)函數(shù)原型*/voidpacket_handler(u_char*param,conststructpcap_pkthdr*header,constu_char*pkt_data);main()pcap_if_t*alldevs;pcap_if_t

29、*d;intinum;inti=0;pcap_t*adhandle;charerrbufPCAP_ERRBUF_SIZE;u_intnetmask;charpacket_filter=ipandudp;structbpf_programfcode;/*獲得設(shè)備列表*/if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)=-1)fprintf(stderr,Errorinpcap_findalldevs:%sn,errbuf);exit(1);/*打印列表*/for(d=alldevs;d;d=d-next)printf(

30、%d.%s,+i,d-name);if(d-description)printf(%s)n,d-description);elseprintf(Nodescriptionavailable)n);if(i=0)printf(nNointerfacesfound!MakesureWinPcapisinstalled.n);return-1;printf(Entertheinterfacenumber(1-%d):,i);scanf(%d,&inum);if(inumi)printf(nInterfacenumberoutofrange.n);/*釋放設(shè)備列表*/pcap_freealldevs(

31、alldevs);return-1;/*跳轉(zhuǎn)到已選設(shè)備*/for(d=alldevs,i=0;inext,i+);/*打開適配器*/if(adhandle=pcap_open(d-name,/設(shè)備名65536,/要捕捉的數(shù)據(jù)包的部分/65535保證能捕獲到不同數(shù)據(jù)鏈路層上的每個(gè)數(shù)據(jù)包的全部?jī)?nèi)容PCAP_OPENFLAG_PROMISCUOUS,/混雜模式1000,/讀取超時(shí)時(shí)間NULL,/遠(yuǎn)程機(jī)器驗(yàn)證errbuf/錯(cuò)誤緩沖池)=NULL)fprintf(stderr,nUnabletoopentheadapter.%sisnotsupportedbyWinPcapn);/*釋放設(shè)備列表*/pc

32、ap_freealldevs(alldevs);return-1;/*檢查數(shù)據(jù)鏈路層,為了簡(jiǎn)單,我們只考慮以太網(wǎng)*/if(pcap_datalink(adhandle)!=DLT_EN10MB)fprintf(stderr,nThisprogramworksonlyonEthernetnetworks.n);/*釋放設(shè)備列表*/pcap_freealldevs(alldevs);return-1;if(d-addresses!=NULL)/*獲得接口第一個(gè)地址的掩碼*/netmask=(structsockaddr_in*)(d-addresses-netmask)-sin_addr.S_un

33、.S_addr;else/*如果接口沒(méi)有地址,那么我們假設(shè)一個(gè)C類的掩碼*/netmask=0 xffffff;/編譯過(guò)濾器if(pcap_compile(adhandle,&fcode,packet_filter,1,netmask)0)fprintf(stderr,nUnabletocompilethepacketfilter.Checkthesyntax.n);/*釋放設(shè)備列表*/pcap_freealldevs(alldevs);return-1;/設(shè)置過(guò)濾器if(pcap_setfilter(adhandle,&fcode)description);/*釋放設(shè)備列表*/pcap_freealldevs(alldevs);/*開始捕捉*/pcap_loop(adhandle,0,packet_handler,NULL);return0;/*回調(diào)函數(shù),當(dāng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論