岡崎です。

返答を沢山頂いてありがとうございます。
今日、別のPCが届いて、GIGABYTEのGA-G33M-DS2Rで、
先ずオンボードのRTL8111Bで同じことをやったら同じ状態になりました。
次にVIA製のPCIを挿して切り替えると、再現しなくなりました。
ドライバから石までの間に何かありそうと感じました。

> ・複数のWinXPホストから確認しても全てダメ、ということでしょうか?

4台のWinXPから、100M/1G織り交ぜてtelnetを
試したので全てダメ確定でいいと思います。pingでは再現しません。
telnetでもBSD系OSからだと再現しないようです。

> ・telnet以外は全く問題ない、ということでしょうか?

いえ、WinXPから、ping以外はどれも問題があります。
統計的には、BSD系OSだと問題ないようです。
例えば、atalkはOSXから問題なく使えるようでした。

      |ping|telnet|その他
───┼──┼───┼──
 WinXP| ○ |  ×  |×
───┼──┼───┼──
 BSD系| ○ |  ○  |?atalkとかは大丈夫


> windows 側から ping のパケットサイズを100,1000,1500,2000といった
> ふうに変えて送り出してチェックしてみてください。

WinXPからパケットサイズを大きくしたところ20000ほどでも
pingはFreeBSD5.3と比較して変化がありませんでした。
 #あ、サイズを小さくしたほうがよかったかもですね。。。

あと、
netstat -e はよくわかりませんでしたが、何度かtelnetをしてから見てみると、

C:\>netstat -e
Interface Statistics

                           Received            Sent

Bytes                      44199269         5916560
Unicast packets               51615           44234
Non-unicast packets           49596             438
Discards                          0               0
Errors                            0               0
Unknown protocols              2286

とうようなメッセージでした。
Errorはありませんが、Unknownがありますね。
Unknownはほっといても増えるのかな。勉強不足ですみません。


> このオプションはかなり前からあるはずです。
> 無効にする場合は
> >      -y      Suppresses encryption of the data stream.
> こちらで。

フォローありがとうございます。
BSDからでもこの現象を再現できないかと、
 % telnet -y xxx.xxx.227.21
としましたが、暗号化されてしまいました。
マニュアルとは仕様がかわったのですかね。


> 良くわからないので
>  ifconfig re0 -rxcsum -txcsum
> とかどうでしょう。カーネルでチェックサムの計算を行い NIC に計算
> させません。

なるほど。
NICのチェックサムにバグがあったんですね。

> こんにちは。
> はじめまして、黄と申します。
> 
> この問題ですが、先日ちょうど私もまったく同じような現象とあったことあります。
> 原因はFreeBSDにあるこのNICのドライバが古いみたいです。
> 対策としては、カーネルの再構築が必要かもしれません。
> ドライバは以下のサイトからダウンロードすることが出来ます。
> http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=2&PNid=13&PFid
=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2
> 
> 以下は中にあるReadmeの内容です。

なるほど。
RTL8111BはWebページに載ってますが、Readmeからは外れてるのですね。
中身はみれませんでしたが、実は対応できてないかもしれませんね。


> ソフトウエアの問題かどうかは
> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c
> これが参考になるかも。
> ひょっとするとこれかなぁ。
> お使いのFreeBSDのバージョンが6.2_RELEASEということですので
> 現在のif_re.cのバージョンは1.46.2.20といったところでしょうか。

ああ、ざっと読ませて頂きました。
専門用語かつ英語だとぼんやりしか理解できませんが、
チップのチェックサムにバグがあって、
ドライバで対応してる途中で6.2releaseが出たんでしょうか。
石にバグがあるというのは、ちょっと勘弁願いたいですね。

皆さんのおかげで核心に近づくことができました。
ありがとうございます。あとは、


> reドライバーだけ最新のモノに入れ換えるという手もありですし
> FreeBSD6.2からFreeBSD6.3へOSの移行の敷居はかなり低いので
> 練習をかねてRELENG_6を使ってみるのもありかと思います。

ソースをしかるべき位置に置いて、カーネルを再構築するのでしょうか。

6.3RC1は試してみたところ、理由はわかりませんが、
5時間くらいのあいだに5回ほどpanicになったり落ちたので、
現状では見送らせてください。

本当にありがとうございました。
先に、仕事のスケジュールを取り戻すために安定したマシンを組ませて下さい。
その後にこの件を検討させてください。

メールによる返信