TCP協議與UDP協議的區別

2021-07-25 06:25:33 字數 1705 閱讀 6756

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協議和ucp協議與tcp ip協議的聯絡,一直都是說tcp ip協議與udp協議的區別。所以我想解釋一點的是tcp ip協議是乙個協議簇。裡面包括很多協議的。udp只是其中的乙個。之所以命名為tcp ip協議,因為tcp,ip協議是兩個很重要的協議,就用他兩命名了。那首先我們先總結幾個區別 1...

tcp協議與 udp協議的區別

網上很多文章都說tcp協議可靠,udp協議不可靠!為什麼前者可靠,後者不可靠呢?既然udp協議不可靠,為什麼還要使用它呢?所謂的tcp協議是面向連線的協議,面向連線是什麼呢?這篇文章,我們就是要弄懂以上問題!tcp和udp都是傳輸層的協議!從程式設計的角度看,就是兩個模組 模組就是 的集合,一系列 ...

TCP協議與UDP協議的區別

tcp協議與udp協議的區別 tcp面向位元組流,udp面向資料報 tcp協議較為複雜,udp協議較為簡單 tcp是可靠連線,udp不可靠 tcp的可靠性體現於 1.確認應答機制 三次握手,四次揮手 2.資料的按序到達 3.超時重傳 4.去重 1到4的保證利用32位序號和確認序號來保證 5.流量控制...