[PR]
by amanatu
-->
カレンダー
«  «  2007 4月  »  »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5

メインメニュー

最新ブログエントリ

エンジニアアイテム


最近のコメント

最近のトラックバック

アーカイブ


メルマガ登録 ID: 0000209784
UNIXのおべんきょしませんか?
 
バックナンバー powered by まぐまぐトップページへ
ブログ - 最新エントリ
 最新エントリ配信

最新エントリ
2007/04/18
カテゴリ: Miscellaneous : 

執筆者: unix (4:39 pm)
 TCPのコネクション確立も、何も通信が無いときの動きも
今まで説明しました。きちんと送信側が送信したにも関わらず
途中でパケットがなくなってしまうことがあります。

 TCPセッション中にデータを送信しますが、そのデータの
入ったパケットが相手に届く間に消えてなくなった場合
送り元がもう一度送りなおすんです。

※どうやって届いているのか否かの判断をしているかは今後機会があれば説明します。

その「送りなおす」つまり再送の間隔を決めるのが

tcp_retries1
tcp_retries2

という2つのパラメータなんです。

まず送ったのに届かないと判断した場合はtcp_retries1の値(デフォルト3回)に
従って、設定された値の回数だけ再送します。
デフォルト値では3秒から8分の間になります。

そしてそれでも消失してしまうなら、ネットワークとして
問題ありという判断になり、ルートの更新などが行われます。

そして、さらに今度はtcp_retries2のパラメータの値(デフォルト15回)に
従って再送ができなければセッションを切断します。


【変更する場合】
●[再起動したら無効になる方法]
# echo 5 > /proc/sys/net/ipv4/tcp_retries1
# echo 2 > /proc/sys/net/ipv4/tcp_retries2
●[再起動しても有効になる方法]
# vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 2
を追記

# sysctl -w  ←変更を反映
# sysctl -p  ←確認
2007/04/10
カテゴリ: Miscellaneous : 

執筆者: unix (11:46 am)
TCPのセッションを「確立したまま」にする時間が

tcp_keepalive_time

であることを説明しましたが、

このtcp_keepalive_timeの時間(デフォルト2時間)が来ると
どうなるかというと

tcp_keepalive_probes
tcp_keepalive_intvl

という2つのパラメータの値が効いてきます。


tcp_keepalive_probesに指定したデフォルト9回の無通信のTCPセッションに対して
定期的に検査をします、その間隔はというとtcp_keepalive_intvlで指定した
デフォルト75秒になります。

つまり最高で

9回x75秒=675秒(約11分)

経過し相手から反応が無ければ接続を切ります。

tcpのkeepalive関係をまとめると

┌───────────┬─────────────┐
│生存時間 │プローブ │
├───────────┼─────────────┤
│tcp_keepalive_time │tcp_keepalive_probes(9回) │
│(2時間) │tcp_keepalive_intvl(75秒) │
└───────────┴─────────────┘


【変更する場合】
●[再起動したら無効になる方法]
# echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
# echo 2 > /proc/sys/net/ipv4/tcp_keepalive_intvl
●[再起動しても有効になる方法]
# vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 2
を追記

# sysctl -w  ←変更を反映
# sysctl -p  ←確認
2007/04/02
カテゴリ: Miscellaneous : 

執筆者: unix (4:48 pm)
 前回までTCPのセッションオープンについてみてきましたが
今回からはTCPのセッションが確立した後、特にデータの転送など
何も無くても一度確立して、切断するまでは確立したままになります。

その「確立したまま」の時間を定義するのが

tcp_keepalive_time

とういカーネルパラメータです。
デフォルトは「7200秒」になっています。

7200秒=120分=2時間

です。

注※2時間後に切断されるわけではない。

適当にこの2時間という時間を決めているわけではありません

"RFC1122 Requirements for Internet Hosts"
4.2.3.6 TCP Keep-Alives
http://www.faqs.org/rfcs/rfc1122.html
の2時間以内にしましょうというのが元となっています。

正確にはこのパラメータはkeep-aliveプローブ(定期的な検査)の送信までの時間になります。
ですから7200秒後にプローブが始まるというわけです。

ただアプリケーション側でのキープアライブなどがあり
そちらで制御されている場合もあります。

【変更する場合】
●[再起動したら無効になる方法]
# echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time

●[再起動しても有効になる方法]
# vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_time = 300
を追記

# sysctl -w  ←変更を反映
# sysctl -p  ←確認

技術コンテンツ全文検索

表示形式: ソート:

pitattomatch ADs
最新ニュースブロック
ヘッドラインブロック
新着リンク
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Powered by Xoops2.05  Theme Design by OCEAN-NET
copyright (c) 2003 All rights reserved.