Solaris OSパラメータ一覧

nddパラメータ
Solarisの各種パラメータを紹介します。
なお、これらのパラメータ値を変更する場合には「ndd」コマンドを使用して変更することが可能です。
/dev/ip
/dev/tcp
/dev/udp
/dev/icmp
/dev/hme
/dev/ge

/dev/ip

IP Tunable Parameter
パラメータ名ModeMinimum/Maxmum/DefaultComment
ip_icmp_err_interval RW min = 0
max = 99999
default = 500
IPv4 または IPv6 ICMP エラーを生成する際、IP の比率を制御するパラメータ。
IP は、ip_icmp_err_burst までの間、ip_icmp_err_interval 毎に、IPv4 または IPv6 ICMP エラーメッセージを生成します。このパラメータはサービス拒否攻撃を防ぎます。ip_icmp_err_interval を 0 に設定すると、エラーメッセージを生成させることはできません。動的変更可能。
ip_icmp_err_burst RW min = 0
max = 99999
default = 10
上記参照
ip_forwarding
ip6_forwarding
RW min = 0 (転送しない)
max = 1 (常に転送)
default = 0
システムが受信データグラムを転送するかどうかを指定する。動的変更 、可能。
lo0:ip_forwarding
hme0:ip_forwarding
(xxx:ip_forwarding)
RW min = 0 (転送しない)
max = 1 (常に転送)
default = 0
特定の xxx I/F で IPv4 転送を可能にする。xxx は I/F 名。たとえば、hme0,lo0 など。動的変更 、可能。
ip_respond_to_echo_broadcast
ip6_respond_to_echo_multicast
RW min = 0 (応答しない)
max = 1 (応答する)
default = 0
ICMPv4 エコー要求をブロードキャストまたは、ICMPv6 エコー要求をマルチキャストへの応答をするかしないか。動的変更 、可能。
ip_send_redirects
ip6_send_redirects
RW min = 0 (送信しない)
max = 1 (送信する)
default = 1
ICMPv4,ICMPv6 リダイレクトメッセージを送信するかどうか。動的変更 、可能。
ip_forward_src_routed
ip6_forward_src_routed
RW min = 0 (送信しない)
max = 1 (送信する)
default = 1
発信元 IPv4 ルーティングオプション、IPv6 ルーティングヘッダのついているパケットを転送するかどうか。動的変更 、可能。
ip_addrs_per_if RW min = 1
max = 8192
default = 256
実際の I/F にいくつまで論理 I/F を関連づけることができるか。この値は変更しないこと。より多くの論理 I/F がほしい場合、値を上げること。ただし、IP のパフォーマンスが落ちる可能性が あることを理解しておくこと。動的変更 、可能。
ip_strict_dst_multihoming
ip6_strict_dst_multihoming
RW non-multihoming = 0
multihoming = 1
default = 0
転送をしない設定の I/F に着いたパケットが、その I/F で明示的に設定されていない IP アドレスに受けてもらうことができるかどうか。(マルチホーミング)ip_forwarding が 1 で常に転送、または、xxx:ip_forwarding が 1 で常に転送の場合は、このパラメータは無視されます。動的変更 、可能。
ip_ire_pathmtu_interval RW min = 5000
max = 999999999
default = 600000
IP がパス最大転送ユニット(PMTU)ディスカバリ情報をフラッシュし、PMTU を再発見(rediscover)するさいのインターバル。動的変更 、可能。
ip_icmp_return_data_bytes
ip6_icmp_return_data_bytes
RW min = 8
max = 65536
default = 64
IPv4 または IPv6 が ICMPv4 または ICMPv6 エラーメッセージを送るとき、エラーを引き起こすパケットのヘッダを含みます。このパラメータは ICMPv4 または ICMPv6 エラーメッセージに含まれる IPv4 または IPv6 ヘッダを何バイトのパケットにするかを設定します。動的変更 、可能。


