2011-02-15 22 views
1

私の質問は、LinuxのTCPパラメータに関するものです。今では、私はデフォルトの値を変更したい: Linuxの複数のインターフェイスのカスタムTCPパラメータ

  • 初期タイムアウト私はカーネル2.6.xのと2つのイーサネットインターフェイスでのLinuxボックスを持って
  • ACK遅延
  • アイドル接続タイムアウト
  • 。私はTCPがイーサネットデバイスとは関係のないスタックであることを知っています。それは、質問:各インターフェイスのカスタム値を設定する方法はありますか?たとえば、eth0で接続をリッスンするサーバーは、アイドル接続タイムアウトに1つの値を使用し、eth1で接続をリッスンする別のサーバーでは、そのパラメータに異なる値を使用できます。

    いずれかの考慮事項があります。
    よろしく、
    ティアゴ

    答えて

    0

    私の知る限り、することはできません言うことができるように。

    tcpスタックのカーネルパラメータを設定するか(sysctl -a | grep tcpを試してください)、またはTCPソケット(man tcpを参照)でパラメータを設定することもできますが、いずれもACK遅延を制御できません。カーネルソースがある場合、これは/usr/src/<kernels>/include/net/tcp.hでコード化されています。

    1

    が遅延ACKのように見えるハードコードされhereです:

    #define TCP_DELACK_MAX ((unsigned)(HZ/5))  /* maximal time to delay before sending an ACK */ 
    #if HZ >= 100 
    #define TCP_DELACK_MIN ((unsigned)(HZ/25))  /* minimal time to delay before sending an ACK */ 
    

    アイドル接続タイムアウトすることによって、あなたはおそらく、TCPがキープアライブを意味します。 これは、インターフェイスごとに設定することもできません。 Hereを説明しました。 TCPは生き行動を保つ制御 値は以下のファイルで構成されます:デフォルトのTCPコネクションによって

    /proc/sys/net/ipv4/tcp_keepalive_time 
    /proc/sys/net/ipv4/tcp_keepalive_intvl 
    /proc/sys/net/ipv4/tcp_keepalive_probes 
    

    は、TCPが生き無効を保つていました。この機能を使用するアプリケーションでは、setsockoption(2)SO_KEEPALIVEと呼ぶことで有効にする必要があります。

    関連する問題