OSI簡介

在剛剛開發 ARPA 網絡的時候,我們真的想讓它盡可能地智能。但是網絡越複雜,開發和維護就越困難。作為一種解決方案,有人提出將所有網絡功能劃分為邏輯層。

網絡運行模型被稱為ISO/OSI開放系統互連基礎參考模型的網絡模型。簡而言之 - OSI 模型(開放系統互連)。

OSI模型

該模型總共有 7 個級別。級別的交互被嚴格標準化並最小化。較低級別不知道較高級別的存在及其結構。

最低層只能發送比特。甚至不發送,即發送。他不知道他們是否願意。發送和遺忘。

更高級別已經使用位幀組進行操作並且對網絡的物理設備知之甚少,了解 MAC 地址等。

下一個級別是批處理。他更聰明,知道如何使用網絡 IP 地址進行操作。等等。

為什麼這一切都是必要的?最大限度地提高靈活性。

想像一下,每一層都是一個 Java 接口,它可以有幾個不同的實現。所以這裡也是。在物理層面,您可以通過電線發送比特、通過空中 (Wi-Fi) 發送、通過衛星發送,而所有其他層面甚至都不會對此一無所知。一切都會按預期進行。

OSI協議棧

您可以在下圖中更詳細地研究協議棧:

但是,如果您不是系統管理員,那麼您就不需要如此詳細的協議。比較有意思的可能是TCP(傳輸控制協議)/IP(網際協議)協議棧的研究。

OSI模型的前三層,即應用層、表示層和會話層,在TCP/IP模型中沒有單獨區分,在傳輸層之上只有一個應用層:

按 OSI 模型層分佈的協議

網絡協議/網絡協議 開放系統接口
應用 應用 HTTP、SMTP、SNMP、FTP、Telnet、SSH、SCP、SMB、NFS、RTSP、BGP
表示 XDR、法新社、TLS、SSL
會議 ISO 8327 / CCITT X.225、RPC、NetBIOS、PPTP、L2TP、ASP
運輸 運輸 TCP、UDP、SCTP、SPX、ATP、DCCP、GRE
網絡 網絡 IP、ICMP、IGMP、CLNP、OSPF、RIP、IPX、DDP
導管 導管 以太網、令牌環、HDLC、PPP、X.25、幀中繼、ISDN、ATM、SPB、MPLS、ARP/td>
身體的 電線、無線電通信、光纖線、紅外輻射

TCP/IP協議棧

TCP/IP協議棧包括四層:

  • 應用
  • 傳輸
  • 互聯網層(Network layer)(網際層)
  • 鏈路層(網絡接入層)

這些層的協議完全實現了 OSI 模型的所有功能。IP 網絡中的所有用戶交互都建立在 TCP/IP 協議棧之上。

TCP/IP 協議棧獨立於物理硬件,除其他外,這確保了有線和無線網絡之間完全透明的交互。

應用層是大多數網絡應用程序運行的地方。

應用層

對於程序的交互,存在用於信息交換的高級協議。例如,瀏覽器使用 HTTP 協議工作,郵件使用 SMTP 協議發送,Telegram 使用自己的加密協議工作。

但是我們對私有協議不是很感興趣。大多數情況下,您會遇到批量協議,例如用於 FTP(文件傳輸)的 ftp 客戶端、SSH(與遠程計算機的安全連接)、DNS(字符到 IP 地址的轉換)等等。

幾乎所有這些協議都運行在 TCP 之上,儘管有些協議運行在 UDP(用戶數據報協議)之上以加快速度。但是,重要的是,這些協議有默認端口。例子:

  • 20 FTP 到 TCP 端口 20(用於數據傳輸)和 21(用於控制命令)
  • 22-SSH
  • 23 - 遠程登錄
  • 53 - DNS 查詢
  • 80-HTTP
  • 443 - HTTPS

這些端口由命名分配和唯一參數機構 (IANA) 定義。

還有其他幾種流行的應用層協議:Echo、Finger、Gop​​her、HTTP、HTTPS、IMAP、IMAPS、IRC、NNTP、NTP、POP3、POPS、QOTD、RTSP、SNMP、SSH、Telnet、XDMCP。

傳輸層

傳輸層協議旨在解決有保證的消息傳遞問題。

消息(數據包)可以在網絡上的某處發送和丟失。在這種情況下,由傳輸層來監視這些情況並在必要時重新發送消息。

傳輸層協議的另一個重要任務是控制消息到達的順序。消息以一種順序發送並以另一種順序到達的情況經常發生。如果你把這些片段中的重要信息放在一起,你就會胡說八道。

為防止這種情況發生,傳輸層要么枚舉消息,要么不發送新消息,直到它收到前一個消息的接收確認。邏輯上存在於這一層的自動路由協議(因為它們運行在 IP 之上)實際上是網絡層協議的一部分。

TCP協議是一種“有保證”的連接預建立傳輸機制,為應用程序提供可靠的數據流,確保接收到的數據無差錯,丟失時重新請求數據,並消除數據重複。

TCP 允許您調節網絡負載,並減少長距離傳輸數據時的等待時間。此外,TCP 保證接收到的數據以完全相同的順序發送。這是它與 UDP 的主要區別。

UDP是一種無連接的數據報協議。它也被稱為“不可靠”的傳輸協議,因為無法驗證消息是否已交付給收件人,以及可能的數據包混合情況。需要保證數據傳輸的應用程序使用 TCP 協議。

UDP 通常用於視頻流和遊戲等應用程序,在這些應用程序中可以容忍數據包丟失並且重試很困難或不合理,或者用於建立連接比重新發送需要更多資源的挑戰響應應用程序(例如 DNS 查詢)。

TCP和UDP都使用一個稱為端口的數字來定義上層協議。