1. 程式人生 > >TCP和UDP的區別?

TCP和UDP的區別?

tcp和udp都是osi模型中傳輸層的協議,tcp用於提供可靠的通訊傳輸,udp則用作廣播和細節控制交給應用的通訊傳輸。

tcp:

TCP協議中包含了專門的傳遞保證機制,當資料接收方收到傳送方傳來的資訊時,會自動向傳送方發出確認訊息;傳送方只有在接收到該確認訊息之後才繼續傳送其它資訊,否則將一直等待直到收到確認資訊為止

 

udp:

UDP協議並不提供資料傳送的保證機制。如果在從傳送方到接收方的傳遞過程中出現數據報的丟失,協議本身並不能做出任何檢測或提示。因此,通常人們把UDP協議稱為不可靠的傳輸協議

 

tcp與udp區別?

 1.基於連線與無連線;
 2.對系統資源的要求(TCP較多,UDP少);
 3.UDP程式結構較簡單;
 4.流模式與資料報模式 ;
 5.TCP保證資料正確性,UDP可能丟包,TCP保證資料順序,UDP不保證。

 

udp應用場景?

1.面向資料報方式
  2.網路資料大多為短訊息 
  3.擁有大量Client
  4.對資料安全性無特殊要求
  5.網路負擔非常重,但對響應速度要求高

  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建立連線時將這個