TCP與UDP的區別和各自的使用場景

2021-10-08 22:24:29 字數 1030 閱讀 9940

區別

面向連線vs無連線

tcp建立乙個連線需要3次握手ip資料報,斷開連線需要4次握手。另外斷開連線時發起方可能進入time_wait狀態長達數分鐘(視系統設定,windows一般為120秒),在此狀態下連線(埠)無法被釋放。

udp不需要建立連線,可以直接發起。

可靠vs不可靠

tcp利用握手、ack和重傳機制,udp沒有。

1,校驗和(校驗資料是否損壞);

2,定時器(分組丟失則重傳);

3,序列號(用於檢測丟失的分組和重複的分組);

4,確認應答ack(接收方告知傳送方正確接收分組以及期望的下乙個分組);

5,否定確認(接收方通知傳送方未被正確接收的分組);

6,視窗和流水線(用於增加通道的吞吐量)。(視窗大小:無需等待確認應答而可以繼續傳送資料的最大值)

有序性tcp利用seq序列號對包進行排序,udp沒有。

面向位元組流vs面向報文

面向報文

面向報文的傳輸方式是應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。因此,應用程式必須選擇合適大小的報文。若報文太長,則ip層需要分片。udp對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。這也就是說,應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。(乙個upd的最大報文長度2^16-1-20-8,20是ip報文頭,8是udp報文頭)

面向位元組流

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

tcp有流量控制,udp沒有

tcp的頭部比20bytes,udp8byres

tcp應用場景:

效率要求相對低,但對準確性要求相對高的場景。因為傳輸中需要對資料確認、重發、排序等操作,相比之下效率沒有udp高。舉幾個例子:檔案傳輸(準確高要求高、但是速度可以相對慢)、接受郵件、遠端登入。

TCP與UDP的區別,以及它們各自的定義

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

TCP與UDP的區別,以及它們各自的定義

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

TCP與UDP的區別,以及它們各自的定義

2011 01 16 17 34 千年小湯圓 分類 使用 瀏覽169248次 分享到 2011 01 17 12 10 提問者採納 答題闖關,過關即送禮!快來參加 tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對...