TCP / IPで通信遅延を定式化するにはどうすればよいですか?


12

TCP / IPを使用して通信する2つのノード間のラウンドトリップレイテンシを推定するための数学モデル/方程式を導出するのは困難です。ノードは、HTTPプロトコルに基づいてデータを交換しています。このモデルでは、調査する最も重要な要因は、ネットワーク内の2つのノード間の物理距離、中間ホップの数、帯域幅、各ホップでの処理遅延です。Webを検索しましたが、この意味では何も見つかりませんでした。むしろ、回線交換ネットワークとUDPプロトコルについて何かを見つけました。TCPに合わせてカスタマイズできますか?


これは移動するターゲットであり、モデルの定数を変更する非常に多くの依存関係があります。たとえば、ホップごとの転送遅延を含める場合、ベースラインとして、各デバイスの製造元とモデルを知る必要があります。インターネットや他のネットワーク経由など、パス内の各デバイスを制御したり、知らない場合、これを考慮することは事実上不可能です。パスの各ホップに関するすべてを知っていると仮定すると、ベースライン転送遅延、たとえばスイッチモデル「A」に対して1.2マイクロ秒、スイッチモデル「B」に対して5.0などを適用できます。
netdad

1
ここで+1すぎ!、あなたのSHOULDフラグのSO、今その重複をあなたの質問を削除するには
Grijesh Chauhan

ソースコード:httping、コメントを使用httping -Gbg www.google.com -c 5
Grijesh Chauhan

@Espanta、レイテンシーだけでなくスループットも推定するのが目標ですか?スループットは、SACK、RWIN、アプリプロトコルのチャット、およびもちろん遅延などのTCP機能に大きく依存しています。
generalnetworkerror

@ generalnetworkerror、httpのgetおよびpostリクエストおよびレスポンスにラウンドトリップレイテンシが必要です。
エスパンタ

回答:


8

これは非常に複雑なプロセスであるため、RTTを正確に予測するのに役立つ方程式を定式化することは非常に困難です。せいぜい、各段階の平均値を使用するモデルを作成でき、特定の状況で「よく知っている」場合に調整できるモデルを作成できると思います。これは私が現在勉強しているものですので、私はこれまでに知っていることを伝えることができます(最初から、物理層から):

  • Electronics SEに関する私の質問をご覧ください。イーサネットのエンコード遅延、およびケーブルの周波数定格通信遅延のための銅線を介した電気の速度(信号伝搬?)との関係。標準化された速度(100 Mbps、1 Gbps、10 Gbpsなど)を使用するため、ファイバーや銅を別の方法で処理しないでください。2つの「遅延」はそれと同じくらい近いですが、銅は明らかに信号を伝えることができません。私が持っているこの質問を、私は今の答えを知っていますか物理SEサイト上で。私はちょうどそれを正す時間を見つける必要があるので、あなたが興味を持っているなら、それに注意してください)。

  • リンクの終わりに、デバイスによってさらに多くの遅延が追加されます。「パスに沿った2つのスイッチはXms遅延、4つのスイッチは2 * Xms、2つのルーターはYms ...など」と言う標準的な方法はありません。たとえば、1Gpbsを使用し、パス内のデバイスをラインレートで転送すると仮定すると、1000000000bpsであることがわかっているため、物理インターフェイスは固定エンコードレート(ビットあたり1ナノ秒から最大使用中のシンボルエンコーディングスキームは、10bなど)

  • 認識して考慮に入れる必要がある遅延には、物理​​層での3つの主要な種類があります。シリアル化遅延、エンコード遅延、伝搬遅延(および処理遅延、キューイング遅延、エンコードおよびデコード遅延、これらは物理層の上にありますが、言及する必要があります!)。これらは、インターネット、VoIP:詳細分析、スライド13 、Google Scholarにロードされているほか、さらに多くの資料で十分に文書化されています。

  • プロトコルスタックを上に移動するとき、宛先MACは各スイッチカムテーブルにあり、IP層ではARPテーブルの宛先MACにあるという前提で作業します。これらのディスカバリプロセスによって引き起こされる余分な遅延は、フローの最初のパケットでのみ発生するため、タイムアウトを上げてgratuitous ARPなどを送信することで回避できます。

  • アプリケーション層に到達すると、これは非常に困難になります。これは、要求を処理するサーバー(たとえば)に依存するためであり、割り込み遅延の影響を受けます。負荷による要求とコンテキストの切り替えを処理するために必要な割り込みの数は予測できません。

私はあなたの質問であなたを助けたいと思います、悲しいことにこれは私が今のところ時間があるだけです。この回答を今夜遅くか明日に更新するかもしれません。これまでの投稿を掲載したいと思いました。

それまでの間、ほとんどの人は、約0.6 * c(C =光の速度)の物理的な銅/繊維層での遅延の数値で作業する傾向があります。また、XパケットごとのTCPのACKの交換について考える必要があります。これは、たとえばSACKを使用している場合や、ジャンボフレームや大きなMSSサイズを使用している場合は異なります(MTUも考慮する必要があります!) 、より多くの中間ACKを送信する場合(転送されるデータの量が重要な場合)。また、悪名高いBandwidth Delay Productを考慮に入れる必要があり、そのページで私がやった愚かな誤解をしないでください。ここでさまざまなシンプルな(そして非常にい)データ計算機の作成を開始しました。進行中の作業を繰り返しますが、すぐに更新してみます。あなたがやろうとしているものに似た計算機を追加する予定です。興味のある方のために光とファイバーの計算機もいくつか作成しましたが、再び、時間がない!、まだそれらをアップロードすることはできません。近日中にこの回答を更新するために、できるだけ早く試してみます。

PS QoSについて言及するのを忘れました!QoSがパスのどこかで機能している場合、RTTを計算するのは非常に困難になります!


ありがとう。それは非常に詳細です。2つのノード間のホップ数が、有線ネットワークの2つのノード間の物理的距離に大きな影響を与えることを強調する必要があります。(少なくとも、私の実際のベンチマークがそれを示しているので。)それで、私はすべてをまとめて、すぐに私のモデルに来ます。読んで、評価して、答えて、答えてくれるすべての人に感謝します。
エスパンタ

テレコム使用ファイバ(OPがデータセンター内だけで遅延を処理していないか、物理インフラストラクチャを完全に制御できるセットアップを想定している場合)は興味深いものになり、モデリングが不可能になります。問題を強調する逸話。私はかつてT-1のケンタッキー州ルイビル<->ケンタッキー州レキシントンとケンタッキー州ルイビル<->シンシナティ、オハイオ州に失敗しました。電話会社に電話すると、イリノイ州西部での繊維切断が原因であると私に知らせました。地図を見て、なぜそれがおかしいのかを見てください。ただし、高帯域幅のリンクは、この種の電話会社の狂気の犠牲になる可能性が低くなります。
ジェフマクアダムス

5

(私は他の人が投稿したことを指摘したいの優れた基本モデルはシンプルで、あなただけの実施例番号にプラグインを知りたい場合は、。どのように遅延がら仕事とどのようなそれらの原因についての回答をしかし、OPはモデリングについて尋ねた理由遅延は彼らが何であるか、そして他のみんなの答えを見る:^)

ネットワークレイテンシは、1つのエンドポイントから他のエンドポイントまでの通過時間であり、Nホップにまたがっています。

したがって、N-1個の中間ノードを持つN個のセグメント(ホップ)があります。各ノードには遅延(キュー遅延、処理遅延など、そのノードに対するいくつかの事柄の累積的な影響)があり、各セグメントには通過遅延があります。全体としては2N-1個の独立変数です。したがって、それはseg1 + node1 + seg2 ... + node(N-1)+ segN 1ホップ、ただ= seg1、2つの希望はseg1 + node1 + seg2などです。

次に、これらすべてのピースが何であるかを定義する必要があります。したがって、CATVネットワーク、衛星リンク、光ファイバーリンク、イーサネットなどでモデルネットワークを構築できます。これらのテクノロジーのそれぞれについて、サンプル情報を調べる必要があります。

トランジット遅延は、ほぼデータサイズをセグメントの伝送速度で割ったものになります。より正確なモデルが必要な場合は、フライトタイムラグを追加します-およそセグメントの長さをデータフローの速度(光の速度に近似)で割った値です。これは、衛星リンクが関係している場合に重要です。静止衛星までの上下は重要です。

各ノードの遅延は、モデルに配置する機器に基づいて推定する必要があります。

アプリケーションの待ち時間(たとえば、FTP転送のデータフローの開始までの遅延)が必要な場合は、ネットワークの待ち時間が発生する回数をカウントすることで構築します。たとえば、3ウェイTCPハンドシェイクでは、ネットワークのレイテンシが3倍になり、アプリケーションが見るものまで蓄積されます。


3

どちらかの側でパケットキャプチャを取得することでラウンドトリップレイテンシを推定し、監視対象のマシンから送信される要求と応答が返される間の遅延を測定できます。たとえば、SYNがリモートマシンに送信された時間をマークし、SYN + ACK応答が入った時間をマークすると、その差は、ラウンドトリップTCPレイテンシのかなり良い目安となります。

これは実際のネットワーク遅延よりも大きくなり、どれだけ大きくなるかはどちらかのマシンの負荷に依存することに注意してください。


あなたの答えに感謝しますが、機械のコーディングや解釈を使用して測定したくないので、数学モデルを使用して定式化する必要があります。たとえば、合計遅延=合計伝播+合計送信+合計ストア&フォワード+合計処理。そして、これらのタイミングごとに、別の式を使用できます。そのため、数学的に測定できます。
エスパンタ

3

2つのホスト間の遅延は、いくつかの要因に依存します。

  • 伝播遅延
  • シリアル化遅延
  • キューイング/バッファリングの遅延

伝播遅延は、パケットが2つの場所の間を移動するのに物理的にかかる時間です。ファイバー内の光の速度は約200000 km / sです。私が住んでいるスウェーデンは約1570 kmなので、7.85ミリ秒になりますが、実際にはそれは鳥のビューを介した距離であるためです。

シリアル化遅延とは、物理メディア、つまりネットワークデバイス上のインターフェイスを介してパケットをシリアル化するのにかかる時間です。2 Mbit接続があり、パケットをシリアル化するのに6ミリ秒になる1500バイトのパケットを送信している場合(12000/2000000)。

キューイング/バッファリング遅延は、パケットがインターフェイスに送信される前にキュー/バッファに留まる時間です。インターフェイスの速度と使用されるバッファの大きさに応じて、これは次に何もしないか、大幅な遅延になる可能性があります。

それから、ホストがパケットを生成し、アプリケーションがそれらを処理するための遅延が発生します。HTTP遅延を測定するアプリケーションがあります。人々はウェブサイトをあきらめる前にあまり遅れをとらないので、それは重要な要素です。


ホップ数はどうですか?および各ホップでの遅延?
エスパンタ

いくつかの要因はシリアル化やキューイングのように変化するため、一般的な式を作成することは困難です。これについて書いた人がいます。ccieflyer.com/pdf/2009-Mar-Oleg-Berzin.pdf-数学は私の数学スキルを超えています:)
ダニエルディブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.