ネットワークインターフェースコントローラ

ネットワークインターフェースコントローラ
1990年代のイーサネットネットワークインターフェースカード。現在は廃止されているISAバスを介してマザーボードに接続します。このコンビネーションカードは、 (現在は廃止されている) 10BASE2ネットワークで使用するためのBNCコネクタ(左)と、10BASE-Tネットワークで使用するための8P8Cコネクタ(右)の両方を備えています。
接続先次のいずれかを介したマザーボード :

次のいずれかを介したネットワーク:

速度
  • 全二重または半二重:
    • 10 メガビット/秒
    • 100 メガビット/秒
    • 1 ギガビット/秒
  • 全二重: [ 1 ] [ 2 ]
    • 2.5 ギガビット/秒
    • 5 ギガビット/秒
    • 10 ギガビット/秒
    • 最大160 Gbit/s
一般的なメーカー

ネットワークインターフェースコントローラNIC 、ネットワークインターフェースカード[ 3 ] 、ネットワークアダプタLANアダプタ物理ネットワークインターフェース[ 4 ]とも呼ばれる)は、コンピュータをコンピュータネットワークに接続するコンピュータのハードウェアコンポーネントです。[ 5 ]

初期のネットワークインターフェースコントローラは、コンピュータバスに接続する拡張カードに実装されることが一般的でした。イーサネット規格は低コストで広く普及しているため、最近のコンピュータのほとんどには、ネットワークインターフェースコントローラがマザーボードに内蔵されているか、USB接続のドングルに内蔵されています。ただし、ネットワークカードも依然として利用可能です。

最新のネットワーク インターフェイス コントローラは、ホスト プロセッサへの割り込みおよびDMAインターフェイス、複数の受信キューおよび送信キューのサポート、複数の論理インターフェイスへのパーティション分割、 TCP オフロード エンジンなどのコントローラ上のネットワーク トラフィック処理などの高度な機能を提供します。

目的

ネットワークコントローラは、イーサネットWi-Fiなどの特定の物理層データリンク層の標準を使用して通信するために必要な電子回路を実装します。[ a ]これは完全なネットワークプロトコルスタックの基盤を提供し、同じローカルエリアネットワーク(LAN)上のコンピュータ間の通信や、インターネットプロトコル(IP)などのルーティング可能なプロトコルを介した大規模ネットワーク通信を可能にします。

NICは、コンピュータがケーブルまたは無線でコンピュータネットワークを介して通信することを可能にします。NICは物理層とデータリンク層の両方のデバイスであり、ネットワーク媒体への物理的なアクセスを提供します。また、IEEE 802などのネットワークでは、ネットワークインターフェースに一意に割り当てられるMACアドレスを使用して、低レベルのアドレス指定システムを提供します。

実装

初期のISA 8ビットおよび16ビットPCネットワークカード12枚。右下のカードは初期のワイヤレスネットワークカードで、中央のベージュ色のプラスチックカバーが部分的に施されたカードはPSTNモデムです。
Intel Ophir 82571 デュアルポート ギガビット イーサネット コントローラダイ

ネットワークコントローラは、もともとコンピュータバスに差し込む拡張カードとして実装されていました。イーサネット規格は低コストで広く普及しているため、ほとんどの新型コンピュータはマザーボードにネットワークインタフェースコントローラを内蔵しており、この方式はLAN on motherboard(LOM)と呼ばれています。新型のサーバー用マザーボードには、複数のネットワークインタフェースが内蔵されているものもあります。イーサネット機能は、マザーボードのチップセットに統合されているか、低コストの専用イーサネットチップを介して実装されています。独立したネットワーク接続を追加する必要がある場合、またはイーサネット以外のネットワークを使用する場合を除き、通常は別途ネットワークカードは必要ありません。コンピュータハードウェアの一般的な傾向として、システムのさまざまなコンポーネントを1つのチップに統合することが挙げられますが、これはネットワークインタフェースカードにも当てはまります。

イーサネットネットワークコントローラには通常、ネットワークケーブルを接続する8P8Cソケットがあります。古いNICにはBNCまたはAUI接続も用意されていました。イーサネットネットワークコントローラは通常、10  Mbit/s100 Mbit/s1000 Mbit/sイーサネットがあります。これらのコントローラは10/100/1000と指定されており、10、100、または1000 Mbit/sのデータレートをサポートできることを意味します。10ギガビットイーサネットNICも利用可能で、2014年11月現在、コンピュータのマザーボードに搭載され始めています。[ 6 ] [ 7 ]

Qlogic QLE3442 -CU SFP+デュアルポートNIC

SFPやSFP+のようなモジュラー設計は、特に光ファイバー通信において非常に人気があります。これらはメディア依存型トランシーバー用の標準レセプタクルを定義するため、ユーザーはニーズに合わせてネットワークインターフェースを簡単に調整できます。

ネットワーク コネクタに隣接または統合されたLED は、ネットワークが接続されているかどうか、およびデータ アクティビティが発生したタイミングをユーザーに通知します。

NICには工場出荷時に割り当てられたMACアドレスを保存するためのROMが含まれている場合があります。[ 8 ]

NIC は、転送するパケットの可用性を示すために、次の 1 つ以上の手法を使用する場合があります。

NIC は、パケット データを転送するために、次の 1 つ以上の手法を使用します。

パフォーマンスと高度な機能

