1990 年代のEthernetネットワーク インターフェイス カード。現在は廃止されたISA バスを介してマザーボードに接続します。このコンビネーション カードには、 (現在は廃止された) 10BASE2ネットワークで使用するためのBNC コネクタ(左)と、 10BASE-Tネットワークで使用するための8P8Cコネクタ (右)の両方が搭載されています。 | |
| 接続先 | 次のいずれかのマザーボード :
次のいずれかを介してネットワーク: |
|---|---|
| 速度 | 全二重または半二重:
全二重: [1] [2]
|
| 一般的なメーカー | Intel Realtek Broadcom (旧Avago、Emulexを含む) Marvell Technology Group Cavium (旧QLogic ) Mellanox Chelsio |
ネットワークインターフェースコントローラ(NIC 、ネットワークインターフェースカード[3] 、ネットワークアダプタ、LANアダプタ、物理ネットワークインターフェース[4]とも呼ばれる)は、コンピュータをコンピュータネットワークに接続するコンピュータハードウェアコンポーネントです。[5]
初期のネットワーク インターフェイス コントローラは、通常、コンピュータ バスに差し込まれる拡張カードに実装されていました。イーサネット標準は低コストで広く普及しているため、最近のほとんどのコンピュータでは、マザーボードにネットワーク インターフェイスが組み込まれているか、USB接続のドングルに含まれています。
最新のネットワーク インターフェイス コントローラは、ホスト プロセッサへの割り込みおよびDMAインターフェイス、複数の受信キューと送信キューのサポート、複数の論理インターフェイスへのパーティション分割、 TCP オフロード エンジンなどのコントローラ上のネットワーク トラフィック処理などの高度な機能を提供します。
目的
ネットワークコントローラは、イーサネットやWi-Fiなどの特定の物理層とデータリンク層の標準を使用して通信するために必要な電子回路を実装します。[a]これにより、完全なネットワークプロトコルスタックの基盤が提供され、同じローカルエリアネットワーク(LAN) 上のコンピュータ間の通信や、インターネットプロトコル(IP) などのルーティング可能なプロトコルを介した大規模なネットワーク通信が可能になります。
NIC を使用すると、コンピュータはケーブルまたはワイヤレスでコンピュータ ネットワークを介して通信できます。NIC は物理層とデータ リンク層の両方のデバイスであり、ネットワーク メディアへの物理的なアクセスを提供し、IEEE 802および類似のネットワークでは、ネットワーク インターフェイスに一意に割り当てられるMAC アドレスを使用して低レベルのアドレス指定システムを提供します。
実装


ネットワーク コントローラは、もともとコンピュータ バスに差し込む拡張カードとして実装されていました。イーサネット標準は低コストで普及しているため、ほとんどの新しいコンピュータには、マザーボードにネットワーク インターフェイス コントローラが組み込まれています。新しいサーバーマザーボードには、複数のネットワーク インターフェイスが組み込まれている場合があります。イーサネット機能は、マザーボードのチップセットに統合されているか、低コストの専用イーサネット チップを介して実装されています。追加の独立したネットワーク接続が必要な場合や、イーサネット以外のタイプのネットワークが使用されない限り、通常は別のネットワーク カードは必要ありません。コンピュータ ハードウェアの一般的な傾向は、システムのさまざまなコンポーネントをチップに統合することであり、これはネットワーク インターフェイス カードにも当てはまります。
イーサネット ネットワーク コントローラには通常、ネットワーク ケーブルを接続する8P8Cソケットがあります。古い NIC にはBNCまたはAUI接続も用意されていました。イーサネット ネットワーク コントローラは通常、10 Mbit/sイーサネット、100 Mbit/s イーサネット、1000 Mbit/s イーサネットの種類をサポートしています。このようなコントローラは10/100/1000と指定されており、10、100、1000 Mbit/s のデータ レートをサポートできることを意味します。10ギガビット イーサネットNIC も利用可能であり、2014 年 11 月現在、コンピューターのマザーボード[アップデート]で利用でき始めています。[6] [7]