その他
パラメータ名ModeMinimum/Maxmum/DefaultComment
ip_respond_to
_address_mask_broadcast
RW min = 0 (応答しない)
max = 1 (応答する)
default = 0
ICMP ネットマスク要求のブロードキャストに対して応答するかどうか。
ip_respond_to_timestamp RW min = 0 (応答しない)
max = 1 (応答する)
default = 1
ICMP タイムスタンプ要求に対して応答するかどうか。
ip_respond_to_timestamp_broadcast RW min = 0 (応答しない)
max = 1 (応答する)
default = 1
ICMP タイムスタンプ要求のブロードキャストに対して応答するかどうか。
ip_forward_directed_broadcasts RW min = 0 (転送しない、データグラムは破棄される)
max = 1 (転送する)
default = 1
送信先アドレスが接続インタフェースのダイレクトブロードキャストアドレスである受信データグラムをリンク層ブロードキャストとして転送するかどうか。
ip_debug RW min = 0
max = 10
default = 0
デバッグ情報出力を有効にする。
ip_mrtdebug RW min = 0
max = 10
default = 0
マルチキャストルーティングのデバッグ情報
ip_ire_timer_interval RW NA(未使用)
ip_ire_arp_interval RW min = 60000
max = 999999999
default = 1200000
arp info を所有しているため IRE_CACHE をすべて Flush するための時間
ip_ire_redirect_interval RW min = 60000
max = 999999999
default = 600000
ICMP リダイレクトで生成された経路情報の保持している時間
ip_wroff_extra RW min = 0
max = 256
default = 32
IP ヘッダに割り当てるための拡張分のスペースの合計サイズ
ip_path_mtu_discovery RW min = 0 (off,実行されない)
max = 1 (on,実行される)
default = 1
過度のパケットのフラグメンテーションを避けるために、パス MTU ディスカバリアルゴリズムが実行されるかどうかの設定。
もし、異なる MTU サイズのネットワーク間の Solaris 上で、 FDDI、TR、ATM を使用する場合、フラグメンテーションを使用可にするためにこの設定は off にしておかなければなりません。
ip_ignore_delete_time RW min = 0 sec
max = 240 sec
default = 30 sec
特定の経路情報を保持し続ける最小時間。
ip_ignore_redirect
ip6_ignore_redirect
RW min = 0
max = 1
default = 0
ICMP リダイレクトを無視するかどうか。
ip_output_queue RW min = 0 ( queue up しない)
max = 1( queue up する)
default = 1
フォロー制御が転送を止めたとき、パケットをキューに入れるかどうかの制御。
ip_broadcast_ttl RW min = 1
max = 254
default = 1
ブロードキャストパケットの TTL(Time To Live)値。
ip_reass_queue_bytes RW min = 0
max = 999999999
default = 1000000
再構成待ちできるフラグメント数。
ipsec_override_persocket_policy RW NA(未使用)
icmp_accept_clear_messages RW min = 0
max = 1
default = 1
通常、安全性が得られるまで平文で来たメッセージを格納しておく必要があります。このパラメータの設定値が 0 の場合、global policy と act accordingly をチェックします。0 以外の場合、チェックなしでメッセージを受けます。ただし、これは上位層へメッセージを受け渡すわけではなく、リプライを送り返すのを受け入れることで、MTU 値を変化させることを意味します。
igmp_accept_clear_messages RW min = 0
max = 1
default = 1
調査中
ip_ndp_delay_first_probe_time RW NA(未使用)
ip_ndp_max_unicast_solicit RW NA(未使用)
ip6_def_hops RW NA(未使用)
ip_ire_reclaim_fraction RW NA(未使用)
ipsec_policy_log_interval RW min = 0
max = 999999
default = 1000
ログ採取を絞り込む際に使うパラメータ。このパラメータ間隔で1メッセージのみを採取します。単位 msec
pim_accept_clear_messages RW >min = 0
max = 1
default = 1
PIM パケットを受け取りたくないとき、global policy を確認します。
ip_ill_status RO - 各 IP I/F の下位層の情報。
ip_ipif_status RO - 現在の IP I/F の情報のリスト
ipv4_ire_status
ipv6_ire_status
(ip_ire_status)
RO - 現在の IRE(Internet Routing Entries,ルーティングテーブルエントリ)のリスト。
ip_ipc_status RO BIND されているすべて(IPv4, IPv6)の IPC をレポートする。
(ex)
# ndd /dev/ip ip_ipc_status
IPCrfqstqlocalremote
...
IPC:対象 IPC の番地
rfq:対象 IPC の read queue のアドレス番地
stq:対象 IPC の write queue のアドレス番地
local:Local IP アドレス(v6 フォーマット)/ローカルポート
remote:Remote IP アドレス(v6 フォーマット)/リモートポート
# リモートポートが 0 の場合、接続されていない。
ip_rput_pullups RW default = 0 カウントバッファ
ip_enable_group_ifs RW 有効=1
無効=0
default = 0
IP Interface Group の 有効/無効にするパラメータ
INTERFACE GROUP :
I/F(logical or physical)が他の I/F と IP prefix を共有している場合、これらの I/F はインタフェースグループとしてひとまとまりとされる。IP は ソースアドレスが指定されていないく、複数の物理 I/F が同じグループにあるとき、ソースアドレスとしてインタフェースグループのものを交替で使います。
IP cache Entry を見る方法は、
# netstat -ar | grep UHA
ifgrp_status RO 調査中
ip_ndp_cache_report RO 未使用
ip_proxy_status RO 未使用
ip_srcid_status RO 未使用



