TCP與UDP都是傳輸層協議
TCP與UDP協議對比
|
TCP |
UDP |
全稱 |
傳輸控制協議 |
使用者資料包協議或通用資料包協議 |
連線屬性 |
TCP是面向連線的協議。 |
UDP是一種無連線協議。 |
功能特點 |
面向連線,可以基於此進行網路間資訊傳輸。 |
UDP也是用於訊息傳輸的協議。但不是基於連線的,你可以使用UDP直接從一個節點傳送位元組訊息到另一個節點,之後整個訊息傳輸過程就結束了,不像TCP還需要後續的釋放連線階段。 |
用法 |
TCP適用於需要高可靠性的應用,傳輸時間相對不太重要。 |
UDP適用於需要快速,高效傳輸的應用,例如遊戲,UDP的無狀態特性對於回答來自大量客戶端的小型查詢的伺服器也非常適用。 |
應用範圍 |
TCP可以被HTTP,HTTP,FTP,SMTP,Telnet等協議呼叫 |
UDP可以被DNS,DHCP,TFTP,SNMP,RIP,VOIP等協議呼叫。 |
資料包有序性 |
TCP保證資料包的有序性。 |
UDP不保證資料傳輸的有序性,因為所有資料包都是相互獨立的。如果需要確保資料傳輸的順序,需由應用層額外負責。 |
傳輸效率 |
TCP的速度比UDP慢。 |
UDP速度更快,TCP本身不會進行錯誤嘗試。這是一個“盡力而為”的協議。 |
可靠性 |
確保資料傳輸的可靠性和有序性。 |
不保證資料傳輸的完整性和可靠性 |
報文頭 |
TCP報文頭20個位元組 |
UDP報文頭8個位元組。 |
報文頭欄位 |
源埠,目標埠,校驗和 |
源埠,目標埠,校驗和 |
資料流 |
資料作為位元組流的方式讀取傳輸,訊息之間無明顯分界線。 |
資料包是單獨傳送的,並且只在它們到達時才會檢查其完整性。資料包之間具有明確的邊界,訊息接收方會根據這些訊息包的分隔符來讀取傳送方實際傳送訊息內容。 |
協議量級 |
TCP是重量級協議。在傳送資料前,TCP需要三次握手來建立連線。TCP具備可靠性特點和擁塞控制的特性。 |
UDP屬於輕量級協議。訊息無序,無連線跟蹤。它是在IP層之上設計的小型傳輸層。 |
資料流控制 |
TCP執行流量控制。在傳送任何使用者資料之前,TCP需要三次握手來建立連線。TCP處理可靠性和擁塞控制。 |
UDP沒有流控制 |
錯誤校驗 |
TCP執行錯誤檢查和錯誤恢復。發生錯誤的資料包會重新執行傳輸操作。 |
UDP執行錯誤檢查,但只進行簡單丟棄錯誤的資料包,並不進行錯誤恢復和重傳。 |
欄位 |
1。序列號,2。AcK編號,3。資料偏移,4。保留,5。控制位,6。視窗,7。緊急指標8.選項,9。填充,10。檢查總和,11。源埠,12。目的埠 |
1。長度,2。源埠,3。目標埠,4。檢查總和 |
訊息確認 |
訊息確認 |
無訊息確認 |
連線握手 |
SYN,SYN-ACK,ACK |
無握手 |
https://www.diffen.com/difference/TCP_vs_UDP