簡介
TCP和UDP是傳輸層提供的兩個協議,提供了不同的運輸功能!
頭部資訊


TCP是一個面向連接、可靠的協議,
UDP是一個無連接、不可靠的協議,
從頭部就可以看出,TCP的頭部比UDP多出不少內容,
區別
面向連接
TCP是面向連接的,在傳輸資料之前必須建立連接
UDP不需要連接,直接發送資料包就可以了,
發送方式
TCP面向位元組流,將資料以位元組流的方式傳輸,
UDP面向報文,應用程式交付多大的資料包,UDP都直接一次性傳輸一個報文,
可靠
TCP根據序列號和自動重傳提供了可靠傳輸
UDP沒有提供可靠傳輸,
流量控制和擁塞控制
TCP提供了擁塞控制和流量控制
UDP沒有提供流量控制和擁塞控制,即使網路擁堵,也會發送全部資料
對應關系
TCP中客戶端和服務器 1:1 對應,
UDP中沒有客戶端和服務器的概念,1個UDP 可以同時向 多個UDP發送資料包,1個UDP也可以同時接收多個UDP發送的資料包,
分片
當資料超過MTU的時候,會對資料包分片
TCP會在運輸層中就開始分片,TCP自己會進行分片,每個分片中都有一個TCP頭部,
UDP會將所有資料都放到UDP資料里面,然后在IP層分片,只有一個分片中存在UDP頭部,IP層會對UDP分片和重組,如果有分片丟失,就重傳所有的分片,具體的原理我們單獨開一篇文章講,
應用場景
TCP適用于HTTP、FTP、SMTP等需要可靠傳輸的場景,
TCP因為要確保可靠傳輸,需要建立連接(三次握手等)、維護滑動視窗等操作,延遲比較高,
UDP適用于以下場景:
1、 資料量小并且對可靠性要求不高
2、 多對多傳輸
3、 實時性要求高
UDP不需要建立連接,并且資料量小的時候不需要IP分片,傳輸效率高,延遲低,
比如:DNS、實時性要求高的游戲、視頻語音聊天等
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/300208.html
標籤:其他
