數(shù)據(jù)封裝技術(shù)
數(shù)據(jù)封裝(Data Encapsulation),籠統(tǒng)地講,就是把業(yè)務(wù)數(shù)據(jù)映射到某個封裝協(xié)議的凈荷中,然后填充對應(yīng)協(xié)議的包頭,形成封裝協(xié)議的數(shù)據(jù)包,并完成速率適配。解封裝,就是封裝的逆過程,拆解協(xié)議包,處理包頭中的信息,取出凈荷中的業(yè)務(wù)信息數(shù)據(jù)封裝和解封裝是一對逆過程。
數(shù)據(jù)包利用網(wǎng)絡(luò)在不同設(shè)備之間傳輸時,為了可靠和準(zhǔn)確地發(fā)送到目的地,并且高效地利用傳輸資源(傳輸設(shè)備和傳輸線路),事先要對數(shù)據(jù)包進行拆分和打包,在所發(fā)送的數(shù)據(jù)包上附加上目標(biāo)地址,本地地址,以及一些用于糾錯的字節(jié),安全性和可靠性較高時,還要進行加密處理等等。這些操作就叫數(shù)據(jù)封裝。而對數(shù)據(jù)包進行處理時通信雙方所遵循和協(xié)商好的規(guī)則就是協(xié)議。與郵寄物品相比,數(shù)據(jù)包本身就如同物品,而封裝就如同填寫各種郵寄信息,協(xié)議就是如何填寫信息的規(guī)定。從上面的分析可以看出,對數(shù)據(jù)包封裝實際上很復(fù)雜:要達到可靠、準(zhǔn)確及高效的目的,必須考慮很多影響因素,并有針對性地采取防范措施。在實際應(yīng)用中,組網(wǎng)的數(shù)據(jù)封裝按功能分層進行,目的很簡單,就是為了能將復(fù)雜系統(tǒng)分解為很多模塊,各模塊獨立,互不影響,每個模塊(每層)之間用接口進行連接和交互,并互相提供服務(wù)。這樣不僅更容易實現(xiàn)功能,而且使整個系統(tǒng)具有良好的兼容性和可擴展性。
數(shù)據(jù)封裝是指將協(xié)議數(shù)據(jù)單元(PDU)封裝在一組協(xié)議頭和尾中的過程。在 OSI7層參考模型中,每層主要負(fù)責(zé)與其它機器上的對等層進行通信。該過程是在“協(xié)議數(shù)據(jù)單元”(PDU)中實現(xiàn)的,其中每層的 PDU 一般由本層的協(xié)議頭、協(xié)議尾和數(shù)據(jù)封裝構(gòu)成。每層可以添加協(xié)議頭和尾到其對應(yīng)的 PDU 中。協(xié)議頭包括層到層之間的通信相關(guān)信息。協(xié)議頭、協(xié)議尾和數(shù)據(jù)是三個相對的概念,這主要取決于進行信息單元分析的各個層。例如,傳輸頭(TH)包含只有傳輸層可以看到的信息,而位于傳輸層以下的其它所有層將傳輸頭作為各層的數(shù)據(jù)部分進行傳送。在網(wǎng)絡(luò)層,一個信息單元由層3協(xié)議頭(NH)和數(shù)據(jù)構(gòu)成;而數(shù)據(jù)鏈路層中,由網(wǎng)絡(luò)層(層3協(xié)議頭和數(shù)據(jù))傳送下去的所有信息均被視為數(shù)據(jù)。換句話說,特定 OSI 層中信息單元的數(shù)據(jù)部分可能包含由上層傳送下來的協(xié)議頭、協(xié)議尾和數(shù)據(jù)。
例如,如果計算機 A 要將應(yīng)用程序中的某數(shù)據(jù)發(fā)送至計算機 B 應(yīng)用層。計算機 A 的應(yīng)用層聯(lián)系任何計算機 B 的應(yīng)用層所必需的控制信息,都是通過預(yù)先在數(shù)據(jù)上添加協(xié)議頭。結(jié)果信息單元,其包含協(xié)議頭、數(shù)據(jù)、可能包含協(xié)議尾,被發(fā)送至表示層,表示層再添加為計算機 B 的表示層所理解的控制信息的協(xié)議頭。信息單元的大小隨著每一層協(xié)議頭和協(xié)議尾的添加而增加,這些協(xié)議頭和協(xié)議尾包含了計算機 B 的對應(yīng)層要使用的控制信息。在物理層,整個信息單元通過網(wǎng)絡(luò)介質(zhì)傳輸。計算機 B 中的物理層接收信息單元并將其傳送至數(shù)據(jù)鏈路層;然后 B 中的數(shù)據(jù)鏈路層讀取包含在計算機 A 的數(shù)據(jù)鏈路層預(yù)先添加在協(xié)議頭中的控制信息;其次去除協(xié)議頭和協(xié)議尾,剩余部分被傳送至網(wǎng)絡(luò)層。每一層執(zhí)行相同的動作:從對應(yīng)層讀取協(xié)議頭和協(xié)議尾,并去除,再將剩余信息發(fā)送至高一層。應(yīng)用層執(zhí)行完后,數(shù)據(jù)就被傳送至計算機 B 中的應(yīng)用程序接收端,最后收到的正是從計算機 A 應(yīng)用程所發(fā)送的數(shù)據(jù)。