/dev/tcp

TCP Tunable Parameter
パラメータ名ModeMinimum/Maxmum/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)の最大値の最も小さい値です。動的変更 、可能。


変更が推奨されていないパラメータ
パラメータ名ModeMinimum/Maxmum/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


その他
パラメータ名ModeMinimum/Maxmum/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)」情報を伝えるためだけのダミー値という位置づけ。

/dev/udp

UDP Parameter
パラメータ名ModeMinimum/Maxmum/DefaultComment
udp_wroff_extra RW min = 0
max = 256
default = 32
IP ヘッダーを割り当てる拡張領域の合計
udp_ipv4_ttl
(udp_def_ttl)
RW min = 1
max = 255
default = 255
UDP パケットの TTL(Time to live) 値
Solaris ではない古いシステムのデフォルト
udp_ipv6_hoplimit RW min = 0
max = IPV6_MAX_HOPS = 255
default = IPV6_DEFAULT_HOPS = 60
IPv6 ICMP 転送に於ける最大ホップ数
udp_smallest_nonpriv_port RW min = 1024
max = (32 * 1024) = 32768
default = 1024
非特権最小 UDP ポート番号
udp_trust_optlen ? min = 1024
max = (32 * 1024) = 32768
default = 1024
?? Solaris8 にはない。未使用?
udp_do_checksum RW min = 0
max = 1
default = 1
UDP パケットに対してチェックサムの適用指定。SunOS 4.X では OFF。
udp_smallest_anon_port RW min = 1024
max = UDP_MAX_PORT = 65535
default = (32 * 1024) = 32768
匿名接続に使用する最小 UDP ポート番号
udp_largest_anon_port RW min = 1024
max = UDP_MAX_PORT = 65535
default = UDP_MAX_PORT = 65535
匿名接続に使用する最大 UDP ポート番号
udp_xmit_hiwat RW min = 4096
max = 65536
default = 8192
UDP 送信ウィンドウ最大値(UDP ソケットデータグラムサイズの最大値)setsockopt() で呼び出してソケットバッファを設定しないなら、デフォルトの送信バッファはこのサイズ大きいサイズのデータグラムの送信は切り取られるか完全に拒否される。
アプリケーションは、setsockopt(3SOCKET) の SO_SNDBUF を使用して、個々のソケットのサイズを変更できます。一般に、デフォルト値を変更する必要はありません。
udp_xmit_lowat RW min = 0
max = 65536
default = 1024
UDP 送信ウィンドウ最小値
udp_recv_hiwat RW min = 4096
max = 65536
default = 8192
UDP 受信ウィンドウ最大値(UDP 受信バッファサイズの最大値)setsockopt() で呼び出してソケットバッファを設定しないなら、デフォルトの受信バッファはこのサイズ。大きいサイズのデータグラムの受信は切り取られるか完全に拒否される
netstat -s で udpinoverflows のカウンタを確かめ、この値が上がっているなら、netstat -s の UDP と IP の InError,InOverflows のカウンタも確かめる
Bug Id: 1246261 Synopsis: in.routed misses routes udpInOverflows
アプリケーションは、setsockopt(3SOCKET) の SO_RCVDBUF を使用して、個々のソケットのサイズを変更できます。一般に、デフォルト値を変更する必要はありません。
udp_max_buf RW min = 65536
max = (1024*1024*1024) = 1073741824
default = (256*1024) = 262144
setsockopt() で許可する最大バッファサイズバッファサイズは高帯域接続では増加する
以下の 2 つのバグのソケットバッファサイズの質問・変更,Solaris 2.5 で追加された ndd の値 "icmp_max_buf","udp_max_buf","tcp_max_buf" に関する追加情報
Bug Id: 4048554
Synopsis: man page of setsockopt set the limit of the buffer size to 64K on 2.5/2.5.1
Bug Id: 1164966
Synopsis: MAX_SNDBUF/RCVBUF has to be configurable.
udp_max_buf は (複数) UDP データグラムのカーネルバッファで、毎秒のデータグラムではない。インターネット標準ではカーネルをチューニングすることはできない。udp_max_buf は UDP データグラムのサイズに関係ない。インターネット標準 6 (RFC 768) は UDP データグラムを 64k に制限している(新しいプロトコルにとって小さい)。そこで新しいプロトコルでは、IPv6 や RFC 2147 "TCP and UDP over IPv6 Jumbograms" を定義している
UDP を使用して大きなデータを送信する際に、稀にパケットロスしてしまうという問題がある(例:64k UDP データグラムを MTU 1500 のネットワークに送信したら最小 45 IP パケットに断片化される)。これらのロスはどれも 64k の UDP データグラム全部を再送する。賢い人ならこのような送信には TCP を使用しましょう。
udp_extra_priv_ports RO - 現在の予約ポートの表示
udp_extra_priv_ports_add WO - 予約ポートの追加 (1024 個以下)デフォルトでは nfsd 用に 2049,4045 ポートだけ設定されている
udp_extra_priv_ports_del WO - udp_extra_priv_ports_add で加えたポートの削除
udp_status RO - UDP 接続情報

