首頁技術(shù)文章正文

UDP和TCP哪種協(xié)議應(yīng)用更廣泛?

更新時間:2021-05-18 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

在介紹TCP/IP結(jié)構(gòu)時,提到傳輸層兩個重要的高級協(xié)議,分別是UDP和TCP,其中UDP是User Datagram Protocol的簡稱,稱為用戶數(shù)據(jù)報協(xié)議;TCP是Transmission Control Protocol的簡稱,稱為傳輸控制協(xié)議。

UDP是無連接通信協(xié)議,即在數(shù)據(jù)傳輸時,數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。簡單來說,當(dāng)一臺計算機向另外一臺計算機發(fā)送數(shù)據(jù)時,發(fā)送端不會確認(rèn)接收端是否存在,就會發(fā)出數(shù)據(jù),同樣接收端在收到數(shù)據(jù)時,也不會向發(fā)送端反饋是否收到數(shù)據(jù)。由于使用UDP協(xié)議消耗資源小、通信效率高、延遲小,所以通常都會用于音頻、視頻和普通數(shù)據(jù)的傳輸,例如視頻會議都使用UDP協(xié)議,因為這種情況即使偶爾丟失一兩個數(shù)據(jù)包,也不會對接收結(jié)果產(chǎn)生太大影響。但是在使用UDP協(xié)議傳送數(shù)據(jù)時,由于UDP的面向無連接性,不能保證數(shù)據(jù)的完整性,因此在傳輸重要數(shù)據(jù)時不建議使用UDP協(xié)議。UDP的交互過程如圖1所示。

TCP協(xié)議通信

圖1 UDP協(xié)議通信

TCP協(xié)議是面向連接的通信協(xié)議,即在傳輸數(shù)據(jù)前先在發(fā)送端和接收端建立邏輯連接,然后再傳輸數(shù)據(jù),它保證了兩臺計算機之間可靠無差錯的數(shù)據(jù)傳輸。在TCP連接中必須要明確客戶端與服務(wù)器端,先由客戶端向服務(wù)端發(fā)出連接請求,每次連接的創(chuàng)建都需要經(jīng)過“三次握手”:第一次握手,客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認(rèn);第二次握手,服務(wù)器端向客戶端返回一個響應(yīng),通知客戶端收到了連接請求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認(rèn)信息,確認(rèn)連接。所以,TCP協(xié)議傳送速度較慢,但傳送的數(shù)據(jù)比較可靠。TCP的整個交互過程如圖2所示。

TCP協(xié)議通信

圖2 TCP協(xié)議通信

由于TCP協(xié)議的面向連接特性,它可以保證傳輸數(shù)據(jù)的安全性和完整性,所以是一個被廣泛采用的協(xié)議,例如在下載文件時,如果數(shù)據(jù)接收不完整,將會導(dǎo)致文件數(shù)據(jù)丟失而不能被打開,因此,下載文件時必須采用TCP協(xié)議。


 猜你喜歡:

HTTP通信機制是如何建立通信的?

TCP/IP 協(xié)議族分層有什么優(yōu)點?

網(wǎng)絡(luò)攻防的藝術(shù)之TCP協(xié)議篇

黑馬程序員java后端開發(fā)培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!