一、UDP協議的特點
- 按照報文來分割發送。
- 不需要建立連接和維護連接。
- 不需要接收確認。
- 速度較快。
- 不確保接收的順序和發送順序一樣。
二、用UDP實現可靠通信的思路
(一)接收時發送一個確認報文
實現接收確認的機制。
(二)每個報文騰出空間放置序號
發送時設置序號,接收時根據序號來排序。
(三)發送方超時重發
如果在規定時間內發送方沒有收到對方的接收確認報文,那么進入超時狀態,重發一次當前報文。
(四)如果接收方緩沖區滿了,可以告訴發送方停止發送
接收方需要告訴發送方剩余的緩沖空間個數,防止超出接收能力,導致數據丟失。
(五)如果想提高速度,可以連續批次發送
發送方可以連續發送多個數據報,再統計對方的接收成功情況,重發那些沒有被接收成功的數據報。
(六)可以實現數據流的方式
只需要發送方和接收方建立一個緩沖區,提供大數據塊分段和數據報連接的操作,高層應用就能用流的方式讀寫。
(七)如果實現可靠關閉
那么需要實現監聽關閉數據報,后臺處理關閉后的剩余數據發送等操作。