/dev/icmp

ICMP Parameter
パラメータ名ModeMinimum/Maxmum/DefaultComment
icmp_wroff_extra RW min = 0
max = 128
default = 32
ICMP ヘッダーを割り当てる拡張領域の合計
icmp_ipv4_ttl
(icmp_def_ttl)
RW min = 1
max = 255
default = 255
ICMP/RAWIP パケットの TTL 値
icmp_ipv6_hoplimit RW min = 1
max = IPV6_MAX_HOPS = 255
default = IPV6_DEFAULT_HOPS = 60
IPv6 ICMP 転送に於ける最大ホップ数
icmp_bsd_compat RW min = 0
max = 1
default = 1
パケットにする際の IP ヘッダ長フィールドに関係する設定
icmp_xmit_hiwat RW min = 4096
max = 65536
default = 8192
ICMP 送信バッファ最大値
icmp_xmit_lowat RW min = 0
max = 65536
default = 1024
ICMP 送信バッファ最小値
icmp_recv_hiwat RW min = 4096
max = 65536
default = 8192
ICMP 受信バッファ最大値
icmp_max_buf RW min = 65536
max = (1024*1024*1024) = 1073741824
default = (256*1024) = 262144
ICMP 送受信バッファ最大値
icmp_status RO - ICMP 接続情報

/dev/hme

hme Parameter
パラメータ名ModeMinimum/Maxmum/DefaultComment
transceiver_inuse RO - 0 内部トランシーバ
1 外部トランシーバ(デフォルト)
link_status RO - 現在の接続状態
0 接続
1 切断(デフォルト)
link_speed RO - 状態が接続の場合のみ有効
0 100Mbps
1 10Mbps(デフォルト)
link_mode RO - 状態が接続の場合のみ有効
0 全二重
1 半二重(デフォルト)


パケット間隔 (IPG) パラメタ
FEPS ASIC は、プログラム可能なパケット間の間隔 (IPG: Inter-Packet Gap) パラメタの ipg1 と ipg2 に対応しています。IPG の合計値は、ipg1 と ipg2 の合計値になります。
自動ネゴシエーションプロトコルによって接続速度が 10 Mbps に設定されている場合、デフォルトの IPG 合計は 9.6 ms になります。接続速度が 100 Mbps の場合は、0.96 ms になります。
バイト時間 = 100 Mbps または 10 Mbps の接続速度で 1 バイトを送信するのに要する時間

パラメータ名ModeMinimum/Maxmum/DefaultComment
ipg1 RW min = 0 バイト時間
max = 255 バイト時間
default = 8 バイト時間
上記参照
ipg2 RW min = 0 バイト時間
max = 255 バイト時間
default = 4 バイト時間
上記参照


lance_mode と ipg0 を使用したパケット送信前の追加遅延の定義
以下の 2 つの ASIC は、lance_mode という、プログラム可能なモードに対応しています。ipg0 は、lance_mode に関係するパラメタです。
Fast Ethernet Parallel Port SCSI (SBus 用 FEPS)
PCI Fast Ethernet and Expansion (PCI 用 PFEX)
lance_mode が有効な場合は (デフォルトの設定)、ipg0 パラメタを設定することによって、パケットを受信してから送信するまでの間に遅延が追加されます。ipg0 パラメタによって設定されるこの遅延は、ipg1 と ipg2 パラメタによって設定される遅延に追加されます。ipg0 で追加遅延を設定することによって、衝突を減少させることができます。lance_mode を有効にしたシステムでは、ネットワーク上で時間が不足する可能性があります。
lance_mode が無効な場合は、ipg0 の値は無視され、追加遅延は設定されません。この場合は、ipg1 と ipg2 によって設定された遅延だけが使用されます。他のシステムから大量の連続したパケットが送信され続けている場合は、lance_mode を無効にしてください。
追加遅延は、ipg0 パラメタに 0 - 31 の値を設定することによって設定することができます。これは、ニブル時間で表した遅延です。ニブル時間は、接続上で 4 ビットを送信するために必要な時間です。接続速度が 10 Mbps の場合、ニブル時間は 400 ナノ秒となります。接続速度が 100 Mbps の場合は、40 ナノ秒となります。
たとえば、接続の速度が 10 Mbps で、ipg0 を 20 ニブル時間に設定した場合、追加遅延は 20 * 400 ナノ秒で 8000 ナノ秒になります。接続速度が 100 Mbps で、ipg0 を 30 ニブル時間に設定した場合は、30 * 40 ナノ秒で 1200 ナノ秒になります。


パラメータ名ModeMinimum/Maxmum/DefaultComment
lance_mode RW min = 0 (lance_mode 無効)
max = 1 (lance_mode 有効)
default = 1
上記参照
ipg0 RW min = 0 ニブル時間
max = 31 ニブル時間
default = 16 ニブル時間
デフォルト値は 16 ニブル時間です。10 Mbps の場合は 6.4 マイクロ秒、100 Mbps の場合は 0.64 マイクロ秒になります。


動作モードのパラメタ
これらのパラメタの優先順位は、高いものから順に
adv_100fdx_cap、
adv_100T4_cap、
adv_100hdx_cap、
adv_10fdx_cap、
adv_10hdx_cap となります。


パラメータ名ModeMinimum/Maxmum/DefaultComment
adv_autoneg_cap RW min = 0 (強制モード)
max = 1 (自動ネゴシエーション)
default = 1
ハードウェアが通知するローカルトランシーバの機能
adv_100T4_cap RW min = 0 (100 BASE-T4 不可)
max = 1 (100 BASE-T4 可)
default = 1
ハードウェアが通知するローカルトランシーバの機能
adv_100fdx_cap RW min = 0 (100 Mbps、全二重不可)
max = 1 (100 Mbps、全二重可)
default = 1
ハードウェアが通知するローカルトランシーバの機能
adv_100hdx_cap RW min = 0 (100 Mbps、半二重不可)
max = 1 (100 Mbps、半二重可)
default = 1
ハードウェアが通知するローカルトランシーバの機能
adv_10fdx_cap RW min = 0 (10 Mbps、全二重不可)
max = 1 (10 Mbps、全二重可)
default = 1
ハードウェアが通知するローカルトランシーバの機能
adv_10hdx_cap RW min = 0 (10 Mbps、半二重不可)
max = 1 (10 Mbps、半二重可)
default = 1
ハードウェアが通知するローカルトランシーバの機能
use_int_xcvr RW min = 0 (接続されている外部トランシーバを使用する)
max = 1 (外部トランシーバが接続されている場合でも内部トランシーバを使用する)
default = 0
ユーザーがネットワーク用に選択したローカルトランシーバの機能
pace_size RW min = 0
max = 255
default = 0
送信可能な連続パケット数。pace_size の値が 0 の場合は、送信することができる連続パケットの数に制限はありません。0一度に送信できる連続パケット数の制限なし (デフォルト)1 - 255 一度に送信できる連続パケット数


