博客 / 詳情

返回

基於Socket實現的主流網絡協議彙總

基於Socket實現的主流網絡協議彙總

前言:最近在學websocket,本來想了解一下除了websocket還有其他的沒有,後面重新學了一下

一、核心概念澄清

首先需明確:Socket(套接字)並非一種協議,而是一套用於實現網絡通信的編程接口(API)/編程規範,是應用層與傳輸層(TCP/UDP)之間的橋樑。所有基於 TCP/IP 協議簇的應用層協議,本質上都是通過 Socket 接口實現數據傳輸的。

WebSocket 僅是基於 Socket 實現的應用層協議之一,以下按傳輸層依賴分類,詳細列舉其他主流協議。

二、基於 TCP 協議的應用層協議(TCP Socket 實現)

TCP 是面向連接、可靠的傳輸層協議,適用於需保證數據完整性的業務場景,對應的應用層協議均基於 TCP + Socket 實現。

2.1 HTTP/HTTPS

  • 用途:網頁瀏覽、後端接口請求、第三方開放平台交互等
  • 核心信息:HTTP 默認使用 80 端口,HTTPS(加密版)默認使用 443 端口;底層基於 TCP 協議,通過 TCP Socket 建立連接並傳輸數據(支持短連接/長連接)
  • 與 WebSocket 區別:HTTP 是“請求-響應”模式(半雙工,僅客户端主動發起請求後服務端才響應),WebSocket 是全雙工通信(TCP 連接建立後,雙方可主動收發數據)

2.2 FTP(文件傳輸協議)

  • 用途:跨主機文件上傳、下載,支持斷點續傳、權限驗證
  • 核心信息:默認使用 21 端口(控制連接,傳輸指令)+ 20 端口(數據連接,傳輸文件數據),基於 TCP Socket 實現可靠傳輸

2.3 郵件相關協議(SMTP/POP3/IMAP)

  • 用途:郵件的發送與接收
  • 核心信息:

- SMTP:發送郵件,默認 25 端口(明文)/ 465 端口(加密)

- POP3:接收郵件,默認 110 端口(明文)/ 995 端口(加密)

- IMAP:靈活管理郵件(如同步文件夾、標記已讀),默認 143 端口(明文)/ 993 端口(加密)
  • 關聯:三者均基於 TCP Socket 實現,保證郵件數據傳輸的完整性與順序性

2.4 遠程登錄協議(Telnet/SSH)

  • 用途:遠程控制服務器/網絡設備
  • 核心信息:

- Telnet:明文傳輸,默認 23 端口,安全性低,現已基本淘汰

- SSH:加密傳輸,默認 22 端口,支持遠程登錄、執行命令、文件傳輸(scp/sftp 基於 SSH)
  • 關聯:均通過 TCP Socket 建立穩定連接,實現客户端與遠程主機的交互

2.5 數據庫通信協議

  • 用途:應用程序與數據庫的交互(執行 SQL 指令、獲取查詢結果)
  • 核心信息:
- MySQL 協議:默認 3306 端口,基於 TCP Socket 建立長連接傳輸數據

- PostgreSQL 協議:默認 5432 端口,TCP Socket 實現可靠交互

- Oracle 協議:默認 1521 端口,依賴 TCP Socket 完成連接與數據傳輸

2.6 Redis 協議(RESP)

  • 用途:Redis 客户端與服務端的緩存操作(增刪改查、事務等)
  • 核心信息:默認 6379 端口,基於 TCP Socket 實現長連接,RESP 是 Redis 自定義的輕量化應用層協議,底層依賴 TCP 保證數據可靠傳輸

2.7 MQTT(消息隊列遙測傳輸)

  • 用途:物聯網(IoT)、低帶寬場景的消息推送(如智能設備通信、消息訂閲發佈)
  • 核心信息:默認 1883 端口(明文)/ 8883 端口(加密),主流基於 TCP Socket 實現,保證消息傳輸的可靠性

三、基於 UDP 協議的應用層協議(UDP Socket 實現)

UDP 是無連接、不可靠的傳輸層協議,適用於實時性要求高於可靠性的場景,對應的協議基於 UDP Socket 實現。

