TCP UDP 有什么區(qū)別?TCP 為什么要三次握手,四次揮手?
計算機分層中的傳輸層,主要是負(fù)責(zé)計算機之間的數(shù)據(jù)傳輸,TCP 和 UDP 都屬于傳輸層協(xié)議。在實際開發(fā)過程中,需要根據(jù)實際需求的來選擇適當(dāng)?shù)膫鬏攨f(xié)議。
在這里我們簡單總結(jié)下 TCP、UDP 的特點和區(qū)別以及實際開發(fā)中如何選擇。
TCP:
定義:面向有連接,可靠的流協(xié)議。保證兩端通訊主機之間的通信可達(dá),可以處理丟包、亂序等異常,可以有效利用帶寬、緩解網(wǎng)絡(luò)擁堵。
使用場景(特點):UDP 不提供復(fù)雜的控制機制,利用 IP 提供面向無連接的通信服務(wù),隨時都可以發(fā)送數(shù)據(jù),處理簡單且高效,經(jīng)常用于以下場景:
包總量較小的通信(DNS、SNMP)
視頻、音頻等多媒體通信(即時通信)
廣播通信
UDP
定義:面向無連接,不可靠的數(shù)據(jù)報協(xié)議。不會處理丟包、亂序等異常,一般交給上層的應(yīng)用層處理。
使用場景(特點):相對于 UDP,TCP 實現(xiàn)了數(shù)據(jù)傳輸過程中的各種控制,可以進行丟包時的重發(fā)控制,還可以對次序亂掉的分包進行順序控制。
在對可靠性要求較高的情況下,可以使用 TCP,即不考慮 UDP 的時候,都可以選擇 TCP
總結(jié):
1.TCP 是面向連接的,UDP 是面向無連接的;故 TCP 需要建立連接和斷開連接,UDP 不需要。
2.TCP 是流協(xié)議,UDP 是數(shù)據(jù)包協(xié)議;故 TCP 數(shù)據(jù)沒有大小限制,UDP 數(shù)據(jù)報有大小限制(UDP 協(xié)議本身限制、數(shù)據(jù)鏈路層的 MTU、緩存區(qū)大?。?。
3.TCP 是可靠協(xié)議,UDP 是不可靠協(xié)議;故 TCP 會處理數(shù)據(jù)丟包重發(fā)以及亂序等情況,UDP 則不會處理。
TCP 為什么要三次握手,四次揮手?