3

私はこのテーマの専門家ではありません。あなたの提案が必要です。イーサネット/LAN 上にいくつかのデバイスがあります。私は、これらのデバイスがネットワーク構成に入ることなく、LAN 経由で通信できるようにしたいと考えていました。以下は私の計画です。これが達成可能かどうか教えてください。

1) これらのデバイスに TCP/IP スタックをインストールします

2) デバイス 1、デバイス 2 などのホスト名を付けます。

3) これらのデバイスをローカル リンク ネットワーキング用に構成して、デバイス自体を構成し、IP を取得できるようにします。

4) ソケット プログラミングを使用し、ホスト名を使用して各デバイスにアクセスします。

これがあまり手間をかけずにできるかどうか、また、上記の点で何か見逃しているかどうかをお知らせください。前もって感謝します。

4

1 に答える 1

2

これは基本的に良いアプローチです。

組み込みデバイスに優れた IPv6 スタックがある場合は、IPv4 の代わりにそれを使用することをお勧めします。リンク ローカル アドレスは IPv6 でより適切に機能します。ほとんどの IPv4 スタックは、最初に DHCP サーバーからアドレスを取得しようとするように構成されており、取得できない場合にのみフォールバックしてローカル アドレスをリンクします。リンク ローカル アドレスと DHCP アドレスは相互に排他的である可能性があるため、DHCP が試行されてタイムアウトになるまで、リンク ローカル アドレスは動作しません。DHCP が定期的に再試行すると、リンク ローカル アドレスが中断されることさえあります。通常、デバイスは互いに接続され、DHCP サーバーはありませんが、DHCP を無効にしたくありませんより広いネットワークに接続する場合は、DHCP アドレスを取得します。一方、IPv6 では、インターフェイスが起動するとすぐにリンク ローカル アドレスが起動し、(autoconf または DHCPv6 からの) 他の IP アドレスが行き来する間、継続的に起動したままになります。

ローカル アドレスをリンクするだけでは、デバイスはホスト名で相互に接続できませんが、dns-sd (mDNS、zeroconf) では接続できます。Linux を使用している場合は、avahi を dns-sd スタックとして使用できます。

ホスト名を使用するよりも、dns-sd サービス タイプでデバイスを相互にプローブすることを検討してください。デバイス間でカスタム プロトコルを使用している場合は、一意のサービス tpe 名を作成し、デバイスにそれ自体をアドバタイズさせ、dns-sd でプローブします。

于 2012-05-15T21:41:54.523 に答える