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

Java培訓(xùn):udp與tcp區(qū)別是什么?

更新時(shí)間:2022-07-07 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  UDP是無(wú)連接通信協(xié)議,即在數(shù)據(jù)傳輸時(shí),數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。簡(jiǎn)單來(lái)說(shuō),當(dāng)一臺(tái)計(jì)算機(jī)向另外一臺(tái)計(jì)算機(jī)發(fā)送數(shù)據(jù)時(shí),發(fā)送端不會(huì)確認(rèn)接收端是否存在,就會(huì)發(fā)出數(shù)據(jù),同樣接收端在收到數(shù)據(jù)以后,也不會(huì)向發(fā)送端反饋是否收到數(shù)據(jù)。

  由于使用UDP消耗資源小,通信效率高,所以通常會(huì)用于音頻、視頻和普通數(shù)據(jù)的傳輸,例如視頻會(huì)議使用UDP,因?yàn)檫@種情況即使偶爾丟失一兩個(gè)數(shù)據(jù)包,也不會(huì)對(duì)接收結(jié)果產(chǎn)生太大影響。但是在使用UDP傳送數(shù)據(jù)時(shí),由于UDP的面向無(wú)連接性,不能保證數(shù)據(jù)的完整性,因此在傳輸重要數(shù)據(jù)時(shí)不建議使用UDP。

  TCP是面向連接的通信協(xié)議,即在傳輸數(shù)據(jù)前先在發(fā)送端和接收端建立邏輯鏈接,然后再傳輸數(shù)據(jù),它提供了兩臺(tái)計(jì)算機(jī)之間可靠無(wú)差錯(cuò)的數(shù)據(jù)傳輸。在TCP連接中心必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)器端發(fā)出連接請(qǐng)求,每次連接的創(chuàng)建都需要經(jīng)過(guò)“三次握手”。第一次握手,客戶端向服務(wù)器端發(fā)出連接請(qǐng)求,等待服務(wù)器確認(rèn);第二次握手,服務(wù)器端向客戶端回送一個(gè)響應(yīng),通知客戶端收到了連接請(qǐng)求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認(rèn)信息,確認(rèn)連接。TCP連接的整個(gè)交互過(guò)程如圖9-5所示。

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

1657172324095_TCP連接的整個(gè)交互過(guò)程.jpg

  圖9-5 TCP連接的整個(gè)交互過(guò)程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!