非同期転送モード(ATM)ネットワークインターフェース
Intel 82574LギガビットイーサネットNIC、PCI Express×1カード、2つのハードウェア受信キューを提供[ 9 ]

マルチキューNICは複数の送信キューと受信キューを備えており、NICが受信したパケットをいずれかの受信キューに割り当てることができます。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/IPスタック全体の処理をネットワークコントローラにオフロードするTCPオフロードエンジンを提供しています。これは主に、ネットワークスタックの処理オーバーヘッドが顕著になるギガビットイーサネットや10ギガビットイーサネットなどの高速ネットワークインターフェースで使用されます。[ 17 ]

一部のNICは、ネットワークトラフィックがホストコンピュータに到達する前にユーザーがプログラム可能な処理を行うための統合型フィールドプログラマブルゲートアレイ(FPGA)を提供しており、時間的制約のあるワークロードにおけるレイテンシを大幅に削減できます。 [ 18 ]さらに、一部のNICは、統合型FPGA上で動作する完全な低レイテンシTCP/IPスタックと、通常はオペレーティングシステムカーネルによって実行されるネットワーク操作を傍受するユーザー空間ライブラリを組み合わせて提供しています。Linux上で動作するSolarflareのオープンソースネットワークスタックOpenOnloadはその一例です。この種の機能は通常、ユーザーレベルネットワーキングと呼ばれます。[ 19 ] [ 20 ] [ 21 ]

参照

注記

  1. ^他のネットワーク技術も存在しますが、イーサネット ( IEEE 802.3 ) と Wi-Fi ( IEEE 802.11 ) は 1990 年代半ば以降、LAN 技術としてほぼ普及しました。

参考文献

  1. ^ 「ポート速度とデュプレックスモードの設定」 . docs.ruckuswireless.com . 2020年9月25日閲覧。
  2. ^ Admin, Arista (2020-04-23). 「セクション11.2: イーサネット標準 - Arista」 . Arista Networks . 2020年9月28日閲覧。
  3. ^ a b「ネットワーク・インターフェース・カードのパーティショニングによるスケーラビリティの強化」(PDF) Dell 2011年4月、 2014年5月12日閲覧
  4. ^ 「物理ネットワークインターフェイス」。Microsoft 2009年1月7日。
  5. ^ Posey, Brien M. (2006). 「ネットワークの基礎:パート1 - ネットワークハードウェア」 . Windowsnetworking.com . TechGenix Ltd. 2012年6月9日閲覧
  6. ^ Jim O'Reilly (2014年1月22日). 「2014年は10ギガビットイーサネットの年になるか?」 . Network Computing. 2015年5月10日時点のオリジナルよりアーカイブ2015年4月29日閲覧。
  7. ^ 「ASRock X99 WS-E/10GとIntel 10G BASE-T LANで速度限界を突破」 asrock.com 2014年11月24日2015年5月19日閲覧
  8. ^ John Savill (2000年11月12日). 「ネットワークアダプタカードのMACアドレスを変更するにはどうすればよいですか?」 . 2023年11月6日閲覧
  9. ^ 「Intel 82574 ギガビット・イーサネット・コントローラー・ファミリー・データシート」(PDF) . Intel . 2014年6月. p. 1 . 2014年11月16日閲覧
  10. ^ a b cトム・ハーバート;ウィレム・デ・ブルーイン(2014年5月9日)。「Linux カーネルのドキュメント: Documentation/networking/scaling.txt」kernel.org 2014 年11 月 16 日に取得
  11. ^ 「Intel Ethernet Controller i210 Family Product Brief」(PDF) . Intel . 2012年. 2014年11月16日閲覧
  12. ^ a b「Intel Look Inside: Intel Ethernet」(PDF) . Xeon E5 v3 (Grantley) 発売. Intel . 2014年11月27日.オリジナル(PDF)から2015年3月26日時点のアーカイブ。 2015年3月26日閲覧
  13. ^ "Linuxカーネルドキュメント: Documentation/networking/ixgbe.txt" . kernel.org . 2014年12月15日. 2015年3月26日閲覧
  14. ^ 「Intel Ethernet Flow Director」 . Intel . 2015年2月16日. 2015年3月26日閲覧
  15. ^ 「Intel Ethernet Flow DirectorとMemcachedのパフォーマンス入門」(PDF) . Intel . 2014年10月14日. 2015年10月11日閲覧.
  16. ^ Patrick Kutch、Brian Johnson、Greg Rose (2011年9月). 「SR-IOVテクノロジーを使用したIntelフレキシブルポートパーティショニングの紹介」(PDF) . Intel . 2015年9月24日閲覧.
  17. ^ Jonathan Corbet (2007年8月1日). 「Large receive offload」 . LWN.net . 2015年5月2日閲覧
  18. ^ 「サイバーセキュリティのための高性能ソリューション」。New Wave Design & Verification。New Wave DV。
  19. ^ Timothy Prickett Morgan (2012年2月8日). 「Solarflareがネットワークアダプターをサーバーに変える:CPUの速度が十分でないとき」 The Register . 2014年5月8日閲覧
  20. ^ "OpenOnload" . openonload.org . 2013年12月3日. 2014年5月8日閲覧
  21. ^ Steve Pope; David Riddoch (2008年3月21日). 「OpenOnload: ユーザーレベルネットワークスタック」(PDF) . openonload.org . 2014年7月24日時点のオリジナル(PDF)からのアーカイブ。 2014年5月8日閲覧