• 締切済み

IEEE802.3通信

初心者で申し訳ありません。 ご教授お願いいたします。 VCでソケット通信を行うとTCP/IP UDP/IPプロトコルの情報が付加されます。 それをしない方法? もしくはソケット通信ではなくイーサネット通信を行う方法がわかりません。 質問の文にも間違いがあるかもしれませんが、よろしくお願いいたします。

  • ho223
  • お礼率100% (1/1)

みんなの回答

  • ency
  • ベストアンサー率39% (93/238)
回答No.1

Ethernet のフレームに直接アプリケーションデータをぶち込むということでしょうか? ・・・あまりお勧めしませんし、そのような API が MFC にあるとも思えません。 Win32 API には・・・こっちにもないと思いますけどねぇ。 素直に WinSock を使うのが一番良いかと。 ところで、TCP or UDP を使用するのを嫌う理由はなんでしょうか? もっといえば、TCP/IP には階層モデルがあって・・・というところ、参考URL をご参照ください。 # OSI参照モデルをベースに書かれていますが、基本は同じですから。 要するに、各階層ごとに役割があって、Ethernet はその最下層で動作するように最適化されているようなものと考えてください。 # たとえば、Ethernet を無線 LAN に置き換えようとした場合、わざわざ # そのためにコードを書き直すのは面倒でしょう? # アプリケーションはそれを意識せずにコードを組むべきですし、この # 階層分けはそのためのものだと思ってください。 それとも、何か特別なことをやりたいのでしょうか。 その場合には、その旨補足をお願いいたします。

参考URL:
http://www.atmarkit.co.jp/icd/root/08/5798908.html
ho223
質問者

お礼

早速のご解答ありごとうございます。 状況は、すでに出来上がっている機器との通信が必要ですが(イーサネットでデータを送受信する)そのパケットがTCP や UDPではないのです。おっしゃるとおりEthernet のフレームのデータ部にそのまま独自のデータを入れて送りたいです。 ・・・無理でしょうか・・・

