1、概念服務器
① TCP(Transmission Control Protocol 傳輸控制協議)是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議。網絡
「面向鏈接」就是在正式通訊前必需要與對方創建起鏈接。好比你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。socket
TCP協議能爲應用程序提供可靠的通訊鏈接,使一臺計算機發出的字節流無差錯地發往網絡上的其餘計算機,對可靠性要求高的數據通訊系統每每使用TCP協議傳輸數據。htm
創建鏈接:三次握手 1.客戶端發送創建鏈接請求,並進入SYN_SEND狀態,等待服務器確認事務
2.服務端確認鏈接請求,向客戶端發送容許鏈接應答,此時服務器進入SYN_RECV狀態get
3.客戶端確認已經鏈接,向服務器發送確認,客戶端和服務器進入通訊狀態,完成三次握手io
斷開鏈接:四次握手 1.客戶端發送請求中止TCP鏈接請求請求
2.服務端收到請求後將這一個socket關閉程序
3.服務端發送反向請求客戶端關閉socket鏈接通信
4.客戶端確認服務端請求,關閉socket鏈接
② UDP (User Datagram Protocol 用戶數據報協議) 是一種面向非鏈接的、一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
「面向非鏈接」就是在正式通訊前沒必要與對方先創建鏈接,無論對方狀態就直接發送。這與如今風行的手機短信很是類似:你在發短信的時候,只須要輸入對方手機號就OK了。
UDP適用於一次只傳送少許數據、對可靠性要求不高的應用環境
UDP協議是面向非鏈接的協議,沒有創建鏈接的過程。正由於UDP協議沒有鏈接的過程,因此它的通訊效果高;但也正由於如此,它的可靠性不如TCP協議高。
2、區別
1.TCP是面向鏈接的,UDP是面向非鏈接的
2.TCP的傳輸性是可靠地,UDP的傳輸性不可靠
3.TCP的傳輸速度緩慢,UDP的傳輸速度較快
4.TCP主要應用於大量數據的傳輸,UDP適用於少許數據的傳輸(例如,QQ消息,短信)