ネットが頻繁に切れる現象に対処する

 Windows7 などで、ネットワークが切れる

 Windows7のSNP機能をオフにして安定したネットワーク環境を入手しよう。ネットワーク設定を改善して遅い不具合を解消しよう。

 64bitOS にしてからネットが瞬断するんだよね。WEBなんかもディレイしてからリトライするから遅くて仕方ない。遅い遅い!。JDownloader2を使っているんだけど転送中にネットが切れてリトライが30分待ちとか1日待ちになっちゃうんだよね。これじゃ面倒で仕方ない!!。

 SNP(Scalable Networking Pack)とは
SNPとは、本来はCPUが行っていたネットワーク処理をCPU負荷軽減のためにNIC(ネットワーク・インタフェースカード)で行わせる機能。うまくいっていればPC全体のパフォーマンスが向上する。

 SNPの3つの機能
(1) Receive-Side Scaling
 CPUの受信処理をマルチコアで処理する機能。
(2) TCP Chimney Offload
 処理が重いと言わるチェックサム計算などのTCPの送受信処理をCPUでは無くNICに担当させる機能。
(3) Network Direct Memory Access (NetDMA)
 NICがメモリアクセスする時にCPUを経由せずに直接メモリアクセス出来るようにする機能。

 SNPの問題点
 NICのドライバがSNPに完全対応していれば良いのだが、NICチップやカードによってはメモリーリークやネットワークパケットの取りこぼしが発生し、ネットワークの問題で正常に通信できないという問題が発生する。
 で、困った事に未対応のNICドライバが存在するにもかかわらず、Windwos7の初期設定ではSNP機能がオン状態になっているのです。



ここではWindws7以降のOSでの対処を記述します。

 SNPがオンか否かのチェック
 ネットワークの問題が発生している場合は、まずSNPが動作しているかチェックします。
 コマンドプロンプトTCPグローバルパラメーターを見てみましょう。
    【Windows7】 『スタート>アクセサリ>コマンドプロンプトを右クリック→管理者モードでコマンドプロンプトを起動』する
    【Windows8】 『デスクトップ画面>左下のフォルダアイコンを開く>左ペインのマイコンピュータ>Cドライブを選択>Altキーでメニュー表示>ファイル>コマンドプロンプトを管理者として開く』

↓これがWindows7のデフォルト値です


>netsh int tcp show global
アクティブ状態を照会しています...
TCP グローバル パラメーター

                                                                                        • -

Receive-Side Scaling 状態 : enabled
Chimney オフロード状態 : automatic
NetDMA 状態 : enabled
Direct Cache Acess (DCA) : disabled
受信ウィンドウ自動チューニング レベル : normal
アドオン輻輳制御プロバイダー : none
CEN 機能 : disabled
RFC 1323 タイムスタンプ : disabled
** 上の autotuninglevel 設定は、少なくとも 1 つのプロファイルのプロファイルのローカル/ポリシー構成を上書きするウィンドウ スケーリング ヒューリスティックの結果です。

上から3つ、「Receive-Side Scaling状態」「Chimney オフロード状態」「NetDMA 状態」がSNP機能を表しています。



 SNP機能の無効化

これまた、コマンドプロンプトで無効化をセットしましょう。


TCP Chimney Offload の無効化
>netsh int tcp set global chimney=disabled

・Receive-Side Scaling(RSS)の無効化
>netsh int tcp set global rss=disabled

・Network Direct Memory Access(NetDMA)の無効化
>netsh int tcp set global netdma=disabled

当然、リブート(再起動)する

(*)追申
 実はWindows8ではデフォルトで「Chimney オフロード状態」と「NetDMA 状態」がdisabledになり、「Receive-Side Scaling状態」はenabledのままでした。
 このことから、Windows7の場合は、「Chimney オフロード状態」と「NetDMA 状態」をdisabledにするのが賢明だと思われます。  
 

 参考
http://blogs.technet.com/b/jpntsblog/archive/2010/03/23/scalable-networking-pack.aspx
http://www.windows-tips.info/2013/05/10/windows-7-netwoek-snp-offload/

 LANの自動構成をオフにする
 「コントロールパネル」「インターネットのプロパティ」「LANの設定」「自動構成」の
 「設定を自動的に検出する」をオフにする