2 つのノード間のワイヤレス リンクの品質のメトリックを取得したいと考えています。問題は、これらのノードが頻繁にメッセージを交換していないことですが、各メッセージには次のメッセージの送信予定時刻が含まれています。
現在、私は次のようなものを使用しています:
if (message arrived in time)
link_quality = link_quality/2 + 0.5
else
link_quality = link_quality/2
rfc3626 で提案されているように
現在、リンクの品質は明らかに大きく変化します。パケットが 1 つ失われると、半分になります。ヒステリシスのみに使用されます。
A と B の 2 つのノードがあるとします。B に対する A の link_quality は、B からのメッセージを現在どの程度受信しているかを意味します。次に、B にアナウンス1 + link_quality * METRIC_MAX
(0 は無効) するため、B は A にメッセージをどれだけ適切に送信できるかを認識します。アナウンスは突然の変更の可能性があるので、私はこのようなことをしたいと思っていました
link_metric = (3 * link_metric + new_link_metric) / 4
現在、これはわずかに改善されていますが、依然として変動が大きくなっています。古い値の「重み」をさらに増やすと、link_metric が現実的な値になるまでにかなりの時間がかかります。
何を提案しますか?