TCP_NODELAYによるNagleアルゴリズム封じとTCP_CORKについて
by @dekokun on 2015/06/03 8:17
Tagged as: TCP.
こんな理解でいいんですか。教えてください。あと、Nagleアルゴリズムについて詳細は後で書く
NagleアルゴリズムとTCP遅延ACKとTCP CORK覚えた。 / “nginxのパフォーマンスチューニング // Speaker Deck” http://t.co/HbOKeoNQc8
— でこくん (@dekokun) 2015, 6月 2
さっきの資料にも載ってたけど、TCP_NODELAYとTCP_CORKの組み合わせ、コルクの抜くタイミングをいい感じにしながら、コルクを抜いてしまえば一気にフラッシュできますよってことだよね。コルクを抜くタイミングはどう制御されてる?
— でこくん (@dekokun) 2015, 6月 2
まぁ、そこはnginxがよしなにやってくれるわけなのかな。TCP_NODELAYとTCP_CORKの組み合わせは、パケット送信タイミングの最適化をカーネルに任せずにアプリケーション(今回はnginx)に任せるってことという理解でいいのかな。
— でこくん (@dekokun) 2015, 6月 2
Nagleアルゴリズム
非常に雑に書いている。後でちゃんと書きたい
- なるべく複数のTCP通信を1回にまとめちゃおうというアルゴリズム
- パケット数の減少によるヘッダ容量の削減及び輻輳の回避を狙っている模様