區分與聯系
- TCP/IP 是底層規則,規定數據如何傳輸;
- Socket 是操作 TCP/IP 的工具,讓程序能實現通信;
- HTTPS 是上層應用,用 Socket 調用 TCP/IP 協議,實現安全的數據傳輸。
應用層:HTTPS(基于 HTTP + SSL/TLS)| | socket連接了應用層和傳輸層↓
傳輸層:TCP(可靠傳輸)↓
網絡層:IP(路由和尋址)↓
網絡接口層:物理網絡傳輸(以上四層統稱 TCP/IP 協議族)
- TCP/UDP 的連接:是傳輸層的通道,目的是為上層協議提供穩定的數據傳輸能力,一旦建立(TCP)或綁定(UDP),可長期復用。
- HTTP 的 “連接”:是應用層的交互邏輯,本質是 “請求 - 響應” 的序列,其復用依賴底層 TCP 連接的策略(短連接 / 長連接),但邏輯上每次請求仍是獨立的交互單元。
TCP/UDP 負責 “鋪路”,路一旦鋪好可以反復走;HTTP 負責 “在路上運貨”,運貨的次數和方式(一次運一件還是多件)由 HTTP 協議自身規則決定。
特性 | UDP | TCP | HTTP |
---|---|---|---|
連接方式 | 無連接(發送數據前無需建立連接) | 面向連接(需三次握手建立連接) | 基于 TCP 的連接(依賴 TCP 握手) |
可靠性 | 不可靠(不保證數據送達、順序或完整性) | 可靠(通過確認、重傳、排序機制保證) | 依賴 TCP 實現可靠性(自身不處理) |
速度 | 快(無握手 / 確認開銷,適用于實時場景) | 較慢(握手、確認等機制增加開銷) | 速度受 TCP 影響,額外攜帶應用層頭部 |
數據邊界 | 保留數據邊界:“原樣傳輸,不拆不合并,嚴格按發送時的完整單元傳輸。”(不會出現 “一次收到 150 字節(前一個包裹的 100 + 后一個的 50)) | 不保留數據邊界:“拆合自由,無視邊界”(比如兩次 500 字節的發送,可能合并成一個 1000 字節的 TCP 段發送) | 底層是無邊界的 TCP 字節流,但 HTTP 自己定了 “分隔規則”,確保能正確拆分出每個請求 / 響應單元。 |