トップページ > NICドライバ、TCP/IPパラメータ関連 > /dev/tcp ドライバの設定パラメーター[nddコマンド]
カテゴリー
オラクルエンジニア通信
サポートページ
マニュアルページ
ソフトウェアダウンロード
中古UNIXマシン購入
blogs.sun.com
お勧めサイト
プライベートリンク

/dev/tcp ドライバの設定パラメーター[nddコマンド]

その他のドライバのパラメーターはこちら
/dev/ip  /dev/tcp  /dev/udp  /dev/icmp  /dev/hme  /dev/ge 
/dev/tcp

TCP Tunable Parameter
パラメータ名Modemin/max/DefaultComment
tcp_deferred_ack_interval RW min = 1 msec
max = 1 min
default = 100 msec
遅延 ACK タイマのタイムアウト値。動的変更 、可能。500 msec 以上に設定しないでください。
tcp_deferred_acks_max RW min = 0
max = 16
default = 8
ACK が生成される前に受け取る TCP セグメントの最大数 (個々のコネクションの最大セグメントサイズ(MSS)の単位での値)。 0 または 1 を設定すると、すべてのセグメントが 1 MSS と仮定し、 遅延 ACK なし。 直接接続されていないリモートの目的先へは、最大 2 で固定されている。 実際の値は各コネクション毎に動的に計算されます。 デフォルト 8、最大 16、最小 0動的変更 、可能。
この値は変えないでください。遅延 ACK の影響でネットワークトラフィックが増大しすぎなときは、値を下げてください。2 以下には下げないでください。
tcp_wscale_always RW min = 0 (使用しない)
max = 1 (使用する)
default = 0
1 を設定すると、オプションの値が 0 であっても、TCP は常にウィンドウスケールオプションを付けて SYN セグメントを送ります。TCP が、ウィンドウスケールオプションを付けている SYN セグメントを受け取ると、パラメータが 0 の場合でも、TCP がウィンドウスケールオプションを付けて SYN セグメントを送り返します。そのオプションの値には、受信ウィンドウサイズが設定されます。動的変更 、可能。
tcp_tstamp_always RW min = 0 (使用しない)
max = 1 (使用する)
default = 0
1 が設定されている場合、TCP は常にタイムスタンプオプションの付いたSYN セグメントを送信します。タイムスタンプオプションの付いた SYN セグメントを受信すると、パラメータが 0 であっても、タイムスタンプオプションの付いた SYN セグメントで応答します。動的変更 、可能。
RTT(Round Trip Time)や TCP シークエンス番号ラップアラウンドの正確な測定が問題の時、使用します。
tcp_xmit_hiwat RW min = 4096
max = 1073741824
default = 16384
送信ウィンドウサイズ。動的変更 、可能。アプリケーションは、setsockopt(3SOCKET) の SO_SNDBUF を使用することで、個々のコネクションの送信バッファを変更 できます。
tcp_recv_hiwat RW min = 2048
max = 1073741824
default = 24576
受信ウィンドウサイズ。動的変更 、可能。アプリケーションは、setsockopt(3SOCKET) のSO_RCVBUF を使用することで、個々のコネクションの受信バッファを変更できます。
tcp_max_buf RW min = 8192
max = 1073741824
default = 1048576
バッファサイズの最大値を指定します。動的変更 、可能。
高速なネットワークでコネクションを張る際は、リンクスピードに合った値に増やしてください。
tcp_cwnd_max RW min = 128
max = 1073741824
default = 1048576
輻輳ウィンドウ(cwnd,Congestion Window)の最大値。動的変更 、可能。
この値は、輻輳ウィンドウが増加していける最大の値です。アプリケーション側で、setsocket(3SOCKET)を使って、tcp_cwnd_max 以上のウィンドウサイズに変えようとしても、実際には tcp_cwnd_max 以上にはなりません。従って、tcp_max_buf は一般に、tcp_cwnd_maxよりも大きい値であるべきです。
tcp_slow_start_initial RW min = 1
max = 4
default = 4
TCP コネクションにおける MSS での最大輻輳ウィンドウサイズの初期値。動的変更 、可能。
この値は、輻輳ウィンドウが増加していける最大の値です。アプリケーション側で、setsocket(3SOCKET)を使って、tcp_cwnd_max 以上のウィンドウサイズに変えようとしても、実際には tcp_cwnd_max 以上にはなりません。従って、tcp_max_buf は一般に、tcp_cwnd_maxよりも大きい値であるべきです。
特殊な環境下で、輻輳ウィンドウサイズの初期値が原因で輻輳を起こしたら、値を引き下げてください。
tcp_slow_start_after_idle RW min = 1
max = 16384
default = 4
再送タイムアウト(RTO)の間、アイドル状態(受信セグメントなし)だった後の輻輳ウィンドウサイズ。動的変更 、可能。
tcp_sack_permitted RW 使用不可 = 0
passive enabled = 1
active enabled = 2
default = 2
2 に設定されている場合、TCP は常に SACK 許可オプションを付けて SYN セグメントを送信します。これを受信した側は、パラメータを 1 にセットし、SACK 許可オプションを付けて応答します。パラメータが 0 にセットされると、SACK 許可オプションを送りません。動的変更 、可能。
tcp_rev_src_routes RW min = 0 (使用しない)
max = 1 (使用)
default = 0
0 に設定されていると、セキュリティ上の理由から受信コネクションのIP ソースルーティングオプションを返しません。1 の場合は、通常のソースルーティングをします。動的変更 、可能。
tcp_time_wait_interval RW min = 1 sec
max = 10 min
default = 4 min
TCP コネクションが TIME_WAIT 状態にとどまる時間動的変更 、可能。接続の多い web サイトでは、TIME-WAIT 状態の TCP コネクションが非常に多く、メモリを浪費しています。このような状況で、パフォーマンスをあげるために、値を下げることができます。60 秒以下には設定しないでください。
tcp_conn_req_max_q RW min = 1
max = 4294967296
default = 128
待機中の TCP コネクションの最大値。動的変更 、可能。
Web サーバのようなアプリは多くのコネクション要求を受けます。デフォルトの値は受信量に応じて大きくすべきです。大きすぎる値に設定すべきではありません。待機コネクションはメモリを必要以上に消費します。待機コネクションが過度に多すぎて、アプリ側が多くのコネクションを扱うに十分な速度を持たないと、新たな受信を要求を拒否するようになります。
このパラメータの値を大きくすることは、アプリ側がより多くの待機コネクションを持てるようになるということではありません。アプリは各ソケットの待機コネクション最大数を listen(3SOCKET) で変更することができます。このパラメータが非常に大きい値に設定されても、実際の最大値は、tcp_conn_req_max_q 以下の値になります。
tcp_conn_req_max_q0 RW min = 0
max = 4294967296
default = 1024
TCP リスナに対して、未完了(3way-handshake が完了していない)のコネクション待ち最大数。動的変更 、可能。
Web サーバのようなアプリは多くのコネクション要求を受けます。デフォルトの値は受信量に応じて大きくすべきです。以下の説明は、tcp_conn_req_max_q0 と待機コネクション最大値との関連です。コネクション要求が届いたとき、TCP はまず、受け入れ待ちの待機コネクションの数が listner の最大値を超えていないかチェックします。コネクションの数が越えていたら、要求は拒否します。コネクション数が許容内だったら、未完了の待機コネクション数がコネクション待ちの数と tcp_conn_req_max_q0 の合計を越えるかどうかチェックします。 越えていなければ、要求は受け入れられます。一方で、最も古い待機中の TCP 要求は破棄されます。
tcp_conn_req_min RW min = 1
max = 1024
default = 1
最大待機コネクション数の最小値。この値は、アプリケーションが使用できる listen(3SOCKET)の最大値の最も小さい値です。動的変更 、可能。


