卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

TCP詳解之?dāng)?shù)據(jù)包分析

TCP 協(xié)議詳解之?dāng)?shù)據(jù)包分析----------by :唐進(jìn)元一、 細(xì)說(shuō)網(wǎng)絡(luò)傳輸介紹常言道:欲練神功,必先練好基本功。本系列以實(shí)用為主。首先來(lái)看一個(gè)例子:示例:網(wǎng)絡(luò)服務(wù)器向客戶端傳送數(shù)據(jù)的過(guò)程:在詳細(xì)

TCP 協(xié)議詳解之?dāng)?shù)據(jù)包分析

----------by :唐進(jìn)元

一、 細(xì)說(shuō)網(wǎng)絡(luò)傳輸

介紹

常言道:欲練神功,必先練好基本功。本系列以實(shí)用為主。

首先來(lái)看一個(gè)例子:

示例:網(wǎng)絡(luò)服務(wù)器向客戶端傳送數(shù)據(jù)的過(guò)程:

在詳細(xì)闡述網(wǎng)絡(luò)傳輸過(guò)程之前,先來(lái)看一個(gè)最常見(jiàn)的例子,下圖顯示了一個(gè)網(wǎng)絡(luò)服務(wù)器向客戶端傳送數(shù)據(jù)的完整過(guò)程:

1. 需要傳送的數(shù)據(jù)是網(wǎng)絡(luò)服務(wù)器的HTML 頁(yè)面。

2. 應(yīng)用協(xié)議HTTP 報(bào)文頭添加到HTML 數(shù)據(jù)之前。報(bào)文頭信息包括:服務(wù)器所使用的HTTP 版本,以及表明它包含發(fā)給網(wǎng)絡(luò)客戶端信息的狀態(tài)編碼。

,

3. HTTP 應(yīng)用層協(xié)議將HTML 格式的網(wǎng)頁(yè)數(shù)據(jù)發(fā)送給傳輸層。TCP 傳輸層用于管理網(wǎng)絡(luò)服務(wù)器和客戶端之間的會(huì)話。

4. IP 信息添加到TCP 信息之前。IP 指定適當(dāng)?shù)脑春湍康腎P 地址。這些信息就構(gòu)成了IP 報(bào)文。

5. 以太網(wǎng)協(xié)議添加到IP 報(bào)文的兩端之后,就形成了數(shù)據(jù)鏈路幀。上述幀發(fā)送至通向網(wǎng)絡(luò)客戶端的路徑上的最近一個(gè)路由器。路由器移除以太網(wǎng)信息,觀察IP 報(bào)文,判定最佳路徑,將報(bào)文插入一個(gè)新的幀,并發(fā)送至目標(biāo)路徑上下一個(gè)相鄰路由器。每一個(gè)路由器在轉(zhuǎn)發(fā)之前都移除并添加新的數(shù)據(jù)鏈路層信息。

6. 數(shù)據(jù)通過(guò)互聯(lián)網(wǎng)絡(luò)傳輸,互聯(lián)網(wǎng)絡(luò)包含媒介和中間設(shè)備。

7. 客戶端接收到包含數(shù)據(jù)的數(shù)據(jù)鏈路幀,處理各層協(xié)議頭,之后以添加時(shí)相反的順序移除協(xié)議頭。首先處理并移除以太網(wǎng)信息,之后是IP 協(xié)議信息,接下來(lái)TCP 信息,最后是HTTP 信息。

8. 之后,將網(wǎng)頁(yè)信息傳遞給客戶端網(wǎng)頁(yè)瀏覽器軟件。

數(shù)據(jù)封裝:

消息要在網(wǎng)絡(luò)中傳輸,必須對(duì)它進(jìn)行編碼,以特定的格式進(jìn)行封裝,同時(shí)需要適當(dāng)?shù)胤庋b以足夠的控制和地址信息,以使它能夠從發(fā)送方移動(dòng)到接收方。

消息大小

理論上,視頻或郵件信息是能夠以大塊非中斷型流從網(wǎng)絡(luò)源地址傳送到目的地址,但這也意味著同一時(shí)刻同一網(wǎng)絡(luò)其他設(shè)備就無(wú)法收發(fā)消息。這種大型數(shù)據(jù)流會(huì)造成顯著延時(shí)。并且,如果傳輸過(guò)程中連接斷開(kāi),整個(gè)數(shù)據(jù)流都會(huì)丟失需要全部重傳。因此更好的方法是將數(shù)據(jù)流分割(segmentation )為較小的,便于管理的片段,能夠帶來(lái)兩點(diǎn)好處:

,

? 發(fā)送較小片段,網(wǎng)絡(luò)上同時(shí)可有多個(gè)會(huì)話交錯(cuò)進(jìn)行。這種在網(wǎng)絡(luò)上將不同會(huì)話片段

交錯(cuò)進(jìn)行的過(guò)程稱為多路傳輸(multiplexing )。

? 分割可提高網(wǎng)絡(luò)通訊的可靠性。各消息片段從源地址到目的地址無(wú)需經(jīng)過(guò)相同路徑,

如果一條路徑被堵塞或斷開(kāi),其余消息可從替換路徑到達(dá)目的地址。如果部分消息到不了目的地址,那只需重傳丟失部分。

通過(guò)對(duì)片段打上標(biāo)簽的方式來(lái)保證順序以及在接收時(shí)重組。

協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)

應(yīng)用層數(shù)據(jù)在傳輸過(guò)程中沿著協(xié)議棧傳遞,每一層協(xié)議都會(huì)向其中添加信息。這就是封裝的過(guò)程。

數(shù)據(jù)片段在各層網(wǎng)絡(luò)結(jié)構(gòu)中采用的形式就稱為協(xié)議數(shù)據(jù)單元(PDU )。封裝過(guò)程中,下一層對(duì)從上一層收到的PDU 進(jìn)行封裝。在處理的每一個(gè)階段PDU 都有不同的名字來(lái)反應(yīng)它的功能。

,

PDU 按照TCP/IP協(xié)議的命名規(guī)范:

? 數(shù)據(jù)(Data ):應(yīng)用層PDU 的常用術(shù)語(yǔ)

? 分段(Segment ):傳輸層PDU

? 幀(Frame ):網(wǎng)絡(luò)層PDU

? 比特(Bits ):在介質(zhì)上物理傳輸數(shù)據(jù)所使用的PDU 。

封裝

封裝是指在傳輸之前為數(shù)據(jù)添加額外的協(xié)議頭信息的過(guò)程。在絕大多數(shù)數(shù)據(jù)通信過(guò)程中,源數(shù)據(jù)在傳輸前都會(huì)封裝以數(shù)層協(xié)議。在網(wǎng)絡(luò)上發(fā)送消息時(shí),主機(jī)上的協(xié)議棧從上至下進(jìn)行操作。

以網(wǎng)絡(luò)服務(wù)器為例,HTTP 應(yīng)用層協(xié)議發(fā)送HTML 格式網(wǎng)頁(yè)數(shù)據(jù)到傳輸層,應(yīng)用層數(shù)據(jù)被分成TCP 分段。各TCP 分段被打上標(biāo)簽,稱為頭(header ),表明接收方哪一個(gè)進(jìn)程應(yīng)當(dāng)接收此消息。同時(shí)也包含使得接收方能夠按照原有的格式來(lái)重組數(shù)據(jù)的信息。

,

傳輸層將網(wǎng)頁(yè)HTML 數(shù)據(jù)封裝成分段并發(fā)送至網(wǎng)絡(luò)層,執(zhí)行IP 層協(xié)議。整個(gè)TCP 分段封裝成IP 報(bào)文,也就是再添上IP 頭標(biāo)簽。IP 頭包括源和目的IP 地址,以及發(fā)送報(bào)文到目的地址所必須的信息。

之后,IP 報(bào)文發(fā)送到接入層,封裝以幀頭和幀尾。每個(gè)幀頭都包含源和目的物理地址。物理地址唯一指定了本地網(wǎng)絡(luò)上的設(shè)備。幀尾包含差錯(cuò)校正信息。最后,由服務(wù)器網(wǎng)卡將比特編碼傳輸給介質(zhì)。

解封裝

