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

阿部 司 abe @ jo.tomakomai-ct.ac.jp
2009年 4月 3日 (金) 11:52:05 JST


田辺さん

苫小牧高専の阿部です。

毎回、返信が遅く申し訳ありません。

>>>  (PPP と)モデムの接続を、最も理にかなった方法で切断して電話を切る処理を
>>> 御伝授頂けないでしょうか? 下記に SYSYLOG を添付させていただきます。
>>> 現在は、単に tcp_sht_cep() と tcp_cls_cep() を呼び出しているだけです。
>> TCP を切断しても、LCP (PPP) レベルでは接続状態ですので、
>> lcp_close() を呼び出す必要があると思います。
>> tinet/netapp/dbg_cons.c の 1884 行目付近のコードを参考にしてください。
> 
>  lcp_close() を呼び出すだけでよかったんですね。。。
> 早速、試してみました。結果、無事、切断処理をしてくれました。
> 有難う御座いました。
> 通常、lcp_close() は誰が呼び出すように設計されているのでしょう・・・。

残念ながら、私にも情報はありません。

>  もう少し甘えさせてください。あと1件、問題があります。
> お時間の許す限りで結構ですので、御享受いただけると幸いです。
> 
> 1.再接続すると TCP の通信が出来ない
> 
>  tcp_sht_cep() と tcp_cls_cep() で閉じたソケットと同じ ID で
> 再度、tcp_con_cep() を用いて接続しようとすると、
> モデムは再発信を行い、PPP の接続までは完了しているようなのですが、
> tcp_con_cep() から制御が戻ってきません。何故でしょう?
> 
>  シーケンスの流れとしては、
> 
> ・TCP_CRE_CEP() で受付口の作成
> ・tcp_con_cep(TMO_FEVR) でサーバに接続
> ・接続後、tcp_snd_dat(TMO_FEVR)、tcp_rcv_dat(TMO_FEVR) で通信
> ・tcp_sht_cep(TMO_FEVR) でデータ送信終了
> ・tcp_cls_cep(TMO_FEVR) で通信端点のクローズ
> ・tcp_con_cep(TMO_FEVR) でサーバに再接続 ← ここで制御が戻ってこない
> 
>  tcp_con_cep() 関数中の、
> 	error = twai_flg(cep->est_flgid, (CEP_EVT_CLOSED |
> 			CEP_EVT_ESTABLISHED), TWF_ORW, &flag, tmout);
> でブロックされているようです。
> 
>  もしや、tcp_con_cep() を呼び出してはいけない?
> 若しくは、動的 APIの tcp_cre_cep() を使わないといけない?

サンプルプログラムの nserv 等では、特に問題はありませんが、
サーバの設定なのでしょうか
TRACE を有効にして、TCP のセグメントの送受信を見るのも有効かもしれません。
TRACE については、tinet.pdf の 19ページ

「5.6 TCP ヘッダのトレース出力機能」

を参照してください。

> 2.パケットの喪失・順番の相違が発生する
> 
>  PPP で SMTP サーバに接続し、メールを送っているのですが、
> 一部、送ったデータの順番が代わっていたり、データが喪失してしまっているようです。
> 同じプログラムを数回繰り返してもサーバ側での受信結果が同じ内容になるので、
> 私の使い方に問題がありそうなのですが、見落としがちな点などは無いでしょうか?
> 送受信バッファのサイズを変更すると、受信側の様子がわかるので、
> バッファの内容を壊してしまっているようにも見えなくも無いのですが・・・。

こちらについては、toppers-users 2891 でも書かせていただきましたが、

私が把握している範囲では、H8/3069F のシリアル関係の
割り込み応答があまり早くなく、取りこぼしが発生するようです。
完全な解決はできませんが、通信速度を落とすか、
tinet/net/ppp_lcp.h のDEF_PPP_MTU の値を小さくしてみてください。
多少緩和されると思います。

いずれにしても、現在 PPP 周りの検証を行うことが困難なため、
TINET リリース 1.5 から、一時的に PPP を外す予定です。

よろしくお願いします。

-- 
.\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司
.\" 〒059-1275 北海道苫小牧市字錦岡443番地
.\" E-mail: abe @ jo.tomakomai-ct.ac.jp  TEL/FAX: 0144-67-8937