変更が推奨されていないパラメータ
パラメータ名Modemin/max/DefaultComment
tcp_ip_abort_interval RW min = 500 msec
max = 1193 hours
default = 8 min(480000 msec)
トータルの再送タイムアウト(RTO)の値(msec)。TCP コネクションにおいて、この値の間再送し続け、一方のエンドポイントから ACK が帰ってこない場合はコネクションをクローズします。動的変更 、可能。
tcp_rexmit_interval_initial RW min = 1 msec
max = 20 hours
default = 3 sec
再送タイムアウト(RTO)の初期値(msec)。動的変更 、可能。
tcp_rexmit_interval_max RW min = 1 msec
max = 20 hours
default = 3 sec
再送タイムアウト(RTO)の最大値(msec)。すべての TCP コネクションについて計測 RTO はこの値を越えることはできません。動的変更、可能。
コネクションのRTT(round trip time、コネクションにおける往復時間)がおよそ 10 sec なら、より長い時間に変更することができます。値を変更する場合、tcp_ip_abort_interval の値も適切に変更しなければなりません。tcp_ip_abort_interval の値は最低でも、tcp_rexmit_interval_max の 4 倍でなければなりません。
tcp_rexmit_interval_min RW min = 1 msec
max = 2 hours
default = 400 msec
再送タイムアウト(RTO)の最小値(msec)。すべての TCP コネクションについて計算された RTO はこの値を下回ることはできません。動的変更、可能。
RTO は RTT(round trip time、コネクションにおける往復時間) の変動に対応できなければなりません。コネクションのRTTがおよそ 10 sec なら、より長い時間に変更することができます。値を変更する場合、tcp_ip_abort_interval の値も適切に変更しなければなりません。tcp_ip_abort_interval の値は最低でも、tcp_rexmit_interval_max の8 倍でなければなりません。
tcp_rexmit_interval_extra RW min = 0 msec
max = 2 hours
default = 0 msec
計測再送タイマ(RTO)を一定に増していくときの値。動的変更、可能。
RTO 測定がコネクションにおける適切な値を得るのに失敗した場合の不必要な再送を避けるため、値を変更することができます。
tcp_tstamp_if_wscale RW min = 0 (使用不可)
max = 1 (使用可)
default = 1
パラメータが 1 に設定されている場合で、ウィンドウスケールオプションが使用可になっている場合、タイムスタンプオプションも使用することができます。動的変更、可能。
この値は変更しないでください。一般に、TCP は高速ネットワークで使用され、シークエンス番号ラップアラウンドからの保護は欠かすことのできないものです。従って、タイムスタンプオプションは必要なのです。
tcp_recv_hiwat_minmss RW min =1 byte
max = 65536 byte
default = 4 byte
デフォルトの最小受信ウィンドウサイズを設定します。最小値は、tcp_recv_hiwat_minmss * MSS(最大セグメントサイズ)。動的変更、可能。
値の変更はしないでください。変更が必要な場合、4 以下には設定しないでください。
tcp_compression_enabled RW min = 0 (圧縮なし)
max = 1 (圧縮あり)
default = 1
1 に設定されている場合、TIME_WAIT 状態の TCP コネクションのプロトコル制御ブロックは、メモリ使用を減らすために圧縮されます。
0 に設定されている場合、圧縮はされません。
動的変更、可能。この圧縮機能は使用不可にしないでください。
tcp_host_param RO このパラメータは、IP アドレス、ネットワーク、サブネットワーク、および指定されたホストとの接続に使用される特定の TCP パラメータのデフォルト値をテーブルにしたものです。テーブルを表示するには、以下のように ndd コマンドを使用します。
# ndd /dev/tcp tcp_host_param


