tcp協議和udp協議的使用場景

2021-10-21 17:34:27 字數 1784 閱讀 3481

一:什麼是tcp(transmission control protocol,傳輸控制協議)

tcp是面向連線的協議,也就是說,在收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次「對話」才能建立起來,其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機a向主機b發出連線請求資料報:「我想給你發資料,可以嗎?」,這是第一次對話;主機b向主機a傳送同意連線和要求同步(同步就是兩台主機乙個在傳送,乙個在接收,協調工作)的資料報:「可以,你什麼時候發?」,這是第二次對話;主機a再發出乙個資料報確認主機b的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使資料報的傳送和接收同步,經過三次「對話」之後,主機a才向主機b正式傳送資料。

二:什麼是udp(user data protocol,使用者資料報協議)

(1) udp是乙個非連線的協議,傳輸資料之前源端和終端不建立連線,當它想傳送時就簡單地去抓取來自應用程式的資料,並盡可能快地把它扔到網路上。在傳送端,udp傳送資料的速度僅僅是受應用程式生成資料的速度、計算機的能力和傳輸頻寬的限制;在接收端,udp把每個訊息段放在佇列中,應用程式每次從佇列中讀乙個訊息段。

(2) 由於傳輸資料不建立連線,因此也就不需要維護連線狀態,包括收發狀態等,因此一台服務機可同時向多個客戶機傳輸相同的訊息。

(3) udp資訊包的標題很短,只有8個位元組,相對於tcp的20個位元組資訊包的額外開銷很小。

(4) 吞吐量不受擁擠控制演算法的調節,只受應用軟體生成資料的速率、傳輸頻寬、源端和終端主機效能的限制。

(5)udp使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的鏈結狀態表(這裡面有許多引數)。

(6)udp是面向報文的。傳送方的udp對應用程式交下來的報文,在新增首部後就向下交付給ip層。既不拆分,也不合併,而是保留這些報文的邊界,因此,應用程式需要選擇合適的報文大小。

三:兩者的適用場景

兩種協議都是傳輸層協議,為應用層提供資訊載體。

tcp協議是基於連線的可靠協議,有流量控制和差錯控制,也正因為有可靠性的保證和控制手段,所以傳輸效率比udp低;udp協議是基於無連線的不可靠協議,沒有控制手段,僅僅是將資料傳送給對方,因此效率比tcp要高。

基於上述特性,不難得到結論,tcp協議適用於對效率要求相對,但對可靠性要求相對場景下,或者是有一種連線概念的場景下;而udp協議適用於對效率要求相對高,對準確性要求相對低的場景。

好了,現在回到你的問題,舉幾個應用的例子。tcp一般用於檔案傳輸(ftp http 對資料準確性要求高,速度可以相對慢),傳送或接收郵件(pop imap smtp 對資料準確性要求高,非緊急應用),遠端登入(telnet ssh 對資料準確性有一定要求,有連線的概念)等等;

udp一般用於即時通訊(voip 語音資料報一般比較小,需要高速傳送,偶爾斷音或串音也沒有問題)等等。 作為知識的擴充套件,可以再說一些其他應用。比如,tcp可以用於網路資料庫,分布式高精度計算系統的資料傳輸;udp可以用於服務系統內部之間的資料傳輸,因為資料可能比較多,內部系統區域網內的丟包錯包率又很,即便丟包,頂多是操作無效,這種情況下,udp經常被使用。

TCP協議和UDP協議

前面我們學習了網路的7層模型,其中談到傳輸層的相關協議有tcp transmission control protocol 傳輸控制協議 和udp user datagram protocol 使用者資料報協議 一 tcp協議 tcp transmission control protocol 是一...

TCP協議和UDP協議

tcp transfer control protocol 是面向連線的,所謂面向連線,就是當計算機雙方通訊時必需經過先建立連線,然後傳送資料,最後拆除連線三個過程。tcp在建立連線時又分三步走 第一步,是請求端 客戶端 傳送乙個包含syn即同步 synchronize 標誌的tcp報文,syn同步...

TCP協議和UDP協議

區別 面向連線vs無連線 tcp建立乙個連線需要3次握手ip資料報,斷開連線需要4次握手。另外斷開連線時發起方可能進入time wait狀態長達數分鐘 視系統設定,windows一般為120秒 在此狀態下連線 埠 無法被釋放。udp不需要建立連線,可以直接發起。可靠vs不可靠 tcp利用握手 ack...