TCP/IP 不僅是網際網路的基石,也是 Windows 網路程式設計的基礎協定棧。本文系統梳理 TCP/IP 四層架構、核心協定功能、Windows Sockets 實作模型,並詳細定義套接字、阻塞鉤子、多點傳送等關鍵術語,為後續 Winsock 開發奠定堅實理論基礎。

圖 1.1:TCP/IP 四層架構與主要協定對應
| 層級 | 核心協定 | 功能說明 | 對應 OSI 層級 |
|---|---|---|---|
| 應用層 | HTTP | 超文本傳輸,Web 瀏覽基礎 | 應用/表示/會話 |
| FTP/SMTP/TELNET/DNS | 檔案傳輸/郵件/遠端登入/域名解析 | ||
| 傳輸層 | TCP | 可靠、面向連線、全雙工位元組流、流量/阻塞控制 | 傳輸層 |
| UDP | 不可靠、無連線、資料報、低延遲、支援廣播/多點傳送 | 傳輸層 | |
| 網際層 | IP | 路由選擇、分片重組、位址定址、Best-effort 交付 | 網路層 |
| ICMP | 錯誤回報、回應請求、路由重導向 | 網路層 | |
| ARP/RARP | IP↔MAC 位址解析/反向解析 | 網路層/資料鏈路 | |
| 網路介面層 | Ethernet/Wi-Fi/PPP | 幀封裝、物理傳輸、錯誤偵測 | 資料鏈路/物理層 |
socket/bind/connect...)WSASocket/WSAConnect...)socket() 建立通訊端點,後續所有操作均以描述符/控制代碼為對象。
圖 1.2:TCP/IP 核心協定棧與使用者應用程式關係
SOCK_STREAM(流式,TCP)— 可靠、有序、雙向位元組流SOCK_DGRAM(資料報式,UDP)— 無連線、不可靠、訊息邊界保留AF_INET(網際網路域,IPv4)。WSOCK32.DLL、WS2_32.DLL)。connect/recv)會佔用 CPU 導致其他程式無法執行。BlockingHook(),內部 GetMessage/DispatchMessage 讓出 CPU。WSASetBlockingHook(),但嚴禁在鉤子中呼叫其他 Winsock API(除 WSACancelBlockingCall)。Class D IP:224.0.0.0~239.255.255.255)。graph TD
App[應用層數據] --> TCP[TCP Segment\nHeader + Data]
TCP --> IP[IP Datagram\nIP Header + TCP Segment]
IP --> Link[Frame\nMAC Header + IP Datagram + FCS]
Link --> Phy[Physical Bits]
| 埠號 | 協定 | 服務 |
|---|---|---|
| 20/21 | TCP | FTP 數據/控制 |
| 22 | TCP | SSH |
| 23 | TCP | TELNET |
| 25 | TCP | SMTP |
| 53 | UDP/TCP | DNS |
| 67/68 | UDP | DHCP |
| 80 | TCP | HTTP |
| 110 | TCP | POP3 |
| 443 | TCP | HTTPS |
掌握 TCP/IP 四層架構、核心協定分工、Windows Sockets 實作模型與關鍵術語,是進行高品質網路程式設計的先決條件。下一步將進入具體的套接字 API(socket/bind/connect/send/recv...)與非同步程式模型(WSAAsyncSelect/WSAEventSelect/Overlapped I/O)的實戰應用。