その他
パラメータ名Modemin/max/DefaultComment
tcp_conn_grace_period RW min = 0 msec
max = 20 msec
default = 0 msec
コネクション確立過程で SYN を送信するとき、タイマーイン間隔に追加される時間。
tcp_debug RW min = 0(OFF)
max = 10(enabled)
default = 0
TCP でバック情報の付加。
tcp_smallest_nonpriv_port RW min = 1024
max = 32*1024
default = 1024
特権のない最も小さいポート。
tcp_ip_abort_cinterval RW min = 1000
max = PARAM_MAX = (~(uint32_t)0) = ?
default = 180000 msec(3 min)
コネクション時(確立後)の(トータル再転送)タイムアウト時間。
tcp_ip_abort_linterval RW min = 1000 msec
max = PARAM_MAX = (~(uint32_t)0) = ?
default = 180000 msec(3 min)
パッシブオープンのための linger time 値をこの値の変更(減少)は SYN flood attacks から守る一つの方法です。
tcp_ip_notify_cinterval RW min = 1 msec
max = PARAM_MAX = (~(uint32_t)0) = ?
default = 10000 msec(10 sec)
新たな経路を見つるように IP に通知後、アクティブオープンを実行している際のタイムアウト値。コネクション確立時にリモートからのレスポンスがないとき、ARP ルートを削除するために IP と通信する時間。TCP_CONN_NOTIFY_ THRESHOLD
tcp_ip_notify_interval RW min = 500 msec
max = PARAM_MAX = (~(uint32_t)0) = ?
default = 10000 msec(10 sec)
新たな経路を見つるように IP に通知後、ESTABLISHED 状態でのタイムアウト値。TCP_NOTIFY_THRESHOLD
tcp_ipv4_ttl
(tcp_ip_ttl)
RW min = 1
max = 255
default = 64
送信されるセグメントの TTL(Time to live) 値。
tcp_keepalive_interval RW min = 10000 ms (10 sec)
max = 864000000 ms (10 days)
default = 7200000 ms (2 hours)
デフォルトの keepalive タイマ値。keepalive 検査を送る前に、コネクションがアイドル状態であるべき時間。
tcp_maxpsz_multiplier RW min = 1
max = 100
default = 2
アプリケーションが書き込みデータをパケット化する際の、パケットサイズの倍数の指定。
tcp_mss_def_ipv4
(tcp_mss_def)
RW min = 1
max = TCP_MSS_MAX_IPV4 (TCP_MSS_MAX) = 65495
default = 536
MSS(Maximum Segment Size) のデフォルト値。
tcp_mss_def_ipv6 RW min = 1
max = TCP_MSS_MAX_IPV6 = 65495
default = 1220
MSS(Maximum Segment Size) のデフォルト値。
tcp_mss_max_ipv4
(tcp_mss_max)
RW min = 1
max = TCP_MSS_MAX_IPV4 (TCP_MSS_MAX) = 65495
default = TCP_MSS_MAX_IPV4 (TCP_MSS_MAX) = 65495
ネゴシエートされた MSS(Maximum Segment Size) 値の最大値
tcp_mss_max_ipv6 RW min = 1
max = TCP_MSS_MAX_IPv6 = 65495
default = TCP_MSS_MAX_IPv6 = 65495
ネゴシエートされた MSS 値の最大値
tcp_mss_min RW min = 1
max = TCP_MSS_MAX = 65495
default = 1
ネゴシエートされた MSS 値の最小値
tcp_naglim_def RW min = 1
max = (64 * 1024) - 1 = 65535
default = {(4 * 1024) -1} = 4095
コネクションあたりの Nagle アルゴリズムしきい値の最大値値が 1 に設定されているときは、Nagle アルゴリズムは使用できない。
tcp_snd_lowat_fraction RW min = 0
max = 16
default = 0
設定値が 0 以外なら、送信バッファの低水位マーク(low-water mark) は、送信バッファサイズをこの値で割ったもの割った値になる。除数の定義。
tcp_sth_rcv_hiwat RW min = 0
max = 128000
default = 0
設定値が 0 以外なら、ストリームヘッダ高水位マーク(stream head high-water mark) を設定するための値。ストリームヘッダの受信ウィンドウの最大値。
tcp_sth_rcv_lowat RW min = 0
max = 128000
default = 0
設定値が 0 以外なら、ストリームヘッダ低水位マーク(stream head low-water mark) を設定するための値。ストリームヘッダの受信ウィンドウの最小値。
tcp_dupack_fast_retransmit RW min = 0
max = 10000
default = 3
高速再転送と高速リカバリアルゴリズムのきっかけとなる、連続する重複 ACK の数。
tcp_ignore_path_mtu RW min = 0
max = 1
default = 0
設定値が、1 の場合、パス MTU ディスカバリは受信した ICMP フラグメンテーション要求メッセージを無視する。0 の場合、TCP でパス MTUディスカバリは有効。
tcp_rcv_push_wait RW min = 0
max = (128 * 1024) = 131072
default = 16384
アプリケーションに送られる前に受信できる PUSH フラグなしのデータの最大バイト数。
tcp_smallest_anon_port RW min = 1024
max = TCP_MAX_PORT = 65535
default = (32 * 1024) = 32768
anonymous 接続の際、TCP エフェメラルポートに割り当てられる最小のポート番号。Solaris ではエフェメラルポートで使用されるのは、32768以上です。
tcp_largest_anon_port RW min = 1024
max = TCP_MAX_PORT = 65535
default = TCP_MAX_PORT = 65535
anonymous 接続の際、TCP エフェメラルポートに割り当てられる最大のポート番号。
tcp_xmit_lowat RW min = TCP_XMIT_LOWATER = 4096
max = (1<<30) = 65536
default = TCP_XMIT_LOWATER = 4096
送信バッファの低水位マーク(low water mark)初期値
tcp_recv_hiwat RW min = TCP_RECV_LOWATER = 2048
max = (1<<30) = 65536
default = TCP_RECV_HIWATER = 24576
デフォルトの受信バッファサイズの値。最終的な値は、デフォルト値を越える MSS の倍数になる。
tcp_fin_wait_2_flush_interval RW min = 1 sec
max = PARAM_MAX = (~(uint32_t)0) =
default = 675000 msec (675 sec)
アプリケーション終了後、エンドポイントがどのくらいで FIN_WAIT_2 状態にとどまるかを設定する値。
tcp_co_min RW min = 0
max = TCP_MSS_MAX = 65495
default = 64
受信セグメントのセグメント長。
tcp_strong_iss RW min = 0
max = 2
default = 1
設定値が 0 以外の場合、シークエンス番号の初期値の生成方法を設定。0 旧式のシークエンス番号の初期値の生成方法
1 ランダムに生成するよう改善された方法
2 コネクション毎にユニークに割る振られる方法。RFC 1948
tcp_rtt_updates RW min = 0
max = 65536
default = 20
RTT(コネクションにおける往復時間)評価値がキャッシュされる前に、TCP コネクションに当てはめる RTT 値。設定値 0 は RTT 評価値がキャッシュされないことを意味する。
tcp_co_timer_interval RW min = 10 msec
max = 50 msec
default = 20 msec
調査中
tcp_trace RW min = 0 (無効)
max = 1 (有効)
default = 0
TCP Trace は、このパラメータを有効にしておくと、 TCP コネクションのリセット・セグメントによる切断時に、最後の約 10 セグメントの情報を標準出力する機能。
tcp_ipv6_hoplimit RW min = 0
max = IPV6_MAX_HOPS = 255
default = IPV6_DEFAULT_HOPS = 60
IPv6 TCP 転送における最大ホップ数
tcp_wroff_xtra RW min = 0
max = 256
default = 32
バッファに置かれる IP オプションとデータリンクヘッダ用の特別なスペースのバイト数。
tcp_extra_priv_ports RO - 受信ポートとして使用するための登録ポート現在の設定を表示
tcp_extra_priv_ports_add WO - 受信ポートとして使用するために、登録ポートを追加する。
tcp_extra_priv_ports_del WO - 受信ポートとして使用するために、登録されているポートを削除する。
tcp_status RO - すべての TCP エンドポイントの情報
tcp_bind_hash RO - TCP バインド・ハッシュ・リストを表示。bind されている TCP すべて(つまり CLOSE/IDLE 以外)の状態を表示。
tcp_listen_hash RO - listen 状態のエンドポイントをすべて表示する。
tcp_conn_hash RO - コネクション確立状態あるいあはそれ以降の状態のエンドポイントをすべて表示させる際のパラメータ。
tcp_acceptor_hash RO - TCP キュー・ハッシュ・リストを表示。acceptorであるすべての TCP を表示。
tcp_time_wait_stats RO - 累積 TIMEWAIT 数と累積 compressed tcp(?)数を表示
tcp_host_param_ipv6
(tcp_hpst_param)
RW - このパラメータは、IP アドレス、ネットワーク、サブネットワーク、および指定されたホストとの接続に使用される特定の TCP パラメータのデフォルト値をテーブルにしたものです。テーブルを表示するには、以下のように ndd コマンドを使用します。
# ndd /dev/tcp tcp_host_param_ipv6
tcp_1948_phrase WO - TCP にシークエンス番号初期値生成のハッシュを生成させる
tcp_close_wait_interval
(obsoleted- use tcp_time_wait_interval)
NOT RW - コネクションが TIME_WAIT 状態にとどまる時間。Soraris 8 ではすでに「すたれてきている(obsolescence)」情報を伝えるためだけのダミー値という位置づけ。

オラクルユニバーシティSolaris系技術トレーニング一覧

Solarisお勧め書籍

Solaris 11.2 システムハンドブック
Oracle Solaris 11 試験対策本(OCA)