質問: 現在、自社製の複数の機器をイーサネットで接続して、同期・連携させるための設計をしています。 当社では今までもそのように複数の機器をイーサネット接続する製品を作ってきてはいるのですが、自社製品間通信というのもあり、その通信プロトコルはTCPやUDPには準拠していますが、アプリケーション層は完全に独自プロトコルを作成してきていました。 このたび当社既存にとらわれない新しい仕組みを考えようとしています。 そこで、一般的に、自社製品通信の場合、プロトコル仕様はどのように実現しているのか気になりました。 経験者の方や、同じように通信プロトコル仕様を考えたりするエンジニアの方に質問というかご教授願いたいのですが、 当たり障りのない程度に、どのように実現しているかお教え願えませんでしょうか。 パターンとしては以下のどれかに当てはまるのかなぁと思います。 1. 当社と同じように、アプリケーション層のみ独自プロトコルを定義して使用 2. アプリケーション層にも、HTTPなどの既存一般的プロトコルを使用 3. 下位層に対しても独自プロトコルを定義して使用 私自身、このようなハードウェア構成が絡んだ設計経験が乏しいので、合わせてこのような設計をする際に気を付けるべきこと等もあればアドバイス頂ければ幸いです。 以上、ご教授の程、よろしくお願いいたします。 --- <補足> ちなみに、私の場合は、以下のような用途を想定した製品です。 * 基本的には自社製品間でのイーサネット接続が主(というか当社ではそれしか経験がない)ですが、他社製品との接続も考慮しておきたい * 接続する機器は、基本的にはイーサネット接続での通信のみを想定している。機器構成はPCのようにスペックが比較的高いものから、LANポートを搭載したマイコン(用語の使い方が正しくないかもしれませんが・・・)のようにスペックが限定的なものまで幅が広いです。
回答: 通信プロトコルを設計したことはありませんが、低レイヤに手を出す理由というのは一般的に以下のようなものだと思います。 * 性能の向上 * 既製品の制約の解消 * 既製品にはない機能の実現 どのレイヤから作るかは、構築システムにおいて上記のような点から得られるメリットと、開発や保守に必要なコストを考慮して決定する必要があります。低いレイヤから構築するほど自由度は上がりますが、多くの車輪の再発明が必要になりコストが増大します。 > > このたび当社既存にとらわれない新しい仕組みを考えようとしています。 > > > その理由が述べられていませんが、独自プロトコルを作ること自体が目的になっていませんでしょうか。 > > 基本的には自社製品間でのイーサネット接続が主(というか当社ではそれしか経験がない)ですが、他社製品との接続も考慮しておきたい > > > 他社製品との接続が必要であれば、一般的には独自プロトコルを用いない方がよいでしょう。 > > 接続する機器は、基本的にはイーサネット接続での通信のみを想定している。機器構成はPCのようにスペックが比較的高いものから、LANポートを搭載したマイコン(用語の使い方が正しくないかもしれませんが・・・)のようにスペックが限定的なものまで幅が広いです。 > > > 多数のプラットフォームをサポートするのであれば、その分ライブラリの開発や保守のコストは増加するでしょう。