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

Beej 網絡編程指南第 2 部分:Socket 概念與兩大類型

     編輯:關於C

什麼是 Socket

Socket = 文件描述符。Unix 哲學:「一切皆文件」。網絡連接、管道、終端、磁盤文件統一用 int fd 操作,read()/write() 或 send()/recv() 均可。

Internet Socket 兩大類型

流式 SOCK_STREAM數據報 SOCK_DGRAM
協議TCPUDP
可靠性可靠、有序、無錯誤不可靠、無序、可能丟包
連接面向連接無連接
典型應用Telnet, HTTP, SSHTFTP, BOOTP, DNS 查詢
流控滑動窗口應用層自行實現 ACK/重傳

TCP 保證機制

  • 序號 + 確認號實現有序可靠傳輸
  • 校驗和檢測錯誤
  • 流量控制與擁塞控制

UDP 應用層協議設計

如 TFTP:每包必須收到 ACK,超時重傳,序號去重。這就是「在不可靠信道上構建可靠協議」的經典模式。

其他 Socket 族

  • Unix Domain Socket (AF_UNIX):本機進程間通信,路徑名寻址
  • X.25 Socket:歷史封包交換網絡,現罕用
  • Raw Socket:直接操作 IP 層,需特權

摘自 xiaobin_HLJ80 的專欄

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