著作一覧 |
SP1を入れてから、HPのプリンタがまともにプリントできなくなった。また、HPか、と思ってインストールし直したりしたが、どうにもまともに動かない。
しばらくいろいろやっていてふと気付いたが、最初威勢良くプリントを開始して、すぐにだんまりになるというパターンだな。
で、最終的にネットワークドライバのフロー制御がdisableになっているのを、Rx&Tx Enableに変更してみたら、これが当たりだった。
SP1を当てた結果、よくわからないデフォルト値になった(インストール直後のデフォルト値とは異なっているのだと思われる)としか思えない。
それにしても、このIntel(R) PRO/1000 MT Server Connectionというドライバは設定項目が多い。
追記:コメント欄にごちゃごちゃ書いたが、間違っている(#c03)と思うので、まじめに考えてみる。それにしても、FreePeekを64ビットカーネルに対応させるんだろうか?(と思ったら、WinPcapにはx64版もあるのか。なら実測だ、とは、少なくとも今はしない)
HPは、AirMac Expressの先につながっている。一方、PC側は100Mbpsの有線LANにいる。プリントデータは数Mバイト以上ある。そこでフロー制御がなければ、PC側は、TCPのWindowサイズ分、一気にプリントデータを送信するだろう(待てよ。先送りできるはずだから、Windowサイズ×先送り可能な分ということか(追記:間違い。Windowsサイズ=先送り可能なパケット数×パケットサイズ)。びっくりするくらい忘れているな)。Switchはしばらくは持ちこたえるはずだ。しかし、所詮安物。送り先はAirMac Expressだからどう頑張っても、速度的に勝てるはずがない。あっというまに、Switchのバッファ(なんか、8Kバイトくらいしかないような気がしてきたよ。20世紀の遺物だし)があふれ、途中でプリントデータは捨てられることになる。
一方、プリンタ側には中途半端にしか送られてこないので待ち状態になる。
この状態で、プリンタドライバ側(TCP/IP)は、ACKが返ってこないことに気づき、送信待ちとなる。TCP/IPの再送間隔しだいだが、何しろMACのところが何も考えずに送信してしまうから、何が起きてもおかしくはない(たとえば、TCPの1パケットの尻切れというような状態だって起こりうる。CRCエラーになるからわかるはずだが、純粋なACK待ちとは異なるから、どういう実装かによって変わるはず—IPは単なるデータグラムなので、ここでは再送はない)。しかし、再送が、またとてつもない量の送出となるため、結局SwitchまたはAirMac ExpressのLANの口であふれてしまう、ということだろう。
おそらく、すべて有線環境なら、フロー制御は(現在のマシンで構成されているネットワークならば)不要かもしれない(と、判断したのでSP1ではフロー制御をdisableしたのだろう)。あるいは、最近のSwitchならバッファが十分にありそうだから、その場合も問題ないかも(TCPのレイヤでACK待ち状態になれば、そこで応答待ちになるから、それ以上は書き込みは起きない)。また、すべて無線LANなら、ドライバーにフロー制御なしというオプションはないから問題ない。
ということだろう。i401さんの場合、VPN(接続先はWANだからLANとの間でやはり遅延が発生するはず)だから、同様にVPNルータあたりであふれたのだと思われる(あるいはWANの中で溶けてしまったか)。
ジェズイットを見習え |
>最終的にネットワークドライバのフロー制御がdisableになっているのを、Rx&Tx Enableに変更してみたら<br><br>わたしのところではこの変更をしたことでVPN経由でWindowsの名前解決ができない不具合が治りました。<br><br>VistaSP1でIntel(R) PRO/1000を使っている人は、もれなくこの設定変更をするべきなのかも。
おお、他でも出ているんですね。<br>もっとも、この設定が、SP1を入れるとネットワークが高速になるという(記事を読んだ記憶があるわけですが)理由だとすると、お互い、しょぼいネットワークだということなのかも知れませぬ。
待てよ、しょぼいのはマシンのほうなのか。確かに今となっては2.8G NetBurst Xeonは遅いかも。
Windowサイズ=先送り可能な分 でしょう。<br>あと、Windows サイズは徐々にしか開きませんし、パケットが落ちた場合には、そこで開くのが止まる (Windows サイズが、その時点での値の半分になる) と思います... が、実は Vista SP1 の TCP の挙動が普通と違うんでしょうかね?
ありがとうございます。<br>>Windowサイズ=先送り可能な分 でしょう。<br>あ、そうか。そうですね。<br>>Windows サイズは徐々にしか開きませんし、<br>ここは、たぶん、最初から大きめなのだと思います。<br>>ista SP1 の TCP の挙動が普通と違うんでしょうかね?<br>さすがに、それはないと思いますねぇ。再現はいつでもできるので、週末あたりに何が起きたのか調べてみます。