NICとは?
ネットワークインターフェイス カード (Network Interface Card, NIC) は, コンピューターまたはネットワーク対応デバイスをネットワークにつなげるためのプリント基板としてのハードウェアコンポーネントです. ネットワークアダプター,ネットワーク カード,LANアダプターとも呼ばれたりします. ネットワーク上のデバイスを識別するMAC(Media Access Control)アドレスは,NICが持っています.
NICは通常、コンピューターのマザーボードに直接接続するか,または拡張スロット(PCI ExpressスロットやUSBスロット) に挿入する拡張カードの形式で提供されます.
NICオフロード機能
NICの帯域幅は1Gbpsが標準的だが,10Gbps,25Gbps,50Gbpsと広い帯域幅までカバーする種類が登場してきました. NICはパケット(ネットワークで送受信するデータの伝送単位)の処理をサーバのCPUに受け渡しますが, ネットワークの高速化(帯域幅の拡大)に伴い,CPUがパケットを処理する際の負担が大きくなることが問題になり始めました.
CPUはパケットの処理に掛かる負荷が増えるほど,アプリケーション側の処理にリソースを割けなくなってしまいます. この問題を解決するために,CPUの処理の一部をNICのプロセッサに担わせる,いわゆる「NICへのオフロード」という手法が登場しました.
具体的には,以下の3つの処理をNICオフロード機能が代行しています:
- TCP/IPチェックサムのオフロード
- TCPセグメント化オフロード
- IPSecオフロード
ただし,NICオフロード機能が原因で障害が発生する事例もあるので利用には注意は必要です.
enp6s0 vs eth0
Ubuntu 22.04にて,ネットワークI/Fの設定,表示を行うコマンドifconfig
やip address
を実行すると
enp6s0
: ethenet connectionlo
: loopbackwlp5s0
: Wireless connection
が表示されるはずです.古くはeth0
, wl0
などのように表示されていましsたが新しいsystemdベースでは
上記のような表現に変更されました.
enp6s0
という名前は,次の部分で構成されています:
en
: ネットワークインターフェス(今回はethernet)p6
: 物理的なスロットまたはポートを示すs0
: 同じ物理スロットまたはポートに接続されているインターフェイスの最初のものを示す
(注意:GitHub Accountが必要となります)