淺談TCP、UDP、ICMP三種常見(jiàn)協(xié)議
本文分享自天翼云開(kāi)發(fā)者社區《淺談TCP、UDP、ICMP三種常見(jiàn)協(xié)議》,作者:楊****豪
https://www.ctyun.cn/developer/article/411709986725957
TCP
TCP是位于傳輸層的協(xié)議,它是面向鏈接的,提供全雙工的服務(wù),數據流可以雙向傳輸。TCP是一種可靠的傳輸,它擁有三次握手機制保證數據傳輸的可靠性,如果對方?jīng)]有接收到數據則會(huì )一直嘗試重新傳輸。像FTP文件傳輸,遠程登陸,HTTP,SMTP,HTTPS等等需要保證傳輸完整性的都是基于TCP協(xié)議。
UDP
UDP也是位于傳輸層的協(xié)議,它是無(wú)連接的,面向報文的協(xié)議。UDP只能使用盡最大努力交付,并不能保證數據100%的可靠傳輸,即便有丟包依然會(huì )繼續傳輸。因此,UDP更加注重實(shí)時(shí)性,像語(yǔ)音,電話(huà),視頻都是通過(guò)UDP傳輸的,因為偶爾丟幾個(gè)包并不影響通信。
ICMP
ICMP是網(wǎng)絡(luò )層協(xié)議。它是TCP/IP協(xié)議簇的一個(gè)子協(xié)議,并不承載數據,也不是用來(lái)傳輸數據的。ICMP是用來(lái)傳遞控制消息的,也就是我們經(jīng)常說(shuō)的:網(wǎng)絡(luò )通不通,主機是否可達。常用的ping命令就是基于ICMP。
TCP與UDP的異同
1. 鏈接:TCP是面向連接的傳輸層協(xié)議,即傳輸數據之前必須建立好鏈接。UDP無(wú)連接
2. 服務(wù)對象:TCP點(diǎn)對點(diǎn)兩點(diǎn)間服務(wù),即一條TCP鏈接只能有兩個(gè)端點(diǎn)。UDP支持一對一,一對多,多對一,多對多的相互通信。
3. 可靠性:TCP可靠交付。UDP盡最大努力交付。
4. 擁塞控制/流量控制:TCP擁有擁塞控制和流量控制來(lái)保證數據傳輸的安全性。UDP則沒(méi)有。
5. 適用場(chǎng)景:TCP適用于數據完整性?xún)?yōu)先于通信實(shí)時(shí)性的場(chǎng)景。如果要求通信實(shí)時(shí)性則使用UDP。
TCP與UDP的優(yōu)缺點(diǎn)
TCP優(yōu)點(diǎn):可靠,穩定
因為T(mén)CP有三次握手來(lái)建立連接,而且再數據傳輸的過(guò)程中擁有確認,窗口,重傳,擁塞控制等機制,再數據傳輸完成之后還會(huì )斷開(kāi)連接來(lái)節約資源。
TCP缺點(diǎn):效率低下,容易被攻擊
每一次傳輸都需要先建立連接,而且傳輸過(guò)程中的各種機制都會(huì )消耗大量的時(shí)間。又因為T(mén)CP是面向鏈接的協(xié)議,擁有三次握手機制,確認機制,這些也導致TCP容易被利用,實(shí)現DOS,DDOS,CC等攻擊。
UDP優(yōu)點(diǎn):效率高,較為安全
由于UDP是無(wú)狀態(tài),無(wú)連接的傳輸協(xié)議,所以它的傳輸速度非???,而且UDP沒(méi)有各種控制機制,所以被攻擊利用的機會(huì )就少一些。但并不意味著(zhù)能避免被攻擊。
UDP缺點(diǎn):不可靠,不穩定
由于UDP是無(wú)連接的協(xié)議,而且沒(méi)有TCP擁有的那些機制,所以在網(wǎng)絡(luò )質(zhì)量不好的情況下,UDP很容易造成丟包導致數據的缺失。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。