メッシュネットワーク上にネットワークコーディングを実装しようとしています。したがって、いくつかの宛先にパケットを送信する必要があります。これは、ブロードキャストパケットを使用する方法です。しかし、これが990KB以下に制限されている理由を理解できません。
やるべき設定はありますか?
メッシュネットワーク上にネットワークコーディングを実装しようとしています。したがって、いくつかの宛先にパケットを送信する必要があります。これは、ブロードキャストパケットを使用する方法です。しかし、これが990KB以下に制限されている理由を理解できません。
やるべき設定はありますか?
回答:
802.11ワイヤレス(私はあなたのケースだと思います)では、通常、ブロードキャスト/マルチキャストフレーム(および多くの管理フレーム)は、最低の基本/基本/必須(用語はベンダーによって異なります)データレートで送信されます。これは、サポートされているデータレートとは別のものです。
通常、最良の範囲と最大の互換性のために、これは1Mbpsのデータレートにデフォルト設定されますが、過去数年間、一部のベンダーがこのデフォルトを増やしてきました。
一部のベンダーには、マルチキャストからユニキャストへの変換を組み込んで、何らかの形のマルチキャストスヌーピングでマルチキャストクライアントを追跡しますが、同様のブロードキャスト手段を知らない(ワイヤレスデバイスは、必要なすべてのクライアントを知ることができない)到達すること)。
アドホックメッシュネットワークについて話している場合、多くの場合、ドライバー設定でこれを制御できません。
マルチキャストレートは、すべてのデバイスが正常に受信できるように、共通の最低基準でなければなりません。マルチキャストフレームは確認応答できないため[1]、ピアが受信に失敗した場合、送信者はそのことを認識せず、フレームを再送信しません。レシーバーあたりの損失率が1%を超えることは一般的です。同じチャネルで大量のユニキャストトラフィックが発生している場合は、はるかに高い損失率が予想されます。
基本的なマルチキャストレートを上げると、損失率も上がります。ただし、ネイティブパケットを組み合わせて冗長性を導入し、完全な損失率を補償する必要があるため、ネットワークはこれに耐えられるはずです。マルチキャスト802.11管理フレーム(ビーコンを含む)は、高い損失率をサポートするように設計されていないことに注意してください。
Linuxでは、ほとんどのmac802.11ドライバーがマルチキャストレートの設定をサポートする必要があります。それほど最近のカーネルでは、IBSSとメッシュの両方の結合時にこれを実行する必要があります。and コマンドのオプションiw
がありmcast-rate
ます。ibss join
mesh join
しかし、かなり最近のカーネルを実行していて、iw
両方がをサポートしているNL80211_CMD_SET_MCAST_RATE
場合は、いつでも変更できます。これは、
iw dev wlanX set mcast_rate 6
6Mbpsマルチキャストレートを設定します。
[1]たぶん、今はできるでしょう。802.11規格には、マルチキャストフレームを確認するための修正案が提案されています。すべてのステーションは、マルチキャストフレームを正常に受信した後、ランダムバックオフを選択し、ACKをトランスミッタに送信します。もちろん、ACKは衝突する可能性があるため、トランスミッタは再送信し、すべてのレシーバがフレームを正常に確認するまで、より大きなバックオフを許可します。
ワイヤレスカードのビットレートを強制することで、ビットレートを変更することが実際に可能です。Linuxでは、コマンドは次のとおりです。
sudo iwconfig wlan0レート11M
iwconfig
廃止されました。使用するすべてのioctlは、ハッキングされているか、完全に偽造されているか、何も実行されていません。とにかく、この特定のコマンドが行うことは恐ろしいことです。そしてそれはあなたが望むものではありません:これは利用可能なレートを制限します、それは決してそれを修正しません。そして、IBSSの場合、この設定が長く存続するかどうかさえわかりません。