OSI簡介
在剛剛開發 ARPA 網絡的時候,我們真的想讓它盡可能地智能。但是網絡越複雜,開發和維護就越困難。作為一種解決方案,有人提出將所有網絡功能劃分為邏輯層。
網絡運行模型被稱為ISO/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、Gopher、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都使用一個稱為端口的數字來定義上層協議。
GO TO FULL VERSION