← Writing

Internet: TCP/IP 協定是什麼

當使用者輸入網址後按下 enter 鍵後,實際上發生了什麼事情呢? 在網路基礎的面試題當中,這一題真的是必須要會的題目! 當使用者在瀏覽器中輸入網址並按下 Enter 鍵時: Step 1. 使用者輸入 URL:使用者在瀏覽器中輸入網站的 URL,例如 https://www.example.com...

internet

當使用者輸入網址後按下 enter 鍵後,實際上發生了什麼事情呢?

在網路基礎的面試題當中,這一題真的是必須要會的題目!

當使用者在瀏覽器中輸入網址並按下 Enter 鍵時:

Step 1. 使用者輸入 URL:使用者在瀏覽器中輸入網站的 URL,例如 https://www.example.com

Step 2. 域名解析:瀏覽器將 URL 中的域名 www.example.com 解析為對應的 IP 地址。 通常涉及到 DNS(域名系統)查詢,瀏覽器向 DNS 伺服器發送請求以獲取目標網站的 IP 地址。 更詳細的介紹可以參考:DNS 的運作流程!

Step 3. 建立 TCP 連接:瀏覽器使用目標網站的 IP 地址和 HTTP 或 HTTPS port(通常是 80 或 443)建立一個 TCP 連接。這是通過使用 TCP/IP 協定的三次握手過程來實現的,確保了客戶端和伺服器之間的可靠通信。

Step 4. 發送 HTTP Request:瀏覽器向伺服器發送一個 HTTP GET 請求,該請求包含瀏覽器所需的網頁資源的資訊,例如網頁文件、圖像、腳本等。

Step 5. 伺服器處理 Request:伺服器接收 HTTP 請求,然後根據請求的內容和資源位置,處理請求並準備要返回給瀏覽器的數據。

Step 6. 伺服器發送 HTTP Response:伺服器將處理後的資源打包成一個 HTTP Response,並將其發送回到瀏覽器。

Step 7. 瀏覽器接收 Response:瀏覽器接收伺服器的 HTTP Response,該 Response 包含網頁的 HTML 內容以及可能的其他資源,如圖片、CSS 和 JavaScript 文件。

Step 8. 解析和渲染,完成頁面載入:瀏覽器解析 HTML 和其他資源,並根據這些資源渲染出網頁。

以上是一個簡化的描述,實際上還有更多細節和機制,如緩存、SSL/TLS加密等,涉及到瀏覽器、伺服器和網絡基礎設施的多方互動。

回歸本章主題:TCP/IP 協定

在上述了解簡單的背後運作邏輯之後,我們要接著聊聊 TCP/IP 協定 (Transmission Control Protocol/ Internet Protocol)。

Protocols 透過一些制定好的規則,定義資訊在不同設備和系統之間如何進行交換,確保傳輸與接收雙方收發正常。網路通訊協定是一種層級式(Layering)的架構,每一層呼叫下一層提供的服務來完成自己的需求。

TCP/IP 協定的四個層級

# 應用層(Application Layer)

使用特定的應用層協議來處理應用程序特定的通信,並向用戶提供服務。 使用特定的應用層協議的常見例子:

  • HTTP(Hypertext Transfer Protocol) 使用瀏覽器訪問網站時,實際上是使用 HTTP 協議來檢索和顯示網頁內容。
  • SMTP(Simple Mail Transfer Protocol) 發送電子郵件時,郵件客戶端使用 SMTP 將郵件發送到郵件伺服器,以供傳遞到接收方郵件伺服器。
  • FTP(File Transfer Protocol) 用於文件傳輸的協議。FTP 允許上傳和下載文件到和從遠程伺服器,這在網站維護和文件共享方面非常常見。
  • POP3(Post Office Protocol version 3)和 IMAP(Internet Message Access Protocol) 這兩種協議用於檢索電子郵件。POP3 下載郵件到你的電子郵件客戶端,而 IMAP 則在郵件伺服器上保留郵件的副本,以便可以從多個設備讀取郵件。
  • DNS(Domain Name System) 用於域名解析的協議。在瀏覽器中輸入網址時,DNS 協議將域名轉換為 IP 地址,以定位和訪問相應的伺服器。
  • Telnet 用於遠程訪問伺服器或設備的協議。通過 Telnet,可以遠程登錄到伺服器或設備,並通過命令行界面進行操作和管理。
  • SNMP(Simple Network Management Protocol) 用於管理和監控網絡設備的協議。SNMP 允許管理者收集關於路由器、交換機、伺服器等設備的性能和狀態信息。

# 傳輸層(Transport Layer)

這一層負責端到端的數據傳輸,確保數據的可靠傳遞。使用協議如 TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)來分段、重組數據,並提供錯誤檢測和恢復功能。

  • TCP(Transmission Control Protocol) TCP 提供可靠的數據傳輸,確保數據在傳輸過程中不丟失、不重複和按順序到達目的地。 主要用於應用程序需要可靠傳輸的情況,如網頁瀏覽、文件下載、電子郵件等。 TCP 使用三次握手建立連接,並使用流控制和錯誤檢測和恢復功能,以確保數據完整性和可靠性。

  • UDP(User Datagram Protocol) UDP 是一種無連接的協議,提供一種簡單的數據傳輸機制,但不提供可靠性保證。 主要用於需要快速傳輸和不需要可靠性的應用,如音頻/視頻流媒體、遊戲、DNS 等。 UDP 不建立連接,也不提供流控制、錯誤檢測和恢復,因此數據包可能丟失、重複或無序到達目的地。

    | 特點 | TCP | UDP | |-------------------------------------|-------------------------------------------|------------------------------------------| | 連接 | 使用三次握手建立連接 | 無連接,無需建立連接 | | 可靠性 | 提供可靠的數據傳輸,確保數據完整性 | 不提供可靠性保證,數據可能丟失或重複 | | 錯誤檢測和恢復 | 提供錯誤檢測和恢復功能 | 不提供錯誤檢測和恢復功能 | | 數據順序 | 確保數據包按順序到達目的地 | 不確保數據包按順序到達目的地 | | 數據包頭部大小 | 較大,包含順序號、確認號、控制位等 | 較小,僅包含源和目的端口號 | | 使用場景 | 用於需要可靠傳輸的應用,如文件傳輸 | 用於快速數據傳輸的應用,如流媒體 | | 例子應用 | HTTP、FTP、SMTP 等 | DNS、VoIP、遊戲等 |

# 網絡層(Internet Layer)

將資料從源網路傳輸到目的網路,並選擇路徑,網絡層協議包括IP、ICMP(互聯網控制消息協議)等。

# 網絡接口層(Network Access Layer)

位於最底層,負責實際的硬體設備和媒體的操作,包括網絡卡、網絡纜線、以太網等。 這一層也被稱為鏈路層,通常包括與硬體相關的協議和技術,如以太網、Wi-Fi、PPP(點對點協議)等。

這四個層次組成了 TCP/IP 協定,是網路上資料通信的基礎,並允許不同設備和操作系統之間的網路通信。不過,需要注意的是,這個分層模型與 OSI 模型有些不同,但 TCP/IP 協定是更廣泛使用的且更符合實際情況的模型。

OSI vs TCP/IP


參考資料

OSI Model vs TCP/IP Model OSI七層架構 和 TCP/IP通訊協定 的比較 《 網路架構 》TCP/IP 四層架構 & OSI七層架構 從傳紙條輕鬆學習基本網路概念 [知識篇]TCP/IP [第六週] 網路基礎 — TCP/ IP