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

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
ネットワークインターフェイスコントローラー
ネットワークcard.jpg
現在廃止されているISAバスを介してマザーボードに接続する1990年代のイーサネットネットワークインターフェイスコントローラカード。このコンビネーションカードは、(現在は廃止されている)10BASE2ネットワークで使用するためのBNCコネクタ(左)と10BASE-Tネットワークで使用するための8P8Cコネクタ(右)の両方を備えています。
に接続します 次のいずれかを介した マザーボード:

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

速度全二重または半二重
  • 10 Mbit / s
  • 100 Mbit / s
  • 1ギガビット/秒

全二重[1] [2]
  • 2.5ギガビット/秒
  • 5ギガビット/秒
  • 10ギガビット/秒
  • 最大160Gbit / s
一般的なメーカーIntel
Realtek
Broadcom(以前のAvagoEmulexを含む)
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アドレスを使用して低レベルのアドレス指定システムを提供するため、物理層とデータリンク層の両方のデバイスです。インターフェイス。

実装

12個の初期ISA8ビットおよび16ビットPCネットワークカード。右下のカードは初期のワイヤレスネットワークカードであり、部分的にベージュのプラスチックカバーが付いた中央のカードはPSTNモデムです。

ネットワークコントローラーは元々、コンピューターバスに接続された拡張カードとして実装されていました。イーサネット標準の低コストと普及は、ほとんどの新しいコンピュータがマザーボードに組み込まれたネットワークインターフェイスコントローラを持っていることを意味します。新しいサーバーマザーボードには、複数のネットワークインターフェイスが組み込まれている場合があります。イーサネット機能は、マザーボードチップセットに統合されているか、低コストの専用イーサネットチップを介して実装されています。追加の独立したネットワーク接続が必要な場合、またはイーサネット以外のタイプのネットワークが使用されている場合を除き、通常、個別のネットワークカードは必要ありません。コンピュータハードウェアの一般的な傾向は、システムのさまざまなコンポーネントをチップに統合することです。、これはネットワークインターフェイスカードにも適用されます。

イーサネットネットワークコントローラには通常、ネットワークケーブルが接続されている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]

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

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

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

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

  • ポーリングは、CPUがプログラム制御下のペリフェラルのステータスを調べる場所です。
  • 割り込み駆動型I / Oは、ペリフェラルがデータを転送する準備ができていることをCPUに警告する場所です。

NICは、次の1つ以上の手法を使用してパケットデータを転送する場合があります。

  • プログラムド入力/出力。CPUがデータをNICとの間でメモリに移動します。
  • ダイレクトメモリアクセス(DMA)。CPU以外のデバイスがシステムバスの制御を引き受け、NICとメモリの間でデータを移動します。これによりCPUの負荷が軽減されますが、カードにはより多くのロジックが必要になります。さらに、NICのパケットバッファが不要な場合があり、遅延を減らすことができます。

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

ATMネットワークインターフェイス。
Intel 82574LギガビットイーサネットNIC、PCI Express×1カード、2つのハードウェア受信キューを提供[8]

マルチキューNICは、複数の送信キューと受信キューを提供し、NICによって受信されたパケットをその受信キューの1つに割り当てることができます。NICは、ハッシュ関数を使用して受信キュー間で着信トラフィックを分散する場合があります各受信キューは個別の割り込みに割り当てられます; これらの各割り込みを異なるCPUまたはCPUコアにルーティングすることにより、単一のNICによって受信されたネットワークトラフィックによってトリガーされた割り込み要求の処理を分散して、パフォーマンスを向上させることができます。[9] [10]

上記の割り込みのハードウェアベースの分散は、受信側スケーリング(RSS)と呼ばれます。[11] :82 パケット受信ステアリング(RPS)や受信フローステアリング(RFS)などの純粋なソフトウェア実装も存在します。[9]割り込みを生成したネットワークパケットの最終的な宛先であるアプリケーションを実行するCPUまたはコアに割り込み要求をルーティングすることにより、パフォーマンスをさらに向上させることができます。この手法により、参照の局所性が向上し、全体的なパフォーマンスが向上し、遅延が減少し、ハードウェアの使用率が高くなるため、ハードウェアの使用率が向上します。CPUキャッシュと必要なコンテキストスイッチの数が少なくなります。このような実装の例は、RFS [ 9]およびIntelFlowDirector です。[11] :98、99  [12] [13] [14]

