[Mew-dist 14000] Re: Fw: [Mew-Win32 02744] POPの待ち時間が長くなる要因は?

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2000年 8月 31日 (木) 20:50:17 JST


From: Shuichi KITAGUCHI (北口修一) <kit at example.com>
Subject: [Mew-dist 13999] Fw: [Mew-Win32 02744] POPの待ち時間が長くなる要因は?

> あと原因が同じかどうかはわかりませんが、私の環境(FreeBSD 4.1-STABLE)
> でも "Connecting to the POP server ... " の次にいきなり "connection failed"
> と出て、i を連打しているとそのうちに取りに行くという謎な挙動を示すこと
> があります。
> # システムが全体的に軽い(ISP が混んでない時間帯かつ裏で何もしていない)
> # 時になりやすいように感じます。

process.c を読んでもらうと分かりますが、connect() に失敗しています。
connect() が失敗する原因はたくさんあります。ので、一概に原因は特定でき
ません。

常時接続のクライアント、かつ同一セグメントのサーバに connect() しよう
としても、失敗することがあります。インターネットってそんなものなので、
気にしないで下さい。害はないでしょう?

#そもそも、Ethernet の通信は保証されてないってことを、みんな理解して
#いるかなぁ。(FDDI じゃないんだよ。)

#POP は TCP を使っているけど、TCP の信頼性って、データが届いたか否か
#判断できることであって、必ずパケットを届けることじゃないよ。

> 詳しい追跡は週末にしてみますが、とりあえず報告まで

やるだけ無駄なので、やらなくていいです。:-)

From: Masaru Ishikawa <mishikawa at example.com>
Subject: [Mew-Win32 02744] POPの待ち時間が長くなる要因は?

> POPで使っていますが、'i'でgetするとき、すぐにPOP Password:とパスワード
> 入力になるときと、Receiving in background ... が長く表示されてなかなか
> パスワード入力にいかないときとがあります。ときには1分ほど待たされる
> 場合もあります。
> 
> こうなる要因はなんなのでしょうか。サーバへのアクセスに関連するとは思う
> のですが、

環境が分からないと原因は想像できません。

	- dial up なのか?
	- nameserver はどこにいるのか?
		local host or ISP?
	- OS はなにか?

dial up の環境では何が起っても不思議ではありません。たとえば、
nameserver が ISP 側にいるとします。すると、Emacs はまずサーバ名を
IP アドレスに変換しようとして、nameserver に問い合わせるでしょう。

このパケットがトリガになって dial up 回線が張られます。このとき、PPP 
がすぐ張られればいいけど、張られなければパケットは落ちます。(dial up 
ルータにもよる。)

パケットが落ちると、トランスポート層での再送を待たないといけません。
UDP だから、ライブラリの特性によります。Windows の gethostbyname() っ
てどれくらいニートかしら?

> (mew-1.95b55 でも試しましたが、こちらはb51のときと順序が違いますが、
> やはりCommunicating with POP server ... という表示になって長時間待たさ
> れることがあります。Windows Meで使用していますが、Windows 98 でも同じ

両者のバージョンを比較すると、後者のバージョンの方がより適切にメッセー
ジを表示するようになっています。ので、メッセージが変化しているは当然で
す。

結論としては、とりあえずそういうものだと思うってことです。

もし、dial up に特有の現象なら、POP サーバに ping を打ってから、"i" を
押すと問題はほとんど解決します。ping 打つと、dial up が確立されるから。

Emacs だと、ネットワークの細かい制御は不可能なので、割りきるしかないで
しょうね。

# コロンブスの卵のような解決案を求む。
# hook で ping しちゃう? (冗談)

--かず



Mew-dist メーリングリストの案内