OSI參考模型下,數據通信——逐層封裝

OSI(Open System Interconnection Reference Model)參考模型分為7層:

數據通信時,是一層一層,逐層封裝好,在物理上進行實在的傳輸:從源主機(SOURCE)的應用層發出來的數據是有一定格式的協議數據單元,稱為PDU(protocol data unit)。應用層發給下一層表示層後,在PDU前面加上了本層控制信息,也就是圖中的H6,加在頭部。

圖中加了頭部H6的L7data,更新為本層的PDU,也就是要發給第五層會話層的內容。即L7data+H6=L6 data。

上一層向下一層發送PDU,逐層加上本層的頭部後成為下一層的PDU。直至發到數據鏈路層,還加一個尾部,也就是T2,起到校驗作用,如果數據正確,繼續傳輸,數據錯誤直接丟掉不繼續傳輸。

數據鏈路層發給物理層後,物理層將PDU轉換為二進位編碼(比特流),通過硬體轉換為信號發送出去。

這樣源主機七層任務完成,下圖是目的主機的數據接收過程:

接收到硬體的二進位信號後,物理層轉換為PDU發個數據鏈路層。數據鏈路層拆掉頭部和尾部後,將赤裸的PDU送給網路層。網路層再拆掉頭部,送入下一層,逐層拆掉頭部,到了送給應用層時,前面不同層添加的頭部完全被拆乾淨,留下原本發送的最原始PDU,也就是L7 data。

數據在不同層傳輸時,有不同的名字:

對物理層:PDU叫做比特流;

對數據鏈路層:PDU叫做幀(frame);

對網路層:叫分組(packet);

對傳輸層:叫數據段(sagment);

對5、6、7層:叫數據(data)。

終於到了,destination.

推薦閱讀:

網關和路由器的區別是什麼?
ipconfig下的IPv4地址是什麼意思?
rip,ospf屬於應用層協議,但是路由器只是工作在下三層啊,網路層,數據鏈路層,以及物理層,這怎麼解釋啊?
使用tracert命令時,在一個節點後所有的節點都沒有數據,這是為什麼?
大多tcp應用採用長度+數據的格式傳輸數據,如何防止惡意虛報長度?

TAG:TCPIP | macOS應用 | 模型 |