1. 程式人生 > >數據的封裝與解封裝

數據的封裝與解封裝

好的 概念 大致 分析 一個數 pla strong 數據封裝過程 nbsp

數據封裝,就是把業務數據映射到某個封裝協議的凈荷中,然後填充對應協議的包頭,形成封裝協議的數據包,並完成速率適配。

數據封裝是指將協議數據單元(PDU)封裝在一組協議頭和尾中的過程。在 OSI7層參考模型中,每層主要負責與其它機器上的對等層進行通信。該過程是在“協議數據單元”(PDU)中實現的,其中每層的 PDU 一般由本層的協議頭、協議尾和數據封裝構成。 每層可以添加協議頭和尾到其對應的 PDU 中。協議頭包括層到層之間的通信相關信息。協議頭、協議尾和數據是三個相對的概念,這主要取決於進行信息單元分析的各個層。例如,傳輸頭(TH)包含只有傳輸層可以看到的信息,而位於傳輸層以下的其它所有層將傳輸頭作為各層的數據部分進行傳送。在網絡層,一個信息單元由層3協議頭(NH)和數據構成;而數據鏈路層中,由網絡層(層3協議頭和數據)傳送下去的所有信息均被視為數據。換句話說,特定 OSI 層中信息單元的數據部分可能包含由上層傳送下來的協議頭、協議尾和數據。
數據封裝的過程大致如下: 1.用戶信息轉換為數據,以便在網絡上傳輸 2.數據轉換為數據段,並在發送方和接收方主機之間建立一條可靠的連接 3.數據段轉換為數據包或數據報,並在報頭中放上邏輯地址,這樣每一個數據包都可以通過互聯網絡進行傳輸 4.數據包或數據報轉換為幀,以便在本地網絡中傳輸。在本地網段上,使用硬件地址唯一標識每一臺主機。 5.幀轉換為比特流,並采用數字編碼和時鐘方案 以常見的OSI模型為例,它共分為七層,從下到上依次為:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層,每層都對應不同的功能。為了實現對應功能,都會對數據按本層協議進行協議頭和協議尾的數據封裝,然後將封裝好的數據傳送給下層,各層的數據封裝過程如下圖所示。其中在傳輸層用TCP頭已標示了與一個特定應用的連接,並將數據封裝成了數據段;網絡層則用IP頭標示了已連接的設備網絡地址,並可基於此信息進行網絡路徑選擇,此時將數據封裝為數據包;到了數據鏈路層,數據已封裝成了數據幀,並用MAC頭給出了設備的物理地址,當然還有數據校驗等功能字段等;到了物理層,則已封裝成為比特流,就成為純粹的物理連接了。

解封裝,就是封裝的逆過程,拆解協議包,處理包頭中的信息,取出凈荷中的業務信息數據封裝和解封裝是一對逆過程。數據的接收端從物理層開始,進行與發送端相反的操作,稱為“解封裝”,如下圖所示,最終使應用層程序獲取數據信息,使得兩點之間的一次單向通信完成。需要說明的是,應用最為廣泛的TCP/IP協議可以看作是OSI協議層的簡化,它分為四層:數據鏈路層、網絡層、傳輸層、應用層,其各層對應的數據封裝與OSI大同小異。

數據的封裝與解封裝