2016-04-12 54 views
0

「套接字」或「傳輸」之間有區別,還是可以互換的。我只問,因爲我看到很多類似於做同樣事情的庫,但只是在函數/方法/屬性/類的名稱方面略有不同。Socket和Transport之間有什麼區別,如果有一個

我的理解是「套接字」是將服務器/網絡設備連接在一起的流,而「傳輸」是連接使用的方案(例如,TCP是傳輸方式)。

+0

是你的問題涉及這兩個單詞之間的確切區別?或** SSL ** vs ** TSL **。運輸和插座可以互換使用,有時我可以理解混淆。 – izk

+0

這是在這兩個詞之間。我知道SSL和TLS之間的區別。 –

回答

1

「套接字」還是「運輸」之間有區別,還是它們可以互換?

到現在爲止,我還沒有碰到單詞transport這個單詞。我一直在閱讀運輸過程中的任何地方的傳輸層。我會問你的外部引用你引用(並越來越困惑)。即使在Java的網絡庫中,我也從來沒有聽說過/將運輸視爲一個獨立的存在實體(在我有限的經驗中)!

我只問,因爲我看到了很多,似乎做同樣的事情 庫,但只有在名字怎麼 功能/方法/屬性/類略有不同。

我想你會因爲TLS/SSL而感到困惑。這裏TLS是SSL的繼承者。你不應該關聯套接字和傳輸。順便說一句,TLS/SSL是應用層協議。

我的理解是「套接字」是連接在服務器/網絡 設備一起流和「傳輸」是連接使用 的方案(例如TCP是傳輸)。

你的兩個陳述是不正確的(至少第一個肯定)!套接字不是流; TCP不是傳輸,而是TCP/IP的傳輸協議。

簡而言之,network socket是跨計算機網絡的連接的端點。套接字在內部通常只是整數,用於標識要使用的連接。套接字不必具有地址(例如僅用於發送數據),但是如果程序將套接字綁定到地址,套接字可用於接收發送到該地址的數據。

然而,transport layer是Internet協議套件和開放式系統互連(OSI)網絡堆棧中協議分層體系結構中方法的概念劃分。 TCP/IP的最着名的傳輸協議是傳輸控制協議(TCP)

0

我想你想出了這個問題,因爲PHP以混淆的方式使用這些概念。例如transport definitionstream sockets的概念。 我不是一個PHP程序員,但從我注意到的,它的名字不是很直觀。

在操作系統中,套接字是一種操作系統API,用於通過特定協議進行通信的應用程序。

在網絡和操作系統中,有兩種分層通信模型:OSI和TCP/IP。在它們中,都有一個傳輸層在網絡層上運行。此傳輸層的主要功能是將不同應用程序(在TCP/IP模型中的應用程序層中運行)使用的不同TSAP(傳輸服務接入點)之間的網絡層提供的服務進行復用。傳輸層協議的一些例子是:TCP,UDP,SCTP。 TSAP的概念就是我們所知的TCP/UDP/SCTP端口。

有不同類型的插座的:流和數據報套接字(分別爲TCP和UDP),生socekts,UNIX域套接字,分組插座(在Linux中)等

現在,一個AF_INET插座可以是一個用於TCP的流套接字(因爲它是面向流的)或UDP One explanation here的數據報套接字。

具體而言,在TCP和UDP中,套接字由元組(源IP,源端口,目標IP,目標端口)定義。

SSL和TLS在TCP上面運行(有些東西也適用於UDP,但是...),可以說這些是應用層協議,但這裏的分隔線不太清楚。某些更高級別的語言(Java和其他語言)具有使用SSL或TLS的安全套接字。

從我在前面提到的鏈接中讀到的,PHP有一個流套接字的概念,它與套接字的一般操作系統概念不同。他們從裸露的操作系統套接字抽象出你。流套接字允許您選擇不同的傳輸(tcp,udp,ssl,unix等)。我假定它指的是傳輸數據的不同機制(不僅是協議,而且還包括像unix套接字這樣的機制),並且如果你在stream sockets中讀到,你會看到在幕後它爲TCP打開了一個真正的流套接字,所謂的「傳輸」和數據報用於UDP的套接字稱爲「傳輸」。

現在稱它爲udp傳輸的流套接字是令人困惑的。我不知道PHP是否讓你看到一個UDP套接字是一個面向流的套接字,在這種情況下,它是有道理的(我將這部分響應留給了一些PHP專家)。

最後,我希望在這個解釋之後,你會得出結論:在操作系統的一般概念和PHP中,套接字和傳輸都是不可互換的概念。

相關問題