仮想ネットワークインターフェイス
仮想ネットワークインターフェイス(かそうネットワークインターフェイス、英語: virtual network interface: VIF)は、ネットワークインターフェイスの抽象的な仮想化表現である。実際のネットワークインターフェイスコントローラー (NIC) に直接対応する場合と、そうでない場合がある。
OSレベルの仮想化
[編集]オペレーティングシステム (OS) のカーネルでは、メモリ上に仮想ネットワークインターフェイスのテーブルを保持するのが一般的である。これにより、関連する物理インターフェイスとは独立して、または直接的な物理インターフェイスであるか、または例えばトンネルまたはブリッジインターフェイスであるかに関係なく、システムがネットワークインターフェイスの情報を格納し、動作させることが可能となる。また、単一の無定形の(容量やパフォーマンスが不明な)「インターネット」を想定するよりも、細かい方法でネットワーク接続に関するシステムのプロセスが相互作用することも可能となる。
W・リチャード・スティーヴンスは、著書「TCP/IP Illustrated」の第2巻で、マルチキャストルーティングに関する話題の中でカーネルの仮想インターフェイステーブルについて触れている。例えば、マルチキャストルーターは、物理インターフェイス上とトンネルによるインターフェイス上とで異なる動作をすることができる(例えば、物理インターフェイスのメンバーシップ情報を収集するだけでよい)。従って、仮想インターフェイスは、物理インターフェイスを直接表すかどうかなど、いくつかの情報をユーザーに明らかにする必要がある[1] 。
いくつかのシステムでは、ユーザー空間アプリケーションが抽象的なネットワークインターフェイス接続を参照することを可能にすることに加えて、指定された帯域幅制限とキューイングモデルによって抽象的なインターフェイスに階層的に細分することにより、プロセスが所定の物理インターフェイスの共有を(本来のOSの振る舞いを超えて)より良く調整することを可能にすることができる。これは、例えばそれが逸脱しないような階層の限定された枝を継承することによって、プロセスの制限を意味することができる。
ネットワーク抽象化のこの余分な層は、しばしば不必要であり、わずかな性能上の不利益をもたらす可能性がある。しかし、パフォーマンスのボトルネックを回避するために、実際には最適化のためにカーネルをバイパスするためにも、抽象化レイヤーを使用することも可能である[2]。
アプリケーションレベルの仮想化
[編集]VIFという用語は、アプリケーションがネットワークインターフェイスを仮想化または抽象化するときにも使用される。ほとんどのソフトウェアは、ネットワークインターフェイスの詳細に関わる必要はなく、また、OSを通じて抽象化がすでに利用可能な場合もあるので、この使用法はまれである。
関連項目
[編集]出典
[編集]- ^ W. Richard Stevens; Gary R. Wright (1995), TCP/IP Illustrated, Volume 2: The Implementation, Addison-Wesley, pp. 401–434, ISBN 0-201-63354-X
- ^ Jin-Soo Kim; Kangho Kim; Sung-In Jung (2001), “Building a high-performance communication layer over virtual interface architecture on Linux clusters”, Proceedings of the 15th international conference on Supercomputing (ACM): 335–347, doi:10.1145/377792.377858 2009年2月9日閲覧。