天天看點

Linux 的網絡通信模型

計算機網絡模型是為了簡化網絡的研究、設計與實作而抽象出來的一種結構模型, 通常采用層次模型。在每個層次模型中,将系統所要實作的複雜功能分化為若幹個相對簡單的細小功能,每一項分功能以相對獨立的方式去實作。

OSI 網絡模型

開放系統互聯參考模型OSI (Open Systcm Interconnection Reference Mode)是國際标準化組織(ISO)提出的一個設計和描述網絡通信的基本架構,包括了實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層、應用層(共7層)。

通常把OSI網絡模型的低四層(實體層、資料鍊路層、網絡層、傳輸層)稱為資料流層,而把高三層(會話層、表示層、應用層)稱為應用層。

Linux 的網絡通信模型
  • 實體層

    計算機網絡的最底層,也是最基礎的層,是有關實體裝置通過實體媒體進行互連的描述和規定。實體層協定定義了接口的機械特性、電氣特性、功能特性、規程特性,其以比特流的方式傳送來自資料鍊路層的資料,而不去理會資料的含義或格式。

  • 資料鍊路層

    該層承擔了兩個資料裝置(計算機等)通過實體層進行無差錯傳輸資料幀的工作,通常來說這些資料幀的傳輸都需要等待接收方的确認,若有錯誤或者丢失的資料幀必須重新傳送。

  • 網絡層

    該層負責資訊尋址以及将邏輯位址與名字轉換為實體位址。在網絡層中傳輸的是資料包,其需要選擇合适的路徑轉發資料包,使發送方的教據包能夠正确無誤地按位址尋找到接收方的路徑,并将資料包交給接收方。網絡層通常還需要對資料包進行重組以滿足資料鍊路層對資料幀大小的要求,并且還需要考慮不同協定之間的互聯問題。

  • 傳輸層

    該層負責在不同子網中的兩個資料裝置之間,資料包可以可靠、順序、無錯地傳輸,在該層中傳輸的是資料段,其向高層使用者提供端到端的可靠的透明傳輸服務,為不同程序間的資料交換提供可靠的傳送手段。

  • 會話層

    其是利用傳輸層提供的端到端服務,向表示層或會話使用者提供會話服務。會話層的主要功能是在兩個節點間建立、維護和釋放面向使用者的連接配接,并對會話進行管理和控制,保證會話資料可靠傳送。

  • 表示層

    其負責在不同的資料格式之間進行轉換操作,以實作不同計算機系統間的資訊交換,以及負責編碼、加密、壓縮等操作。

  • 應用層

    其直接和使用者以及應用程式進行資料互動,包括了大量的應用協定,如 Telnet、SSH、DNS、HTTP 等。

它的最大優點是将服務、接口和協定這三個概念明确地區分開來,概念清楚,理論也比較完整。但是,它既複雜又不實用。

TCP/IP協定及其網絡模型

TCP/IP協定的分層

TCP/IP協定是一組在網絡中提供可靠資料傳輸和無連接配接資料服務的協定,其中提供可靠資料傳輸的協定稱為傳輸控制協定(TCP),提供無連接配接資料包服務的協定稱為網際協定(IP)。

TCP/IP協定并不是隻有TCP和IP兩個協定,而是包含很多其他協定的一個同絡協定集合。

TCP/IP協定的出現時間比OSI更早,其也有自己的網絡模型,可以分為網絡接口層、網絡層、傳輸層、應用層共4個部分。

Linux 的網絡通信模型

TCP/IP 協定是一系列(到目前為止有100多個)協定的集合,這些協定分别對應 TCP/IP 協定的每個層次。

Linux 的網絡通信模型
  • 應用層

    提供各種常用的高層協定,包括FTP (檔案傳輸)、TLENET (遠端登入)、SMTP(簡單郵件傳送)、 HTTP (超文本傳輸)、DNS (域名服務)等。

  • 傳輸層

    提供從發送方端口到接收方端口的資料傳輸協定,最常用的協定是 TCP 和 UDP 協定。

  • 網絡協定層

    負責檢查網絡拓撲結構,以決定傳輸資料的最佳路由,最重要的功能是實作 IP 位址和主機的對應,最常用的協定包括IP (網際協定)、ICMP ( 網際網路控制消息協定)、ARP (位址解釋協定)等。

  • 網絡接口層

    主要用于實作資料在實體上的傳輸,即正确的發送和接收IP的分組,其涉及的協定和具體的網絡相關,例如令牌網、分組交換網的相關協定等。

Linux 中的 TCP/IP 模型

Linux 的網絡通信模型
  • 在使用者态的最上層是各種網絡應用程式,包括浏覽器、郵件伺服器等,使用例如 ftp、ssh 等網絡協定。
  • 網絡應用程式通過 BSD Sockets (BSD套接字)和 INET Sockets (INET套接字)這兩個套接字接口以及 TCP 或者 UDP 協定進行資料互動,其中 INET 套接字協定還可以直接和IP協定進行資料互動。
  • TCP 協定和 UDP 協定分别是可靠的有連接配接的通信協定和不可靠的無連接配接的通信協定,它們都會和IP協定進行資料互動,它們和IP協定一起被統稱為協定層。
  • 在協定層下方即為網絡接口層,如PPP、以太網(Ethermet)等,需要注意的是網絡裝置并不完全等同于實體裝置,因為一些網絡裝置是完全由軟體實作的。

對于一台主機,它的作業系統核心實作了從傳輸層到實體層的内容。

對于一台路由器,它實作了從網絡層到實體層。

對于一台交換機,它實作了從資料鍊路層到實體層。

對于集線器,它隻實作了實體層。

但是并不絕對,很多交換機也實作了網絡層的轉發,很多路由器也實作了部分傳輸層的内容(比如端口轉發)

繼續閱讀