トランシーバの機能を示す読み取り専用パラメタ
パラメータ名ModeMinimum/Maxmum/DefaultComment
autoneg_cap RO min = 0 (自動ネゴシエーション可)
max = 1 (自動ネゴシエーション不可)
default = 1
ハードウェアのローカルトランシーバ機能
100T4_cap RO min = 0 (100 BASE-T4 可)
max = 1 (100 BASE-T4 不可)
default = 1
ハードウェアのローカル外部トランシーバ機能
100fdx_cap RO min = 0 (100 Mbps、全二重可)
max = 1 (100 Mbps、全二重不可)
default = 1
ハードウェアのローカルトランシーバ機能 (起動時に初期化)
100hdx_cap RO min = 0 (100 Mbps、半二重可)
max = 1 (100 Mbps、半二重不可)
default = 1
ハードウェアのローカルトランシーバ機能 (起動時に初期化)
10fdx_cap RO min = 0 (10 Mbps、全二重可)
max = 1 (10 Mbps、全二重不可)
default = 1
ハードウェアのローカルトランシーバ機能 (起動時に初期化)
10hdx_cap RO min = 0 (10 Mbps、半二重可)
max = 1(10 Mbps、半二重不可)
default = 1
ハードウェアのローカルトランシーバ機能 (起動時に初期化)


接続相手の機能を示す読み取り専用パラメタ
パラメータ名ModeMinimum/Maxmum/DefaultComment
lp_autoneg_cap RO min = 0 (自動ネゴシエーション不可)
max = 1(自動ネゴシエーション可)
default = 0
接続相手のトランシーバ機能
lp_100T4_cap RO min = 0 (100 BASE-T4 可)
max = 1(100 BASE-T4 不可)
default = 0
接続相手のトランシーバ機能
lp_100fdx_cap RO - 0 100 Mbps、全二重送信可(デフォルト)
1 100 Mbps、全二重送信不可
lp_100hdx_cap RO min = 0 (100 Mbps、半二重送信可)
max = 1(100 Mbps、半二重送信不可)
default = 0
接続相手のトランシーバ機能
lp_10fdx_cap RO min = 0 (10 Mbps、全二重送信可)
max = 1(10 Mbps、全二重送信不可)
default = 0
接続相手のトランシーバ機能
lp_10hdx_cap RO min = 0 (10 Mbps、半二重送信可)
max = 1(10 Mbps、半二重送信不可)
default = 0
接続相手のトランシーバ機能
instance RW - デバイスインスタンス

/dev/ge

ge Parameter
パラメータ名ModeMinimum/Maxmum/DefaultComment
link_status RO min = 0 (接続)
max = 1(切断)
default = 0
現在の接続状態
link_speed RO min = 0 (接続されていない)
max = 1000(1000 Mbps で接続)
状態が接続の場合のみ有効
link_mode RO min = 0 (半二重)
max = 1(全二重)
状態が接続の場合のみ有効 ( hme と逆なので注意)


フロー制御パラメタ
GEM ASIC は、IEEE 802.3x フレームのリンクレベルフロー制御プロトコル準拠の一時停止(PAUSE) フレームの送信(ソーシング)と受信(ターミネーティング ) に対応しています。
例えば 、フロー制御フレームを受信すると、それに反応して転送レートを落とすように GEM を設定できます。あるいは逆にフロー制御フレームを接続相手に送信して、接続相手の転送レートを落とすようにも設定できます (ただし接続相手もこの機能をサポートしている場合のみ可能です) 。デフォルトでは、GEM の一時停止フレーム受信機能は、自動ネゴシエーションの間のみ有効となるように設定してあります。
通常の状況であれば、GEM の側からフロー制御フレームを送信する必要はありません。しかし転送速度の遅いバス (例えば 33 MHz の PCI バススロット) を使用していて、かつフレームの受信が非常に多い場合などは、FIFO の受信オーバーフローが原因でパフォーマンスが低下する可能性があります。そのような状況でも、接続相手側がフロー制御フレーム PAUSE の受信に対応していれば、adv_pauseTX の設定を「送信可能」に設定して自動ネゴシエーション機能を再起動するだけで、GEM のパフォーマンスを改善できます。

