A virtual network interface (VIF) is an abstract virtualized representation of a computer network interface that may or may not correspond directly to a
network interface controller
A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network.
Ear ...
.
Operating system level
It is common for the operating system
kernel
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learn ...
to maintain a table of virtual network interfaces in memory. This may allow the system to store and operate on such information independently of the physical interface involved (or even whether it is a direct physical interface or for instance a tunnel or a bridged interface). It may also allow processes on the system to interact concerning network connections in a more granular fashion than simply to assume a single amorphous "Internet" (of unknown capacity or performance).
W. Richard Stevens, in volume 2 of his treatise
entitled
TCP/IP Illustrated
''TCP/IP Illustrated'' is the name of a series of 3 books written by W. Richard Stevens. Unlike traditional books which explain the RFC specifications, Stevens goes into great detail using actual network traces to describe the protocol, hence ...
, refers to the kernel's Virtual Interface Table in his discussion of multicast routing. For example, a
multicast router may
operate differently on interfaces that represent tunnels than on
physical interfaces (e.g. it may only need to collect membership information
for physical interfaces). Thus the virtual interface may need to divulge some
specifics to the user, such as whether or not it represents a physical
interface directly.
In addition to allowing user space applications to refer to abstract network
interface connections, in some systems a virtual interface framework may allow
processes to better coordinate the sharing of a given physical interface
(beyond the default operating system behavior) by hierarchically subdividing it
into abstract interfaces with specified bandwidth limits and queueing models.
This can imply restriction of the process, e.g. by inheriting a limited branch
of such a hierarchy from which it may not stray.
This extra layer of network abstraction is often unnecessary, and may have a
minor performance penalty. However, it is also possible to use such a
layer of abstraction to work around a performance bottleneck, indeed even to
bypass the kernel for optimization purposes.
Application level
The term VIF has also been applied when the application virtualizes or
abstracts network interfaces. Since most software need not concern
itself with the particulars of network interfaces, and since the desired
abstraction may already be available through the operating system, this
usage is rare.
See also
*
Loopback
Loopback (also written loop-back) is the routing of electronic signals or digital data streams back to their source without intentional processing or modification. It is primarily a means of testing the communications infrastructure.
There are m ...
*
Network virtualization
In computing, network virtualization is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Network virtualization involves platform vi ...
*
Virtual Interface Architecture
The Virtual Interface Architecture (VIA) is an abstract model of a user-level zero-copy network, and is the basis for InfiniBand, iWARP and RoCE. Created by Microsoft, Intel, and Compaq, the original VIA sought to standardize the interface for hi ...
References
{{Reflist
External links
Linux Network Interfaces
Computer networks