UDP | TCP | |
---|---|---|
是否連接 | 無連接 | 面向連接 |
是否可靠 | 不可靠傳輸,不使用流量控制和擁塞控制 | 可靠傳輸,使用流量控制和擁塞控制 |
連接對象個數 | 支持一對一,一對多,多對一和多對多交互通信 | 只能是一對一通信 |
傳輸方式 | 面向報文 | 面向字節流 |
首部開銷 | 首部開銷小,僅8字節 | 首部最小20字節,最大60字節 |
適用場景 | 適用於實時應用(IP電話、視頻會議、直播等) | 適用於要求可靠傳輸的應用,例如文件傳輸 |
爲啥TCP爲可靠傳輸?
通過 TCP 連接傳輸的數據無差錯,不丟失,不重複,且按順序到達。
TCP 報文頭裏面的序號能使 TCP 的數據按序到達
報文頭裏面的確認序號能保證不丟包,累計確認及超時重傳機制
TCP 擁有流量控制及擁塞控制的機制
爲啥UDP是面向報文的?
發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付IP層。UDP對於應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界。