マルチキューNICを使用すると、送信トラフィックを異なる送信キューに分散することで、パフォーマンスをさらに向上させることができます。異なるCPUまたはCPUコアに異なる送信キューを割り当てることにより、内部オペレーティングシステムの競合を回避できます。このアプローチは通常、送信パケットステアリング(XPS)と呼ばれます。[9]

一部の製品は、 SR-IOV仮想化を使用して単一の10ギガビットイーサネットNICを専用帯域幅を持つ複数の個別の仮想NICに分割するNICパーティショニング(NPAR、ポートパーティショニングとも呼ばれる)を備えており、ファームウェアとオペレーティングシステムに個別のPCIデバイスとして提供されます。関数[3] [15]

TCPオフロードエンジンは、 TCP / IPスタック全体の処理をネットワークコントローラーにオフロードするために一部のNICで使用されるテクノロジーです。これは主に、ネットワークスタックの処理オーバーヘッドが大きくなるギガビットイーサネットや10ギガビットイーサネットなどの高速ネットワークインターフェイスで使用されます。[16]

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

も参照してください

メモ

  1. ^ 他のネットワーク技術も存在しますが、イーサネット( IEEE 802.3)とWi-Fi( IEEE 802.11)は、1990年代半ば以降、LAN技術としてほぼユビキタスになっています。

参考文献

  1. ^ 「ポート速度とデュプレックスモードの構成」docs.ruckuswireless.com 2020年9月25日取得
  2. ^ 管理者、アリスタ(2020-04-23)。「セクション11.2:イーサネット標準-アリスタ」アリスタネットワークス2020年9月28日取得
  3. ^ a b 「ネットワークインターフェイスカードのパーティショニングによるスケーラビリティの向上」(PDF)デル2011年4月2014年5月12日取得
  4. ^ 「物理ネットワークインターフェース」Microsoft2009年1月7日。
  5. ^ Posey、Brien M.(2006)。「ネットワークの基本:パート1-ネットワークハードウェア」Windowsnetworking.comTechGenixLtd 2012年6月9日取得
  6. ^ ジムオライリー(2014-01-22)。「2014年は10ギガビットイーサネットの年になるのでしょうか?」ネットワークコンピューティング2015年4月29日取得
  7. ^ 「ASRockX99WS-E / 10GおよびIntel10G BASE-TLANで速度制限を破る」asrock.com2014年11月24日2015年5月19日取得
  8. ^ 「Intel82574ギガビットイーサネットコントローラファミリデータセット」(PDF)インテル2014年6月。p。1 2014年11月16日取得
  9. ^ a b cd トムハーバート; Willem de Bruijn(2014年5月9日)。「Linuxカーネルのドキュメント:Documentation / network /scaling.txt」kernel.org 2014年11月16日取得
  10. ^ 「Intelイーサネットコントローラi210ファミリ製品概要」(PDF)インテル2012 2014年11月16日取得
  11. ^ a b "Intel Look Inside:Intel Ethernet" (PDF)Xeon E5 v3(Grantley)の起動インテル2014年11月27日。2015年3月26日のオリジナル(PDF)からアーカイブ2015年3月26日取得
  12. ^ 「Linuxカーネルのドキュメント:Documentation / network /ixgbe.txt」kernel.org2014年12月15日2015年3月26日取得
  13. ^ 「IntelEthernetFlowDirector」インテル2015年2月16日2015年3月26日取得
  14. ^ 「IntelEthernetFlow DirectorとMemcachedパフォーマンスの概要」(PDF)インテル2014年10月14日2015年10月11日取得
  15. ^ Patrick Kutch; ブライアンジョンソン; グレッグローズ(2011年9月)。「SR-IOVテクノロジーを使用したインテルフレキシブルポートパーティショニングの概要」(PDF)インテル2015年9月24日取得
  16. ^ Jonathan Corbet(2007年8月1日)。「ラージレシーブオフロード」LWN.net 2015年5月2日取得
  17. ^ 「サイバーセキュリティのための高性能ソリューション」新しい波の設計と検証新しいウェーブDV。
  18. ^ ティモシープリケットモーガン(2012-02-08)。「Solarflareはネットワークアダプターをサーバーに変えます:CPUが十分に速くないとき」レジスター2014年5月8日取得
  19. ^ 「OpenOnload」openonload.org2013-12-03 2014年5月8日取得
  20. ^ スティーブ教皇; デビッドリドック(2008-03-21)。「OpenOnload:ユーザーレベルのネットワークスタック」(PDF)openonload.org 2014年5月8日取得

外部リンク