TCP和UDP的區別

2021-09-12 22:23:36 字數 1827 閱讀 6475

tcp傳輸控制協議是面向位元組流的

udp使用者資料報協議是面向報文的

tcp和udp的區別:

1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線

2、tcp提供可靠的服務;udp盡最大努力交付,即不保證可靠交付。由於tcp要保證所有的資料報都可以到達,所以,需要有重傳機制(快重傳,快恢復,超時重傳),udp不會進行重傳。

3、tcp有序,udp無序;訊息在傳輸過程中可能會亂序,後傳送的訊息可能會先到達,tcp會對其進行重排序,udp不會。

5、每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊

6、tcp首部是20-60個位元組;udp的首部只有8個位元組

7、tcp的邏輯通訊通道是全雙工的可靠通道,udp則是不可靠通道

8、tcp有流量控制(擁塞控制),udp沒有

流量控制:tcp利用滑動視窗機制在tcp連線上實現對傳送方的流量控制, 如果傳送方把資料傳送得過快,接收方可能會來不及接收,這就會造成資料的丟失。所謂流量控制就是讓傳送方的傳送速率不要太快,要讓接收方來得及接收。

擁塞控制:防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制所要做的都有乙個前提:網路能夠承受現有的網路負荷。擁塞控制是乙個全域性性的過程,涉及到所有的主機、路由器,以及與降低網路傳輸效能有關的所有因素。

當出現網路抖動時,tcp會自覺降低傳送速度,他會努力維護次序,但udp依然保持速度不變

有界與無界之分是根據接收報文來劃分的

對於tcp協議,客戶端連續傳送資料,只要服務端的這個函式的緩衝區足夠大,會一次性接收過來,即客戶端是分好幾次發過來,是有邊界的,而服務端卻一次性接收過來,所以證明是無邊界的;

而對於udp協議,客戶端連續傳送資料,即使服務端的這個函式的緩衝區足夠大,也只會一次一次的接收,傳送多少次接收多少次,即客戶端分幾次傳送過來,服務端就必須按幾次接收,從而證明,這種udp的通訊模式是有邊界的。

面向位元組流和面向資料報

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

面向位元組流的話,雖然應用程式和tcp的互動是一次乙個資料塊(大小不等),但tcp把應用程式看成是一連串的無結構的位元組流。tcp有乙個緩衝,當應用程式傳送的資料塊太長,tcp就可以把它劃分短一些再傳送。如果應用程式一次只傳送乙個位元組,tcp也可以等待積累有足夠多的位元組後再構成報文段傳送出去。

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

tcp的缺點: 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台裝置上維護所有的傳輸連線,事實上,每個連線都會占用系統的cpu、記憶體等硬體資源。 而且,因為tcp有確認機制、三次握手機制,這些也導致tcp容易被人利用,實現dos、ddos、cc等攻擊。

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連線必須要經過三次 對話 才能建立起來,其中的過程非常複雜,我們這裡只做簡單 形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三...