一方向レイテンシ/ジッタ/パケットロスを測定する


10

ルートの輻輳とパケット損失原因で遅延とStDev増加していますが、フォワードパスとリバースパスが異なるネットワーク(例:init7.net、もう1つはhe.net)を経由するため、理解するのが非常に困難ですどのネットワークまたはホストが、輻輳、パケット損失、ジッター、および遅延の増加を引き起こしています。

フォワードとリバースmtrが正確な原因を特定できず、NOC @の連絡先が応答しないか、問題のパスで損失がないと主張した後、責任を絞り込む方法はありますか?(私はOpenBSDを使用しています。)

私はmtr、輻輳が発生している可能性がある2つのネットワークの両方の一部の顧客に直接実行してみましたが、特に、たとえばhe.netには多くのPOPがあり、しばしば特定の入口と出口POPの間で異なるルートが取得されるためmtr、ネットワークでパケットを失う可能性のある出口POPで直接ホスト(tservなど)にアクセスしようとすると、別のhe.netパスが到達するまったく同じPOPであり、パケット損失は発生しません。これは、何も問題がないことを証明します(一部のルートが実際に過負荷になり、他のルートが混雑しないようにする一方で、非顧客からのNOC @要求を無視する可能性があるという示唆以外)。


何か回答がありましたか?もしそうなら、質問が永遠にポップアップし続けないように答えを受け入れ、答えを探します。または、独自の回答を提供して受け入れることもできます。
Ron Maupin

回答:


9

これを行う1つの方法は、UTCの真夜中からミリ秒単位のICMPタイムスタンプです。これには、両端を制御する必要がないという利点もあります。遠端がファイアウォールで保護されていない限り、機能する可能性は十分にあります。

ただし、信頼性の高い一方向測定を行うには、両端で確実に同じ時間を確保する必要があります。ICMPタイムスタンプは1ミリ秒の精度しかないため(多くのアプリケーションにはこれで十分ではありませんが、これには十分です)、ICMPタイムスタンプが有用なデータを提供する非協力ホストを見つけることはかなり簡単です。

両端を制御する場合は、NTPを1つのサーバーと同じサーバーのみに同期していることを確認してください。絶対クロックはそれほど重要ではありません。できるだけ同じ時間を体験することが重要です。

ICMPタイムスタンプが十分でない場合、両端を制御するときに測定を行うために、ruby / perl / pythonまたはCの10行を書くのは非常に簡単です。

ICMPタイムスタンプ測定を単方向で行うソフトウェアを実際に提案することはできません。hping2はICMPタイムスタンプの送信をサポートしていますが、何らかの理由で単方向の値を出力しません。私が書いたパッチを表示片道待ち時間にhping2のため。


うわー、あなたのhping --icmp-ts余分な計算はとても流血です!ソースを取得してバイナリを再コンパイルするのが面倒なので、私は自分のhpingパッチ(stackoverflow.com/q/20172028/1122270)のシェルバージョンを手に入れました。これはhetznerへのinit7パス上でかなり一定の時間を示し、 hetznerからのhe.netパスによるマップ全体の差異!私はついにinit7が真実を語っていることの決定的な証拠を手に入れました!私はこれだけで同じntpサーバーを使用しないことを主張しますが、ntpdが有効であることを確認してください(設定をまったく変更する必要はありませんでしたが、値は妥当に見えます)。
cnst 2013年

1
正確な実時間を気にする場合は、少なくとも3つのNTPサーバーが必要になります(誤ったティッカーを検出できるようにするには、2つのNTPサーバーが最悪のオプションです)。ただし、ここでは壁時間は関係ありません。壁に関係なく、同じクロックで正確にカチカチ音を立てることを重視しています。したがって、単方向測定の場合、最適な結果は正確なクロックから得られ、実時間は無関係です。結果が出ました。
ytti 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.