tcp和udp都是osi模型中傳輸層的協議,tcp用於提供可靠的通訊傳輸,udp則用做廣播和細節控制交給應用的通訊傳輸。安全
tcp:網絡
TCP協議中包含了專門的傳遞保證機制,當數據接收方收到發送方傳來的信息時,會自動向發送方發出確認消息;發送方只有在接收到該確認消息以後才繼續傳送其它信息,不然將一直等待直到收到確認信息爲止tcp
udp:資源
UDP協議並不提供數據傳送的保證機制。若是在從發送方到接收方的傳遞過程當中出現數據報的丟失,協議自己並不能作出任何檢測或提示。所以,一般人們把UDP協議稱爲不可靠的傳輸協議。get
tcp與udp區別?同步
1.基於鏈接與無鏈接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;
4.流模式與數據報模式 ;
5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。it
udp應用場景?基礎
1.面向數據報方式
2.網絡數據大多爲短消息
3.擁有大量Client
4.對數據安全性無特殊要求
5.網絡負擔很是重,但對響應速度要求高udp
TCP創建鏈接要進行3次握手
1 ) 主機A經過向主機B 發送一個含有同步序列號的標誌位的數據段給主機B ,向主機B 請求創建鏈接,經過這個數據段,主機A告訴主機B 兩件事:我想要和你通訊;你能夠用哪一個序列號做爲起始數據段來回應我
. 2 ) 主機B 收到主機A的請求後,用一個帶有確認應答(ACK)和同步序列號(SYN)標誌位的數據段響應主機A,也告訴主機A兩件事:我已經收到你的請求了,你能夠傳輸數據了;你要用序列號做爲起始數據段來回應我
3 )主機A收到這個數據段後,再發送一個確認應答,確認已收到主機B 的數據段:"我已收到回覆,我如今要開始傳輸實際數據了
3次握手就完成了,主機A和主機B 就能夠傳輸數據請求
3次握手的特色:
沒有應用層的數據
SYN這個標誌位只有在TCP創建鏈接時纔會被置1
握手完成後SYN標誌位被置0
TCP斷開鏈接要進行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