例を挙げて、tcp/ip の nagle アルゴリズムの概念を親切に説明してもらえますか?
1 に答える
ウィキペディアは冒頭の段落で素晴らしい仕事をしていると思います。
Nagle のドキュメント、Congestion Control in IP/TCP Internetworks (RFC 896) では、彼が「小さなパケットの問題」と呼んだ問題について説明しています。これは、アプリケーションがデータを小さなチャンク (多くの場合、サイズがわずか 1 バイト) で繰り返し送信する場合です。TCP パケットには 40 バイトのヘッダー (TCP の場合は 20 バイト、IPv4 の場合は 20 バイト) があるため、1 バイトの有用な情報に対して 41 バイトのパケットになり、大きなオーバーヘッドになります。この状況は、多くの場合、Telnet セッションで発生します。ほとんどのキーを押すと、すぐに送信される 1 バイトのデータが生成されます。さらに悪いことに、低速リンクでは、そのようなパケットが同時に多数送信される可能性があり、輻輳の崩壊につながる可能性があります。
Nagle のアルゴリズムは、多数の小さな送信メッセージを組み合わせて、それらを一度に送信することによって機能します。具体的には、送信者が確認応答を受信していない送信済みパケットがある限り、送信者は、完全なパケットに相当する出力が得られるまで出力をバッファリングし続け、出力を一度に送信できるようにする必要があります。