衛星通訊環境下標準 TCP 不適用 (高延遲、高丟包、非對稱鏈路),需實現自定義傳輸協議 (如 SCPS-TP、TP-Planet、UDT/QUIC 變體)。在 Linux/Windows 上可用 Raw Socket (SOCK_RAW) 繞過核心 TCP/IP 協議棧,直接收發 IP 封包,實現用戶態協議棧。
// Linux
int sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); // 或 IPPROTO_TCP/UDP 自定義
// 需 root 權限 / CAP_NET_RAW
// 手工構造 IP 頭部 + 傳輸層頭部 + 負載
sendto(sock, packet, len, 0, (struct sockaddr*)&dest, sizeof(dest));
// Windows (受限)
SOCKET sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
// 需管理員權限,Win7+ 限制發送 TCP/UDP,通常用 WinPcap/Npcap 驅動繞過
libslirp 或自寫用戶態 TCP/IP。畢業設計重點展示「協議設計原理、關鍵參數對性能影響、模擬環境搭建」,而非從零寫完整協議棧。善用 UDT/QUIC 開源實現事半功倍。