接收主機(jī)以相反的方式進(jìn)行操作稱為解封裝。解封裝是接收設(shè)備移除一層或多層協(xié)議頭的過(guò)程。數(shù)據(jù)在協(xié)議棧中向上移動(dòng)直到終端應(yīng)用層伴隨著解封裝。

訪問(wèn)本地資源:

訪問(wèn)本地網(wǎng)絡(luò)資源需要兩種類型的地址:網(wǎng)絡(luò)層地址和數(shù)據(jù)鏈路層地址。網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層負(fù)責(zé)將數(shù)據(jù)從發(fā)送設(shè)備傳輸至接收設(shè)備。兩層協(xié)議都有源和目的地址,但兩種地址的目的不同。

示例:客戶端PC1與FTP 在同一IP 網(wǎng)絡(luò)的通信

,

網(wǎng)絡(luò)地址

網(wǎng)絡(luò)層地址或IP 地址包含兩個(gè)部分:網(wǎng)絡(luò)前綴和主機(jī)。路由器使用網(wǎng)絡(luò)前綴部分將報(bào)文轉(zhuǎn)發(fā)給適當(dāng)?shù)木W(wǎng)絡(luò)。最后一個(gè)路由器使用主機(jī)部分將報(bào)文發(fā)送給目標(biāo)設(shè)備。同一本地網(wǎng)絡(luò)中,網(wǎng)絡(luò)前綴部分是相同的,只有主機(jī)設(shè)備地址部分不同。

源IP 地址:發(fā)送設(shè)備,即客戶端PC1的IP 地址:192.168.1.110

目的IP 地址:接收設(shè)備,即FTP 服務(wù)器:192.168.1.9

數(shù)據(jù)鏈路地址

數(shù)據(jù)鏈路地址的目的是在同一網(wǎng)絡(luò)中將數(shù)據(jù)鏈路幀從一個(gè)網(wǎng)絡(luò)接口發(fā)送至另一個(gè)網(wǎng)絡(luò)接口。以太網(wǎng)LAN 和無(wú)線網(wǎng)LAN 是兩種不同物理介質(zhì)的網(wǎng)絡(luò)示例,分別有自己的數(shù)據(jù)鏈路協(xié)議。

當(dāng)IP 報(bào)文的發(fā)送方和接收方位于同一網(wǎng)絡(luò),數(shù)據(jù)鏈路幀直接發(fā)送到接收設(shè)備。以太網(wǎng)上數(shù)據(jù)鏈路地址就是以太網(wǎng)MAC 地址。MAC 地址是物理植入網(wǎng)卡的48比特地址。

,

源MAC 地址:發(fā)送IP 報(bào)文的PC1以太網(wǎng)卡MAC 地址,AA-AA-AA-AA-AA-AA 。

目的MAC 地址:當(dāng)發(fā)送設(shè)備與接收設(shè)備位于同一網(wǎng)絡(luò),即為接收設(shè)備的數(shù)據(jù)鏈路地址。本例中,F(xiàn)TP MAC地址:CC-CC-CC-CC-CC-CC 。

源和目的MAC 地址添加到以太網(wǎng)幀中。

MAC 與IP 地址

發(fā)送方必須知道接收方的物理和邏輯地址。發(fā)送方主機(jī)能夠以多種方式學(xué)習(xí)到接收方的IP 地址:比如域名系統(tǒng)(Domain Name System, DNS),或通過(guò)應(yīng)用手動(dòng)輸入,如用戶指定FTP 地址。

以太網(wǎng)MAC 地址是怎么識(shí)別的呢?發(fā)送方主機(jī)使用地址解析協(xié)議(Address Resolution Protocol, ARP)以檢測(cè)本地網(wǎng)絡(luò)的所有MAC 地址。如下圖所示,發(fā)送主機(jī)在整個(gè)LAN 發(fā)送ARP 請(qǐng)求消息,這是一條廣播消息。ARP 請(qǐng)求包含目標(biāo)設(shè)備的IP 地址,LAN 上的每一個(gè)設(shè)備都會(huì)檢查該ARP 請(qǐng)求,看看是否包含它自身的IP 地址。只有符合該IP 地址的設(shè)備才會(huì)發(fā)送ARP 響應(yīng)。ARP 響應(yīng)包含ARP 請(qǐng)求中IP 地址相對(duì)應(yīng)的MAC 地址。

