TCP/IP 基本架構#

TCP/IP(Transmission Control Protocol/Internet Protocol)並非單一協定,而是一個通訊協定組,廣泛應用於網際網路等電腦通訊中。它以兩個核心協定命名:

  • TCP(傳輸控制協定):負責傳輸控制。
  • IP(網際網路協定):負責網際網路路由與定位。

TCP/IP 透過四層模型來架構所有功能,採用「由下而上」的堆疊方式,低層功能服務高層應用。

每一層的主要功能對應特定的通訊協定,下層(如網路介面層)負責實體連線,上層(如應用層)負責具體的應用程式邏輯。

TCP/IP 四層模型#

block-beta
  columns 1
  A["應用層 Application Layer\nHTTP / SMTP / FTP / DNS / NTP"]
  B["傳輸層 Transport Layer\nTCP / UDP"]
  C["網際網路層 Internet Layer\nIP(IPv4 / IPv6)"]
  D["網路介面層 Network Interface Layer\nEthernet / Wi-Fi / PPPoE"]

  A --> B --> C --> D

  style A fill:#4a90d9,color:#fff
  style B fill:#7b68ee,color:#fff
  style C fill:#e67e22,color:#fff
  style D fill:#27ae60,color:#fff
  1. 網路介面層(Network Interface Layer):位於最底層,負責實體裝置的直接連線(如網路卡、乙太網)。功能僅限於「已直接連線」的電腦間建立通訊,無法跨網路轉送。
  2. 網際網路層(Internet Layer):在介面層基礎上加入「轉送(Routing)」功能。核心協定為 IP,讓未直接連線的裝置也能透過網路互相通訊。
  3. 傳輸層(Transport Layer):依據使用目的進行通訊控制(如可靠性或即時性)。核心協定包含 TCP(高可靠性、資料確認)與 UDP(低延遲、即時性)。
  4. 應用層(Application Layer):位於最上層,執行特定應用程式的功能。常見協定:HTTP(網頁)、SMTP(郵件)、FTP(檔案傳輸)、DNS(網域名稱)、NTP(時間同步)。

與 OSI 參考模型的對照#

1982 年,在 ISO 與 ITU 的主導下,為統一混亂的網路架構,創立了 OSI(Open Systems Interconnection)參考模型。然而 OSI 規範過於複雜,概念相對簡單的 TCP/IP 反而成為主流標準。兩者模型無法 100% 對應,但功能結構極為類似。

TCP/IP 四層模型OSI 七層模型說明
應用層應用層 + 表現層 + 會話層TCP/IP 將上三層整合為單一應用層
傳輸層傳輸層功能定義一致(TCP / UDP)
網際網路層網路層負責路由與封包轉送(IP)
網路介面層資料連結層 + 實體層TCP/IP 將底兩層合併處理
詳細層級對應說明
  • 實體層(Physical):規定連結器型別、針腳配置等硬體規範。
  • 資料連結層(Data Link):負責兩個節點間建立連結(如乙太網)。這兩層對應到 TCP/IP 的網路介面層
  • 會話層(Session):負責連線管理。
  • 表現層(Presentation):負責資料格式轉換(編碼/解碼)。
  • 應用層(Application):負責應用程式功能。這三層在 TCP/IP 中統一整合為應用層

各層功能深度解析#

網路介面層(Network Interface Layer)#

TCP/IP 的最底層,提供最基本的通訊功能。

  • 主要功能:透過實體裝置(如網路卡、網路線)在「直接連線」的電腦間建立電路。
  • 侷限性:不具備互聯網路由功能,無法將資料轉送到非直接連線的網路。
  • 關鍵協定與技術
    技術 / 協定說明
    Ethernet(乙太網)最常見的區域網路技術
    Wi-Fi無線連線標準
    PPPoE(Point-to-Point Protocol over Ethernet)透過乙太網執行點對點通訊,常用於 ISP 使用者認證與連線
    MAC 位址硬體實體位址
    ARP(Address Resolution Protocol)根據 IP 位址取得對應 MAC 位址的協定

網際網路層(Internet Layer)#

  • 主要功能:將所有獨立的網路連線起來,執行「封包轉送(Routing)」。
  • 核心機制
    • 路由(Routing):將封包傳送到指定的任意網路端點,而不僅限於直接連線者。
    • IP 位址(IP Address):用於識別網路上每一台電腦的邏輯位址,必須全網唯一。
  • 版本:包含目前主流的 IPv4 以及日益普及的 IPv6。

傳輸層(Transport Layer)#

負責端對端的通訊品質與控制。根據需求不同,分為兩種主要協定:

選擇 TCP 或 UDP 取決於應用場景是「資料完整性」優先,還是「速度」優先。錯誤的選擇可能導致傳輸效率低落或資料遺失。

