更新履歴 [ 全て表示戻す ]
2020.06.20: ページ内の情報を Windows 10 にも対応

2016.01.26: 文末にすげー詳しいリンクを1件追加
2016.01.18:「受信ウィンドウ自動チューニングレベル」の項目を別ページに移動
2015.07.09: サイト内リンクの修正、Windows7での操作手順に追記。
2015.02.01: 初出


Windows 10 / 8.1 / 7 / Vista には、多くのIT系サイトや個人ブログで無効設定が強く推奨されている残念な機能があります。インターネットが極端に遅いと感じる場合は、ぜひ試してみましょう。

はじめに

このページは、NIC(ネットワーク・インターフェース・カード) SNP設定を無効にする手順について解説しています。

SNP とは。
「Scalable Networking Pack」の略。ネットワークを最適化する機能・・・といいたい所ですが、多くのIT系サイトや個人ブログで、無効設定が強く推奨されているチョット残念な機能です。
(無効を推奨する他サイトの参考リンクは、ページ下段にあります)

事前準備

以下の手順を行う前に、NIC(ネットワーク・インターフェース・カード/LANカードのこと) のドライバを最新の状態にしておきましょう。

確認する内容

コマンドプロンプトを起動し、
「netsh int tcp show global」
と入力する。
※管理者権限のコマンドプロンプトを起動しましょう。
 (次項の無効化操作で管理者権限が必要になります)

netsh int tcp show global
▲クリックで拡大
※ 画像はWindows 7のものです。8.1 や 10 では表示される項目が少し異なります
----------------------------------------------
Receive-Side Scaling 状態        : enabled
Chimney オフロード状態       : automatic
NetDMA 状態                          :enabled
----------------------------------------------

この上記の3項目は、ハードウェア側が対応していない場合は、無意味である上、対応したハードを搭載している場合も問題を起こしやすく、ほとんどのPC環境で無効設定にした方が良い結果が得られます。

スポンサー リンク

設定を無効にする方法(Windows 10 / 8.1 / 8 / 7 の場合)

コマンドプロンプトで、以下のコマンドを入力します。
※コマンドプロンプトは管理者権限が必要です。

  • Receive-Side Scaling(RSS)の無効化
    「netsh int tcp set global rss=disabled」
    ※通信に極端な障害が発生していない場合や、効果を感じられない場合は、enabledでも良いかもしれません。
  • TCP Chimney オフロード の無効化
    「netsh int tcp set global chimney=disabled」
     ※Windows 10 では未サポート。設定不要
  • NetDMA(Network Direct Memory Access)の無効化
    「netsh int tcp set global netdma=disabled」
     ※Windows 10 / 8.1 / 8 では未サポート。設定不要

設定を行った後は、念のため PCを再起動しておきましょう。
※ TCP Chimney オフロードと NetDMA については、弊害が大きかったためか Windows 8.1~10 では実装されなくなっています。

設定を無効にする方法(Windows 7の場合)

※この手順は、上項目のコマンドプロンプトで操作した場合は不要かもしれません?
regeditを起動して、以下のレジストリを書き換える(値が無い場合は作成する)

値の場所
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters」

設定する値
名前: EnableTCPA
種類: REG_DWORD
値: 0 (無効)

設定終了後、PCを再起動する。

設定を無効にする方法 (Vistaの場合その1)

まず以下の更新プログラムを適用する
(KB967224) Windows Server 2008 または Windows Vista を実行しているコンピューター上の TCP/IP のグローバルパラメーターを変更するのには、netsh コマンドを使用すると、レジストリ内のいくつかの TCP/IP パラメーターに不適切な値に変更されます。

