溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

TCP和UDP的區(qū)別有哪些

發(fā)布時間:2022-01-11 16:29:39 來源:億速云 閱讀:140 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容主要講解“TCP和UDP的區(qū)別有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“TCP和UDP的區(qū)別有哪些”吧!

首先強調(diào)一點,TCP/IP協(xié)議是一個協(xié)議簇。里面包括很多協(xié)議的,UDP只是其中的一個, 之所以命名為TCP/IP協(xié)議,因為TCP、IP協(xié)議是兩個很重要的協(xié)議,就用他兩命名了。

兩個協(xié)議的區(qū)別實際使用時,只需要記住“TCP正常連接發(fā)送數(shù)據(jù)時一般不會產(chǎn)生丟包(排除上下層其他因素),而UDP產(chǎn)生丟包是很常見的事。”

1 下面著重講解一下TCP協(xié)議和UDP協(xié)議的區(qū)別

1、基于連接與無連接;

2、對系統(tǒng)資源的要求(TCP較多,UDP少);

3、UDP程序結(jié)構(gòu)較簡單;

4、流模式與數(shù)據(jù)報模式 ;

5、TCP保證數(shù)據(jù)正確性,UDP可能丟包;

6、TCP保證數(shù)據(jù)順序,UDP不保證。

通過以上分析,可能會有人認為,鑒于TCP可靠的傳輸協(xié)議,那么它一定優(yōu)于UDP,其實不然。下面舉例說明這個問題:

TCP用于在傳輸層有必要實現(xiàn)可靠傳輸?shù)那闆r。由于它是面向有鏈接并具備順序控制、重發(fā)控制等機制,所以它可以為應(yīng)用提供可靠傳輸。

在另方面,UDP主要用于那些對高速傳輸和實時性較高要求的通信或廣播通信。我們舉一個例子-通過IP電話進行通話,如果使用TCP,數(shù)據(jù)在傳輸圖中如果丟失會被重發(fā),但這樣無法流暢地傳輸通話人的聲音,會導(dǎo)致無法進行正常交流。而采用UDP,它不會進行重發(fā)處理。從而也就不會有聲音大幅度延遲到達的問題。即使有部分數(shù)據(jù)丟失,也只是會影響某一小部分的通話。此外,在多播與廣播信道中也使用UDP而不是TCP。

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是面向連接的協(xié)議,也就是說,在收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。 一個TCP連接必須要經(jīng)過三次“對話”才能建立起來,其中的過程非常復(fù)雜,只簡單的描述下這三次對話的簡單過程:

1)主機A向主機B發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對話;

2)主機B向主機A發(fā)送同意連接和要求同步 (同步就是兩臺主機一個在發(fā)送,一個在接收,協(xié)調(diào)工作)的數(shù)據(jù)包 :“可以,你什么時候發(fā)?”,這是第二次對話;

3)主機A再發(fā)出一個數(shù)據(jù)包確認主機B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”, 這是第三次對話。

三次“對話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過三次“對話”之后,主機A才向主機B正式發(fā)送數(shù)據(jù),這也是保證可靠傳輸?shù)南葲Q條件。

6 UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)

1、UDP是一個非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。 在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、 計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應(yīng)用程序每次從隊列中讀一個消息段。

2、 由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護連接狀態(tài),包括收發(fā)狀態(tài)等,因此一臺服務(wù)機可同時向多個客戶機傳輸相同的消息。

3、UDP信息包的標題很短,只有8個字節(jié),相對于TCP的20個字節(jié)信息包的額外開銷很小。

4、吞吐量不受擁擠控制算法的調(diào)節(jié),只受應(yīng)用軟件生成數(shù)據(jù)的速率、傳輸帶寬、 源端和終端主機性能的限制。

5、UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))。

6、UDP是面向報文的。發(fā)送方的UDP對應(yīng)用程序交下來的報文, 在添加首部后就向下交付給IP層。既不拆分,也不合并,而是保留這些報文的邊界, 因此,應(yīng)用程序需要選擇合適的報文大小。

我們經(jīng)常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常, 其實“ping”命令的原理就是向?qū)Ψ街鳈C發(fā)送UDP數(shù)據(jù)包,然后對方主機確認收到數(shù)據(jù)包, 如果數(shù)據(jù)包是否到達的消息及時反饋回來,那么網(wǎng)絡(luò)就是通的。

ping命令是用來探測主機到主機之間是否可通信,如果不能ping到某臺主機,表明不能和這臺主機建立連接。ping命令是使用 IP 和網(wǎng)絡(luò)控制信息協(xié)議 (ICMP),因而沒有涉及到任何傳輸協(xié)議(UDP/TCP) 和應(yīng)用程序。它發(fā)送icmp回送請求消息給目的主機。

ICMP協(xié)議規(guī)定:目的主機必須返回ICMP回送應(yīng)答消息給源主機。如果源主機在一定時間內(nèi)收到應(yīng)答,則認為主機可達。

到此,相信大家對“TCP和UDP的區(qū)別有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)
推薦閱讀:
  1. UDP-TCP
  2. TCP與UDP

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI