tcp 是基於連線協議,舉個例子的話就是正式接受傳送資料之前,必須和對方建立連線.才能夠達到通訊效果.
udp是與tcp相對應的協議,面向非連線協議,他不與對方建立連線就直接將資料報傳送過去.
tcp
tcp連線必須經過典型的"三次握手"才能建立起來的.過程比較複雜,下面的話只作為簡單介紹
三次握手協議過程
1.主機a與主機b發出連線請求資料報的確認 a--->>>:我要給你發資料了,接受嗎? 這是第一次握手協議
2.主機b與主機a傳送同意連線要求同步對話 (主機ab作為傳送和接受協調排程)資料: b--->>>:可以啦!請問什麼時候傳送? 這是第二次握手協議
3.主機a在接受主機b的通話確認後,再次發出乙個資料報確認要求同步 a--->>>:我現在就傳送,請查收! 這是第三次握手協議
其中目的作用在資料報傳送和接收實現同步,通過三次握手協議,主機a會向主機b正式傳送資料.
優點: 可靠 穩定
tcp可靠性體現在傳輸資料之前,經過三次握手協議四次揮手釋放連線,並存在確認,視窗,重傳,擁塞控制機制,資料傳輸完畢斷開連線
缺點: 慢 效率低 占用系統資源高 容易被入侵攻擊
在建立連線往往會消耗時間,傳輸時由於機制問題需要占用資源,花費大量時間.
並且tcp協議機制容易被人利用,實現dos ddos攻擊
udp
udp適用於一次並且是少量資料傳送,對於可靠性要求不高的環境下使用較廣泛
經常使用的ping指令測試主機的通訊是否正常.其實ping就是向對方主機傳送udp資料,讓對方確認收到資料,資料是否到達的訊息能夠及時反饋回來.
那麼兩台主機的網路是連通的.
一般情況下ping操作會預設傳送四個資料報,目標主機接收到四個資料報並返回訊息.充分說明udp協議是面向非連線的協議
沒有建立連線過程.因為udp協議沒有連線過程,所以通訊效果高,但同時存在的缺陷是可靠性不如tcp協議好.
優點:快
udp沒有tcp協議機制,所以能在相對無約束的情況下使用的傳輸協議,因此速度快udp被攻擊者利用的漏洞少一些
但無法避免攻擊例如udp flood攻擊
缺點:不可靠,不穩定
沒有tcp可靠機制,網路質量影響的情況下容易丟包
tcp與udp基本區別簡單總結
1.基於連線與無連線
2.tcp要求系統資源較多,udp則相反
3.udp程式結構簡單
4.流模式(tcp) 資料報模式(udp)
5.tcp保證資料一致,udp會出現丟包現象
6.tcp保證資料報有調序udp則相反
tcp與udp的應用場景
從特點上分析,tcp可靠但是傳輸速度比upd慢,但是udp協議是不可靠的.因此選用具體協議通訊時候,需要根據求iu來決定
若通訊資料保持完整,通訊實時性而定,則首選tcp協議(檔案傳輸,重要狀態更新等應用技術);
選用tcp:
比如http https ftp等傳輸檔案的協議
日常中常見使用tcp協議的有:
1.瀏覽器 http
2.qq 檔案傳輸
選用udp:
日常使用udp協議的有:
1.qq語音
3.tftp
4.包括遊戲內即時對話聊天等應用場景均屬於udp協議技術應用
TCP協議與UDP協議
tcp協議,全稱傳輸控制協議,處在傳輸層之中,下層為網路層,上層為應用層。udp協議,全稱使用者資料報協議,所處位置與tcp相同。而談到傳輸層,則必須談到埠號,埠號的名稱可能沒有ip位址那麼響亮,但是它仍然非常重要,在tcp ip協議中,用 源ip 源埠號 目的ip 目的埠號 協議號 這樣乙個五元組...
TCP協議與UDP協議
1 提供ip環境下的資料可靠傳輸,有效流控,全雙工操作 資料在兩個方向上能同時傳遞 多路復用服務,是面向連線,端到端的傳輸 2 面向連線 正式通訊前必須要與對方建立連線。3 tcp支援的應用協議 telnet 遠端登入 ftp 檔案傳輸協議 smtp 簡單郵件傳輸協議 tcp用於傳輸資料量大,可靠性...
TCP與UDP協議區別
tcp和udp 都是來自於傳輸層的協議。傳輸層是位於第2層的,如下圖所示。傳輸層位於應用層和網路層之間,負責位於不同主機中程序之間的通訊。之前一位老哥問我 不同電腦之間是如何通訊的呢?是不是還要自己開發協議什麼的。internet的傳輸層提供兩種不同的服務,應用開發者必須選擇其中的一種。是面向連線的...