TCP 與 UDP 的區別及應用場景

2021-08-19 20:20:17 字數 1049 閱讀 6069

兩者都是通訊協議, tcp、udp 是傳輸層協議,但他們的通訊機制與應用場景不同,下面來闡述兩者的區別以及它們的應用場景。

tcp(transmission control protocol),又叫傳輸控制協議,udp(user datagram protocol),又叫使用者資料報協議,它們都是傳輸層的協議,但兩者的機制不同,它們的區別如下:

從如上**看到,tcp 是面向連線的,並且是一種可靠的協議,在基於 tcp 進行通訊時,通訊雙方需要先建立乙個 tcp 連線,建立連線需要經過三次握手,握手成功才可以進行通訊, 另外 tcp 協議是一種可靠的傳輸協議,那麼它是如何保證可靠性的呢?

在講解 tcp 如何保證可靠性前,首先得理解什麼是可靠。在通訊的角度來看,可靠即要確保通訊雙方的通訊資訊不會丟失,若丟失了保證能夠對其進行恢復,並且收到的資訊內容與原傳送內容一樣。

在 tcp 中,傳輸報文都是通過建立的虛擬連線來進行傳輸,傳送端傳輸的每乙個 tcp 報文,都會對其進行編號(編號是由於網路傳輸的原因,傳送的報文可能會亂序到達,因此需要根據編號對報文進行重排),並且開啟乙個計時器;當接收端收到報文後,並且通過校驗和對收到的報文資料進行校驗,若校驗成功則會返回乙個確認報文,告知傳送端我已經成功收到該報文了;若傳送端在計時器結束前仍未收到確認報文,則認為接收端接收失敗,則會重傳該報文;服務端若收到重複報文(根據編號發現已經是收到了),則會將該報文丟棄。

因此,從上面的機制可以知道,tcp 是通過重傳、確認和校驗和的方式來確保可靠。

注:校驗和並不能檢驗資料是否被篡改過,想要保證資料的完整性可以了解一下數字簽名

udp 是一種面向無連線,且不可靠的協議,在通訊過程中,它並不像 tcp 那樣需要先建立乙個連線,只要(目的位址,埠號,源位址,埠號)確定了,就可以直接傳送資訊報文,並且不需要確保服務端一定能收到或收到完整的資料。它僅僅提供了校驗和機制來保障乙個報文是否完整,若校驗失敗,則直接丟棄報文,不做任何處理。

TCP 與 UDP 的區別及應用場景

tcp transmission control protocol 又叫傳輸控制協議。udp user datagram protocol 又叫使用者資料報協議。它們都是傳輸層的協議,但兩者的機制不同,它們的區別和應用場景如下 tcp的可靠性理解 tcp的可靠性應該是相對於udp不可靠傳輸來說的,因...

TCP和UDP的區別及應用場景

在tcp ip模型中,傳輸層有兩個重要協議 tcp 傳輸控制協議 transmission control protocol udp 使用者資料報協議 user datagram protocol 接下來我門看看tcp和udp的區別及應用場景 1.tcp是通訊之前需要建立連線,udp通訊不需要建立連...

傳輸層TCP和UDP的區別分析與應用場景

面向報文的傳輸方式是應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。因此,應用程式必須選擇合適大小的報文。若報文太長,則ip層需要分片,降低效率。若太短,會是ip太小。udp對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。這也就是說,應用層交給udp多長的報文,u...