私は学生で、C99標準で簡単なアプリケーションを作成しています。プログラムはUbuntuで動作するはずです。
1つの問題があります-帯域幅や遅延などのWifiパラメーターを取得する方法がわかりません。私はこれをどのように行うのか分かりません。これは、標準関数または任意のLinux API(ech I am windows user)を使用して行うことができますか?
たぶん、具体的な問題についてもっと教えてください。ここでは、特定のワイヤレス リンク、つまり 2 つの 802.11 ステーション間のリンクのスループットと遅延に関心があると仮定します。これは、アクセス ポイントとクライアント間のリンク、または 2 つのアドホック ステーション間のリンクである可能性があります。
簡単に言えば、そのような API はありません。実際、これら 2 つのリンク パラメータを推定することさえ簡単ではありません。それらは、信号品質、送信ステーションで使用されるデータ レート、干渉、チャネル使用率、両端のコンピュータ システムの負荷、およびおそらく他の多くの要因に依存します。
使用しているワイヤレス ドライバによっては、現在使用されているデータ レートに関する情報と、通信しているステーションのパケット損失統計情報を取得できる場合があります。net/mac80211/sta_info.h
Linux カーネル ソース ツリーを見てください。MadWifiを使用している場合は、以下のファイル/proc/net/madwifi/ath0/
と の出力に役立つ情報が含まれている可能性がありますwlanconfig ath0 list sta
。
ただし、できることは予測することだけです。リンクの品質が突然変化した場合、予測が完全に間違っている可能性があります。
一般に、wifi デバイスの帯域幅や遅延はわかりません。帯域幅と遅延は、リンクからの情報のタイプです。私の知る限り、WiFi ドライバーにはそのような情報はありません。最もリンクに関連する情報は SINR です。帯域幅または遅延を測定するには、独自のコードを作成する必要があります。