SFP や SFP+などのモジュラー設計は、特に光ファイバー通信で非常に人気があります。これらはメディア依存トランシーバーの標準レセプタクルを定義するため、ユーザーはネットワーク インターフェイスをニーズに合わせて簡単に調整できます。
ネットワーク コネクタに隣接または統合されたLED は、ネットワークが接続されているかどうか、およびデータ アクティビティが発生したタイミングをユーザーに通知します。
NICには工場で割り当てられたMACアドレスを保存するためのROMが含まれている場合があります。[8]
NIC は、転送するパケットの可用性を示すために、次の 1 つ以上の手法を使用します。
- ポーリングは、 CPU がプログラム制御下にある周辺機器の状態を調べる場所です。
- 割り込み駆動型 I/O は、周辺機器が CPU にデータ転送の準備ができたことを通知するものです。
NIC は、パケット データを転送するために、次の 1 つ以上の手法を使用します。
- プログラムされた入出力。CPUがデータを NIC からメモリへ、または NIC からメモリへ移動します。
- ダイレクト メモリ アクセス(DMA) では、CPU 以外のデバイスがシステム バスを制御して、NIC とメモリの間でデータを移動します。これにより、CPU の負荷は軽減されますが、カード上にはより多くのロジックが必要になります。さらに、NIC 上のパケット バッファが不要になる可能性があり、レイテンシが短縮されます。
パフォーマンスと高度な機能
.jpg/500px-ForeRunnerLE_25_ATM_Network_Interface_(1).jpg)

