Armadilloフォーラム

KeepAliveについて

k.sato

2019年5月27日 12時57分

佐藤と申します。

下記を参考にArmadillo460、440でKeepAliveを設定しました。
https://users.atmark-techno.com/comment/3939#comment-3939

どちらもパラメータをDelay=2、Interval=1、ErrCount=3に設定しWriesharkで確認したのですが
接続してから2秒後から2秒周期でKeepAliveが送られていました。
(リンク先の「tcpdump の表示」も2秒周期?)

想定だと接続して2秒後から1秒周期でKeepAliveが送信されると思っていました。

またDelay、Intervalの値をいくつか変更して確認してみたのですが
DelayよりIntervalが大きくないと周期通りKeepAliveが送信されません。

これは設定がおかしいのでしょうか?
それとも私の認識が間違っていますか?

コメント

at_makoto.sato

2019年5月28日 9時44分

佐藤です。

KeepAlive の動作は、
TCP_KEEPIDLE に設定した時間無通信状態が継続するとKeepAliveパケットを送出し、
それに対する応答がなかった場合、TCP_KEEPINTVL に設定した時間間隔で TCP_KEEPCNT に設定した回数までKeppAliveパケットの送出をリトライする。
というものになります。

ですので、
> 想定だと接続して2秒後から1秒周期でKeepAliveが送信されると思っていました。
この認識とは若干異なります。

k.sato

2019年5月28日 10時15分

ありがとうございます。

> KeepAlive の動作は、
> TCP_KEEPIDLE に設定した時間無通信状態が継続するとKeepAliveパケットを送出し、
> それに対する応答がなかった場合、TCP_KEEPINTVL に設定した時間間隔で TCP_KEEPCNT に設定した回数までKeppAliveパケットの送出をリトライする。

そういう動作なのですね。