知了堂|網(wǎng)絡(luò)安全之網(wǎng)絡(luò)協(xié)議-TCP和UDP
作為 TCP/IP 中兩個最具有代表性的傳輸層協(xié)議,TCP 和 UDP 經(jīng)常被拿出來相互比較。這些協(xié)議具體有什么區(qū)別,又是什么作用呢?今天就來簡單聊聊 TCP 和 UDP,不過在講 TCP 和 UDP之前,我們先來了解一下 TCP/IP。
TCP/IP 網(wǎng)絡(luò)模型
網(wǎng)絡(luò)設(shè)備之間要互相通信,雙方就必須基于相同的方法。比如,如何探測到通信目標(biāo)、由哪一邊先發(fā)起通信、使用哪種語言進行通信、怎樣結(jié)束通信等規(guī)則都需要事先確定。不同的硬件、操作系統(tǒng)之間的通信,所有的這一切都需要一種規(guī)則。而這種規(guī)則就稱之為協(xié)議(Protocol)。
TCP/IP 是互聯(lián)網(wǎng)相關(guān)的各類協(xié)議族的總稱,它以兩個原始協(xié)議:傳輸控制協(xié)議(TCP)和Internet 協(xié)議(IP)來命名。比如:TCP,UDP,IP,F(xiàn)TP,HTTP,ICMP,SMTP 等都屬于 TCP/IP 族內(nèi)的協(xié)議。

下面主要來介紹一下傳輸層協(xié)議:TCP 和 UDP。
TCP:
傳輸控制協(xié)議TCP是面向連接的,提供可靠交付,有流量控制,擁塞控制,提供全雙工通信,面向字節(jié)流(把應(yīng)用層傳下來的報文看成字節(jié)流,把字節(jié)流組織成大小不等的數(shù)據(jù)塊),每一條 TCP 連接只能是點對點的(一對一)。
UDP:
用戶數(shù)據(jù)報協(xié)議 UDP(User Datagram Protocol)是無連接的,盡最大可能交付,沒有擁塞控制,面向報文(對于應(yīng)用程序傳下來的報文不合并也不拆分,只是添加 UDP 首部),支持一對一、一對多、多對一和多對多的交互通信。
TCP vs UDP
TCP 和 UDP 有許多區(qū)別和相似之處。它們都是通過 Internet 發(fā)送數(shù)據(jù)包的最常用的協(xié)議。并且它們都在 TCP/IP 協(xié)議棧的傳輸層上工作。

再簡單總結(jié)下 TCP 和 UDP 的區(qū)別:
1、TCP是面向連接的(在客戶端和服務(wù)器之間傳輸數(shù)據(jù)之前要先建立連接),UDP是無連接的(發(fā)送數(shù)據(jù)之前不需要先建立連接)
2、TCP提供可靠的服務(wù)(通過TCP傳輸?shù)臄?shù)據(jù)。無差錯,不丟失,不重復(fù),且按序到達);UDP提供面向事務(wù)的簡單的不可靠的傳輸。
3、UDP具有較好的實時性,工作效率比TCP高,適用于對高速傳輸和實時性比較高的通訊或廣播通信。隨著網(wǎng)速的提高,UDP使用越來越多。
4、沒一條TCP連接只能是點到點的,UDP支持一對一,一對多和多對多的交互通信。
5、TCP對系統(tǒng)資源要去比較多,UDP對系統(tǒng)資源要求比較少
6、UDP程序結(jié)構(gòu)更加簡單
7、TCP是流模式,UDP是數(shù)據(jù)報模式
