溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

socket通信和tcp通信的區(qū)別有哪些

發(fā)布時間:2022-01-24 15:31:01 來源:億速云 閱讀:349 作者:zzz 欄目:互聯網科技

本篇內容介紹了“socket通信和tcp通信的區(qū)別有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

socket通信和tcp通信的區(qū)別:1、tcp協議屬于傳輸層協議,而socket是應用層和傳輸層之間的一個抽象層;2、建立一個TCP連接需要三次握手;3、socket連接可以保持長連接;4、tcp服務端和tcp客戶端使用socket通信等。

本文操作環(huán)境:Windows10系統、Dell G3電腦。

socket通信和tcp通信的區(qū)別是什么?

tcp和socket的區(qū)別

一:tcp協議

tcp協議屬于傳輸層協議(UDP也屬于傳輸層協議,但是UDP協議是無狀態(tài)的)。建立一個TCP連接需要三次握手,斷開一個TCP連接需要四次揮手。手機能夠使用聯網功能,是因為手機底層實現了TCP/IP協議,使用手機終端通過無線網就可以與服務端建立一個tcp連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。

tcp建立連接需要三次握手:

socket通信和tcp通信的區(qū)別有哪些 

圖1:tcp連接三次握手示意圖

如圖所示:

客戶端要與服務端建立tcp連接,首先向服務端發(fā)送一個syn J信號,服務端收到此信號后向客戶端回答一個ACK J+1信號,并額外加了一個syn K信號,客戶端收到ACK J+1信號后就知道,服務端能收到我的信號,后面我客戶端就可以放心的發(fā)送數據給你服務端而不用擔心你服務端接收不到我發(fā)送的數據了。

客戶端收到服務端發(fā)送的SYN K信號后,還需要向服務端回一個 ACK K+1信號,這樣服務端收到此信號就知道,我服務端給你客戶端發(fā)送的信號,你客戶端能夠收到,這樣我服務端就可以放心的給你客戶端發(fā)送數據而不用擔心你客戶端收不到自己發(fā)送的數據了。

其實從上面的描述可以看到:

建立連接完全可以跟斷開TCP連接一樣分四步走,只不過是把服務端的應答信號ACK和客戶端的認證請求信號SYNC這兩步做成一步走了。

tcp連接關閉時需要四次揮手:

socket通信和tcp通信的區(qū)別有哪些
圖2:tcp連接斷開時四次揮手示意圖

客戶端收到服務端的應答信號ACK M+1后,客戶端就知道:服務端知道我客戶端不會再發(fā)送數據包給你服務端了,你可以停止對我的監(jiān)聽了。

但是此時只是客戶端->服務端的單向流動停止了,另一個方向的流動:

服務端->客戶端的數據發(fā)送還可以正常進行,直到服務端向客戶端發(fā)送FIN N揮手信號,客戶端向服務端回應ACK N+1信號,服務端才知道:客戶端知道我服務端不會再發(fā)送數據包給你客戶端了,你可以停止對我的監(jiān)聽了。

至此,客戶端->服務端的單向流動和服務端->客戶端的單向流動兩個方向都停止,可以關閉連接了。

二:socket

我們知道兩個進程如果需要進行通訊最基本的一個前提能能夠唯一的標示一個進程,在本地進程通訊中我們可以使用PID來唯一標示一個進程,但PID只在本地唯一,網絡中的兩個進程PID沖突幾率很大,這時候我們需要另辟它徑了,我們知道IP層的ip地址可以唯一標示主機,而TCP層協議和端口號可以唯一標示主機的一個進程,這樣我們可以利用ip地址+協議+端口號唯一標示網絡中的一個進程。

能夠唯一標示網絡中的進程后,它們就可以利用socket進行通信了,什么是socket呢?

我們經常把socket翻譯為套接字,socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層復雜的操作抽象為幾個簡單的接口供應用層調用已實現進程在網絡中通信。

socket通信和tcp通信的區(qū)別有哪些
圖5:socket通信系統模塊示意圖

tcp服務端和tcp客戶端使用socket通信的過程如下。

從圖中可以看到,socket連接可以保持長連接。
socket通信和tcp通信的區(qū)別有哪些
圖6:基本socket客戶/服務端通信流程示意圖

注意的是,socket連接可以由客戶端主動關閉,也可以由服務端主動關閉。

“socket通信和tcp通信的區(qū)別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI