強制的データ送出
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/01 19:49 UTC 版)
「Transmission Control Protocol」の記事における「強制的データ送出」の解説
通常、TCPは送信すべきデータが最大セグメントサイズ (MSS) まで溜まるか、200ミリ秒経過するまで待つ(Nagleアルゴリズムで小さいメッセージを単一パケットにまとめようとするため)。これは例えばファイル転送のような一定の送信が要求される場合に問題となることがある。例えば、送信ブロックが一般的な4KBで、MSSも一般的な1460バイトだとする。すると1ブロックが3セグメントで送信され、最後の1セグメントはMSSに満たないことになる。すると、2パケットまでは約1.2ミリ秒で送信され、1176バイトの3パケット目は197ミリ秒待ってから送信ということになる。 Telnetの場合、ユーザーがキーを押下するたびに通信先からエコーバックされて画面に文字が表示される。すると、1文字押下するたびに200ミリ秒待たされることになり、非常にストレスになる。 この場合、ソケットのオプション TCP_NODELAY を使ってデフォルトの200ミリ秒の送信遅延を変更することができる。 RFCには PSH フラグを使って「受信側TCPスタックでそのデータを即座にアプリケーションに送る」という機能が定義されている。しかしソケットにはこれを制御するインタフェースがなく、プロトコルスタックの実装に任されている。
※この「強制的データ送出」の解説は、「Transmission Control Protocol」の解説の一部です。
「強制的データ送出」を含む「Transmission Control Protocol」の記事については、「Transmission Control Protocol」の概要を参照ください。
- 強制的データ送出のページへのリンク