搜尋
首頁常見問題socket通訊和tcp通訊的差別是什麼

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

socket通訊和tcp通訊的差別是什麼

本文操作環境:Windows10系統、Dell G3電腦。

socket通訊和tcp通訊的差別是什麼?

tcp和socket的差異

socket通訊和tcp通訊的差別是什麼

一:tcp協定

tcp協定屬於傳輸層協定(UDP也屬於傳輸層協定,但UDP協定是無狀態的)。建立一個TCP連接需要三次握手,斷開一個TCP連接需要四次揮手。手機能夠使用連網功能,是因為手機底層實現了TCP/IP協議,使用手機終端透過無線網路就可以與服務端建立一個tcp連線。 TCP協定可以對上層網路提供接口,使上層網路資料的傳輸建立在「無差別」的網路之上。

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

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

如圖所示:

客戶端要與服務端建立tcp連接,首先向服務端發送一個syn J訊號,服務端收到此訊號後向客戶端回答一個ACK J 1訊號,並額外加了一個syn K訊號,客戶端收到ACK J 1訊號後就知道,服務端能收到我的訊號,後面我客戶端就可以放心的發送資料給你服務端而不用擔心你服務端接收不到我發送的資料了。

客戶端收到服務端發送的SYN K訊號後,還需要向服務端回一個ACK K 1訊號,這樣服務端收到此訊號就知道,我服務端給你客戶端發送的訊號,你客戶端能夠收到,這樣我服務端就可以放心的給你客戶端發送資料而不用擔心你客戶端收不到自己發送的資料了。

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

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

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

圖2:tcp連線中斷時四次揮手示意圖

客戶端收到服務端的回應訊號ACK M 1後,客戶端就知道:服務端知道我客戶端不會再傳送封包給你服務端了,你可以停止對我的監聽了。


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

服務端->客戶端的資料發送還可以正常進行,直到服務端向客戶端發送FIN N揮手訊號,客戶端向服務端回應ACK N 1訊號,服務端才知道:客戶端知道我服務端不會再發送資料包給你客戶端了,你可以停止對我的監聽了。

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

socket通訊和tcp通訊的差別是什麼二:socket

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

######能夠唯一標示網路中的進程後,它們就可以利用socket進行通訊了,什麼是socket呢? ######我們常常把socket翻譯成套接字,socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層複雜的操作抽象化為幾個簡單的介面供應用層呼叫已實現進程在網路中通訊。 ############ 圖5:socket通訊系統模組示意圖######tcp服務端和tcp客戶端使用socket通訊的過程如下。 ###

從圖中可以看到,socket連線可以保持長連線。
socket通訊和tcp通訊的差別是什麼
圖6:基本socket客戶/服務端通訊流程示意圖

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

更多相關知識,請造訪常見問題欄位!

#

以上是socket通訊和tcp通訊的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境