2016-11-04 162 views
2

如果以太網插座是開放的,那麼它和TCP/IP中的插座是一樣的嗎?在我發現的一些現有代碼中,它支持以太網協議,這是否意味着我可以使用TCP套接字客戶端連接到此以太網套接字。編程中以太網和TCP/IP協議之間的區別?

我很困惑,請幫忙。

預先感謝 薩加爾

回答

0

甲原始的以太網插座,例如SOCK_RAW,不能用於TCP通信而無需您編寫協議處理程序(您不希望這樣做)。當以原始以太網模式打開套接字時,您應該知道如何序列化/反序列化以太網幀。 SOCK_STREAM是TCP的模式,因特網充斥着TCP客戶端/服務器代碼的例子。

0

有一些混淆。以太網是OSI模型和TCP/IP模型中的第1層和第2層技術。要直接通過802.3進行通信,可以在Linux中使用packet sockets直接生成802.3幀並通過NIC將其發送出去。您也可以使用數據包套接字來接收802.3幀。不同的是TCP套接字,stream sockets。使用流套接字進行TCP連接。使用數據包套接字,您始終可以收到包含包含TCP段的IP數據報的802.3幀。但是,爲了建立TCP連接,您需要在兩點之間建立TCP通信。如果你看到的代碼是「Ethernet protcol」,你應該檢查它實際上是在做什麼,它可能只是程序員方面的一個誤解。檢查他們正在使用的套接字的類型。

相關問題