パラメータ名ModeMinimum/Maxmum/DefaultComment
adv_pauseTX RW min = 0 (PAUSE の送信可)
max = 1(PAUSE の送信不可)
default = 1
上記参照
adv_pauseRX RW min = 0 (PAUSE の送信可)
max = 1(PAUSE の送信不可)
default = 1
上記参照


パケット間隔 (IPG) パラメタ
GEM ASIC はプログラム可能なパケット間隔 (IPG: Interpacket Gap)パラメタとして、ipg1 および ipg2 をサポートしています。

パラメータ名ModeMinimum/Maxmum/DefaultComment
ipg1 RW min = 最小 0 バイト時間
max = 255 バイト時間
default = 8 バイト時間
上記参照。
バイト時間 = 1000 Mbps の接続速度で 1 バイトを送信するのに要する時間
ipg2 RW min = 0 バイト時間
max = 255 バイト時間
default = 4 バイト時間
上記参照。
バイト時間 = 1000 Mbps の接続速度で 1 バイトを送信するのに要する時間


lance_mode と ipg0 を使用したパケット送信前の追加遅延の定義
GEM ASIC は lance_mode というプログラム可能モードに対応しています。ipg0 は、この lance_mode の設定に使用します。

パラメータ名ModeMinimum/Maxmum/DefaultComment
lance_mode RW min = 0 (lance_mode 無効)
max = (lance_mode 有効)
default = 1
上記参照。
ipg1 RW min = 0
max = 31
default = 8
パケット送信前 (パケット受信後) に追加する IPG 値


動作モードのパラメタ
パラメータ名ModeMinimum/Maxmum/DefaultComment
adv_1000autoneg_cap RW min = 0 (強制モード)
max = 1 (自動ネゴシエーションモード)
default = 1
ハードウェアが通知するローカル PCS 機能
adv_1000fdx_cap RW min = 0 (全二重で 1000 Mbps、不可)
max = 1 (全二重で 1000 Mbps、可)
default = 1
ハードウェアが通知するローカル PCS 機能
adv_1000hdx_cap RW min = 0 (全二重で 1000 Mbps、可)
max = 1 (全二重で 1000 Mbps、可)
default = 1
ハードウェアが通知するローカル PCS 機能
adv_pauseTX RW min = 0 (TX 機能を一時停止しない)
max = 1 (TX 機能を一時停止する)
default = 0
ハードウェアが通知するローカル PCS 機能
adv_pauseRX RW min = 0 (RX 機能を一時停止しない)
max = 1 (RX 機能を一時停止する)
default = 0
ハードウェアが通知するローカル PCS 機能


ローカル PCS 機能のレポート
パラメータ名ModeMinimum/Maxmum/DefaultComment
1000autoneg_cap RO min = 0 (自動ネゴシエーション不可)
max = 1 (自動ネゴシエーション可)
ローカル PCS の自動ネゴシエーション機能
1000fdx_cap RO min = 0 (全二重で 1000 Mbps、不可)
max = 1 (全二重で 1000 Mbps、可)
default = 1
ローカル PCS の全二重機能
1000hdx_cap RO min = 0 (半二重で 1000 Mbps、不可)
max = 1 (半二重で 1000 Mbps、可)
default = 1
ローカル PCS の半二重機能
asm_dir_cap RO min = 0 (非対称型一時停止、不可)
max = 1 (非対称型一時停止、可)
ローカル PCS のフロー制御機能
pause_cap RO min = 0 (対称型一時停止、不可)
max = 1 (対称型一時停止、可)
ローカル PCS フロー制御機能


接続相手の機能を表示する読み取り専用パラメータ
パラメータ名ModeMinimum/Maxmum/DefaultComment
lp_1000autoneg_cap RO min = 0 (自動ネゴシエーションなし)
max = 1 (自動ネゴシエーションあり)
自動ネゴシエーション機能
lp_1000fdx_cap RO min = 0 (全二重で 1000 Mbps ではない)
max = 1 (全二重で 1000 Mbps)
全二重機能
lp_1000hdx_cap RO min = 0 (半二重で 1000 Mbps ではない)
max = 1 (半二重で 1000 Mbps)
半二重機能
lp_asm_dir_cap RO min = 0 (非対称型一時停止、不可)
max = 1 (非対称型一時停止、可)
フロー制御機能
lp_pause_cap RO min = 0 (対称型一時停止、不可)
max = 1 (対称型一時停止、可)
フロー制御機能

Solaris TOPページへ戻る