A implementação de redes virtuais pode ser realizada através de dispositivos virtuais. Estes emulam para o Kernel, mais especificamente para o IP, um dispositivo que envia os pacotes para um programa em vez de transmitir os bits. Posteriormente, o programa enviará os pacotes para a máquina destino.
O dispositivo virtual é formado por dois componentes de acordo com a figura 4.1. O primeiro componente se comunica com os protocolos do nível de rede e o segundo componente é responsável em se comunicar com os outros servidores..
Utilizando dispositivos virtuais é possível conectar logicamente máquinas que pertençam a redes físicas distintas, tanto à nível local como remoto. Além disso, estes dispositivos proporcionam formas de implementar:
A implementação por sockets ocorre da seguinte forma: se o dispositivo de rede está habilitado para enviar os pacotes, estes são enfileirados pelo programa do servidor. Um cabeçalho contendo o endereço destino é anexado ao pacote, e o programa servidor o utiliza para determinar o endereço. Se a fila está cheia o pacote é descartado e uma mensagem é enviada ao servidor. Se por outro lado, o dispositivo de rede não estiver habilitado, os pacotes são rejeitados e uma mensagem de erro é enviada ao servidor.
Analisando o desempenho desta implementação, constatou-se que o throughput é o mesmo das redes físicas.
Um dispositivo com uma boa implementação TCP/IP, não é necessário implementar um dispositivo Pnet, os próprios dispositivos nativos podem ser utilizados. Para dispositivos convencionais, este processo de configuração é tipicamente uma tabela. Se um dispositivo Pnet é criado dinamicamente, a tabela não é utilizada e o servidor manuseia o processo manualmente. Esta implementação é realizada via stream.
Mais detalhes em [BEL 94].