(toppers-users 2907) Re: TINET による PPP 接続時の切断について

Manabu Tanabe m_tanabe @ na.rim.or.jp
2009年 3月 30日 (月) 11:26:09 JST


 阿部 様

 田辺@名古屋です。

 お世話になっております。
御返信有難う御座います。お手数をお掛けして申し訳ありません。

 小生も NUM_TCP_TW_CEP_ENTRY は気になっていましたので、
TINET ライブラリに付属の nserv を参考に tinet_app_config.h に

#if defined(USE_TCP_MSS_SEG)
#define NUM_TCP_TW_CEP_ENTRY		3
#else
#define NUM_TCP_TW_CEP_ENTRY		6
#endif

と定義はしているのですが・・・。どうも言うことを聞いてくれません。

 SMTP サーバとの通信となりますので、QUIT コマンドを送信後、
サーバ側でもソケットをクローズする処理をしているはずで、
クライアント側でも tcp_sht_cep() と tcp_cls_cep() を呼び出しているので、
ソケットのステータスが TIME_WAIT になる場合があると思います。

 そこで、QUIT コマンドを送信せず、ソケットをこちらから切断すると、
tcp_sht_cep() と tcp_cls_cep() がブロックされずに処理が終わりました。
が・・・やはりモデムは切断されず・・・。

 (PPP と)モデムの接続を、最も理にかなった方法で切断して電話を切る処理を
御伝授頂けないでしょうか? 下記に SYSYLOG を添付させていただきます。
現在は、単に tcp_sht_cep() と tcp_cls_cep() を呼び出しているだけです。

---------- SYSYLOG ここから ----------
[NET/TIMER:3] started.
[PPP OUTPUT:5] started.
[TCP OUTPUT:4] started.
call send_mail().
 CONNECT
[MODEM] dial: 057000????.
[MODEM] up.
[PPP/LCP] unexp opt: 19.
[PPP] up.
[PPP/IPCP] unexp opt: 2.
[PPP/IPCP] up, Local IP Addr: ???.???.45.65, Remote IP Addr: 0.0.0.0.
 SEND MAIL

<この間、暫く時間が経過...>

[PPP] idel 180 [s], disconnecting.
[PPP/IPCP] down.
[PPP] down.
[MODEM] down.
---------- SYSYLOG ここまで ----------

> これは、TCP の仕様です。tinet/doc/tinet.pdf の 16ページ
> 
> 「5.1 タスクからの Time Wait 状態の TCP 通信端点分離機能」
> 
> を参照してください。
> 
>   NUM_TCP_TW_CEP_ENTRY
> 
> にエントリ数を設定してみてください。
> 
> > その後、tcp_cls_cep() から制御は戻ってきますが、実際にモデムが切断されるのは、
> > 更にそこから2分ほど経過して、ppp.c の idle_timeout() で 180 秒?の
> > アイドルタイムアウトが発生してからになります。
> 
> 残念ながら、こちらの方は情報不足で、状況がわかりません。
> 
> よろしくお願いします。
> 
> -- 
> .\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司
> .\" 〒059-1275 北海道苫小牧市字錦岡443番地
> .\" E-mail: abe @ jo.tomakomai-ct.ac.jp  TEL/FAX: 0144-67-8937

 以上、よろしくお願いいたします。

-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-
 E-mail  : m_tanabe @ na.rim.or.jp
-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-