TCP通訊和UDP通訊都屬于網絡通訊 ,兩種通訊模式都有server端(服務器端)和client端(客戶端)的區分。
1. TCP通訊:
TCP通訊的的時候必須先要建立一個連接,就像我們打電話一樣,打的人必須撥號,打通后,對方必須接起來才能通話。一個TCP服務器端可以接受多個客戶端的鏈接。服務器端程序開通一個TCP的端口號,客戶端通過該端口號建立連接。服務器端被動等待連接,客戶端主動發起連接。TCP通訊的特點:
l TCP服務器端開啟一個端口,被動等待連接;
l TCP客戶端根據服務器端的IP地址以及開放的端口號,主動發起連接;
l TCP是通訊是可靠連接,在沒有建立連接的情況下,是沒有辦法進行通訊的;
l TCP客戶端也需要開啟一個端口號,進行數據接收。
2. UDP通訊
UDP在通訊的時候,服務器端被動等待接收,UDP客戶端根據IP地址以及開放的端口號,直接發送數據,所以UDP不是一個可靠連接。UDP通訊的時候不需要建立連接,它的通訊方式就想我們發短信一樣,只要知道對方的電話號碼,直接編輯短信并發送,至于對方收到與否,發的一方不知道,但是短信已經發出去了。UDP通訊的特點:
l UDP通訊不需要建立連接;
l UDP服務器端需要開通一個端口,根據已知的IP地址以及端口號,進行數據發送;
l UPD客戶端不需要建立連接,可以直接發數據,只需要知道對方的IP地址以及開放的端口號,UDP客戶端同樣需要開放一個端口號;
l UDP提供了無連接通信,且不對傳送數據包進行可靠性保證,適合于一次傳輸少量數據UDP報文沒有可靠性保證、順序保證和流量控制字段等,可靠性較差。但是正因為UDP協議的控制選項較少,在數據傳輸過程中延遲小、數據傳輸效率高,適合對可靠性要求不高的應用程序,或者可以保障可靠性的應用程序。
3. TCP與UDP基本區別
l 基于連接與無連接;
l TCP要求系統資源較多,UDP較少;
l UDP程序結構較簡單;
l TCP保證數據正確性,UDP可能丟包;
l TCP保證數據順序,UDP不保證。
4. UDP應用場景:
l 面向數據報方式;
l 網絡數據大多為短消息;
l 擁有大量Client;
l 對數據安全性無特殊要求;
l 網絡負擔非常重,但對響應速度要求高。