3.1 DNS(域名系統協議)

  • 用途:將域名(如 www.baidu.com)解析為 IP 地址,是互聯網訪問的基礎
  • 核心信息:默認 53 端口,核心基於 UDP Socket 實現(解析請求數據量小,優先保證實時性);若解析失敗或請求數據過大,會降級為 TCP 傳輸

3.2 DHCP(動態主機配置協議)

  • 用途:給局域網設備自動分配 IP 地址、子網掩碼、網關、DNS 等網絡參數
  • 核心信息:客户端使用 68 端口,服務端使用 67 端口,基於 UDP Socket 實現,無需建立連接,快速完成參數分配

3.3 TFTP(簡單文件傳輸協議)

  • 用途:小型設備、局域網內的簡單文件傳輸(如路由器固件升級、嵌入式設備數據同步)
  • 核心信息:默認 69 端口,基於 UDP Socket 實現,協議簡單、傳輸速度快;無權限驗證,不可靠,適合小文件傳輸

3.4 SNMP(簡單網絡管理協議)

  • 用途:監控網絡設備(路由器、交換機、服務器)的狀態(如流量、負載、故障告警)
  • 核心信息:默認 161/162 端口,基於 UDP Socket 實現,輕量化、實時性高,適合頻繁採集設備狀態數據

3.5 NTP(網絡時間協議)

  • 用途:實現網絡設備/服務器的時間同步,保證系統時間一致性
  • 核心信息:默認 123 端口,基於 UDP Socket 實現,無需可靠傳輸,優先保證時間同步的實時性

3.6 QUIC(快速 UDP 互聯網連接)

  • 用途:HTTP/3 的底層傳輸協議,替代 HTTP/2 的 TCP 傳輸
  • 核心信息:基於 UDP Socket 實現,融合 TCP 的可靠性(重傳、有序)與 UDP 的實時性,解決 TCP 隊頭阻塞問題,適用於視頻直播、低延遲接口請求等場景

四、基於 Raw Socket(原始套接字)的協議

Raw Socket 允許應用程序直接訪問網絡層(IP 協議),無需經過傳輸層(TCP/UDP),對應的協議多為網絡層/數據鏈路層協議。

4.1 ICMP(互聯網控制報文協議)

  • 用途:網絡故障診斷(如 ping 命令)、錯誤通知(如目標不可達、超時)
  • 關聯:通過 Raw Socket 實現,不依賴 TCP/UDP,直接封裝在 IP 數據包中傳輸;ping 命令本質就是發送 ICMP 請求包並接收響應包

4.2 ARP(地址解析協議)

  • 用途:將 IP 地址解析為局域網內的 MAC 地址,實現局域網設備之間的直接通信
  • 關聯:通過 Raw Socket 實現,屬於數據鏈路層協議,無需 IP 協議封裝,直接在局域網內廣播傳輸

五、自定義協議

除標準協議外,很多業務場景會基於 TCP Socket/UDP Socket 自定義應用層協議,例如:

  • 遊戲行業:遊戲服務端與客户端的實時交互協議(如王者榮耀、和平精英的玩家操作同步、場景數據推送)
  • 即時通訊:即時通訊軟件的點對點傳輸協議(如微信的部分點對點消息、文件傳輸)
  • 工業控制:工業設備的網絡控制協議(如 PLC 設備的遠程控制、數據採集)

六、總結

6.1 核心邏輯

Socket 是通信接口(工具),協議是通信規則(規範);各類網絡協議通過 Socket 接口實現數據在網絡中的傳輸,二者是“工具”與“使用規則”的關係。

6.2 主流協議分類彙總

Socket 類型(傳輸層依賴) 對應協議 核心特點
TCP Socket HTTP/HTTPS、FTP、SMTP/POP3/IMAP、SSH、數據庫協議、Redis 協議、MQTT 可靠傳輸、面向連接,適合需保證數據完整性的場景
UDP Socket DNS、DHCP、TFTP、SNMP、NTP、QUIC 實時性高、無連接,適合對可靠性要求低但需快速傳輸的場景
Raw Socket ICMP、ARP 直接訪問底層網絡,適用於網絡診斷、局域網通信等場景

6.3 與 WebSocket 的關聯

WebSocket 是 TCP Socket 上的應用層協議,與 HTTP 同級;其核心優勢是建立 TCP 連接後實現全雙工通信,而其他 TCP 類協議(如 HTTP)多為半雙工或單工通信。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.