TCP和UDP的區別

2021-07-23 04:21:54 字數 1705 閱讀 7762

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的區別

tcp transimission control protocol 傳輸控制協議 和udp user datagram protocol 是傳輸層的兩種實現版本!它們之間提供基本的服務又各有所長。因此,根據對特定服務質量的要求,應用層軟體單元可以選擇通過傳輸層的tcp版本或者udp版本來傳輸資料。...

TCP和UDP的區別

tcp和udp都是傳輸層的協議,他們的區別主要如下 1 tcp,全名 傳輸控制協議 是面向連線的,也就是說在傳送方和接收方在傳送資料之前,必須通過三次握手建立連線,相當於現實生活中的打 功能,必須先撥號,接通後才能說話,udp,全名 使用者資料報協議 是無連線的,其中一方向向另一方傳送資料時不需要建...

TCP和UDP的區別

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