マルチキューNICは複数の送信キューと受信キューを提供し、NICが受信したパケットをその受信キューの1つに割り当てることができます。NICはハッシュ関数を使用して受信キュー間で着信トラフィックを分散することができます。各受信キューは個別の割り込みに割り当てられます。これらの割り込みをそれぞれ異なるCPUまたはCPUコアにルーティングすることで、単一のNICが受信したネットワークトラフィックによってトリガーされた割り込み要求の処理を分散し、パフォーマンスを向上させることができます。[10] [11]
上述のハードウェアベースの割り込み分散は、受信側スケーリング(RSS) と呼ばれます。[12] : 82 受信パケットステアリング(RPS)、受信フローステアリング(RFS)、[10]、Intel Flow Directorなど、純粋にソフトウェアによる実装も存在します。[ 12] : 98, 99 [13] [14] [15]割り込み要求を、割り込みを生成したネットワークパケットの最終的な宛先であるアプリケーションを実行している CPU またはコアにルーティングすることで、さらなるパフォーマンスの向上を実現できます。 この手法により、参照の局所性が向上し、 CPU キャッシュの使用率が向上し、必要なコンテキストスイッチが減るため、全体的なパフォーマンスの向上、レイテンシの削減、ハードウェア使用率の向上が実現します。
マルチキューNICでは、送信トラフィックを異なる送信キューに分散することで、さらなるパフォーマンスの向上を実現できます。異なる送信キューを異なるCPUまたはCPUコアに割り当てることで、オペレーティングシステムの内部競合を回避できます。このアプローチは通常、送信パケットステアリング(XPS)と呼ばれます。[10]
一部の製品には、 SR-IOV仮想化を使用して単一の10ギガビットイーサネットNICを専用の帯域幅を持つ複数の個別の仮想NICに分割するNICパーティショニング(NPAR 、ポートパーティショニングとも呼ばれる)機能があり、ファームウェアとオペレーティングシステムには個別のPCIデバイス機能として表示されます。[3] [16]
一部のNICはTCPオフロードエンジンを搭載しており、 TCP/IPスタック全体の処理をネットワークコントローラにオフロードします。これは主にギガビットイーサネットや10ギガビットイーサネットなどの高速ネットワークインターフェースで使用され、ネットワークスタックの処理オーバーヘッドが重要になります。[17]
一部のNICは、ネットワークトラフィックがホストコンピュータに到達する前にユーザーがプログラム可能な処理を行うための 統合フィールドプログラマブルゲートアレイ(FPGA)を提供しており、時間に敏感なワークロードのレイテンシを大幅に削減できます。 [18]さらに、一部のNICは、オペレーティングシステムカーネルによって通常実行されるネットワーク操作を傍受するユーザースペースライブラリと組み合わせて、統合FPGA上で実行される完全な低レイテンシTCP/IPスタックを提供します。Linux上で実行されるSolarflareのオープンソースOpenOnloadネットワークスタックはその一例です。この種の機能は通常、ユーザーレベルネットワーキングと呼ばれます。[19] [20] [21]
参照
- 統合ネットワーク アダプタ(CNA)
- ホストアダプタ
- インテル データ ダイレクト I/O (DDIO)
- ループバックインターフェース
- ネットワーク監視インターフェースカード(NMIC)
- 仮想ネットワークインターフェース(VIF)
- ワイヤレス ネットワーク インターフェイス コントローラ(WNIC)
注記
- ^ 他のネットワーク技術も存在しますが、イーサネット ( IEEE 802.3 ) と Wi-Fi ( IEEE 802.11 ) は 1990 年代半ば以降、LAN 技術としてほぼ普及しています。
参考文献
- ^ 「ポート速度とデュプレックス モードの構成」。docs.ruckuswireless.com。2020年9 月 25 日閲覧。
- ^ Admin、Arista ( 2020-04-23 ). 「セクション 11.2: イーサネット標準 - Arista」。Arista Networks。2020-09-28閲覧。
- ^ ab 「ネットワーク インターフェイス カードのパーティショニングによるスケーラビリティの強化」(PDF)。Dell。2011年4月。2014 年5 月 12 日閲覧。
- ^ 「物理ネットワーク インターフェイス」。Microsoft。2009年 1 月 7 日。
- ^ Posey, Brien M. (2006). 「ネットワークの基礎: パート 1 - ネットワーク ハードウェア」. Windowsnetworking.com . TechGenix Ltd. 2012 年 6 月 9 日閲覧。
- ^ Jim O'Reilly (2014-01-22). 「2014 年は 10 ギガビット イーサネットの年になるか?」 Network Computing 。2015-04-29に閲覧。
- ^ 「ASRock X99 WS-E/10G と Intel 10G BASE-T LAN で速度制限を突破」asrock.com 2014 年 11 月 24 日2015 年5 月 19 日閲覧。
- ^ John Savill (2000 年 11 月 12 日). 「ネットワーク アダプタ カードの MAC アドレスを変更するにはどうすればよいですか?」. 2023 年 11 月 6 日閲覧。
- ^ 「Intel 82574 ギガビット イーサネット コントローラー ファミリー データシート」(PDF)。Intel 。2014 年 6 月。p. 1 。2014 年11 月 16日閲覧。
- ^ abc トム・ハーバート;ウィレム・デ・ブルーイン(2014年5月9日)。 「Linux カーネルのドキュメント: Documentation/networking/scaling.txt」。kernel.org 。2014 年11 月 16 日に取得。
- ^ 「Intel Ethernet Controller i210 Family Product Brief」(PDF) . Intel . 2012 . 2014年11月16日閲覧。
- ^ ab 「Intel Look Inside: Intel Ethernet」(PDF)。Xeon E5 v3 (Grantley) 発売。Intel 。2014年11月27日。 2015年3月26日時点のオリジナル(PDF)からアーカイブ。 2015年3月26日閲覧。
- ^ 「Linuxカーネルドキュメント: Documentation/networking/ixgbe.txt」. kernel.org . 2014年12月15日. 2015年3月26日閲覧。
- ^ 「Intel Ethernet Flow Director」。Intel 2015年2月16日。 2015年3月26日閲覧。
- ^ 「Intel Ethernet Flow Director と Memcached のパフォーマンスの概要」(PDF)。Intel 。2014 年 10 月 14 日。2015 年10月11 日閲覧。
- ^ Patrick Kutch、Brian Johnson、Greg Rose (2011 年 9 月)。「SR-IOV テクノロジーを 使用した Intel フレキシブル ポート パーティショニングの紹介」(PDF)。Intel。2015年9 月 24 日閲覧。
- ^ Jonathan Corbet (2007 年 8 月 1 日)。「Large received offload」。LWN.net。2015年5 月 2 日閲覧。
- ^ 「サイバーセキュリティのための高性能ソリューション」。New Wave Design & Verification。New Wave DV。
- ^ Timothy Prickett Morgan (2012-02-08). 「Solarflare がネットワーク アダプターをサーバーに変える: CPU が十分に高速でないとき」The Register . 2014-05-08に閲覧。
- ^ "OpenOnload". openonload.org . 2013-12-03 . 2014-05-08閲覧。
- ^ Steve Pope、David Riddoch (2008-03-21)。「 OpenOnload : ユーザーレベルのネットワーク スタック」(PDF)。openonload.org。2014年 5 月 8 日閲覧。
外部リンク
- 「物理ネットワーク インターフェイス」。Microsoft。
- 「予測可能なネットワーク インターフェース名」。Freedesktop.org。
- Linux 上の SMP を備えたマルチキュー ネットワーク インターフェイス
