TCP是全雙工協議,在虛擬通道上進行傳輸的同時,能夠同時雙向的進行數據傳輸,同時鏈接也是雙向的,關閉鏈接要獲得對方的確認,因此TCP是一種保證了數據傳輸完整性和正確性的傳輸協議。緩存
UDP是用戶數據報協議,僅實現了多路複用以及多路分解另加上差錯檢測,,他幾乎沒有對IP增長別的東西。網絡
可是在實際應用過程當中,因特網電話、網絡管理、名字交換(DNS)常使用UDP做爲其傳輸層協議。緣由以下:效率
1.應用層能夠更好地控制發送的數據以及發送的時間,更多應用注重實時性,由於TCP有一個擁塞控制機制,一旦當傳輸的鏈路上變的擁塞,就會遏制TCP的數據傳輸效率,,由此帶來的時延是不能容忍的,可是相對的UDP雖然有少許的數據丟失,可是保證了時效性,因此UDP協議更適合這類實時性的服務。數據
2.無需創建鏈接:TCP要通過三次握手創建鏈接,可是UDP無需任何準備就能夠進行數據傳輸。由此UDP不會帶來鏈接上的時延。這也是DNS運行在UDP上的主要緣由。協議
3.UDP是無鏈接狀態的,TCP在鏈接過程當中要保持端的狀態,這鏈接狀態包括接收和發送方緩存,擁塞控制參數、序號和確認號的參數。。UDP並不會維護這些參數,也不會跟蹤這些參數。時間
4.分組首部開銷小,每一個TCP報文段都有20個字節的首部開銷,而UDP僅有8個字節的開銷。參數