Linux のコマンド ラインから Nagle のアルゴリズムを無効にするものはネット上で見つかりませんでした。Solaris には、コマンド ラインから有効/無効にするメカニズムがあります。
Linuxでそれを行う方法があれば教えてください。
Linux のコマンド ラインから Nagle のアルゴリズムを無効にするものはネット上で見つかりませんでした。Solaris には、コマンド ラインから有効/無効にするメカニズムがあります。
Linuxでそれを行う方法があれば教えてください。
setsockopt()
これは、TCP_NODELAY フラグの設定を使用して、コマンド ラインからではなく、ソケットごとに行われます。これをグローバルに実行する方法がないことは認識していますが、/proc/sys/net の下にこれを実行するためのファイルがあったとしても驚かないでしょう...
Redhat Linux の場合、/proc/sys/net/ipv4/tcp_delack_min オプションを確認できます。他のディストリビューションでは、カーネルを再コンパイルする必要がある場合があります。
環境変数 SETTCPNODELAY を任意の値に設定して、Nagle のアルゴリズムを無効にすることもできます。
または、ACK タイムアウトを低く設定し、TCP_RTS を停止します。タイムアウトは 2ms です。次の rj45 インターフェイスまたは次のマシンへの ping 時間です。パケット損失が発生する可能性があるため、タイムアウトをあまり低く設定しないでください ;-)。TCP.fin の方がタイムアウトが長くなります。
echo 0.2 > /proc/sys/net/ipv4/tcp_ack_timeout
echo 0.2 > /proc/sys/net/ipv4/tcp_syn_timeout
echo 0.2 > /proc/sys/net/ipv4/tcp_synack_timeout
echo 0 > /proc/sys/net/ipv4/tcp_rst_timeout
echo 0.2.5 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 0.2 > /proc/sys/net/ipv4/tcp_urg_timeout
echo 0.2 > /proc/sys/net/ipv4/tcp_psh_timeout
echo 10000 > /proc/sys/net/ipv4/tcp_syn_retries
echo 10000 > /proc/sys/net/ipv4/tcp_synack_retries
echo 0 > /proc/sys/net/ipv4/tcp_rst_retries
echo 10000 > /proc/sys/net/ipv4/tcp_psh_retries
echo 10000 > /proc/sys/net/ipv4/tcp_urg_retries
echo 10000 > /proc/sys/net/ipv4/tcp_ack_retries
echo 10000 > /proc/sys/net/ipv4/tcp_fin_retries
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
そして多分:
echo 1 > /proc/sys/net/ipv4/tcp_dsack