比較項目TCPUDP
全名Transmission Control ProtocolUser Datagram Protocol
連線方式連線導向(需建立連線)非連線導向(直接發送)
可靠性高(確認送達、重送遺失封包、調整順序)低(不重送、不排序)
速度較慢(需交握與確認)較快(無額外控制開銷)
適用場景網頁瀏覽(HTTP)、電子郵件(SMTP/POP3)、檔案傳輸串流媒體、網路電話(VoIP)、DNS 查詢、廣播通訊

TCP 的高可靠性與通訊機制#

TCP 為了在不可靠的網路環境中達成高可靠性,設計了多種機制:

  • 滑動視窗(Sliding Window):若每傳送一個封包都要等待確認(ACK),通訊效率會極低。TCP 允許在無需等待確認的情況下,連續發送一定範圍內的資料,藉此提高傳輸效率並兼顧可靠性。
  • 錯誤控制:管理封包的傳送進度,負責重送遺漏的封包以及調整亂序的封包。

TCP 連線的建立與結束#

sequenceDiagram
    participant A as 發送端
    participant B as 接收端

    Note over A,B: 建立連線(Three-way Handshake)
    A->>B: SYN(同步序列號)
    B->>A: SYN + ACK(確認並同步)
    A->>B: ACK(確認)
    Note over A,B: 連線建立,開始傳輸資料

    Note over A,B: 終止連線
    A->>B: FIN(請求斷線)
    B->>A: ACK + FIN(確認並同意斷線)
    A->>B: ACK(確認)
    Note over A,B: 連線正式斷開
詳細流程說明

建立連線(Three-way Handshake): 確保雙方都準備好進行通訊。

  • Step 1:發送端傳送 SYN 封包(同步序列號)。
  • Step 2:接收端回傳 SYN + ACK 封包(確認並同步)。
  • Step 3:發送端回傳 ACK 封包。
  • 結果:連線建立,開始正式傳輸資料。

終止連線: 確保雙方都已完成資料傳輸。

  • Step 1:中斷發起端傳送 FIN 封包。
  • Step 2:接收端回傳 ACK + FIN 封包(確認收到並同意斷線)。
  • Step 3:中斷發起端回傳 ACK 封包。
  • 結果:確認彼此完成同步,正式斷開連線。

封裝與解封裝的思考#

理解 TCP/IP 不僅是背誦層級,而是理解「封包如何旅行」。從應用層產生資料,由傳輸層切分並標記(TCP/UDP),透過網際網路層貼上地址(IP),最後由網路介面層轉化為訊號送出。每一層的封裝(Encapsulation)都是為了下一層的傳輸做準備。

應用層與網路基礎架構#

本節重點在於解析網路通訊中「應用層」的角色,以及資料如何在 TCP/IP 協定中進行封裝與傳輸。同時涵蓋 IP 位址的管理、連接埠(Port)的功能,以及子網路切割(Subnetting)的原理。

應用層的功能#

應用層(Application Layer)是讓應用程式發揮通訊功能的介面。它不像其他底層協定具有統一的階層特徵,而是根據不同的應用需求,選擇適合的傳輸服務。主要職責是從傳輸層提供的功能中,選擇適合該服務目的的通訊方式,並對應用程式執行資料處理。

默默運作的幕後功臣 許多協定是為了滿足特定目的而存在,使用者往往不會直接察覺。例如解決網域名稱的 DNS 或進行時間校正的 NTP,它們在使用者不知情的情況下默默服務。

常見的應用層協定#

協定全名用途傳輸協定Port
HTTPHyperText Transfer Protocol網頁瀏覽TCP80
HTTPSHTTP Secure加密網頁瀏覽TCP443
SMTPSimple Mail Transfer Protocol電子郵件傳送TCP25
POP3Post Office Protocol v3讀取郵件(下載至本地)TCP110
IMAP4Internet Message Access Protocol v4讀取郵件(伺服器端管理)TCP143
FTPFile Transfer Protocol檔案傳輸TCP20/21
DNSDomain Name System網域名稱解析UDP/TCP53
NTPNetwork Time Protocol網路校時UDP123

資料傳輸的封裝與解封裝#

TCP/IP 協定採用階層式架構,透過上下層連線的位元組方式執行通訊處理。此過程涉及資料的「封裝」(Encapsulation)與「解封裝」(Decapsulation)。

封裝與解封裝流程

  • 傳送端(封裝):資料由高層往底層傳遞。每一層在收到上層資料後,會在其前方附加該層的標頭(Header)。越往底層走,資料封包的體積越大。
  • 接收端(解封裝):資料由底層往高層傳遞。接收端依序移除該層的標頭,將原始資料向上傳遞,直到還原為應用程式可讀取的訊息。
