1. 程式人生 > >UDP實現TCP可靠傳輸

UDP實現TCP可靠傳輸

udp與tcp的區別

  • TCP(TransmissionControl Protocol 傳輸控制協議)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。
    使用超時重傳、資料確認、滑動視窗等方式確保資料包被正確地傳送至目的端
  • UDP是(User Datagram Protocol 使用者資料報協議),一種無連線的、不可靠的、基於資料報的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務。
    可靠性由上層應用實現,所以要實現udp可靠性傳輸,必須通過應用層來實現和控制

設計方法

  1. 新增seq/ack機制,確保資料傳送到對端
  2. 添加發送和接收緩衝區,主要是使用者超時重傳
  3. 新增超時重傳機制
    詳細說明:傳送端傳送資料時,生成一個隨機seq=x,然後每一片按照資料大小分配seq。資料到達接收端後接收端放入快取,併發送一個ack=x的包,表示對方已經收到了資料。傳送端收到了ack包後,刪除緩衝區對應的資料。時間到後,定時任務檢查是否需要重傳資料。