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