2009-07-23 7 views
0

クライアントにWeb応答を送信するのにかかる時間を測定する必要があります(サーバー側からのみ)。私はこれを行うためのAjaxianとクライアント側の方法があることを知っていますが、私はクライアント側に時間を測定するサーバー側の唯一の方法に限られています。サーバーだけを使用してクライアントにHTTP応答時間を返す

おおよそは、サーバが応答を送信した後にクライアントブラウザから返されたACKを使用して近似できますか?

記載の通り... http://www.usenix.org/event/usenix02/fu/fu_html/node10.html

この図は信頼できますか?

答えて

0

ACKは送信する2つのセグメントごとに1回程度届きます(すべてがOKの場合)。彼らは、クライアントがデータを受け入れたことを伝えます。したがって、クライアントからサーバーへのトリップ時間が同じであると仮定すると、deltaAckNum/deltaTは、平均速度の大きさの妥当な推定値を与えるべきです。明らかに、これらの2つのACKセグメントがより多くのパケットにまたがるほど良い。

タイムスタンプオプションを見れば、RTTの見積もりを得ることができます。一方の側がTSValでタイムスタンプを送信し、もう一方がリターンパケットのTSEcrフィールドにそれをエコーし​​ます。クライアントからサーバーまでの遅延だけではありませんが、それは感情を得るのに役立ちます。

ものの、言及し「しかし」がいくつかあります:誰かが訴えので、あなたは、特に巨大なファイルの転送のパフォーマンスを向上しようとしない限り、

1)は、それは非常によく そのボトルネックになるかもしれませんスタックの他の場所にあります。 (例えば、要素が常に互いに見えるようにダウンロードされることを要求する、要素の相互依存性)。デバッグのためにはYSlowが良いでしょう。

2)疑わしいクライアントは、TCPレベルでデータをACKするが、それ自体がいくつかの "巧妙な"ことを行う(シェーピング/コンテンツフィルタリングなど)プロキシ様のミドルボックスの背後にあるかもしれない。

関連する問題