関連するQ&A

  • プロトコル間のデータ通信はどうやって?

    ネットワークについて関心があります。 プロトコル間のデータ通信はどうやって行われているので しょうか? (以下は間違いを含んでいるかもしれませんが、 説明となります) TCP/IPを使用して、インターネットを利用します。 送信する場合は、まずsocketを利用して、TCP、もしくはUDPに データを渡します。 ☆この時点で、ひとつ疑問なのは、TCPならば、TCPという名前の プログラムが存在しているのでしょうか? そして、適切なヘッダ、トレーラ(付いたかは自信がない)が くっ付けられて、それがIPにわたされる。 またそれが、PPPに渡される。そして、デバイスドライバに 渡される。 といった具合に、どんどんデータが包まれているわけですが、 その際のデータの受け渡し方法はどのようなものなのでしょうか? 上で質問した、TCPならばTCPという名前(これがそのまま名前じゃ ないかもしれませんが)のプログラムが存在する。という認識が あっているとすれば、IPという名前のプログラムが存在して、 PPPという名前のプログラムが存在して、そのそれぞれのプログラム間 でデータ通信を行っているはずです。プロセス間通信だから、 ソケットなのか、名前つきパイプなのか、共有メモリなのか、、 そこが気になります。 OSの機能の内部構造に関わるものだからか、 この話題についてプログラムの構造の観点から、記述された ものを見たことがありません。 宜しくお願いいたします。

  • VoIPのトランスポートプロトコルでTCPを用いるにはどのような環境で

    VoIPのトランスポートプロトコルでTCPを用いるにはどのような環境であれば問題ないでしょうか? VoIP(IP電話)ではトランスポートプロトコルとして、リアルタイム性を保つためにUDPが使用されていると思いますが、TCPを使用して通信したい時はどのような環境であれば可能でしょうか? 詳しい方おられましたらご教授願います。

  • JAVAでノンブロッキングモードでの通信はできますか。

    このたび、JAVAでTCP/IPプロトコルの通信を行うことになりました。今までは、UNIXでC言語で開発してきたのですが、その場合は、ノンブロッキングモードを使用してプログラムを作成しました。JAVAで、ノンブロッキングモードで通信することは、可能なのでしょうか。又、可能であれば、その方法は、ソケットオプションの設定で行うのでしょうか。

    • ベストアンサー
    • Java
  • パケット通信時のIPヘッダの取得方法について

    RedHat Linux9上で、g++3.2を使用して、ソケット通信の プログラムを作成していますが、UDPやTCPパケットを受信した際に 各パケットのIPヘッダを取得したいのですが、どのように行えばよいのでしょうか? RAWソケットを使用すればできるかとも思ったのですが、下記のURLに 「IPPROTO_RAW 経由でのあらゆる IP プロトコルの受信は、 raw ソケットを用いては行えない。」と書かれています。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/raw.7.html 上記のURLには、下記のようにも書かれていました。 packetソケットを使用しなければ実現できないのでしょうか? もし、そうならばpacketソケットのサンプルがありましたら、 教えていただけないでしょうか。 「IPPROTO_RAW ソケットは送信専用である。もしどうしてもすべての IP パケットを受信したい場合は、 packet(7) ソケットを ETH_P_IP プロトコルで用いること。」

  • C#でUDP通信

    C#でネットワークプログラミングを行いたいと思っています。 使用するプロトコルはUDPです。 TCP通信の参考書やwebページは見掛けるのですが UDPに関する資料はなかなか見つけることができません。 コーディングする上で、 TCP通信のプログラムをどのように変えたらよいのか 教えてください。 ちなみに、Windowsで開発する場合は WINSOCKを使ったほうがよろしいのでしょうか。

  • 通信ポートのリストの見方を教えてください

    WinXP(sp2)を使用しています。 このPCで開いている通信ポートを netstat -anコマンドで調べましたら 下記のリストが表示されました。 見方がわからないので、ポートの解説してあるサイトがあれば紹介してください。 0.0.0.0:**** や 127.0.0.1:**** のポートがなぜあるのかわかりません。 (***.***.***.*** はこのPCのIPアドレスです) >netstat -an Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:7 0.0.0.0:0 LISTENING TCP 0.0.0.0:9 0.0.0.0:0 LISTENING TCP 0.0.0.0:13 0.0.0.0:0 LISTENING TCP 0.0.0.0:17 0.0.0.0:0 LISTENING TCP 0.0.0.0:19 0.0.0.0:0 LISTENING TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:6515 0.0.0.0:0 LISTENING TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING TCP 127.0.0.1:1120 127.0.0.1:1121 ESTABLISHED TCP 127.0.0.1:1121 127.0.0.1:1120 ESTABLISHED TCP 127.0.0.1:1122 127.0.0.1:1123 ESTABLISHED TCP 127.0.0.1:1123 127.0.0.1:1122 ESTABLISHED TCP ***.***.***.***:139 0.0.0.0:0 LISTENING TCP ***.***.***.***:1119 ***.***.***.17:3128 CLOSE_WAIT UDP 0.0.0.0:7 *:* UDP 0.0.0.0:9 *:* UDP 0.0.0.0:13 *:* UDP 0.0.0.0:17 *:* UDP 0.0.0.0:19 *:* UDP 0.0.0.0:445 *:* UDP 0.0.0.0:500 *:* UDP 0.0.0.0:1039 *:* UDP 0.0.0.0:1075 *:* UDP 0.0.0.0:4500 *:* UDP 0.0.0.0:6514 *:* UDP 0.0.0.0:6515 *:* UDP 0.0.0.0:6516 *:* UDP 0.0.0.0:12352 *:* UDP 127.0.0.1:123 *:* UDP 127.0.0.1:1036 *:* UDP 127.0.0.1:1900 *:* UDP ***.***.***.***:123 *:* UDP ***.***.***.***:137 *:* UDP ***.***.***.***:138 *:* UDP ***.***.***.***:520 *:* UDP ***.***.***.***:1900 *:*

  • パソコン通信とインターネットの違い。

    パソコン初心者です。両者の違いについて、次のような記述がありました→「インターネットが『ネットワーク同士のネットワーク』であるのに対し、パソコン通信はその前段階の『単独のネットワーク』であるといえる。」 でも、それじゃぁ、パソコン通信のネットワークをつなげたらインターネットになるのでしょうか?多分ならないと思います、というか出来ない気がします。 素人なりに推理するに、両者は共に電話線を使っているけど、その電話線の中を通る信号の種類(プロトコル?)が違うのではないでしょうか。 (1)そう考えれば、インターネットはTCP/IPプロトコルという信号を使っている世界規模のパソコン通信と考えることもできるのではないか?と思うのですがどうでしょうか。 (2)また、通常の電話の時に使用する信号と、インターネットの時に使用する信号(TCP/IPプロトコル?)は別物であるにもかかわらず、TCP/IPプロトコルで電話と同じことをしちゃうのが、最近よく聞くIP電話なのではないか、と思うのですがどうでしょうか。 多分、二つとも間違っていると思うので訂正してください。

  • 通信方法について

    こんばんは。 今回は通信における基礎的ことをうかがいたいと思います。 例えばクライアントからサーバーへFTPでデータをPUTするとします。 ここでデータ通信はどのように行われているのでしょうか? 実際の通信処理はTCP/IPプロトコルが行っていると思います。 では、アプリケーションプロトコル(FTP)はどのような動きをするのでしょうか? TCP/IP(下位層)に対して、通信を開始せよ!といった命令でも出すの でしょうか? socketの勉強をすると良いと薦められましたが、何か良いサイト等が ありましたら教えてください。

  • アクセスリストですべての通信を許可したいとき

    シスコのルータやスイッチの設定について質問です。 拡張アクセスリストで、プロトコルをTCPとかUDPとか指定すると思いますが、すべてのプロトコルを対象にするときはどのように書くのでしょうか。 IP?ですか?

  • IPマスカレード下でのICMPやGREの通信方法

    IPマスカレード下でプライベートIPからグローバルIPにアクセスするとき、ルーターはTCP/UDPのポートを変換して、変換テーブルを持つことで、グローバルから返ってきたデーターの届け先プライベートIPを判断していると思うのですが、ICMP(Ping)やGRE(PPTP)など、TCP/UDPではなく、ポート番号を持たないプロトコルの場合はどのようにプライベートIPと関連付けているのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう