2016-11-04 15 views
2

ソケットがイーサネット用に開かれているとしたら、TCP/IPのソケットと同じですか?いくつかの既存のコードでは、イーサネットプロトコルをサポートしていることがわかりました。これは、TCPソケットクライアントを使用してこのイーサネットソケットに接続できることを意味します。プログラミングでのイーサネットとTCP/IPプロトコルの違いは?

私は混乱していますので、助けてください。予め

おかげサガー

答えて

0

生のイーサネット(登録商標)ソケット、例えばSOCK_RAWは、プロトコルハンドラを書かずにTCP通信に使用することはできません(そうしたくはありません)。あなたは、生のイーサネットモードでソケットが開かれたときに、イーサネットフレームをシリアライズ/デシリアライズする方法を知っているはずです。 SOCK_STREAMはTCPのモードで、インターネットにはTCPクライアント/サーバーコードの例があります。

0

混乱があります。イーサネットは、OSIモデルとTCP/IPモデルのレイヤ1およびレイヤ2テクノロジです。 Linuxでは802.3を直接通信するために、packet socketsを使用して802.3フレームを直接生成し、NIC経由で送信することができます。パケットソケットを使用して802.3フレームを受信することもできます。別のものはTCPソケット、stream socketsです。 TCP接続にストリームソケットを使用する。パケットソケットを使用すると、TCPセグメントを含むIPデータグラムを含む802.3フレームをいつでも受信できます。ただし、TCP接続を確立するには、2つのポイント間にTCP通信を確立する必要があります。あなたが見たコードに「Ethernet protcol」と書かれていれば、それが実際に行っていることを確認する必要があります。プログラマ側の誤解かもしれません。使用しているソケットのタイプを確認してください。

関連する問題