首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

TCP/IP 協定族架構、核心協定與 Windows Sockets 程式設計術語全解

     編輯:關於C語言

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

一、TCP/IP 協定族架構(四層模型)

TCP/IP 協定族架構圖

圖 1.1:TCP/IP 四層架構與主要協定對應

層級核心協定功能說明對應 OSI 層級
應用層HTTP超文本傳輸,Web 瀏覽基礎應用/表示/會話
FTP/SMTP/TELNET/DNS檔案傳輸/郵件/遠端登入/域名解析
傳輸層TCP可靠、面向連線、全雙工位元組流、流量/阻塞控制傳輸層
UDP不可靠、無連線、資料報、低延遲、支援廣播/多點傳送傳輸層
網際層IP路由選擇、分片重組、位址定址、Best-effort 交付網路層
ICMP錯誤回報、回應請求、路由重導向網路層
ARP/RARPIP↔MAC 位址解析/反向解析網路層/資料鏈路
網路介面層Ethernet/Wi-Fi/PPP幀封裝、物理傳輸、錯誤偵測資料鏈路/物理層

二、TCP/IP 關鍵特性

  • 核心在核心空間:TCP/UDP/IP 協定棧實作於作業系統核心,使用者程式透過系統呼叫或函式庫介面存取。
  • 兩種程式介面:
    ① 核心系統呼叫(socket/bind/connect...)
    ② 函式庫包裝(Winsock WSASocket/WSAConnect...)
  • 使用者服務需透過應用程式實現:核心不提供 FTP/HTTP 服務,需使用者空間程式呼叫套接字 API 實作。
  • 套接字為核心抽象:socket() 建立通訊端點,後續所有操作均以描述符/控制代碼為對象。

TCP/IP 核心與應用程式關係圖

圖 1.2:TCP/IP 核心協定棧與使用者應用程式關係

三、Windows Sockets 專用術語詳解

1. 套接字

  • 網路通訊的基本建構單元,可被命名、定址、引用的通訊端點。
  • 每個套接字具備型別:
    SOCK_STREAM(流式,TCP)— 可靠、有序、雙向位元組流
    SOCK_DGRAM(資料報式,UDP)— 無連線、不可靠、訊息邊界保留
  • 存在於通訊域,Windows 僅支援 AF_INET(網際網路域,IPv4)。
  • 同域套接字才能直接交換資料,跨域需轉換程序。

2. Windows Sockets 實作

  • 指完整實作 Winsock 規範(1.1/2.x)的軟體組件,通常以 DLL 形式提供(WSOCK32.DLL、WS2_32.DLL)。
  • 包含:開發組件(標頭檔、匯入庫、文件)+ 執行組件(DLL)。

3. 阻塞處理例程

  • Windows 非搶佔式多任務(Win16/早期 Win32)下,阻塞呼叫(connect/recv)會佔用 CPU 導致其他程式無法執行。
  • Winsock 提供 Blocking Hook 機制:阻塞時進入 BlockingHook(),內部 GetMessage/DispatchMessage 讓出 CPU。
  • 可自訂 WSASetBlockingHook(),但嚴禁在鉤子中呼叫其他 Winsock API(除 WSACancelBlockingCall)。
  • 現代 Windows(NT 核心)採搶佔式多執行緒,阻塞不再阻塞整個系統,但為相容性保留此機制。

4. 多點傳送

  • 一對多傳輸模式:單一發送者,單次傳輸送達一組接收者(Class D IP:224.0.0.0~239.255.255.255)。
  • 對比:
    單點傳送 — 一對一
    廣播 — 一對全網段
    多點傳送 — 一對特定群組(需 IGMP 協定管理群組成員)
  • 應用:視訊會議、股票行情推送、遊戲狀態同步。

四、協定數據單元(PDU)封裝流程

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/21TCPFTP 數據/控制
22TCPSSH
23TCPTELNET
25TCPSMTP
53UDP/TCPDNS
67/68UDPDHCP
80TCPHTTP
110TCPPOP3
443TCPHTTPS

總結

掌握 TCP/IP 四層架構、核心協定分工、Windows Sockets 實作模型與關鍵術語,是進行高品質網路程式設計的先決條件。下一步將進入具體的套接字 API(socket/bind/connect/send/recv...)與非同步程式模型(WSAAsyncSelect/WSAEventSelect/Overlapped I/O)的實戰應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved