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
- 網路介面層(Network Interface Layer):位於最底層,負責實體裝置的直接連線(如網路卡、乙太網)。功能僅限於「已直接連線」的電腦間建立通訊,無法跨網路轉送。
- 網際網路層(Internet Layer):在介面層基礎上加入「轉送(Routing)」功能。核心協定為 IP,讓未直接連線的裝置也能透過網路互相通訊。
- 傳輸層(Transport Layer):依據使用目的進行通訊控制(如可靠性或即時性)。核心協定包含 TCP(高可靠性、資料確認)與 UDP(低延遲、即時性)。
- 應用層(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 取決於應用場景是「資料完整性」優先,還是「速度」優先。錯誤的選擇可能導致傳輸效率低落或資料遺失。
| 比較項目 | TCP | UDP |
|---|---|---|
| 全名 | Transmission Control Protocol | User 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 |
|---|---|---|---|---|
| HTTP | HyperText Transfer Protocol | 網頁瀏覽 | TCP | 80 |
| HTTPS | HTTP Secure | 加密網頁瀏覽 | TCP | 443 |
| SMTP | Simple Mail Transfer Protocol | 電子郵件傳送 | TCP | 25 |
| POP3 | Post Office Protocol v3 | 讀取郵件(下載至本地) | TCP | 110 |
| IMAP4 | Internet Message Access Protocol v4 | 讀取郵件(伺服器端管理) | TCP | 143 |
| FTP | File Transfer Protocol | 檔案傳輸 | TCP | 20/21 |
| DNS | Domain Name System | 網域名稱解析 | UDP/TCP | 53 |
| NTP | Network Time Protocol | 網路校時 | UDP | 123 |
資料傳輸的封裝與解封裝#
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 為例:
- 傳送端(電腦 A):收到高層資料 -> 附加標頭 -> 傳送至下一層 -> 最終建立乙太網路通訊框(Frame)-> 送出。
- 接收端(電腦 B):收到通訊框 -> 存入快取 -> 檢查並移除標頭 -> 傳送至上一層 -> 重複此動作直到應用層。
IP 位址的識別與管理#
IP 位址(IP Address)是為了讓網路透過 IP 協定識別每一台電腦所賦予的序列編號。
IP 的版本與普及#
- IPv4:目前主流使用的版本。
- IPv6:普及率逐漸提升,但要完全取代 IPv4 仍有一段距離。
IP 分配原則與階層#
為確保全球網路運作正常,IP 位址必須遵守「全球不重複」的原則(封閉式內部網路除外)。IP 的管理採用嚴謹的階層式架構:
全球 IP 位址分配階層
- ICANN(Internet Corporation for Assigned Names and Numbers):全球 IP 位址管理的最高機構。
- RIR(Regional Internet Registry):區域級網路註冊管理機構(如亞太區的 APNIC)。
- NIR(National Internet Registry):國家級網路註冊管理機構。
- 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 A | 10.0.0.0 ~ 10.255.255.255 | 1 個 |
| Class B | 172.16.0.0 ~ 172.31.255.255 | 16 個 |
| Class C | 192.168.0.0 ~ 192.168.255.255 | 256 個 |
IP 位址分級#
IP 位址依規模分為 A、B、C 三類(D 類為群播,E 類為實驗用)。
| 等級 | 網路位元數 | 主機位元數 | 網路數量 | 每網路主機數 | 適用規模 |
|---|---|---|---|---|---|
| Class A | 8 bit | 24 bit | 128 | 約 1,677 萬 | 極大規模網路 |
| Class B | 16 bit | 16 bit | 16,384 | 約 65,534 | 中大規模網路 |
| Class C | 24 bit | 8 bit | 約 209 萬 | 254 | 小規模網路 |
避免大型單一網路 企業若使用單一的大型網路架構,會導致「廣播風暴」(Broadcast Storm)影響範圍過大,造成頻寬浪費且故障排除困難。
子網路切割(Subnetting)的優勢#
現代網路架構通常會利用**子網路遮罩(Subnet Mask)**將大型網路切割為多個小型網段(Subnets)。
- 限制廣播範圍:縮小廣播封包的傳播範圍,提升效能。
- 縮小故障影響:一旦發生網路故障,僅影響該子網段,不會癱瘓全網。
- 運作原理:從 IP 的「主機位元」借用部分位元作為「子網路位元」。這雖然會減少可用的主機數量,但能換取更靈活的網路管理結構。
關於子網路遮罩的進階思考
在實際規劃網路時,子網路切割不僅是為了技術上的廣播隔離,更是資安架構的基礎。透過切割 VLAN 或子網段,可以針對不同部門(如財務部 vs. 研發部)設定不同的防火牆規則。書中提到的「主機位元借給網路位元使用」是理解 CIDR(Classless Inter-Domain Routing)的關鍵基礎,這也是現代雲端架構(如 AWS VPC)的核心概念。