34、Socket TCP和UDP的區(qū)別

重點

一、UDP:(用戶數據報協議)

 1》將數據及源和目的封裝在數據包中,不需要建立連接
 2》每個數據包得大小限制在64KB之內
 3》因為無需連接,因此是不可靠協議
 4》不需要建立連接,速度快
 5》需要的系統(tǒng)資源較少,結構較簡單

二、TCP(傳輸控制協議)

 1》需要建立連接,形成傳輸數據的通道
 2》在連接中進行大數據傳輸(數據大小不受限制)
 3》通過三次握手完成連接,是可靠協議,安全送達,一旦失敗,會由發(fā)送方重新發(fā)送
 4》必須建立連接,效率會稍低
 5》需要的系統(tǒng)資源較多,結構較為復雜。

三、 TCP 連接時三次握手、斷開時四次揮手

TCP(Transmission Control Protocol,傳輸控制協議)是面向連接的協議,也就是說,在收發(fā)數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常復雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發(fā)出連接請求數據包:“我想給你發(fā)數據,可以嗎?”,這是第一次對話;主機B向主機A發(fā)送同意連接和要求同步(同步就是兩臺主機一個在發(fā)送,一個在接收,協調工作)的數據包:“可以,你什么時候發(fā)?”,這是第二次對話;主機A再發(fā)出一個數據包確認主機B的要求同步:“我現在就發(fā),你接著吧!”,這是第三次對話。三次“對話”的目的是使數據包的發(fā)送和接收同步,經過三次“對話”之后,主機A才向主機B正式發(fā)送數據。

TCP三次握手過程

  1. 主機A通過向主機B 發(fā)送一個含有同步序列號的標志位的數據段給主機B ,向主機B 請求建立連接,通過這個數據段,主機A告訴主機B 兩件事:我想要和你通信;你可以用哪個序列號作為起始數據段來回應我.
  2. 主機B 收到主機A的請求后,用一個帶有確認應答(ACK)和同步序列號(SYN)標志位的數據段響應主機A,也告訴主機A兩件事:我已經收到你的請求了,你可以傳輸數據了;你要用哪佧序列號作為起始數據段來回應我。
  3. 主機A收到這個數據段后,再發(fā)送一個確認應答,確認已收到主機B 的數據段:"我已收到回復,我現在要開始傳輸實際數據了
    這樣3次握手就完成了,主機A和主機B 就可以傳輸數據了.3次握手的特點沒有應用層的數據SYN這個標志位只有在TCP建產連接時才會被置1握手完成后SYN標志位被置0

TCP建立連接要進行3次握手,而斷開連接要進行4

  1. 當主機A完成數據傳輸后,將控制位FIN置1,提出停止TCP連接的請求
  2. 主機B收到FIN后對其作出響應,確認這一方向上的TCP連接將關閉,將ACK置1
  3. 由B 端再提出反方向的關閉請求,將FIN置1
  4. 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.

由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性,使發(fā)送數據端和接收端在數據正式傳輸前就有了交互,為數據正式傳輸打下了可靠的基礎名詞解釋ACK TCP報頭的控制位之一,對數據進行確認.確認由目的端發(fā)出,用它來告訴發(fā)送端這個序列號之前的數據段都收到了.比如,確認號為X,則表示前X-1個數據段都收到了,只有當ACK=1時,確認號才有效,當ACK=0時,確認號無效,這時會要求重傳數據,保證數據的完整性.SYN 同步序列號,TCP建立連接時將這個位置1FIN 發(fā)送端完成發(fā)送任務位,當TCP完成數據傳輸需要斷開時,提出斷開連接的一方將這位置1。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,178評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,339評論 6 174
  • 1、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)、netstat -nat 查看TCP各個狀態(tài)的數量2)、lso...
    北辰青閱讀 9,700評論 0 11
  • 傳輸層-TCP, TCP頭部結構 ,TCP序列號和確認號詳解 TCP主要解決下面的三個問題 1.數據的可靠傳輸...
    抓兔子的貓閱讀 4,621評論 1 46
  • 18.1 引言 TCP是一個面向連接的協議。無論哪一方向另一方發(fā)送數據之前,都必須先在雙方之間建立一條連接。本章將...
    張芳濤閱讀 3,520評論 0 13

友情鏈接更多精彩內容