TCP協議和UDP協議的區別

2021-08-03 16:29:27 字數 1716 閱讀 4124

**:

tcp建立連線要進行3次握手,而斷開連線要進行4次

1 當主機a完成資料傳輸後,將控制位fin置1,提出停止tcp連線的請求

2 主機b收到fin後對其作出響應,確認這一方向上的tcp連線將關閉,將ack置1

3 由b 端再提出反方向的關閉請求,將fin置1

4 主機a對主機b的請求進行確認,將ack置1,雙方向的關閉結束.

由tcp的三次握手和四次斷開可以看出,tcp使用面向連線的通訊方式,大大提高了資料通訊的可靠性,使傳送資料端

和接收端在資料正式傳輸前就有了互動,為資料正式傳輸打下了可靠的基礎

名詞解釋

ack tcp報頭的控制位之一,對資料進行確認.確認由目的端發出,用它來告訴傳送端這個序列號之前的資料段

都收到了.比如,確認號為x,則表示前x-1個資料段都收到了,只有當ack=1時,確認號才有效,當ack=0時,確認號無效,這時會要求重傳資料,保證資料的完整性.

syn 同步序列號,tcp建立連線時將這個位置1

fin 傳送端完成傳送任務位,當tcp完成資料傳輸需要斷開時,提出斷開連線的一方將這位置1

tcp的包頭結構:

源埠 16位

目標埠 16位

序列號 32位

回應序號 32位

tcp頭長度 4位

reserved 6位

控制** 6位

視窗大小 16位

偏移量 16位

校驗和 16位

選項 32位(可選)

這樣我們得出了tcp包頭的最小長度,為20位元組。

udp(user data protocol,使用者資料報協議)

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

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

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

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

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

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

我們經常使用「ping」命令來測試兩台主機之間tcp/ip通訊是否正常,其實「ping」命令的原理就是向對方主機傳送udp資料報,然後對方主機確認收到資料報,如果資料報是否到達的訊息及時反饋回來,那麼網路就是通的。

udp的包頭結構:

源埠 16位

目的埠 16位

長度 16位

校驗和 16位

小結tcp與udp的區別:

1.基於連線與無連線;

2.對系統資源的要求(tcp較多,udp少);

3.udp程式結構較簡單;

4.流模式與資料報模式 ;

5.tcp保證資料正確性,udp可能丟包,tcp保證資料順序,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...