October 26, 2023

Viiisit [Internet] - TCP/IP 協定是什麼!

#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)

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

# 傳輸層(Transport Layer)

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

# 網絡層(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