TCP和UDP的區別

2021-10-06 00:09:12 字數 1504 閱讀 7700

tcp和udp都是來自於傳輸層的協議。

傳輸層是位於第2層的,如下圖所示。

傳輸層位於應用層和網路層之間,負責位於不同主機中程序之間的通訊。

之前一位老哥問我:不同電腦之間是如何通訊的呢?是不是還要自己開發協議什麼的。

internet的傳輸層提供兩種不同的服務,應用開發者必須選擇其中的一種。

tcp是面向連線的可靠的傳輸層協議。

udp是無連線的不可靠的傳輸層協議。

何來可靠和不可靠之說?

udp相對於ip來說,只新增了process到process的分發服務和錯誤檢驗機制,因為,提供的也是不可靠的服務。

而tcp為應用提供了包括可靠資料傳輸、流量控制和擁塞控制等在內的服務。

有了可靠的tcp,為什麼還要udp?

應用可以更精細控制何時傳送何種資料

無需事先建立連線就可以傳送資料

無連線狀態,實現簡單

頭部開銷小

擴充套件:1、應用可更好控制何時傳送何種資料:無須建立連線,udp可盡快將訊息發給網路層;tcp可能需要重傳在規定時間內沒有收到確認的segment。udp沒有建立連線所引入的延遲,這可能是dns選擇udp而不是tcp的最主要原因。

2、實現簡單:udp因為是無連線的,host因而無須維護連線狀態,實現簡單;

3、頭部開銷小:udp的segment頭部欄位共8個位元組;而tcp的頭部共包括20個位元組.

udp被多數多**應用使用。但是…

udp通常被認為是不負責任的

udp流量通常不容易穿透防火牆

因此tcp的多**應用越來越多了…

總結tcp的優點:

可靠,穩定。

tcp的可靠體現在tcp在傳輸資料之前會有三次握手來建立連線,而且在資料傳遞時,有確認、視窗、重傳、擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。

tcp的缺點:

慢,效率低,占用資源高,易被攻擊;tcp在傳遞資料之前要先建立連線,這會消耗時間,而且在資料傳遞時,確認機制,重傳機制,擁塞控制機制等都會消耗大量的實踐,而且要在每台裝置上維護所有的傳輸連線。事實上每個連線都會占用系統的cpu、記憶體等硬體資源。

因為tcp有確認機制、三次握手機制,這些優點在成了缺陷,導致tcp容易被人利用,實現dos、ddos、cc、猜測攻擊等。

udp的優點:

快,比tcp稍安全。

udp沒有tcp的握手、確認、視窗、重傳、擁塞控制,udp是乙個無狀態的傳輸協議,所以它在傳遞資料時非常快。

沒有tcp的這些機制(如:三次握手),攻擊者利用udp的漏洞就要少一些。但是udp也是無法避免攻擊的,比如:udpflood等。

udp的缺點:

不可靠,不穩定。

因為udp沒有tcp那些可靠的機制,在資料傳遞時,如果網路質量不好,就會很容易丟包。

在udp和tcp協議面前,如何選擇並使用?

基於上面的優點和缺點的分析

什麼時候應該使用tcp傳輸協議:

什麼時候應該使用udp:

面試經常會問道:tcp和udp協議的區別是什麼?

簡化很多字的總結

TCP和UDP的區別

tcp transimission control protocol 傳輸控制協議 和udp user datagram protocol 是傳輸層的兩種實現版本!它們之間提供基本的服務又各有所長。因此,根據對特定服務質量的要求,應用層軟體單元可以選擇通過傳輸層的tcp版本或者udp版本來傳輸資料。...

TCP和UDP的區別

tcp和udp都是傳輸層的協議,他們的區別主要如下 1 tcp,全名 傳輸控制協議 是面向連線的,也就是說在傳送方和接收方在傳送資料之前,必須通過三次握手建立連線,相當於現實生活中的打 功能,必須先撥號,接通後才能說話,udp,全名 使用者資料報協議 是無連線的,其中一方向向另一方傳送資料時不需要建...

TCP和UDP的區別

tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次 對話 才能建立起來,其中的過程非常複雜,我們這裡只做簡單 形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三...