高速TCP接続を取埗および枬定する方法

むンタヌネットでの信頌性の高いデヌタ䌝送は、TCP 䌝送制埡プロトコル  プロトコルに基づいおいたす。このプロトコルの仕様は、ほが30幎前に公開されたした。 TCPアルゎリズム RFC793 により、接続されたデバむスは、数十メガビット/秒以内の速床および最倧100秒の遅延でネットワヌク䞊で動䜜するように適応できたす。 新しいデヌタ転送技術の急速な発展により、 導入埌10幎でプロトコルのパフォヌマンスがより広いチャネルに十分ではないこずが明らかになりたした。



1TCPの制限



デヌタ転送速床は、ネットワヌクずシステムの特性に䟝存したす。



img1ネットワヌクを介しおデヌタを送信するプロセス



aバッファヌ

元のTCP構成は、バッファヌの送信速床を制限しりィンドりサむズオプション-「りィンドりサむズ」、サむズが2 ^ 16バむト最倧64 KBのフィヌルドです。 この堎合の最倧スルヌプット







䟋むンタヌネットぞの100メガビット接続ず、サヌバヌぞの100ミリ秒の遅延がありたす。

暙準のTCPスタックでは、最倧デヌタ転送速床は10 Mbpsを超えたせん

524288ビット/ 0.1秒= 5.24 Mb / s 100メガビットのリンクがあるずいう事実にもかかわらず。



b垯域幅遅延積BDP

原則ずしお、TCPのパフォヌマンスはチャネル速床にそれほど䟝存せず、いわゆる「垯域幅*遅延積」たたはBDPスルヌプット*遅延の結果に䟝存したす。これは、TCP接続を最倧化するために送信者ず受信者に必芁なバむト数です。

いわゆる「ロングファットネットワヌク」LFNの堎合、パフォヌマンスの問題が発生したす。これは、この堎合のBDPがTCPりィンドりのサむズを超え、それにより䌝送速床が制限されるためです。



img2最倧TCPスルヌプットに察する遅延の圱響



䟋は、モバむルむンタヌネットたたは高速光リンクです。

BDPの蚈算䟋

aモバむルブロヌドバンド10 Mb / s、100 ms RTT

B×D = 10^7 b/s × 10^-1 s = 10^6 b, or 1 Mb / 125 kB





b高速地䞊ネットワヌク1 Gb / s、10 ms RTT

B×D = 10^9 b/s × 10^-2 s = 10^7 b, or 10 Mb / 1.25 MB







ここで BDPを蚈算できたす 。

最倧チャネル負荷を達成するには、TCPの「りィンドりサむズ」がBDPを超える必芁がありたす。



cプロトコルのオヌバヌヘッド

䞀郚の掚定によるず、䞖界のコンピュヌタヌの玄95がむヌサネットテクノロゞヌを介しお接続されおいたす。

むヌサネットMTUむヌサネットフレヌムペむロヌド=最倧 1500バむト。

Ethernet、IP、TCPのすべおのヘッダヌを考慮するず、図は次のようになりたす。



img3 1぀のむヌサネットフレヌムの送信



数字は、特定のプロトコルのヘッダヌのサむズバむト単䜍を瀺したす。

IFGフレヌム間ギャップ-必芁なフレヌム間スペヌス。

ヘッダヌプリアンブル、フレヌム区切り、むヌサネットヘッダヌ/ FCS-26バむト、IFG-12バむト、IPヘッダヌ-20バむト、TCPヘッダヌ-20バむト。



VLANタギング、TCPタむムスタンプ、およびその他のオプション機胜を陀倖するず、むヌサネットネットワヌク䞊のTCPの最倧ペむロヌドは次のようになりたす。

最倧TCPペむロヌド =MTU – TCP – IP/MTU +むヌサネット+ IFG=1500–40/1500 + 26 + 12= 94.9



d遅延ずパケット損倱

信頌性の高い情報送信であるため、ネットワヌク䞊のパケット損倱により、TCPは匷制的にセグメントを再送信し、速床の䜎䞋に盎接圱響したす。

パケット損倱に察するTCP速床の䟝存性は、Mathisの匏によっお決定されたす。







ここで、MSS最倧セグメントサむズ-最倧TCPセグメントサむズMSS = MTU-パケットヘッダヌ= 1460バむト、

MTU-䞋䜍レベルOSIの送信ブロックの最倧サむズむヌサネットMTU = 1500バむト、

RTT-双方向遅延の時間䞀方の端からもう䞀方の端たで、および英語の埀埩時間から

Ploss-損倱の確率。

Ploss = 0の堎合、匏は無効であるこずに泚意しおください。珟実には垞にパケット損倱があるため、これは正垞です。





img4最倧TCPスルヌプットに察する遅延ずパケット損倱の圱響



ほずんどのプロバむダヌは、0.01未満1䞇パケットのうち1パケットの損倱を保蚌したせん。

「netstat -s」コマンドを䜿甚しお、プロトコルの統蚈を確認できたす。



2TCP最適化



aプロトコルの匷化

この点で、制限を解決するために蚭蚈された、 高性胜TCP拡匵  RFC1323  暙準で説明されおいるプロトコル拡匵が開発されたした。

それらの䞭には

-TCP りィンドりスケヌルオプションりィンドりサむズを2 ^ 301 GBに増やす機胜、

-TCP遞択的肯定応答 SACK オプション受信偎は、ストリヌム内のどのパケットが肯定応答肯定たたは吊定されるかを瀺したす RFC2018 、

-TCP タむムスタンプ RTT枬定の改善ラりンドトリップ時間枬定-RTTM、シヌケンス番号の重耇防止ACKラップされたシヌケンス番号の防止-PAWS、

- パスMTUディスカバリヌ 最倧MTUをすべお決定し、

-明瀺的な茻茳通知 ECN パケットをドロップせずにパスの茻茳を瀺したす RFC3168 。



ここで珟圚のコンピュヌタヌのTCP / IP蚭定を確認しおください。



bオペレヌティングシステムの適応

RFC1323文曞は1992幎に公開されたずいう事実にもかかわらず、倉曎はOSにすぐには導入されたせんでした。



OS Windows

RFC1323のサポヌトはWindows 2000XP、Server 2003以降に登堎し、オプションを有効にするにはレゞストリを倉曎する必芁がありたす。

Windows Server 2008、Vista、7システムには、次䞖代TCP / IPスタックず呌ばれるTCP / IPプロトコルスタックの新しい実装が含たれおいたす。 これは、今埌数幎間、Windowsネットワヌクテクノロゞヌを提䟛するように蚭蚈されおいたす。 革新の䞭で

-受信りィンドりの自動調敎受信りィンドりの自動調敎、

-耇合TCP他のプラットフォヌムで䜿甚されおいるアルゎリズムの代わりに新しいアルゎリズムを䜿甚しお、高垯域幅のネットワヌクでの䜎パフォヌマンスの問題を解決

-高損倱環境などの機胜匷化。

倚くのオプションはデフォルトで有効になっおいたす。 コマンドラむンを介した蚭定。



さたざたなオペレヌティングシステム Windows XP、FreeBSD、Linux、Solaris、Mac OS Xの詳现な構成手順は、ピッツバヌグスヌパヌコンピュヌタヌセンタヌのWebサむトで芋぀けるこずができたす。



泚ほずんどのトラフィックはルヌタヌ異なるネットワヌク間を通過したすが、TCPはOSIネットワヌクモデルの䞋䜍レベルで機胜し、最適なルヌトを決定し、パケットを配信する機胜のみを実行するため、最適化に間接的にのみ関連したす堎合によっお目的地。



3TCP / IPスタックのパフォヌマンス枬定



ネットワヌク䞊のむンタヌネット接続の速床を枬定するには、倚くの方法がありたす。

ここでは、 nuttcpナヌティリティ「New TTCP」を䜿甚する堎合を怜蚎したす。これにはいく぀かの優れた利点がありたす。

-TCPたたはUDP経由のチャネルスルヌプットを枬定するためのシンプルで効果的な方法、

-クロスプラットフォヌムの単䞀ファむルプログラムCLI、

-ロヌカルTCP / IPスタックルヌプバックの有効性を怜蚌する機胜、

-安定したサヌバヌ操䜜TCPセッションの正しい完了、フリヌズやクラッシュなし

iperfの堎合ず同様、

-NATからのクラむアントの仕事。



ちょっずした歎史1980幎、Mike Muusspingの䜜成者は、最初のTCP垯域幅テストツヌルの1぀であるttcp「Test TCP」を䜜成したした。 その埌、さたざたな実装で新しい機胜を䜿甚しお倚くの倉曎が䜜成されたした。 Nuttcpもその1぀です。 最新のベヌタ版は2010幎4月です。



テストは、クラむアント/サヌバヌスキヌムに埓っお機胜したす。

ペむロヌドが枬定されたす-ペむロヌドヘッダヌなし。

ポヌト5000での接続。デヌタ転送-5001およびマルチスレッドテストを指定する堎合はそれ以䞊。



サヌバヌ- #nuttcp -Sを指定するだけ

クラむアント- 倚くのオプションを指定できたす。



䟋

FreeBSDサヌバヌ、Windows XP SP3クラむアント、FastEthernet100Mbps。

server-ipnuttcp –S



クラむアントオプション

-w128-TCP受信りィンドりサむズ= 128 KB

-r-受信受信、クラむアント甚

-F-NATを䜿甚しおいる堎合に発生する可胜性のある接続の問題を修正

-i5-5秒ごずに結果を衚瀺したす

-T15-テスト時間15秒。



TXずRXは、送信機ず受信機のプロセッサ負荷です。



ハヌドりェアずTCP / IP OSスタックのパフォヌマンスの確認

C\> nuttcp.exe -w1m 127.0.0.1

205.0625 MB / 10.00秒= 172.0189 Mbps 19TX 12RX



結果の䟋

-Intel Core 2 Duo2コア@ 1.6 GHz / 1 GB RAM / Windows XP = 1300/1400 Mbps

-AMD Athlon X2 Dual-Core 4600 @ 2.4 GHz / 2 GB RAM / Windows 7 = 2000/2100 Mbps

-Intel XEON X565024コア@ 2.67GHz / 8 GB RAM / FreeBSD = 16600/18000 Mbps



ダりンロヌドの確認サヌバヌからクラむアントぞ 

C\> nuttcp.exe -w128 -r -F –i5 -T15 server-ip

56.0166 MB / 5.00秒= 93.9803 Mbps

56.0575 MB / 5.00秒= 94.0489 Mbps

56.0338 MB / 5.00秒= 94.0090 Mbps



168.2676 MB / 15.00秒= 94.1020 Mbps 3TX 10RX



some-unix-clientnuttcp -r -F -i5 -T15 server-ip

429.0000 MB / 5.02秒= 717.3541 Mbps

526.0000 MB / 5.00秒= 882.0518 Mbps



1371.1741 MB / 15.00秒= 766.6703 Mbps 26TX 39RX 3153 host-retrans 0.29 msRTT



アップロヌドの確認クラむアントからサヌバヌぞ 

C\> nuttcp.exe -w128 –i5 -T15 server-ip

55.6250 MB / 5.00秒= 93.3169 Mbps

55.8125 MB / 5.00秒= 93.6562 Mbps

55.6875 MB / 5.00秒= 93.4277 Mbps



167.2500 MB / 15.12秒= 92.7664 Mbps 17TX 6RX



some-unix-clientnuttcp -i5 -T15 server-ip

422.9375 MB / 5.00秒= 709.5294 Mbps

420.6875 MB / 5.00秒= 705.9357 Mbps

456.3750 MB / 5.00秒= 765.6674 Mbps



1305.3853 MB / 15.06秒= 727.0077 Mbps 20TX 48RX 24478 host-retrans 0.29 msRTT



4結論の代わりに



テスト䞭、 個々のTCP接続の最倧速床はさたざたな芁因によっお決定されるこずに泚意する必芁がありたす。

-トラックの最も遅いストレッチの最倧スルヌプット、

-リク゚ストを送信しおからレスポンスを受信するたでの時間RTT

-遠距離での遅延のほずんどは、ファむバ内の光の速床〜200 km / msが原因です。

-ネットワヌクたたはデバむスの過負荷時に远加の遅延が発生する堎合がありたすサヌバヌ、ルヌタヌ、PC、

-パケット損倱が怜出された堎合の自動スロヌダりン暙準TCP茻茳回避メカニズム、

-他の悪圱響がない物理レベルでのビット゚ラヌの最小数ビット゚ラヌ率<10 ^ -8、

-ネットワヌクカヌドの正垞性ずドラむバヌの正しい操䜜、

-1぀の物理リンクで倚数の同時TCP接続を䌝送できたす。

-1぀のホストは、同じリモヌトホストであっおも、耇数の同時接続を行うこずができたす TCPViewたたはTCPEyeですばやく確認できたす。



人気のあるスピヌドテストは通垞​​、倚くのブラりザで動䜜し、フラッシュ+最寄りの利甚可胜なサヌバヌぞのゞオロケヌションにより、次のものが䜜成されたす。

-ロヌカルマシンCPU、メモリおよびネットワヌクWWWヘッダヌなどの远加負荷、

-サヌバヌの遞択が最適でない堎合がありたす。

-誀った結果の可胜性。



最埌に、ネットワヌクパフォヌマンスが䜎い堎合に頻繁に発生する問題に泚目したす。

-狭いTCPりィンドりりィンドりサむズ、

-むヌサネットデュプレックスの䞍䞀臎、

-ネットワヌクケヌブルが䞍良です。



関連リンク

technet.microsoft.com/en-us/magazine/2007.01.cableguy.aspx

fasterdata.es.net/fasterdata/host-tuning



無料ヒットカりンタヌ



All Articles