flowchart LR
    subgraph 傳送端(封裝)
        direction TB
        S1[應用層資料] --> S2[+ 傳輸層標頭]
        S2 --> S3[+ 網際網路層標頭]
        S3 --> S4[+ 網路介面層標頭/尾]
    end

    S4 -- "網路傳輸" --> R4

    subgraph 接收端(解封裝)
        direction TB
        R4[移除網路介面層標頭/尾] --> R3[移除網際網路層標頭]
        R3 --> R2[移除傳輸層標頭]
        R2 --> R1[還原應用層資料]
    end

詳細處理流程#

以電腦 A 傳至電腦 B 為例:

  1. 傳送端(電腦 A):收到高層資料 -> 附加標頭 -> 傳送至下一層 -> 最終建立乙太網路通訊框(Frame)-> 送出。
  2. 接收端(電腦 B):收到通訊框 -> 存入快取 -> 檢查並移除標頭 -> 傳送至上一層 -> 重複此動作直到應用層。

IP 位址的識別與管理#

IP 位址(IP Address)是為了讓網路透過 IP 協定識別每一台電腦所賦予的序列編號。

IP 的版本與普及#

  • IPv4:目前主流使用的版本。
  • IPv6:普及率逐漸提升,但要完全取代 IPv4 仍有一段距離。

IP 分配原則與階層#

為確保全球網路運作正常,IP 位址必須遵守「全球不重複」的原則(封閉式內部網路除外)。IP 的管理採用嚴謹的階層式架構:

全球 IP 位址分配階層
  1. ICANN(Internet Corporation for Assigned Names and Numbers):全球 IP 位址管理的最高機構。
  2. RIR(Regional Internet Registry):區域級網路註冊管理機構(如亞太區的 APNIC)。
  3. NIR(National Internet Registry):國家級網路註冊管理機構。
  4. LIR(Local Internet Registry):本地級網路註冊機構(通常為 ISP),最後發放給終端使用者或公司。

連接埠(Port)的運作#

連接埠(Port)是傳輸層中 TCP/UDP 協定提供的功能,讓同一台電腦能同時執行多種通訊服務而不混淆。

  • 數值範圍:0 到 65535
  • 公認連接埠(Well-known Ports):0 到 1023,通常分配給系統級或重要度較高的服務

當傳輸層使用 TCP 協定時,會建立連線並指定目的地的 Port;若使用 UDP 進行廣播或單向傳輸時,同樣需要指定目的 Port 以確保資料能被正確的應用程式接收。

公網 IP、私有 IP 與子網路切割#

公網 IP vs. 私有 IP#

比較項目公網 IP(Public IP)私有 IP(Private IP)
唯一性全球獨一無二不同區域網內可重複使用
用途網際網路通訊機關、企業或家庭內部網路
取得方式向 ISP 申請自行規劃配置

私有 IP 位址範圍:

等級私有 IP 範圍網路數
Class A10.0.0.0 ~ 10.255.255.2551 個
Class B172.16.0.0 ~ 172.31.255.25516 個
Class C192.168.0.0 ~ 192.168.255.255256 個

IP 位址分級#

IP 位址依規模分為 A、B、C 三類(D 類為群播,E 類為實驗用)。

等級網路位元數主機位元數網路數量每網路主機數適用規模
Class A8 bit24 bit128約 1,677 萬極大規模網路
Class B16 bit16 bit16,384約 65,534中大規模網路
Class C24 bit8 bit約 209 萬254小規模網路

避免大型單一網路 企業若使用單一的大型網路架構,會導致「廣播風暴」(Broadcast Storm)影響範圍過大,造成頻寬浪費且故障排除困難。

子網路切割(Subnetting)的優勢#

現代網路架構通常會利用**子網路遮罩(Subnet Mask)**將大型網路切割為多個小型網段(Subnets)。

  1. 限制廣播範圍:縮小廣播封包的傳播範圍,提升效能。
  2. 縮小故障影響:一旦發生網路故障,僅影響該子網段,不會癱瘓全網。
  3. 運作原理:從 IP 的「主機位元」借用部分位元作為「子網路位元」。這雖然會減少可用的主機數量,但能換取更靈活的網路管理結構。
關於子網路遮罩的進階思考

在實際規劃網路時,子網路切割不僅是為了技術上的廣播隔離,更是資安架構的基礎。透過切割 VLAN 或子網段,可以針對不同部門(如財務部 vs. 研發部)設定不同的防火牆規則。書中提到的「主機位元借給網路位元使用」是理解 CIDR(Classless Inter-Domain Routing)的關鍵基礎,這也是現代雲端架構(如 AWS VPC)的核心概念。