,

訪問(wèn)遠(yuǎn)程資源:

默認(rèn)網(wǎng)關(guān)

當(dāng)主機(jī)發(fā)送消息到遠(yuǎn)端網(wǎng)絡(luò),必須使用路由器,也稱為默認(rèn)網(wǎng)關(guān)。默認(rèn)網(wǎng)關(guān)就是位于發(fā)送主機(jī)同一網(wǎng)絡(luò)上的路由器的接口IP 地址。有一點(diǎn)很重要:本地網(wǎng)絡(luò)上的所有主機(jī)都能夠配置自己的默認(rèn)網(wǎng)關(guān)地址。如果該主機(jī)的TCP/IP設(shè)置中沒(méi)有配置默認(rèn)網(wǎng)關(guān)地址,或指定了錯(cuò)誤的默認(rèn)網(wǎng)關(guān)地址,則遠(yuǎn)端網(wǎng)絡(luò)消息無(wú)法被送達(dá)。

如下圖所示,LAN 上的主機(jī)PC 1使用IP 地址為192.168.1.1的R1作為默認(rèn)網(wǎng)關(guān),如果PDU 的目的地址位于另一個(gè)網(wǎng)絡(luò),則主機(jī)將PDU 發(fā)送至路由器上的默認(rèn)網(wǎng)關(guān)。

,

與遠(yuǎn)端網(wǎng)絡(luò)設(shè)備通訊

下圖顯示了客戶端主機(jī)PC 1與遠(yuǎn)端IP 網(wǎng)絡(luò)服務(wù)器進(jìn)行通訊的網(wǎng)絡(luò)層地址與數(shù)據(jù)鏈路層地址:

網(wǎng)絡(luò)地址

,

當(dāng)報(bào)文的發(fā)送方與接收方位于不同網(wǎng)絡(luò),源和目的IP 地址將會(huì)代表不同網(wǎng)絡(luò)上的主機(jī)。 源IP 地址:發(fā)送設(shè)備即客戶端主機(jī)PC 1的IP 地址:192.168.1.110。 目的IP 地址:接收設(shè)備即網(wǎng)絡(luò)服務(wù)器的IP 地址:172.16.1.99。

數(shù)據(jù)鏈路地址

當(dāng)報(bào)文的發(fā)送方與接收方位于不同網(wǎng)絡(luò),以太網(wǎng)數(shù)據(jù)鏈路幀無(wú)法直接被發(fā)送到目的主機(jī)。以太網(wǎng)幀必須先發(fā)送給路由器或默認(rèn)網(wǎng)關(guān)。本例中,默認(rèn)網(wǎng)關(guān)是R1,R1的接口IP 地址與PC 1屬于同一網(wǎng)絡(luò),因此PC 1能夠直接達(dá)到路由器。

源MAC 地址:發(fā)送設(shè)備即PC 1的MAC 地址,PC1的以太網(wǎng)接口MAC 地址為:

AA-AA-AA-AA-AA-AA 。

目的MAC 地址:當(dāng)報(bào)文的發(fā)送方與接收方位于不同網(wǎng)絡(luò),這一值為路由器或默認(rèn)網(wǎng)關(guān)的以太網(wǎng)MAC 地址。本例中,即R1的以太網(wǎng)接口MAC 地址,即:11-11-11-11-11-11。

IP 報(bào)文封裝成的以太網(wǎng)幀先被傳輸至R1,R1再轉(zhuǎn)發(fā)給目的地址即網(wǎng)絡(luò)服務(wù)器。R1可以轉(zhuǎn)發(fā)給另一個(gè)路由器,如果目的服務(wù)器所在網(wǎng)路連接至R1,則直接發(fā)送給服務(wù)器。

發(fā)送設(shè)備如何確定路由器的MAC 地址?每一個(gè)設(shè)備通過(guò)自己的TCP/IP設(shè)置中的默認(rèn)網(wǎng)關(guān)地址得知路由器的IP 地址。之后,它通過(guò)ARP 來(lái)得知默認(rèn)網(wǎng)關(guān)的MAC 地址,該MAC 地址隨后添加到幀中。

二、 細(xì)說(shuō)VLAN 與Trunk

介紹

標(biāo)簽: