送信回数制限があり
1パケット250KBに近づけるとパケロス事故確率が高まり=
でかいパケットはこけやすい
6回か8回が限度 8回100ms=それだけで800ms消費でほぼ1秒が埋まる
120ms遅延環境では8回送れない=1回あたりのパケットはパケロス率が10%以下でも250KB/s程度が限度
場合により200KBくらいの方が平均送信帯域は増える?
ローカル通信でもない限り理論限界パケットサイズにはしないほうがいい
100Mbpsで遅延が1ms以下の場合 パケロスが低ければ250KB以上のパケットを送信できるが
↑が100Mbpsなので1パケ250KB以上送っても「時間が2倍かかる」ことになるだけ
「最高のロスなし時速100キロ」の弾丸自動車でも
ときどき給油するヘリコプター以上(時速200キロ以上)の速度は出せない
遅延が驚異!の0.1ms回線があっても100Mbpsの帯域幅=ネットワークスイッチがそういう仕様
では1パケ25MBで送信は無理=LSIが想定してない バッファリングがあふれる。
1パケ65〜250KBまでを想定しているのが100Mbps回線の技術仕様
LSIが1Gbpsに対応してても、100Mbpsのイーサで200Mbps出すと
「輻輳」が発生するので
むしろ遅延を付加している仕様かもしれない。
「ワイヤスピード」ってなに? 100Mbpsのワイヤスピードは148810pps
通信距離とTCP帯域その1:TCP帯域(=通信速度)は往復遅延時間により決定される
http://blog.biocomputing.cc/archives/3975一定量(TCPウィンドウサイズ)の最大値は規格上最大64Kバイトと定められている
http://blog.biocomputing.cc/archives/3995
TCPウィンドウサイズを拡大し確認応答を代理で行う方式が一般的であるが、
圧縮して通信を行うなどメーカーごとに独自の工夫も行われている。
[まとめてパケットを送信]は「OS側のTCPチューン機能」
技術仕様としては65KBパケット上限なのは正しい
転送速度とウィンドウ制御
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43513&forum=11
一度に送信できるデータサイズに制限(64kbyte)があるのに
なぜネットワーク回線たとえば10mbpsより100mbpsのほうが
ダウンロード速度が速くなるのでしょうか?
ウィンドウサイズが64Kバイトの場合のTCP最大スループットの理論値は以下のとおり
RTT 1msec のとき 512Mbps
「TCPはセッション数がとくに決まってない」
のでセッションを複数張り、帯域上限を埋めるまで利用すると
3倍転送できたりするのかな。
セッションを利用して複数張る仕組みはTCPではなくて
ソフト側=レイヤー7で実装されている
filezilla は同時接続セッション数を多数張れる
最大10セッション
多数のセッションを張った場合はソフトが猛烈に並列で計算するので
CPUとメモリが高速でないと速度がでない。
おそらく破損パケットのCRC修正技術も同時セッション多数のソフトは含むはず。
TCPウィンドウサイズ変更はサーバー側とクライアント双方が対応している必要がある
具体的にはLINUX・Windowsサーバーのチューンである設定をする