Java Socket 通信核心知識體系
Socket 是應用層與 TCP/IP 協議棧的門面模式封裝,隱藏了協議細節。本文匯總網絡分層、TCP 報文、三次握手及連接模式。
一、網絡分層模型
1. ISO/OSI 七層模型

2. TCP/IP 五層模型

- 應用層 ≈ OSI 會話層 + 表示層 + 應用層
- 傳輸層(TCP/UDP)
- 網絡層(IP)
- 數據鏈路層
- 物理層
二、TCP 報文關鍵字段

- 序號:32位,標識發送字節流順序。
- 確認號:32位,ACK=1 時有效,值 = 對方序號 + 1。
- 標志位(6個):
- URG:緊急指針有效
- ACK:確認號有效
- PSH:接收方儘快交付應用層
- RST:重置連接
- SYN:發起新連接
- FIN:釋放連接
注意:確認號 Ack 與標志位 ACK 含義不同,Ack=Seq+1 配對。
三、Socket 通信原理

Socket 封裝 TCP/IP 復雜性,提供簡單 API(bind、listen、accept、connect、read、write)。
四、三次握手
詳見:Socket 連接建立與關閉詳細圖解
五、連接模式
1. 短連接
連接 → 傳輸 → 關閉。HTTP 1.0 默認短連接,無狀態。
2. 長連接
連接建立後保持,多次請求復用。HTTP 1.1 默認長連接(Connection: keep-alive)。
六、總結
理解 TCP/IP 分層、報文結構與握手流程,是編寫高性能網絡應用、排查連接異常的基礎。