1. 程式人生 > >12.2-全棧Java筆記: TCP協議和UDP協議

12.2-全棧Java筆記: TCP協議和UDP協議

java

區別

在網絡通訊中,TCP方式就類似於撥打電話,使用該種方式進行網絡通訊時,需要建立專門的虛擬連接,然後進行可靠的數據傳輸,如果數據發送失敗,則客戶端會自動重發該數據。而UDP方式就類似於發送短信,使用這種方式進行網絡通訊時,不需要建立專門的虛擬連接,傳輸也不是很可靠,如果發送失敗則客戶端無法獲得。

這兩種傳輸方式都是實際的網絡編程中進行使用,重要的數據一般使用TCP方式進行數據傳輸,而大量的非核心數據則都通過UDP方式進行傳遞,在一些程序中甚至結合使用這兩種方式進行數據的傳遞。

由於TCP需要建立專用的虛擬連接以及確認傳輸是否正確,所以使用TCP方式的速度稍微慢一些,而且傳輸時產生的數據量要比UDP稍微大一些。

總結

TCP傳輸數據安全,穩定,效率相對較低。

UDP傳輸數據不安全,效率較高。

TCP協議

TCP(Transfer Control Protocol)是面向連接的,所謂面向連接,就是當計算機雙方通信時必需先建立連接,然後數據傳送,最後拆除連接三個過程。

TCP在建立連接時又分三步走:

第一步,是請求端(客戶端)發送一個包含SYN即同步(Synchronize)標誌的TCP報文,SYN同步報文會指明客戶端使用的端口以及TCP連接的初始序號;

第二步,服務器在收到客戶端的SYN報文後,將返回一個SYN+ACK的報文,表示客戶端的請求被接受,同時TCP序號被加一,ACK即確認(Acknowledgement)。

第三步,客戶端也返回一個確認報文ACK給服務器端,同樣TCP序列號被加一,到此一個TCP連接完成。然後才開始通信的第二步:數據處理。


這就是所說的TCP的三次握手(Three-way Handshake)。根據三次握手的特點,有一種對服務器的攻擊叫做Syn Flood洪水攻擊。

UDP協議

Socket通信是一種基於TCP協議,建立穩定連接的點對點的通信。這種通信方式實時、快速、安全性高、但是他很占用系統的資源。

在網絡傳輸方式上,還有另一種基於UDP協議的通信方式,稱為數據報通信方式。在這種方式中,每個數據發送單元被統一封裝成數據包的方式,發送方將數據包發送到網絡中,數據包在網絡中去尋找他的目的地。

註意:UDP端口和TCP端口是相互獨立的。





「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數據庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰

E-Java高級框架精解

F-Linux和Hadoop




本文出自 “12931675” 博客,請務必保留此出處http://12941675.blog.51cto.com/12931675/1945776

12.2-全棧Java筆記: TCP協議和UDP協議