常言道:欲練神功,必先練好基本功。之前做了乙個關於ip路由,預設閘道器和掩碼的問答貼,做完這個帖子覺得如果對網路知識點做乙個系統的闡述,應該會很有幫助。
首先來看乙個例子:
示例:網路伺服器向客戶端傳送資料的過程:
在詳細闡述網路傳輸過程之前,先來看乙個最常見的例子,下圖顯示了乙個網路伺服器向客戶端傳送資料的完整過程:
1. 需要傳送的資料是網路伺服器的html頁面。
2. 應用協議http報文頭新增到html資料之前。報文頭資訊包括:伺服器所使用的http版本,以及表明它包含發給網路客戶端資訊的狀態編碼。
3. http應用層協議將html格式的網頁資料傳送給傳輸層。tcp傳輸層用於管理網路伺服器和客戶端之間的會話。
4. ip資訊新增到tcp資訊之前。ip指定適當的源和目的ip位址。這些資訊就構成了ip報文。
5. 乙太網協議新增到ip報文的兩端之後,就形成了資料鏈路幀。上述幀傳送至通向網路客戶端的路徑上的最近乙個路由器。路由器移除乙太網資訊,觀察ip報文,判定最佳路徑,將報文插入乙個新的幀,並傳送至目標路徑上下乙個相鄰路由器。每乙個路由器在**之前都移除並新增新的資料鏈路層資訊。
6. 資料通過網際網路絡傳輸,網際網路絡包含媒介和中間裝置。
7. 客戶端接收到包含資料的資料鏈路幀,處理各層協議頭,之後以新增時相反的順序移除協議頭。首先處理並移除乙太網資訊,之後是ip協議資訊,接下來tcp資訊,最後是http資訊。
8. 之後,將網頁資訊傳遞給客戶端網頁瀏覽器軟體。
資料封裝:
訊息要在網路中傳輸,必須對它進行編碼,以特定的格式進行封裝,同時需要適當地封裝以足夠的控制和位址資訊,以使它能夠從傳送方移動到接收方。
訊息大小
· 傳送較小片段,網路上同時可有多個會話交錯進行。這種在網路上將不同會話片段交錯進行的過程稱為多路傳輸(multiplexing)。
通過對片段打上標籤的方式來保證順序以及在接收時重組。
協議資料單元(protocol data unit, pdu)
應用層資料在傳輸過程中沿著協議棧傳遞,每一層協議都會向其中新增資訊。這就是封裝的過程。
資料片段在各層網路結構中採用的形式就稱為協議資料單元(pdu)。封裝過程中,下一層對從上一層收到的pdu進行封裝。在處理的每乙個階段pdu都有不同的名字來反應它的功能。
pdu按照tcp/ip協議的命名規範:
·資料(data):應用層pdu的常用術語
·分段(segment):傳輸層pdu
·幀(frame):網路層pdu
·位元(bits):在介質上物理傳輸資料所使用的pdu。
封裝
封裝是指在傳輸之前為資料新增額外的協議頭資訊的過程。在絕大多數資料通訊過程中,源資料在傳輸前都會封裝以數層協議。在網路上傳送訊息時,主機上的協議棧從上至下進行操作。
以網路伺服器為例,http應用層協議傳送html格式網頁資料到傳輸層,應用層資料被分成tcp分段。各tcp分段被打上標籤,稱為頭(header),表明接收方哪乙個程序應當接收此訊息。同時也包含使得接收方能夠按照原有的格式來重組資料的資訊。
傳輸層將網頁html資料封裝成分段並傳送至網路層,執行ip層協議。整個tcp分段封裝成ip報文,也就是再添上ip頭標籤。ip頭包括源和目的ip位址,以及傳送報文到目的位址所必須的資訊。
之後,ip報文傳送到接入層,封裝以幀頭和幀尾。每個幀頭都包含源和目的實體地址。實體地址唯一指定了本地網路上的裝置。幀尾包含差錯校正資訊。最後,由伺服器網絡卡將位元編碼傳輸給介質。
解封裝
接收主機以相反的方式進行操作稱為解封裝。解封裝是接收裝置移除一層或多層協議頭的過程。資料在協議棧中向上移動直到終端應用層伴隨著解封裝。
訪問本地資源:
示例:客戶端pc1與ftp在同一ip網路的通訊
網路位址
網路層位址或ip位址包含兩個部分:網路字首和主機。路由器使用網路字首部分將報文**給適當的網路。最後乙個路由器使用主機部分將報文傳送給目標裝置。同一本地網路中,網路字首部分是相同的,只有主機裝置位址部分不同。
資料鏈路位址
資料鏈路位址的目的是在同一網路中將資料鏈路幀從乙個網路介面傳送至另乙個網路介面。乙太網lan和無線網lan是兩種不同物理介質的網路示例,分別有自己的資料鏈路協議。
當ip報文的傳送方和接收方位於同一網路,資料鏈路幀直接傳送到接收裝置。乙太網上資料鏈路位址就是乙太網mac位址。mac位址是物理植入網絡卡的48位元位址。
源和目的mac位址新增到乙太網幀中。
mac與ip位址
乙太網mac位址是怎麼識別的呢?傳送方主機使用位址解析協議(address resolution protocol, arp)以檢測本地網路的所有mac位址。如下圖所示,傳送主機在整個lan傳送arp請求訊息,這是一條廣播訊息。arp請求包含目標裝置的ip位址,lan上的每乙個裝置都會檢查該arp請求,看看是否包含它自身的ip位址。只有符合該ip位址的裝置才會傳送arp響應。arp響應包含arp請求中ip位址相對應的mac位址。
訪問遠端資源:
預設閘道器
當主機傳送訊息到遠端網路,必須使用路由器,也稱為預設閘道器。預設閘道器就是位於傳送主機同一網路上的路由器的介面ip位址。有一點很重要:本地網路上的所有主機都能夠配置自己的預設閘道器位址。如果該主機的tcp/ip設定中沒有配置預設閘道器位址,或指定了錯誤的預設閘道器位址,則遠端網路訊息無法被送達。
如下圖所示,lan上的主機pc 1使用ip位址為192.168.1.1的r1作為預設閘道器,如果pdu的目的位址位於另乙個網路,則主機將pdu傳送至路由器上的預設閘道器。
網路位址
當報文的傳送方與接收方位於不同網路,源和目的ip位址將會代表不同網路上的主機。
資料鏈路位址
當報文的傳送方與接收方位於不同網路,乙太網資料鏈路幀無法直接被傳送到目的主機。乙太網幀必須先傳送給路由器或缺省閘道器。本例中,預設閘道器是r1,r1的介面ip位址與pc 1屬於同一網路,因此pc 1能夠直接達到路由器。
ip報文封裝成的乙太網幀先被傳輸至r1,r1再**給目的位址即網路伺服器。r1可以**給另乙個路由器,如果目的伺服器所在網路連線至r1,則直接傳送給伺服器。
傳送裝置如何確定路由器的mac位址?每乙個裝置通過自己的tcp/ip設定中的預設閘道器位址得知路由器的ip位址。之後,它通過arp來得知預設閘道器的mac位址,該mac位址隨後新增到幀中。
網路基本功一 細說網路傳輸
常言道 欲練神功,必先練好基本功。之前做了乙個關於ip路由,預設閘道器和掩碼的問答貼,做完這個帖子覺得如果對網路知識點做乙個系統的闡述,應該會很有幫助。本系列文章著重於講解網路管理實際應用中常常涉及的重要知識點,盡量以實用為主。準備寫的幾個章節暫時有 可能會有增減 首先來看乙個例子 示例 網路伺服器...
網路基本功(九) 細說TCP重傳
emc中文支援論壇 tcp的主要任務是很簡單 打包和傳送資料。tcp與其他協議的不同之處在於使用滑動視窗來管理基本資料收發過程,同時確保資料流的有效及可靠傳輸,從而不致傳送速率明顯快於接收速率。本文將描述tcp是如何確保裝置可靠 有效地進行傳輸的。首先闡述tcp檢測丟失片段以及重傳的基本方法,之後介...
網路基本功(九) 細說TCP重傳
網路基本功 九 細說tcp重傳 emc中文支援論壇 tcp的主要任務是很簡單 打包和傳送資料。tcp與其他協議的不同之處在於使用滑動視窗來管理基本資料收發過程,同時確保資料流的有效及可靠傳輸,從而不致傳送速率明顯快於接收速率。本文將描述tcp是如何確保裝置可靠 有效地進行傳輸的。首先闡述tcp檢測丟...