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