更新履歴(3件・最終更新 2026年08月02日)
この記事に加えた変更の記録です。アーカイブした更新前のバージョンは、DOI付きの固定URLから読めます。
- 記事の冒頭に「この記事の知識マップ」節を追加しました。本文で扱っている概念とその関係を、要約・図・詳細ページへのリンクにまとめたものです。本文の主張は変えていません。
- 外部レビュー(1283件)への対応として本文を更新しました。個々の変更内容は、この下の履歴を参照してください。
- 記事の使い方の表と、18語の略語ミニ用語集を冒頭に追加しました。「無効評価」が「無効にしろ」ではなく評価対象という意味であることを明記し、変更して測って戻す4手を添えました。ローカルでのキャプチャがchecksumエラーに見える理由と、`pktmon`を含む3つの手段を追加しました。実測値は測っていないため、数値ではなく測り方を示しています。
- 初版公開
この記事を引用する(DOI: 10.5281/zenodo.21589642)
この記事はZenodoにアーカイブされています。常に最新版へ解決されるDOIと、いま表示している版に固定されたDOIの両方を下に示します。
小村 豪(2026)「Windows NIC詳細設定ガイド - RSS/LSO/EEE/Wake on LAN」合同会社小村ソフト. https://doi.org/10.5281/zenodo.21589642 https://staging.comcomponent.com/blog/2026/03/15/001-windows-nic-advanced-properties-guide/
- DOI(最新版)
- 10.5281/zenodo.21589642
- DOI(この版)
- 10.5281/zenodo.21732670
Windows の NIC の [Advanced] タブ は、見慣れない単語がかなり並びます。
Jumbo Packet、Large Send Offload、Interrupt Moderation、Receive Side Scaling、Flow Control、Energy Efficient Ethernet。名前だけを見ると全部有効にしたくなりますが、実際には 何を優先したいか で正解が変わります。
- 大容量転送のスループットを上げたいのか
- 小さい packet のレイテンシを詰めたいのか
- CPU 使用率を下げたいのか
- スリープ復帰や Wake on LAN を安定させたいのか
- ドライバやスイッチとの相性問題を切り分けたいのか
ここが曖昧なまま「とりあえず全部 On」「とりあえず Jumbo 9014」「遅いから 1Gbps Full に固定」をやると、かなり普通に事故ります。
この記事では、主に Windows 10 / 11 / Windows Server の有線 Ethernet アダプタ を対象に、NIC の詳細設定を実務で触るときの考え方を整理します。 設定の意味、値を上げる / 下げる / 有効化 / 無効化すると何が起きやすいか、どんな場面で触るべきかを、まとめて見渡せるように書いていきます。
なお、NIC の表示名や選べる値は ベンダーとドライバでかなり変わります。
Jumbo Packet が Jumbo Frames だったり、Receive Buffers が Receive Descriptors だったり、Priority & VLAN が Packet Priority & VLAN だったりします。この記事では、意味が近いものはまとめて扱います。
この記事の使い方
14 章あって長いので、先に導線を置きます。全部読む必要はありません。
| 目的 | 読むところ |
|---|---|
| 結論だけ先に見たい | 1 章 |
| いま何が設定されているか見たい | 2 章(GUI と PowerShell) |
| 触る前の作法を知りたい | 3 章(1 項目ずつ変える、測るものを決める) |
| 設定の意味を知りたい | 4 章の一覧表 → 5〜9 章(設定ごとの詳細) |
| 目的別の結論だけ欲しい | 10 章(デスクトップ / NAS / 低レイテンシ / Hyper-V / 切り分け用) |
| 症状から調べたい | 11 章(100Mbps になる、転送が遅い、jitter、復帰不良、checksum error) |
| スクリプトで確認・変更したい | 12 章 |
いちばん多いのは「症状から入って、11 章 → 該当設定の章 → 10 章で戻す」という読み方だと思います。
略語ミニ用語集
設定画面と照らし合わせながら読めるように、この記事に出てくる略語をまとめておきます。
| 略語 | 展開 | ひとことで言うと |
|---|---|---|
| MTU | Maximum Transmission Unit | 1 パケットで送れる最大サイズ。通常は 1500 バイト |
| RSS | Receive Side Scaling | 受信処理を複数 CPU に分散する |
| RSC | Receive Segment Coalescing | 受信した TCP セグメントを NIC 側でまとめる |
| LRO | Large Receive Offload | RSC の別名。ベンダーによってはこちらの表記 |
| LSO | Large Send Offload | 大きな TCP 送信データを NIC 側で分割する |
| TSO | TCP Segmentation Offload | LSO の別名 |
| USO | UDP Segmentation Offload | 大きな UDP パケットの分割を NIC 側で行う |
| URO | UDP Receive Segment Coalescing Offload | 受信した UDP データグラムを NIC 側でまとめる |
| EEE | Energy Efficient Ethernet (IEEE 802.3az) | リンクが idle のときに消費電力を落とす |
| WoL | Wake on LAN | ネットワーク経由でスリープ中の PC を起こす |
| VMQ | Virtual Machine Queue | Hyper-V の VM ごとに受信キューを割り当てる |
| VMMQ | Virtual Machine Multi-Queue | VMQ をさらに複数キューへ広げたもの |
| SR-IOV | Single Root I/O Virtualization | NIC を仮想的に分割して VM へ直接見せる |
| RDMA | Remote Direct Memory Access | CPU を介さずに相手のメモリへ直接読み書きする |
| DCB | Data Center Bridging | ロスレス Ethernet を作るための一連の規格 |
| PFC | Priority-based Flow Control | 優先度ごとに pause をかける Flow Control |
| DPC | Deferred Procedure Call | 割り込み処理の後半を担う、優先度の高い遅延処理 |
| NDIS | Network Driver Interface Specification | Windows のネットワークドライバのインターフェイス仕様 |
1. まず結論
最初に、実務で外しにくい結論だけ先に置きます。
- Speed & Duplex は基本 Auto です。100Mbps に落ちる問題で、いきなり
1.0 Gbps Full Duplex固定に走るのは最後です。 - Checksum Offload / RSS / LSO / RSC は、原則は有効または既定値 です。雑に全部切ると CPU を無駄に食いやすくなります。
- Jumbo Packet は end-to-end で揃うときだけ 使います。NIC だけ 9014 にしても、途中経路が 1500 のままだと落とし穴です。
- Interrupt Moderation は throughput と latency の綱引き です。高めにすると CPU は楽になりますが、レイテンシは増えます。
- Flow Control は drops を減らす方向に効くことがありますが、輻輳を広げることもあります。
- EEE / Green Ethernet / Selective Suspend は省電力のための設定 で、速くする設定ではありません。
- VMQ / SR-IOV は Hyper-V ホスト向け で、普通のデスクトップ PC を速くする魔法ではありません。
- Wake on Pattern Match は意図しない wake の原因になりやすい ので、Wake on LAN が欲しいだけなら Magic Packet に寄せるほうが安全です。
- TCP Chimney Offload など古い項目は今は触らない ほうがよいです。
要するに、NIC の詳細設定は「強そうなものを全部有効にする場所」ではありません。 スループット、レイテンシ、CPU、消費電力、互換性のどれを取りに行くのか を決めて、1 個ずつ触る場所です。
この記事の知識マップ
WindowsのNIC詳細設定(Advancedタブ)は、Speed & Duplex、Jumbo Frame、Checksum Offload、LSO/TSO、RSC/LRO、RSS、Interrupt Moderation、Flow Control、EEE、Wake on LAN、Selective Suspend、VMQ/SR-IOVなど多数の項目から構成され、いずれも同じタブで構成します。大容量転送のスループットを取りたいならJumbo・LSO・RSC・RSSを有効にする一方、低レイテンシを取りたいならRSC・Interrupt Moderation・EEEを無効化候補として評価します。Speed & Duplexの片側固定はduplexミスマッチを、EEEはリンクの100Mbpsへのダウンシフトを引き起こすことがあり、Checksum Offloadが有効だとローカルキャプチャでchecksumエラーに見えることがありますが、これはpktmonやミラーポートでの確認によって切り分けられます。
flowchart LR
accTitle: Windows NIC詳細設定の知識マップ
accDescr: NIC詳細設定の各項目がAdvancedタブで構成されること、スループット重視と低レイテンシ重視で推奨設定が分かれること、Speed & DuplexやEEEがダウンシフトやduplexミスマッチの原因になり得ること、Checksum Offloadがローカルキャプチャのchecksumエラーに見える現象とpktmonでの確認方法の関係を示す図。
nic_advanced_properties["NIC詳細設定(Advancedタブ)"]
speed_duplex["Speed & Duplex"]
duplex_mismatch["duplexミスマッチ"]
link_speed_downshift["リンク速度のダウンシフト"]
jumbo_frame["Jumbo Packet/Jumbo Frames"]
checksum_offload["Checksum Offload"]
local_capture_checksum_error["ローカルキャプチャのchecksumエラー"]
pktmon["Packet Monitor(pktmon)"]
lso_tso["Large Send Offload(LSO/TSO)"]
rsc_lro["Receive Segment Coalescing(RSC/LRO)"]
rss_nic["Receive Side Scaling(RSS)"]
interrupt_moderation["Interrupt Moderation"]
flow_control_8023x["Flow Control(802.3x pause frame)"]
eee["Energy Efficient Ethernet(EEE/Green Ethernet)"]
wake_on_lan["Wake on LAN(Wake on Magic Packet)"]
selective_suspend["Selective Suspend"]
vmq_sriov["VMQ/VMMQ/SR-IOV"]
low_latency_workload["低レイテンシ重視のワークロード"]
large_transfer_workload["大容量転送・スループット重視のワークロード"]
hyper_v_host_networking["Hyper-Vホストのネットワーク構成"]
nic_resume_failure["スリープ復帰後のNIC接続不良"]
speed_duplex -->|"で構成できる"| nic_advanced_properties
speed_duplex -.->|"原因になり得る"| duplex_mismatch
speed_duplex -.->|"軽減する"| link_speed_downshift
jumbo_frame -->|"で構成できる"| nic_advanced_properties
checksum_offload -->|"で構成できる"| nic_advanced_properties
checksum_offload -.->|"原因になり得る"| local_capture_checksum_error
local_capture_checksum_error -->|"で確認できる"| pktmon
lso_tso -->|"で構成できる"| nic_advanced_properties
rsc_lro -->|"で構成できる"| nic_advanced_properties
rss_nic -->|"で構成できる"| nic_advanced_properties
interrupt_moderation -->|"で構成できる"| nic_advanced_properties
flow_control_8023x -->|"で構成できる"| nic_advanced_properties
eee -->|"で構成できる"| nic_advanced_properties
wake_on_lan -->|"で構成できる"| nic_advanced_properties
selective_suspend -->|"で構成できる"| nic_advanced_properties
vmq_sriov -->|"で構成できる"| nic_advanced_properties
rsc_lro -.->|"用いるのは非推奨"| low_latency_workload
interrupt_moderation -.->|"用いるのは非推奨"| low_latency_workload
eee -.->|"用いるのは非推奨"| low_latency_workload
jumbo_frame -.->|"推奨される対応"| large_transfer_workload
rss_nic -->|"推奨される対応"| large_transfer_workload
lso_tso -->|"推奨される対応"| large_transfer_workload
rsc_lro -->|"推奨される対応"| large_transfer_workload
vmq_sriov -->|"推奨される対応"| hyper_v_host_networking
selective_suspend -.->|"原因になり得る"| nic_resume_failure
eee -.->|"原因になり得る"| link_speed_downshift
図の実線は常に成り立つ関係、破線は条件付きの関係です(成立条件は詳細ページの各関係の説明に記載)。関係すべての一覧(全26件、根拠・確度つき)と主要概念の定義は知識マップ詳細ページにまとめています。データ: JSON-LD / Turtle
2. どこで設定を見るか
2.1 GUI で見る
ネットワーク接続から入る
ncpa.cplを実行- 対象アダプタを右クリック
- プロパティ → 構成
- 詳細設定 (Advanced) タブ
デバイスマネージャから入る
- デバイスマネージャ
- ネットワーク アダプター
- 対象 NIC を右クリック → プロパティ
- 詳細設定 タブ
ここに並ぶ項目が、この記事の主役です。 ただし、Power Management タブの設定 も実務ではかなり効くので、後半で扱います。
2.2 PowerShell で見る
PowerShell だと、今の値を一覧で見たり、変更前のバックアップを取ったりしやすいです。
Get-NetAdapter
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Sort-Object DisplayName |
Format-Table DisplayName, DisplayValue, RegistryKeyword, RegistryValue -Auto
NIC によっては RegistryKeyword が標準化された名前になっていて、*RSS、*VMQ、*SRIOV、*EEE のように見えることがあります。
ただし、DisplayName と DisplayValue はドライバ依存 です。変更スクリプトを書くときは、実機でまず一覧を見たほうが安全です。
3. 触る前の大原則
NIC 設定を触る前に、ここを外すとだいたい沼ります。
3.1 まず「何を良くしたいか」を決める
同じ「ネットワークが遅い」でも、中身はまったく別です。
- 大きなファイルコピーが遅い → throughput、RSS、RSC、LSO、Jumbo、バッファ
- 小さい request/response がもたつく → Interrupt Moderation、RSC、EEE、キュー深さ
- CPU が高い → オフロード、RSS、RSC、割り込み
- スリープ復帰後におかしい → Selective Suspend、Power Management、WoL
- たまに切れる / 100Mbps になる → ケーブル、相手機器、Speed & Duplex、EEE、ドライバ
目的が違うのに同じ設定を触ると、改善どころか悪化します。
3.2 まず物理層と相手機器を疑う
NIC 設定では直らない問題も普通にあります。
- ケーブル不良
- スイッチ / ルータ / dock の相性
- 古い firmware
- USB NIC の電力不足
- ポート側のエラー
- パケットロスや再送
特に 100Mbps に落ちる、リンクがフラップする、大容量転送だけ壊れる は、設定より先に物理と相手を見るほうが早いです。
3.3 1 回に 1 項目だけ変える
Jumbo、LSO、RSC、RSS、EEE を一気に変えると、何が効いたのか分からなくなります。 変更前の設定を書き出して、1 項目ずつ 変えて、変化を測るのが基本です。
3.4 測るものを決める
最低でも、このあたりは見たいところです。
- リンク速度(1G / 2.5G / 10G など)
- スループット
- レイテンシ
- CPU 使用率
- NIC の統計(drop / error / buffer shortage)
- スリープ復帰の安定性
設定変更は、体感だけでなく数字で見るほうが強いです。
4. 主要設定の一覧表
まずは、設定ごとの役割を一枚で見られる表を置きます。
| 設定 | 何をする設定か | 上げる / 有効にすると起きやすいこと | 下げる / 無効にすると起きやすいこと | 基本方針 |
|---|---|---|---|---|
| Speed & Duplex | リンク速度と duplex の交渉 / 固定 | 古い相手と合わせれば繋がることはあるが、不一致だと duplex mismatch や速度低下 | Auto に戻すと modern な機器では安定しやすい | 基本は Auto |
| Jumbo Packet / Jumbo Frames | MTU より大きいフレームを使う | 大きな転送で CPU と header overhead が減りやすい | 互換性は高いが packet 数は増える | 専用経路で end-to-end に揃うときだけ |
| Checksum Offload | IP / TCP / UDP の checksum を NIC で処理 | CPU が下がりやすい | OS 側計算が増えて CPU が上がりやすい | 原則有効 |
| LSO / TSO | 大きな TCP 送信データを NIC が分割 | send-heavy な throughput と CPU に効きやすい | CPU 負荷は増えるが相性切り分けには使いやすい | 通常は有効 |
| RSC / LRO | 受信 TCP セグメントを NIC 側で結合 | 受信 throughput と CPU に効きやすい | 粒度が細かくなり、低レイテンシでは有利なことがある | 受信重視なら有効 |
| RSS | 受信処理を複数 CPU に分散 | multi-core で throughput / scalability が上がりやすい | 単一 CPU 集中で詰まりやすい | multi-core では有効が基本 |
| Interrupt Moderation | 割り込み頻度を抑制 | CPU が楽になるが latency は増えやすい | latency は下がるが CPU / DPC 負荷が上がりやすい | 既定 / Adaptive を起点 |
| Receive / Transmit Buffers | リング / バッファの深さ | burst 耐性や sustained throughput に効きやすい | メモリ消費は減るが drop に弱くなる | 不足時だけ増やす |
| Flow Control | 802.3x pause frame の送受信 | drop を減らせることがある | tail latency には有利なことがある | ネットワーク全体設計と合わせる |
| Priority & VLAN | 802.1p / 802.1Q タグ付け | VLAN / QoS を使える | 単純な L2 として動く | 必要なときだけ |
| VMQ / SR-IOV | Hyper-V / 仮想化向けの NIC 支援 | VM throughput / CPU に効く | 通常ホストとしては単純になる | Hyper-V ホスト向け |
| EEE / Green Ethernet | 省電力のための Low-Power Idle | 消費電力は下がるが相性問題が出ることがある | 電力は増えるが安定しやすいことがある | 速度設定ではない |
| Selective Suspend | NIC を idle 時に低電力化 | 電力は下がる | 復帰安定性は上がることがある | トラブル時は切り分け候補 |
| Wake on Magic Packet / Pattern Match | スリープ中の wake 条件 | 遠隔起動できる | 意図しない wake を防ぎやすい | 必要なときだけ有効 |
5. リンクとフレームサイズまわりの設定
5.1 Speed & Duplex
これは リンク速度と全二重 / 半二重の交渉 に関する設定です。表示名は Speed & Duplex、Link Speed、Link Speed & Duplex などがあります。
何をしている設定か
Ethernet では、NIC と相手機器が、どの速度・どの duplex で通信するかを決めます。
- Auto Negotiation
- 100 Mbps Full Duplex
- 1.0 Gbps Full Duplex
- 2.5 Gbps Full Duplex
- 10 Gbps Full Duplex
のような選択肢が出ることが多いです。
変更するとどう変わるか
Auto にする
- 現代の機器同士では、基本これが一番安定します
- 1000BASE-T 以上では Auto が前提になる場面が多いです
- EEE や master/slave の交渉とも整合しやすいです
手動で固定する
- 古いスイッチや、相手側が強制固定されている機器との相性で改善することがあります
- ただし、片側だけ固定 / 片側だけ Auto のような状態は事故の元です
- duplex mismatch を起こすと、速度低下、再送、異常な遅延の原因になります
実務上の基本方針
普通は Auto のままでよい です。 「1Gbps 出ないから 1Gbps Full に固定」は、見た目は強そうですが芯を外すことが多いです。
5.2 Jumbo Packet / Jumbo Frames
これは 標準より大きな Ethernet フレームを使う設定 です。表示名は Jumbo Packet、Jumbo Frames、Jumbo Packet Size などがあります。
何をしている設定か
通常の Ethernet は MTU 1500 を前提に動くことが多いです。Jumbo Frame を有効にすると、9000 byte 前後 の大きなフレームを使えるようになります。
ただし、ここは名前の罠が多いです。
- ドライバは
9014 Bytesのように フレームサイズ を表示することがある - OS やツールは
MTU 9000のように L3 視点 で見ることがある - スイッチは CRC や VLAN タグ込み で数えることがある
数字だけ横並びで見比べると、かなり普通にハマります。
変更するとどう変わるか
大きくする / 有効にする
- 大きなデータを送るとき packet 数が減る
- header 処理回数が減る
- CPU 使用率が下がりやすい
- 一方で、1 packet あたりの占有時間は長くなる
- 経路上のどこかが未対応だと drop や fragmentation の原因になる
標準に戻す / 無効化する
- 互換性は最も高い
- packet 数は増える
- 大容量転送では CPU / header overhead が増えやすい
実務上の基本方針
Jumbo は end-to-end で揃って初めて意味があります。
- 自分の NIC
- 相手の NIC
- 途中のスイッチ
- VLAN や仮想スイッチを挟むならその overhead
このどれかが 1500 のままだと、効果が出ないどころか不具合の元になります。
5.3 Gigabit Master / Slave Mode
これは 1000BASE-T で、どちらが master、どちらが slave としてクロックを主導するか に関わる設定です。普通の PC ではまず触りません。
基本方針
- Auto が基本
- 特定の古い相手機器との link quality 問題でだけ評価する
- ベンダー指示がない限り、性能 tuning のつまみとしては扱わない
5.4 Wait for Link / Link 状態系の設定
Wait for Link のような設定は、ドライバが auto negotiation の成功を待ってから link 状態を報告するか に関わります。
Log Link State Event は link up/down をイベントログに残す診断用です。
基本方針
- 通常の PC は既定値のままでよい
- 性能そのものより、起動時の見え方や failover の診断で意味がある
- まず触る項目ではない
6. CPU 負荷、スループット、レイテンシに効く設定
ここが、いちばん「効きそう」に見える帯です。実際に効くことも多いですが、効く方向がきれいに分かれます。
6.1 Checksum Offload
IP / TCP / UDP の checksum 計算を NIC に寄せる設定です。
基本方針
- 原則有効
- CPU を下げたいなら残す
- capture 上の checksum error は offload の見え方であることが多い
- 相性切り分けで一時的に切るのはあり
6.2 Large Send Offload (LSO) / TSO / Offload TCP Segmentation
大きな TCP 送信データを NIC 側で細かい frame に分割する設定です。
何に効くか
- send-heavy な throughput
- CPU 使用率の削減
- 大きめの連続送信
基本方針
- 通常は 有効
- 特定アプリやドライバ相性が怪しいときは一時的に無効化して差を見る
6.3 Receive Segment Coalescing (RSC) / Large Receive Offload
受信側で複数の TCP segment をまとめる設定です。
何に効くか
- 受信側の throughput
- CPU 使用率の削減
注意点
- 低レイテンシや packet 単位の観測では不利になることがある
- capture やタイミング観測の解釈が少し変わる
基本方針
- 受信 throughput を取りたいなら有効
- 小さい request/response の latency を見たいなら評価対象
6.4 UDP 系の新しめのオフロード (USO / URO)
最近の NIC や OS では、UDP の送受信でも新しめの offload が見えることがあります。
基本方針
- 出ていても、まずは既定値から外れない
- ドライバが十分新しく、対象 workload がはっきりしているときだけ測る
- トラブルシュートでは無理に触らない
6.5 Receive Side Scaling (RSS)
受信処理を複数 CPU に分散させる設定です。multi-core 環境ではかなり重要です。
基本方針
- multi-core では有効が基本
- 単一 CPU に張り付いている症状ではまず確認する
- Hyper-V や high-throughput の手前でも主役になりやすい
6.6 RSS Queues / RSS Processors / RSS Profile
RSS の並列度を決める項目です。
基本方針
- 既定値から始める
- CPU 使用率や queue 偏りが見えてから増やす
- むやみに最大まで増やすと割り込みや DPC 負荷が増えることがある
6.7 Interrupt Moderation / Interrupt Moderation Rate
割り込み頻度を抑制して、CPU 負荷と latency を交換する設定です。
傾向
- 高め / Adaptive → CPU が楽になりやすいが latency は増えやすい
- 低め / Off → latency は下がりやすいが CPU / DPC 負荷は上がりやすい
基本方針
- 既定 / Adaptive を起点
- 小さい packet の jitter が気になるなら Low / Off を評価
- 大容量転送なら既定値のほうが素直なことが多い
6.8 Receive Buffers / Receive Descriptors と Transmit Buffers / Transmit Descriptors
リング / バッファの深さを変える設定です。
効く方向
- burst 耐性
- sustained throughput
- drop 回避
副作用
- メモリ消費が増える
- queue が深くなって待ち行列遅延が増えることがある
基本方針
- drop や buffer shortage が見えているときだけ増やす
- なんとなく最大にするのは避ける
6.9 Flow Control
802.3x pause frame の送受信に関する設定です。
基本方針
- drop を減らしたいなら候補になる
- ただし pause が別の輻輳を広げることもある
- 低レイテンシ系では慎重に見る
- ネットワーク全体設計とセットで考える
7. VLAN、QoS、仮想化まわりの設定
7.1 Priority & VLAN / Packet Priority & VLAN / NDIS QoS
802.1Q VLAN や 802.1p Priority を扱う帯です。
基本方針
- VLAN / QoS を本当に使うときだけ意識する
- 単純な access port 環境なら既定値のままでよい
- タグが勝手に付く構成は切り分けを難しくするので注意する
7.2 VMQ / VMMQ / SR-IOV
これは Hyper-V ホストや仮想化基盤 で意味が出る設定です。
基本方針
- 普通の desktop tuning としては扱わない
- Hyper-V ホストなら vSwitch 構成、queue 割り当て、ゲスト側設定と一体で評価する
- 片側だけ見ても正解は出にくい
7.3 RDMA / DCB / PFC は別世界
このあたりは SMB Direct や lossless Ethernet を含む、かなり別世界です。
基本方針
- 通常の 1GbE / 2.5GbE デスクトップ調整とは切り分けて考える
- ベンダー資料とスイッチ側設計をセットで確認する
8. 省電力、スリープ、Wake on LAN まわりの設定
8.1 Energy Efficient Ethernet (EEE) / Green Ethernet
省電力のために、リンク idle 時の消費電力を落とす設定です。
見方
- 速くする設定ではない
- 消費電力には効く
- 相手機器やケーブル条件によっては、リンク不安定や 100Mbps downshift の切り分け候補になる
基本方針
- 一般用途では既定値でもよい
- リンク不安定、100Mbps 化、低レイテンシ重視では まず切り分け候補
8.2 Selective Suspend / Device Sleep / Standby 時リンク制御
平たく言えば、idle 時やスリープ時に NIC をどこまで眠らせるか の設定です。
基本方針
- ノート PC では既定値から開始
- 復帰トラブルがあるなら最初に疑う
- 装置制御 PC や 24/7 運用では、むしろ切るほうが分かりやすいことがある
8.3 Wake on Magic Packet / Wake on Pattern Match
これはスリープ中の PC を、ネットワーク経由で起こすための設定です。
基本方針
- Wake on LAN が必要なら Magic Packet を有効
- 不要なら無効
- Pattern Match は必要性が明確なときだけ
NIC だけ On にしても起きないことは普通にあります。BIOS / UEFI 側や Power Management タブ側も揃えて見ます。
8.4 ARP Offload / NS Offload
スリープ中でも NIC が最低限の応答を肩代わりする設定です。
基本方針
- 通常は 有効 / 既定値 でよい
- スリープ周りの相性切り分けで一時的に触ることが多い
8.5 Power Management タブの設定
Advanced タブとは別に、NIC のプロパティには Power Management タブがあります。ここも地味に重要です。
よく見るのは次の 3 つです。
- Allow the computer to turn off this device to save power
- Allow this device to wake the computer
- Only allow a magic packet to wake the computer
基本方針
- 復帰不良なら、まず
Allow the computer to turn off this device...を疑う - 誤起床を避けたいなら
Only allow a magic packet...を有効にする - Wake on LAN 自体が不要なら wake 系は全部無効でよい
9. そのほかの、よく見るが触る機会は少ない設定
9.1 Network Address / Locally Administered Address
MAC アドレスを手動で上書きする 設定です。
基本方針
- 普段は触らない
- 性能設定ではない
- ラボ環境や特殊要件でだけ使う
9.2 Adaptive Inter-Frame Spacing
かなり古参の設定です。現代の switched full-duplex Ethernet では主役ではありません。
基本方針
- 現代の普通の LAN では既定値のまま
- 古い装置や特殊環境でベンダー指示があるときだけ触る
9.3 Header Data Split
主にサーバ向けで、packet header と payload を分けて扱うことで CPU 処理を助ける類いの設定です。
基本方針
- サーバ向け / 特定 workload 向け
- 一般クライアントでは既定値のまま
9.4 Low Latency Interrupts
ベンダーによっては Low Latency Interrupts のような項目があります。
基本方針
- 測って勝つときだけ使う
- 雰囲気で On にする帯ではない
9.5 TCP Chimney Offload / IPsec Task Offload などの古い項目
古めの NIC やドライバでは、こうした項目を見ることがあります。
基本方針
- 今は触らない、使わない が正解
- 互換性や古い資料に引っ張られない
10. 目的別のざっくり指針
以下では「無効評価」「無効候補」という書き方が何度も出てきます。これは「無効にしろ」ではなく、評価対象にせよという意味です。中身は 3.3 と 3.4 の大原則そのままで、具体的にはこの 4 手です。
- 変更前の設定を保存する(12.1 の
Export-Csv) - 1 項目だけ無効にする(3.3)
- 3.4 で決めた指標を測る(スループット、レイテンシ、CPU、NIC 統計、復帰の安定性)
- 効果がなければ元に戻す
4 が抜けると、意味のない変更が積み上がって、次の切り分けが難しくなります。以下の各項目は、この 4 手を回す候補リストとして読んでください。
10.1 普通のデスクトップ / ノート PC
- Speed & Duplex: Auto
- MTU / Jumbo: 1500 / 無効
- Checksum Offload: 有効
- LSO: 有効
- RSC: 有効
- RSS: 有効
- Interrupt Moderation: 既定値 / Adaptive
- Buffers: 既定値
- Flow Control: 既定値
- EEE / Green Ethernet: 既定値
- Selective Suspend: 既定値
- Wake on LAN: 必要なときだけ
つまり、まずは既定値から外れない のが基本です。
10.2 NAS / バックアップ / 大容量コピー
- Speed & Duplex: Auto
- Jumbo: 専用経路で揃えられるなら評価
- Checksum Offload: 有効
- LSO: 有効
- RSC: 有効
- RSS: 有効
- RSS queues: 必要なら少し増やす
- Receive / Transmit Buffers: drop があるなら少し増やす
- Interrupt Moderation: 既定値 / やや高め
- EEE: 安定性重視なら無効評価
大きな転送では、packet 数削減、CPU 削減、queue 不足回避 が効きやすいです。
10.3 産業用カメラ / 装置制御 / 低レイテンシ重視
- Speed & Duplex: Auto を基本。必要なら相手に合わせて固定
- Jumbo: カメラ / NIC / スイッチが揃うなら評価
- Checksum Offload: まず有効
- LSO: 送信相性が怪しければ一時的に無効評価
- RSC: 低レイテンシや観測優先なら無効候補
- Interrupt Moderation: Low / Off を評価
- Buffers: 増やしすぎない
- Flow Control: pause の副作用を要評価
- EEE / Green Ethernet: 無効候補
- Selective Suspend / 電力管理: 無効候補
throughput 最適化の設定が、必ずしも low latency に有利ではありません。
10.4 Hyper-V ホスト
- VMQ / VMMQ / SR-IOV: 構成に応じて評価
- RSS: ホスト側トラフィックには重要
- RSC: vSwitch 構成によって制約あり
- QoS / VLAN: vSwitch 設計と合わせる
- Flow Control / PFC: ストレージ / RDMA 設計と一体で考える
これは desktop tuning ではなく、仮想化基盤設計 です。
10.5 トラブルシュート用の一時設定
不具合切り分けでは、いったん単純な世界に戻すのが強いです。
- Speed & Duplex: Auto
- MTU: 1500
- Jumbo: 無効
- EEE: 無効
- LSO: 一時的に無効
- RSC: 一時的に無効
- Interrupt Moderation: 既定値または低め
- Wake / power save: 不要なら無効
- 変更前設定: 必ず保存
切り分けでは、性能最適化より挙動の単純化 が勝ちます。
11. 症状別の最初の当たりどころ
11.1 1Gbps / 2.5Gbps のはずが 100Mbps になる
まず見る順番は、だいたいこうです。
- ケーブル
- dock / USB NIC / 変換アダプタ
- スイッチ側ポート
- ドライバ更新
- EEE / Green Ethernet
- Speed & Duplex を Auto に戻す
- それでもだめなら、相手と合わせた固定を試す
いきなり手動固定は最後 です。
11.2 大容量転送は遅いが、ping は普通
見たいのはこのあたりです。
- Checksum Offload
- LSO
- RSC
- RSS
- Receive / Transmit Buffers
- Jumbo Frame(専用経路なら)
- NIC 統計の drop / error
これは throughput 系の問題 なので、Jumbo や queue、offload が効きやすいです。
11.3 小さい request/response の遅延が大きい、jitter が気になる
チェックしたいのはこの 5 つです。
- Interrupt Moderation
- RSC
- EEE
- Flow Control
- Buffers を盛りすぎていないか
この帯では、まとめて処理する系の最適化 が、逆に体感遅延を増やすことがあります。
11.4 スリープ復帰後に NIC が消える / 数秒つながらない
見たいのは、電源まわりを中心にこの 5 つです。
- Selective Suspend
- Device Sleep / Standby 関連設定
- Power Management タブの
Allow the computer to turn off this device... - dock / USB NIC の firmware
- Wake 設定の組み合わせ
復帰トラブルは、NIC そのものより 電源管理 のことが多いです。
11.5 packet capture で checksum error が大量に見える
慌てて「回線が壊れた」と言う前に、ここを確認します。
- Checksum Offload が有効か
- LSO が有効か
- capture が送信前か、wire 上か
- 別ホストやミラーポートで見たときも同じか
ローカル capture の checksum error は、offload の見え方 であることが本当に多いです。
3 番目の「capture が送信前か、wire 上か」だけ補足します。自分の PC 上でキャプチャすると、NIC が checksum を埋める前のパケットが見えます。 offload が有効なら checksum 欄はまだ空か暫定値なので、解析ツールは当然「不正」と表示します。実際にケーブル上を流れたパケットは正しい、ということが普通に起こります。
確認に使うツールは、だいたい次の 3 つです。
| ツール | 位置付け | 備考 |
|---|---|---|
| Wireshark | 定番の解析 GUI | checksum 検証を切る設定があります。offload 環境ではまず疑う場所です |
| pktmon | Windows 10 / Windows Server 2019 (1809) 以降に標準搭載のパケット監視ツール | 追加インストール不要。パケットの drop 検出やフィルタもできます |
| スイッチのミラーポート | wire 上を見る唯一の確実な方法 | 送信元 PC の外側で見るので、offload の影響を受けません |
pktmon のログは pcapng へ変換できるので、Wireshark でそのまま開けます。
pktmon etl2pcap log.etl --out capture.pcapng
「ローカルで見ると checksum error、ミラーポートで見ると正常」なら、それは offload の見え方で確定です。ここまで確認してから設定を触ります。
11.6 Hyper-V の VM だけ遅い / CPU が偏る
見るべきは desktop 的な RSS だけではありません。
- VMQ / VMMQ
- SR-IOV
- vSwitch binding
- VLAN / QoS
- ホスト側 RSS と VM 側 queue の分担
仮想化では、誰が packet をさばいているか を図にすると整理しやすいです。
12. PowerShell で確認・変更するときの実用メモ
12.1 まず現状を保存する
変更前のバックアップは大事です。
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Select-Object Name, DisplayName, DisplayValue, RegistryKeyword, RegistryValue |
Export-Csv .\nic-advanced-backup.csv -NoTypeInformation -Encoding UTF8
12.2 一覧を見る
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Sort-Object DisplayName |
Format-Table DisplayName, DisplayValue, RegistryKeyword -Auto
12.3 RSS / RSC / 統計を見る
Get-NetAdapterRss -Name "Ethernet"
Get-NetAdapterRsc -Name "Ethernet"
Get-NetAdapterStatistics -Name "Ethernet"
12.4 変更例
実際の表示名は NIC ごとに違うので、まず一覧を見てから変更します。
# 例: Jumbo Packet を変更(値は NIC ごとに違う)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Jumbo Packet" `
-DisplayValue "9014 Bytes"
# 例: RSS の受信キュー数を設定
Set-NetAdapterRss -Name "Ethernet" -NumberOfReceiveQueues 4
12.5 Jumbo の疎通確認
# 標準 MTU 1500 相当
ping <相手IP> -f -l 1472
# MTU 9000 相当
ping <相手IP> -f -l 8972
1472 と 8972 は、IP / ICMP header を差し引いた payload です。ドライバ UI の 9014 Bytes と、この ping の数字は一致しません。
12.6 実務メモ
- 一部の設定は アダプタの無効 / 有効 や再起動が必要です
- DisplayName がローカライズされている場合があります
- 同じベンダーでも driver version で項目名が変わることがあります
- PowerShell で自動化するなら、実機の値を先に列挙してから 書くほうが安全です
13. まとめ
Windows の NIC 詳細設定は、項目名だけ見ると全部「強そう」です。 でも実際には、throughput、latency、CPU、power、compatibility のどれを取るかで正解が変わる 世界です。
この記事の要点をまとめると、こうです。
- Speed & Duplex は基本 Auto
- Jumbo は end-to-end で揃うときだけ
- Checksum / RSS / LSO / RSC は原則既定値が強い
- Interrupt Moderation は throughput と latency のトレードオフ
- Buffers は必要な分だけ
- EEE / Selective Suspend / Wake 系は power / resume の話
- VMQ / SR-IOV は Hyper-V の話
- 古い offload 項目は触らない
そして、いちばん大事なのは次の 3 つです。
- 何を良くしたいのかを決める
- 1 回に 1 項目だけ変える
- 変更前後を数字で比べる
NIC 設定は、魔法の速くなるスイッチではありません。 ただし、目的が合っていればかなり効きます。逆に、目的がズレるとかなり素直に裏目を引きます。
14. 参考資料
以下は、この記事を書くときに土台として参照した公式資料 / ベンダー資料です。 Windows や NIC ドライバは用語揺れが多いので、最終的には 自分の NIC のドライバ名とバージョン に合わせて確認するのが安全です。
- Microsoft Learn: NIC advanced properties
- Microsoft Learn: Network Adapter Performance Tuning in Windows Server
- Microsoft Learn: Hardware Only (HO) features and technologies
- Microsoft Learn: Overview of Single Root I/O Virtualization (SR-IOV)
- Microsoft Learn: Standardized INF Keywords for NDIS QoS
- Microsoft Learn: Standardized INF Keywords for Power Management
- Microsoft Learn: Setting RSS parameters
- Microsoft Learn: Overview of receive segment coalescing
- Microsoft Learn: How to optimize network adapter power management settings
- Microsoft Learn: Deprecated networking features in Windows Server
- Microsoft Learn: Packet Monitor (Pktmon)
- Microsoft Learn: pktmon etl2pcap
- Microsoft Learn: UDP Segmentation Offload (USO)
- Microsoft Learn: UDP Receive Segment Coalescing Offload (URO)
- Intel Support: Advanced Settings for Intel Ethernet Adapters
- Intel Support: 速度固定、Jumbo、Interrupt Moderation、EEE、WoL などは NIC 型番ごとのサポート記事から確認するのが安全です
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
WMI/CIMをC#・PowerShellから使う ── ハードウェア情報取得・プロセス監視・リモート照会の実務ガイド
PCのシリアル番号取得、ディスク空き監視、プロセス起動検知の定番がWMI/CIMです。Get-CimInstance等のCIMコマンドレットの使い方と旧Get-WmiObjectからの移行、C#のSystem.ManagementとCIM APIの使い分け、実例レシピと落と...
Windowsファイアウォールと業務アプリ ── 受信規則はインストーラーで登録する
「開発機では動くのに客先で通信できない」の定番原因がWindowsファイアウォールです。受信既定ブロックとプロファイル、通知ダイアログに本番を任せてはいけない理由、インストーラーでの受信規則の登録と切り分け手順を解説します。
ネットワークドライブとUNCパスの落とし穴 ── 業務アプリでファイルサーバー(共有フォルダ)を扱う実務
業務アプリから共有フォルダへ出力・監視するときの定番トラブルを整理します。ドライブ文字(Z:)がサービスから見えない理由、実行アカウントごとに必要な権限、エラー1219、FileSystemWatcherの注意点まで解説します。
HttpClientをusingで囲んではいけない ── C#業務アプリのHTTP通信実務(生成パターン・タイムアウト・リトライ)
C#のHttpClientは毎回usingで生成するとソケット枯渇、staticにするとDNS変更に追従しません。PooledConnectionLifetimeとIHttpClientFactoryによる正しい生成パターン、タイムアウト設計、リトライまで整理します。
OSI参照モデルをはっきりイメージする ── HTTPリクエスト1個を7層に解剖する
OSI参照モデルを実物で理解します。HTTP GETリクエストを運ぶEthernetフレームをC#で組み立てて解剖し、7層が入れ子になっている様子をWiresharkで確認します。各層と.NET APIの対応、障害切り分けまで整理します。
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
不具合調査 / 長期稼働テーマ
再現しにくい不具合、通信停止、長期稼働障害、失敗パス検証を整理するトピックです。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
技術相談・設計レビュー
NIC 設定単体ではなく、通信経路、アプリの送受信パターン、長期稼働条件まで含めて整理したいテーマなので、技術相談・設計レビューと相性がよいです。
不具合調査・原因解析
リンク断、100Mbps へのダウンシフト、復帰不良、スループット低下の切り分けは、不具合調査・原因解析として進めやすい題材です。
よくある質問
この記事のテーマについて、相談時によくある質問をまとめています。
- Large Send Offload (LSO) は無効にすべきですか?
- 通常は有効のままにしておくべき設定です。LSO は大きな TCP 送信データを NIC 側で細かいフレームに分割する仕組みで、送信の多い通信のスループットと CPU 使用率の削減に効きます。雑に無効化すると CPU を無駄に食いやすくなります。無効化を検討するのは、特定アプリやドライバの相性が怪しいときに一時的に切って差分を見る切り分け目的か、産業用カメラや装置制御のように送信相性を評価したい場面です。切り分けで無効にした場合も、原因が別だと分かったら既定値へ戻すのが基本です。
- Receive Segment Coalescing (RSC) とは何ですか?無効にしたほうがよいですか?
- RSC は、受信側で複数の TCP セグメントを NIC 側でまとめる設定で、Large Receive Offload とも呼ばれます。受信スループットと CPU 使用率の削減に効くため、受信重視なら有効が基本方針です。一方で、低レイテンシや packet 単位の観測では不利になることがあり、パケットキャプチャやタイミング観測の解釈も少し変わります。小さい request/response のレイテンシを詰めたい場面や、低レイテンシ・観測優先の環境では無効化を評価する候補になります。Get-NetAdapterRsc で現在の状態を確認できます。
- 1Gbpsのはずなのに100Mbpsにリンクするときは、何を確認すればよいですか?
- いきなり Speed & Duplex を手動固定するのは最後の手段です。見る順番は、まずケーブル、次に dock / USB NIC / 変換アダプタ、スイッチ側ポート、ドライバ更新、EEE / Green Ethernet の切り分け、Speed & Duplex を Auto に戻す、それでもだめなら相手と合わせた固定、の順です。100Mbps へのダウンシフトやリンク断は、NIC 設定より物理層や相手機器が原因のことが多いためです。片側だけ固定・片側だけ Auto の状態は duplex mismatch を起こし、速度低下や再送、異常な遅延の原因になります。
- WindowsのNIC詳細設定は、結局どれを有効にすればよいですか?
- 普通のデスクトップ / ノート PC なら、まずは既定値から外れないのが基本です。Speed & Duplex は Auto、Checksum Offload / LSO / RSC / RSS は原則有効または既定値、Jumbo Packet は NIC・相手・途中のスイッチまで end-to-end で揃うときだけ使います。EEE や Selective Suspend は省電力のための設定で、速くする設定ではありません。変更するときは、何を良くしたいか(スループット、レイテンシ、CPU、消費電力)を先に決め、1 回に 1 項目だけ変えて、変更前後を数字で比べるのが鉄則です。