1. 程式人生 > 其它 >如何實現UDP 的可靠傳輸

如何實現UDP 的可靠傳輸

tcp 與 udp 的區別

TCP 是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議
UDP 是一種無連線擦混輸層協議,提供面向事物的監看不可靠的訊息傳輸服務,可靠性由上層的應用層來實現,所以要實現udp可靠性傳輸,必須通過應用層來實現和控制

TCP如何實現可靠性傳輸?

確認機制,重傳機制,滑動視窗。

udp 如何實現可靠性傳輸

傳輸層無法保證資料的可靠性,只能通過應用層來保證,實現的方式參考tcp的可靠傳輸的方式,只是實現不在傳輸層,實現轉移到了應用層。
實現確認機制,實現重傳機制,實現視窗確認機制。

  • 新增seq/ack機制,確保資料傳送到對端
  • 添加發送和接收緩衝區,主要是使用者超時重傳。
  • 新增超時重傳機制。

如果你不利用Linux 協議棧以及上層的socket機制,自己通過抓包和發包的方式實現可靠傳輸,那麼必須實現以下功能:

傳送:包的分片、包的確認、包的重發
接受:包的調序,包的序號確認