Linux 系統生來即為網路而設計,其核心內建完整的 TCP/IP 協議棧,支援多種網路協議。掌握網路通訊機制與分層架構,是進行 Socket 程式設計、效能調優與故障診斷的基石。
表頭(位址、序號、旗標)+ 承載資料 + 尾部(CRC)
| 層次 | 名稱 | 核心功能 | 典型協議/設備 |
|---|---|---|---|
| 7 | 應用層 | 使用者介面、網路服務 | HTTP、FTP、SMTP、DNS、Telnet |
| 6 | 表示層 | 資料格式轉換、加密壓縮 | SSL/TLS、JPEG、MPEG、ASCII/EBCDIC |
| 5 | 會話層 | 建立/管理/終止會話、同步點 | RPC、NetBIOS、PPTP |
| 4 | 傳輸層 | 端對端可靠/不可靠傳輸、流控 | TCP、UDP、SCTP、SPX |
| 3 | 網路層 | 路由選擇、邏輯定址、分片重組 | IP、ICMP、IGMP、IPsec、路由器 |
| 2 | 資料連結層 | 幀封裝、錯誤偵測/修正、流控 | Ethernet、WiFi、PPP、HDLC、交換器 |
| 1 | 物理層 | 比特傳輸、介面電氣機械規範 | 雙絞線、光纖、RJ45、集線器、Modem |

| 層次 | 名稱 | 對應 OSI 層 | 核心協議 |
|---|---|---|---|
| 4 | 應用層 | 7+6+5 | HTTP、FTP、SMTP、DNS、SSH、SNMP |
| 3 | 傳輸層 | 4 | TCP、UDP、ICMP |
| 2 | 網路層 | 3 | IP、ARP、RARP、ICMP |
| 1 | 網路介面層 | 2+1 | Ethernet、WiFi、PPP、SLIP、裝置驅動 |
socket() 建立端點 → 傳輸層bind() 綁定 IP/埠 → 網路層connect()/accept() 建立連線 → 會話/傳輸層send()/recv() 資料傳輸 → 應用層介面| 服務 | 埠號 | 協議 | 用途 |
|---|---|---|---|
| HTTP | 80 | TCP | 網頁瀏覽 |
| HTTPS | 443 | TCP | 加密網頁 |
| SSH | 22 | TCP | 安全遠端登入 |
| DNS | 53 | UDP/TCP | 域名解析 |
| DHCP | 67/68 | UDP | 動態 IP 分配 |
tcpdump -i eth0 -nn -S 與 Wireshark 觀察封包細節netstat -antp / ss -antp 查看 TCP 狀態機遷移/proc/sys/net/ipv4/tcp_* 參數(如 tcp_tw_reuse、tcp_fin_timeout)errno(EAGAIN、EWOULDBLOCK、ECONNRESET 等)理解 OSI 七層與 TCP/IP 四層模型,不僅有助於網路程式設計,更是排查網路故障、設計高效能分散式系統的核心知識。下一篇將實作 TCP/UDP Socket 完整客戶端/伺服端範例。