接続されたクライアントを確認する最も信頼性の高い方法は何ですか?

接続されたクライアントを確認する最も信頼性の高い方法は何ですか?

私はYoctoを使って最初から開発した組み込みLinuxオペレーティングシステムを持っています。これはWindows XP / 7クライアントと通信します。組み込みオペレーティングシステムはDHCPサーバーを実行し、クライアントにアドレスを提供します。問題は、クライアントが「ロック」され、多くの標準ポートとタスクの実行方法をブロックすることです。組み込みシステムがクライアントの存在を検出すると、起動スクリプトはテストシステムのサーバーを起動します。それ以外の場合は、別のオペレーティングシステムにkexecします。システムの起動時間を大幅に延ばすことなく、起動時に(Linux上で)イーサネットを介して接続されたクライアントの存在を検出するための最良の方法は何ですか?

私が試したこととうまくいかないのは次のとおりです。

  1. ICMPパケットはクライアント側でブロックされるため、既存のpingは機能しません。
  2. arpingは機能しますが(ARPスキャンを含むnmapも)、Windowsクライアントは「スマート」でダイヤルアップを試みるため、実際に接続を確立するのに20〜25秒かかります。これは理想的には5〜5秒以内に許可されます。 10秒以内に何かが検出されました。速度を上げるためにサーバー側に設定できるものはありますか?常にそのパーティションで最初に起動するので、最速のソリューションが最善のソリューションです。
  3. ifplugd、ethtool、netplugd、および/sys/class/net/eth0/operstateおよび/sys/class/net/eth0/carrierの検索は機能しません。組み込みシステムのイーサネットポートが内部スイッチに接続されているため、常に「Up」および「Connect」のハードウェア側
  4. 将来のソリューションでは、クライアントでBonjourを使用し、サーバーでAvahiを使用して未接続のプロトコルを使用できますが、実装に時間がかかり、クライアントソフトウェアに追加するすべてのタスクのために一時的なソリューションが必要になります。承認を受ける時間です。

繰り返しますが、デバイスが他の会社によって構成されロックされているため、クライアント側では何もできません。それでは、クライアントが存在するかどうかを検出するためにサーバーで何を試すことができますか?

答え1

それで内部スイッチがあると言われました。このスイッチ管理にアクセスできますか? I2C(内蔵スイッチ)またはSNMP経由?

組み込みオペレーティングシステムがDHCPサーバーを実行していることを宣言します。クライアントがDHCP要求を行ったときに、クライアントが存在してアクセスできることを証明しませんか?

「インテリジェント」と「電話をかける」がどういう意味なのかわかりません。 Windowsコンピュータがイーサネットを介して通信するには、ARPに応答する必要があります。アルペジオはこれまで最高の選択のようです。

関連情報