天天看點

通信模型(osi)五層中各個層由誰實作

應用層

這一層由應用程式實作,根據TCP協定或UP協定編寫實際的可應用程式。比如TCP提供可靠的端對端資料傳輸,那麼應用層就可以利用其性質,實作簡單的聊天程式。TCP不管傳輸内容的編碼格式,而應用層則需要有一定的編碼格式進而保證資料對應用層的可讀性。

傳輸控制層

這一層由作業系統實作。作業系統負責實作TCP或UDP協定,進而為上層的應用層提供資料收發的接口。具體表現就是,OS提供socket類及相關的系統api,使用者調用相應的方法就可以實作相關的設計。比如使用

socket.listen(),socket.bind(),socket.connect(),socket.send(),socket.accept(),socket.write()

等相關系統方法就可以完成基于TCP的連接配接和收發消息。而底層的三次握手連接配接、四次揮手斷開、擁塞控制,滑動視窗等協定内容,全由OS實作。

網絡層

網絡層的協定除了IP協定,還有ARP,RARP等,是以實作裝置也相對較多,常見的有路由、交換機、網橋、中繼器等。網絡層想要實作的就是,盡可能(盡可能不丢失,極低機率出錯)保證消息可以在端對或一對多的IP位址中準确送達目标位址主機。

資料鍊路層

資料鍊路層跟硬體打交道,主要完成的任務就是利用相應的實體裝置,傳輸IP封包到相連的下一跳。實作的裝置有網卡,路由、交換機等(由這其實可以看出,要實作網絡層的實體裝置,一般底層都實作了資料鍊路層和實體層,不然資料沒法傳輸啊……)。

實體層

實體層負責實作在實體線路的端對端完成位的可靠傳輸。至于怎麼可靠,有相應的以太或者無線協定來保證。然後這兒給上層(資料鍊路層)提供接口。實體層隻要與無線或有線直接打交道的裝置都會實作。

綜述

  • 實體層和資料鍊路層是所有的肉眼可看見的實體裝置都會實作的,包括網卡、路由、交換機等一些網絡裝置(不包括PC)。
  • IP層由常見物裝置和PC實作(不包括網卡)。
  • 傳輸控制層由作業系統實作。
  • 應用層由應用程式實作。

繼續閱讀