- ベストアンサー
LAN通信のヘッダ部、フッタ部について
シリアル通信では、ヘッダにSTX、フッタにETXを付加することが多いと思いますが、LAN通信(バイナリ)の場合には、どのようなヘッダとフッタが必要でしょうか? 不要かもしれませんが、あえて付けるとしたらどのようなコードが一般的でしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
アプリケーション層での実装であれば自由に作って問題ありません。 シリアル通信のSTXとかETXはデータリンク層とかネットワーク層に該当する部分になるので、ここは一般的なLANだとMACとかIPに該当する部分なので既存のプロトコル準じるのがいいかと思いますが、通常この部分を自らプログラミングする事は無く、ライブラリーやOSの機能を利用する事になるんじゃないでしょうか。
その他の回答 (2)
- lumiheart
- ベストアンサー率47% (1148/2427)
シリアル通信のプロトコルをTCPに流用した実例としては modbusTCPが有名ですね 但し、シリアル通信のプロトコルそのまんまでもない、一部は異なる http://www.softech.co.jp/mm_120201_plc.htm http://www.m-system.co.jp/mssjapanese/kaisetsu/nmmodbus.pdf http://www.ibsjapan.co.jp/tech/details/modbus/modbustcp.html http://www.modbus.org/ 但し、これが一般的かどうかは別です ただ、シリアル通信のプロトコルをTCPに流用した実例は少ないので 参考に成る実例はあまり見つかりません
- skp026
- ベストアンサー率45% (1010/2238)
Windowsなどのパソコンか、最近の組み込みシステムか、 過去存在したシンプルなDOS、おのおので説明はかわります。 全ては困難なので、詳細はそれぞれの開発者情報をご覧ください。 LANということなのでTCP/IPの決まり事にそった 通信をすることになると思います。 (TCP/IP以外もありますが、一般的ということで) 概念から理解する上で、以下の情報が参考になります。 http://monoist.atmarkit.co.jp/mn/articles/1202/09/news001.html 上記では実際の通信部分はosにまかせています。 現在のパソコンもTCP/IPでの通信はosまかせです。 アプリから直接は扱いませんので、通信の結果のみ受け取り、 通信中のヘッダフッタやリトライなどは意識しません。 ざっくり言えば、通信要求して、失敗成功を受けとります。 ※ Windowsより前のDOSの時代でも、TCPのライブラリを購入して それをアプリから利用するのが一般的なようでした。 ※ アプリ同士としては、TCP/IP上でさらに通信の決まり事を作り 高度なやりとりをしています。 ※ 直接さわれませんが、通信内容を見ることはできます。 microsoft message analyzer関連の記事です。 http://www.atmarkit.co.jp/ait/articles/1409/19/news010.html ご希望に直結してないとは思いますが、 参考になればと書き込みました。 参考にならなかったらごめんなさい。
お礼
大変わかりやすいご回答ありがとうございました。 LAN通信なのに、STX~ETXで設計する人が居ましたので、違和感を感じていたのですが、自由で良いということですね。 その他のご説明も大変参考になりました。