通信距離が長くなるとTCP帯域が低下する事実は、理論的に明白であるにもかかわらず広く一般には認知されているとは言い難い。本研究開発の背景として、この事実に関する技術的な詳細について解説する。【このページは随時加筆修正を行っています】
TCP帯域(=通信速度)は往復遅延時間により決定される
インターネットで使われている通信方式であるTCPでは、データは分割して送信されており、一定量の分割データごとに到達確認を行うことで通信の確実性が保証されている。この一定量(TCPウィンドウサイズ)の最大値は規格上最大64Kバイトと定められている。確認応答の受信後に次のデータが送信されるため、データを送信し確認応答が帰ってくるまでの時間を t 秒とすると、t 秒間に送信できる最大のデータ量が64Kバイトということになる。このときの最大のTCP帯域は、64×8÷ t (Kbps)となる(1バイト=8ビット)。例えば t が0.1秒のとき、5Mbpsが理論的な最大のTCP帯域となる。
この式に当てはめて計算すると、確認応答が帰ってくるまでの時間(=往復遅延時間・RTT)と理論的最大TCP帯域の関係は以下の表のようになる。
往復遅延時間 | 最大TCP帯域 |
---|---|
100ns | 5Gbps |
500ns | 1Gbps |
1ms | 500Mbps |
5ms | 100Mbps |
10ms | 50Mbps |
50ms | 10Mbps |
100ms | 5Mbps |
500ms | 1Mbps |
1s | 0.5Mbps |
実際のTCP通信では、輻輳制御など通信の確実性を確保する仕組みがほかにも用いられているため最大のTCP帯域はこれを下回る。ただ、往復遅延時間とTCP帯域に強い相関があることは、東京に設置されている速度測定サイトにおける地域別回線速度分布図などからもわかる。そうした図で見ると明らかに東京から遠いほど速度が遅い。また、宮城や福岡などネットワークの接続点が存在している県は周囲の県に比べて速度が速く、地理的距離ではなくネットワーク上の距離、すなわち往復遅延時間が影響している。
実際の往復遅延時間
往復遅延時間が実際にどの程度の値であるのかについて、以下にpingにより32バイトのデータを送信して測定した結果を示す。Pingによる測定結果はTCP通信における往復遅延時間とは厳密には一致しないが、およその値と傾向は知ることができる。
東京(POWERDCOM) | 鹿児島(ASAHIネット) | 鹿児島(BBIQ) | 鹿児島(SYNAPSE) | 鹿児島(DION) | |
---|---|---|---|---|---|
東京(www.usen.com) | 2 | 28 | 26 | 29 | 24 |
東京(speed.rbbtoday.com) | 2 | 28 | 26 | 29 | 24 |
名古屋(nagoya.speed.rbbtoday.com) | 8 | 33 | 32 | 29 | 19 |
大阪(www.ntt-west.co.jp) | 15 | 37 | 19 | 39 | 18 |
札幌(www.city.sapporo.jp) | 22 | 48 | 46 | 50 | 44 |
福岡(www.qtnet.ne.jp) | 20 | 48 | 7 | 32 | 6 |
鹿児島(www.synapse.ne.jp) | 32 | 61 | 42 | 1 | 52 |
沖縄(www.ii-okinawa.ad.jp) | 37 | 59 | 55 | 54 | 23 |
与論(yoronlib.jp(OCN)) | 46 | 72 | 34 | 75 | 54 |
米国(www.yahoo.com) | 127 | 132 | 127 | 138 | 117 |
中国(peopledaily.com.cn) | 106 | 164 | 111 | 230 | 115 |
経由地 | 東京 | 東京/大阪/福岡 | 東京/鹿児島 | 東京/名古屋/大阪/福岡 |
往復遅延時間はネットワーク上の距離を反映したものである。地理的にほぼ同じ場所であっても、ISP が異なれば経路が異なるため値が違う。たとえば。鹿児島から福岡までの往復遅延時間は、東京を経由する ISP(ASAHI ネット/SYNAPSE)と福岡で接続している ISP(BBIQ/DION)では最大8倍の違いがある。また、同じ鹿児島市内への通信であっても ISP が異なれば東京を経由する場合もあり、地理的に近くてもネットワーク的には遠い場合もある。ただし、日本のインターネットは東京に一極集中しており、各種のサービスを提供するサーバーも東京に設置されている場合がほとんどである。このため、通常は東京との間の往復遅延が問題になる。
この表からいくつか理論的な TCP 帯域を求めてみる。東京から測定した与論との往復遅延時間は46ミリ秒であるため、 ウィンドウサイズが 64Kバイトの場合、TCP理論的最大通信速度は 64×8÷(46÷1000) = 11,130Kbps = 10.87Mbps となる。東京-鹿児島間は32ミリ秒であるので、16,000Kbps = 15.6Mbps が最大である。
実際のTCP帯域
鹿児島市内から各種のブロードバンド測定サイトで計測すると、最大値は20Mbps~30Mbpsになる。これは、TCPウィンドウサイズに拡張規格があり、送信側と受信側の双方が対応している場合には64Kバイトを超えるサイズを使うこともできるためである。
TCPウィンドウサイズは、Windows XPでは最大64Kバイトに固定であるが、Windows VistaやWindows 7では1Gバイトまでの範囲で自動的に設定される。サーバーで利用されることが多いLinuxやFreeBSDでは最大値が128K バイト~256Kバイトであるが、通信に際して実際に用いられる TCP ウィンドウサイズはサーバーにより異なる。また、実際の通信に当たりTCPウィンドウサイズは動的に変更されており、必ずしも最大値が用いられるとは限らない。TCP帯域にはこの他にも機器の性能や輻輳制御の方式などさまざまな要因が影響し、往復遅延時間だけから実際のTCP帯域を正確に求めることはできない。
しかし、TCP帯域のおよその値はTCPウィンドウサイズを64Kバイトとしたときの理論値+αと考えていい。また、往復遅延時間との間に強い相関があることは確実なため、往復遅延時間が2倍であればTCP帯域はおよそ半分であると言える。このことから、「東京-与論の TCP 帯域は東京-札幌の半分程度で東京-沖縄よりも小さい」と言える。
なお、これまで述べてきたTCP帯域は1接続あたりの帯域である。複数のTCP接続を同時に行った場合は、それぞれについて上述の帯域となる。テキストや画像など、複数のコンテンツが含まれているWebページを閲覧する場合、それぞれの部品ごとにTCP接続が行われる。このため、実際のWebページの表示を開始してから終了するまでの時間は、往復遅延時間との相関が低い場合がある。たとえば、同じ100Mbpsの接続サービスの利用者がサイズの等しい5つの部品で構成されているWeb ページを、理論的TCP帯域が20Mbpsの地方と100Mbpsの東京で閲覧した場合、開始から終了までにかかる時間は同一であることが想定される。これは合計のTCP帯域が回線速度を超えられないため、東京での閲覧に際しては同時に5つの通信を行えばそれぞれのTCP帯域が5分の1となるためである。地方での閲覧に際しては合計のTCP帯域が100Mbpsであるため、それぞれが最大の20Mbpsで通信できる。
通信回線事業者の100Mbps、200Mbps、1Gbps とは何か?
通信回線事業者の接続サービスでは、100Mbpsなどの速度が明示されているが、これは1秒あたり最大100Mビットのデータを伝送できる能力を有するということである。UDPなどの確認応答を待たない通信であれば100Mbpsの性能がある。確認応答を待つTCP通信で考えると、光が無限の速さで進むとした場合の理論的な最大速度に相当する。現実には光速も有限であり、往復遅延時間により決定される最大 TCP 帯域はネットワーク的な距離に反比例する。
一般に、ユーザー宅と収容局は数キロ程度以内の距離であるため、その間の往復遅延時間は 1ミリ秒から数ミリ秒以内である。このため、収容局内の装置との間のTCP帯域は100Mbps~1Gbpsとなる。これは東京でも地方でも同じで、全国どこでも等しい。ただし、光ファイバを複数のユーザー宅で共有しているため「混雑した時に速度が低下する場合がある」とされ「ベストエフォート」と説明される。NTT東西などの通信回線事業者が提供するサービスはこの収容局とユーザー宅の間の回線であり、この区間については理論値に近い最大通信速度での通信が可能である。収容局には ISPに接続するための末端の装置が置かれており、 ISPとの接続回線=インターネットISP接続回線と考えれば、全国どこでもFTTHであれば超高速インターネットということができる。
しかし、ほとんどすべてのインターネット上のサービスが東京に集中しているため、「インターネット接続の速度」は収容局までの間の回線速度ではなく、東京との間の速度であると考えられるのが一般的である。これに影響するのが往復遅延時間であり、ISPが利用している経路や回線により異なるものの、東京から離れるほど大きい。