Ⅰ 什麼是數據的封裝、拆包
數據的封裝和傳遞
在 OSI 參考模型中,同等層之間經常要進行信息交換。 對等層協議之間需要交換的信息單元 叫做 協議數據單元 ( PDU , protocol data unit )。節點對等層之間的通信除物理層之間直接進行信息交換外,其餘對等層之間的通信並不直接進行(例如兩個節點的鏈路層之間進行通信),它們需要通過藉助於下層提供的服務來完成,對等層之間的通信為虛擬通信。實際通信是在相鄰層之間通過層間介面進行。
直接通訊與虛通訊
當某一層需要使用下一層提供的服務傳送自己的 PDU 時,其當前層的下一層總是先將上一層的 PDU 變為自己 PDU 的一部分,然後利用更下一層提供的服務將信息傳遞出去。節點A的傳輸層要把某一信息 T-PDU 傳送到節點B的傳輸層的,首先將 T-PDU 交給節點A的網路層,節點A的網路層在收到 T-PDU 之後,將在 T-PDU 上加上若干比特的控制信息(即報頭 header )變為自己 PDU ( N-PDU ),然後再利用其下層鏈路層提供的服務將數據發送出去。以此類推,最終將這些信息變為能夠在傳輸介質上傳輸的數據,並通過傳輸介質將信息傳送到節點B。
為了實現對等層通信,當數據需要通過網路從一個節點傳送到另一節點前,必須在數據的頭部(和尾部)加入特定的協議頭(和協議尾)。這種增加數據頭部(和尾部)的過程叫做 數據打包或數據封裝 。同樣,在數據到達接收節點的對等層後,接收方將識別、提取和處理發送方對等層增加的數據頭部(和尾部)。接收方這種將增加的數據頭部(和尾部)去除的過程叫做 數據拆包或數據解封 。圖 1.8 顯示了數據的封裝與解封過程。
圖 1.8 數據的封裝與解封過程
2、數據傳遞與流動過程。
http://www.sdwfvc.com/jpkc/net/jiaoan_zhu/ja/chap1.htm
Ⅱ 關於網路傳輸過程的數據封裝
數據封裝(Data Encapsulation)是指將協議數據單元(PDU)封裝在一組協議頭和尾中的過程。在OSI七層參考模型中,每層主要負責與其它機器上的對等層進行通信。該過程是在協議數據單元(PDU)中實現的,其中每層的PDU一般由本層的協議頭、協議尾和數據封裝構成本文選自WireShark數據包分析實戰詳解清華大學出版社。
為了幫助用戶更清楚的理解數據封裝過程,下面通過一個實例來說明這個過程。假設某個公司區域網使用乙太網,當員工從區域網的FTP伺服器下載一個文件時,該文件從FTP伺服器到員工主機的傳輸過程如圖1.17所示本文選自WireShark數據包分析實戰詳解清華大學出版社。
在圖1.17中,FTP伺服器作為數據的發送端,員工主機作為數據的接收端。下面分別介紹數據發送和接收處理過程。
1.數據發送處理過程數據封裝協議數據單元封裝WireShark數據包分析
(1)應用層將數據交給傳輸層,傳輸層添加上TCP的控制信息(稱為TCP頭部),這個數據單元稱為段(Segment),加入控制信息的過程稱為封裝。然後,將段交給網路層。
(2)網路層接收到段,再添加上IP頭部,這個數據單元稱為包(Packet)。然後,將包交給數據鏈路層。
(3)數據鏈路層接收到包,再添加上MAC頭部和尾部,這個數據單元稱為幀(Frame)。然後,將幀交給物理層。
(4)物理層將接收到的數據轉化為比特流,然後在網線中傳送。
2.數據接收處理過程數據封裝協議數據單元封裝WireShark數據包分析
(1)物理層接收到比特流,經過處理後將數據交給數據鏈路層。
(2)數據鏈路層將接收到的數據轉化為數據幀,再除去MAC頭部和尾部,這個除去控制信息的過程稱為解封裝,然後將包交給網路層。
(3)網路層接收到包,再除去IP頭部,然後將段交給傳輸層。
(4)傳輸層接收到段,再除去TCP頭部,然後將數據交給應用層。
從以上傳輸過程中,可以總結出以下幾點。如下所示:
(1)發送方數據處理的方式是從高層到底層,逐層進行數據封裝。
(2)接收方數據處理的方式是從底層到高層,逐層進行數據解封裝。
(3)接收方的每一層只把對該層有意義的數據拿走,或者說每一層只能處理發送方同等層的數據,然後把其餘的部分傳遞給上一層,這就是對等層通信的概念本文選自WireShark數據包分析實戰詳解清華大學出版社數據封裝協議數據單元封裝WireShark數據包分析。