0

サーバー側からのみ、Web 応答をクライアントに送信するのにかかる時間を測定する必要があります。これを行うには ajaxian およびクライアント側の方法があることは知っていますが、クライアントまでの時間を測定する方法はサーバー側のみに制限されています。

サーバーが応答を送信した後にクライアント ブラウザから返された ACK を使用して、これを大まかに概算することは可能ですか?

... http://www.usenix.org/event/usenix02/fu/fu_html/node10.htmlで説明されているように。

この数字は信頼できますか?

4

1 に答える 1

0

ACK は、送信する 2 つのセグメントごとにおよそ 1 回到着します (すべて問題がない場合)。クライアントがデータを受け入れたことを伝えます。したがって、クライアントからサーバーへの移動時間が同じであると仮定すると、deltaAckNum/deltaT は、平均速度がどれくらい大きいかについて妥当な見積もりを与えるはずです。明らかに、これら 2 つの ACK セグメントがまたがるパケットが多ければ多いほど、より良い結果が得られます。

Timestampオプションを見ると、さまざまな時点でのRTTの推定値を取得できます.一方がTSValでタイムスタンプを送信すると、もう一方はそれを返信パケットのTSEcrフィールドにエコーします. クライアントからサーバーへの遅延だけではありませんが、感覚をつかむのに役立ちます.

ただし、言及すべき「しかし」がいくつかあります。

1) 誰かが文句を言ったために特に巨大なファイルの転送のパフォーマンスを向上させようとしない限り、ボトルネックはスタックのどこかにある可能性があります。(たとえば、常に表示されるようにするにはすべてをダウンロードする必要がある要素同士の依存関係など)。デバッグにはYSlowが役立ちます。

2) 問題のクライアントは、TCP レベルでデータに ACK を送信するプロキシのようなミドルボックスの背後にある可能性がありますが、それ自体でいくつかの「賢い」こと (シェーピング/コンテンツ フィルタリング/など) を行います。

于 2009-07-24T08:15:25.230 に答える