パッチ適用後、管理者権限のコマンドプロンプトで以下を実行する。

  • Receive-Side Scaling(RSS)の無効化
    「netsh int tcp set global rss=disabled」
    ※通信に極端な障害が発生していない場合や、効果を感じられない場合は、enabledでも良いかもしれません。
  • TCP Chimney オフロード の無効化
    ※Vistaの場合、通常は無効になっているので不要。
    「netsh int tcp set global chimney=disabled」
  • ※NetDMA の無効化はレジストリから行う
    (次項目で解説)

設定を無効にする方法 (Vistaの場合その2)

regeditを起動して、以下のレジストリを書き換える
値の場所
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters」

  • Receive-Side Scaling
    ※コマンドプロンプトで操作した場合は不要
    • 値の名前: EnableRSS
      値の種類: REG_DWORD
      値: 1 (有効) 0 (無効)
  • TCP Chimney オフロード
    ※コマンドプロンプトで操作した場合は不要
    • 値の名前: EnableTCPChimney
      値の種類: REG_DWORD
      値: 1 (有効) 0 (無効)
  • NetDMA
    • 値の名前: EnableTCPA
      値の種類: REG_DWORD
      値: 1 (有効) 0 (無効)

設定終了後、PCの再起動を行う。

 

手順の紹介は、以上で終了です。

注意書き

このページに書いた情報は、私自身がトラブルを体験したものでなく、コメント欄で教えて頂いた情報や、ネット上で拾い集めた情報をまとめた部分が大きいページです。
上記の手順は、自己責任にてお願いします。

また、ネットワーク接続に問題が発生していない場合などは、上記の操作は不要だと思われます。

おまけ:各OSのデフォルト設定

  • Windows Vista
    RSS         : 有効
    TCP Chimney Offload : 無効
    NetDMA        : 有効

  • Windows 7
    RSS         : 有効
    TCP Chimney Offload : 自動
    NetDMA        : 有効
  • Windows 8 8.1
    RSS         : 有効
    TCP Chimney Offload : 無効
    NetDMA        : 有効 or 無効(不明)(注:表示はされる)

    • ※Windows 8/Windows 8.1では、NetDMAはサポートされていない。
  • Windows 10
    RSS         : 有効
    TCP Chimney Offload : 表示なし
    NetDMA        : 表示なし

    • ※Windows 10 では、NetDMA と TCP Chimney Offload はサポートされていない。

Receive Side Scaling(RSS)について

受信制御をマルチコアで分担する機能。
無効の場合は、マルチコアCPUであってもシングルコアで処理させる。
ゲームやセキュリティソフトなど、ネット通信と同時にマルチスレッドの処理を行うツールと極端に相性が悪くなる場合がある。

TCP Chimney Offload について

ネットワーク制御を(CPUで処理を行うところを)NICに負荷を分散させる機能。

TCP Chimney Offload の「自動」は、ネットワークアダプタ設定において、「TCP Chimney Offload が有効」かつ「10Gb イーサーネットなど高速なネットワーク環境を利用」している場合に有効。

Network Direct Memory Access(NetDMA)について

NICからのメモリーへの直接アクセスする機能。
CPU処理で行うところをチップ側全体で補うことで負荷分散を行う

サイト内関連ページ

参考リンク

SNPについて、さらに詳しく学んでみたい

予期せぬ挙動が!? 新機能 Scalable Networking Pack をご存知ですか? - Ask the Network & AD Support Team - Site Home - TechNet Blogs
すげー詳しい&濃いです。私は途中で読むの挫折しました(^_^;
とりあえずページ後半の
 ・トラブルシューティングの流れ
 ・切り分けが必要な理由
 ・SNP の無効化の考慮
この辺だけでも覚えておくと、トラブルが発生した場合や、Gbpsクラスの通信環境での最適化に何か役に立つことがあるのでは…?と思います。

あとがき

私自身は、過去それなりの数のPCを所有してきましたが、実はこのページに書いてあるSNP関連のトラブルに見舞われた事がありません。
これは、一部のセキュリティソフトやゲームがSNP設定と破壊的に相性が悪いような気がします。