相同點:都是傳輸層協議
不同點
是否面向連接
tcp:面向連接
- 三次握手,四次揮手
- 端對端連接
- 全雙工通信(允許雙端同時收發數據)
udp:無連接
- 無三次握手,四次揮手
- 支持一對一,一對多,多對多
數據傳輸方式
tcp:字節流
- 完整的用戶消息可能被拆分成多個tcp報文進行傳輸 MTC、MSS
- 對于接收方而言,需要處理粘包問題
udp:數據報文
- udp每次收發都是完整的報文
是否可靠
tcp:可靠傳輸
- tcp分段、進行發給送數據包的控制
- 序列號,tcp報文包含序列號,確保完整接收,丟失重復數據,排序
- 確認應答機制,確認數據包收到
- 校驗和,檢測報文在傳輸過程中的數據變化
- 滑動窗口,流量控制,防止包丟失
- 擁塞控制
- 重傳機制
udp:不可靠傳輸
- 不保證消息交付
- 不保證交付順序
- 不進行擁塞控制
- 不進行流量控制 沒有接收緩沖區
傳輸效率
tcp:效率低
- 實現可靠傳輸造成性能損失
- 頭信息20個字節
udp:效率高
- 不可靠傳輸
- 頭信息8個字節,吞吐量就會大一些
應用場景
tcp:要求數據問題,對速度需求不高
udp:實時性要求高