O Circuito Virtual (Virtual Circuit) é um modelo de serviço de transporte orientado a conexão. Ele representa uma abstração de comunicação que simula um circuito físico dedicado (como uma linha telefônica antiga) sobre uma rede de comutação de pacotes (como a Internet).
Enquanto o serviço de Datagrama (UDP) funciona como o envio de cartas individuais — onde cada carta segue seu caminho independente — o serviço de Circuito Virtual funciona como uma chamada telefônica. Antes que qualquer conversa (dados) ocorra, um caminho lógico e dedicado deve ser estabelecido entre o remetente e o receptor.
Na Camada de Transporte, o protocolo TCP (Transmission Control Protocol) é a implementação clássica do modelo de Circuito Virtual. Ele cria esse “tubo” lógico entre os processos, garantindo que os dados fluam de forma ordenada, confiável e controlada, ocultando o caos e a natureza “sem conexão” da rede IP subjacente.
1. O Ciclo de Vida: Três Fases Distintas
A comunicação em um Circuito Virtual é estruturada em três fases bem definidas. Este é o comportamento fundamental que o diferencia dos datagramas.
A. Estabelecimento (Setup)
Antes que qualquer dado útil (payload) seja transferido, o remetente e o receptor devem negociar a conexão.
- Handshake: Ocorre uma troca preliminar de mensagens de controle (no TCP, o famoso Three-Way Handshake: SYN, SYN-ACK, ACK).
- Reserva de Recursos: Durante esta fase, ambos os lados alocam buffers de memória, inicializam variáveis de estado (números de sequência, tamanho de janela) e sincronizam seus relógios lógicos.
- Definição do Caminho Lógico: Embora a rede física (IP) não reserve roteadores, o circuito virtual estabelece um “contrato” lógico: “Estou pronto para receber dados para essa sessão específica”.
B. Transferência de Dados (Data Transfer)
Uma vez que o circuito virtual está estabelecido, os dados começam a fluir através dele.
- Fluxo Orientado: Os pacotes não são tratados como unidades independentes; eles são partes de um fluxo contínuo.
- Sequenciamento: Cada byte enviado é numerado. Isso permite que o receptor verifique se há lacunas (pacotes perdidos) e remonte os dados na ordem correta.
- Confiabilidade: O receptor envia confirmações (ACKs) de volta ao emissor. Se o emissor não receber a confirmação, ele retransmite os dados, assegurando que nada se perca no “tubo” virtual.
C. Encerramento (Teardown)
Quando a comunicação termina, a conexão não pode simplesmente ser abandonada, pois isso desperdiçaria recursos nos hosts.
- Liberação de Recursos: As duas pontas trocam mensagens de encerramento (no TCP: FIN, ACK).
- Limpeza: Os buffers, timers e variáveis de estado alocados durante o estabelecimento são liberados. O circuito virtual é demolido e os recursos ficam disponíveis para novas conexões.
2. Características Técnicas do Serviço
O modelo de Circuito Virtual impõe um conjunto de garantias e comportamentos que o modelo de datagrama não oferece:
- Presença de Estado (Stateful): Tanto o remetente quanto o receptor mantêm informações detalhadas sobre a conexão. Eles sabem o que foi enviado, o que foi recebido, o que falta e a velocidade atual da transmissão. Roteadores intermediários não precisam manter esse estado (no caso do TCP sobre IP), mas os hosts finais (as pontas) são altamente stateful.
- Endereçamento da Conexão: Além dos endereços IP e Portas (que identificam os processos), um circuito virtual é frequentemente identificado por um identificador de conexão (como o par de sockets ou números de sequência iniciais) que permite diferenciar múltiplas conexões entre os mesmos hosts.
- Controle de Fluxo e Congestionamento: O circuito possui mecanismos ativos para evitar o colapso. Se o receptor estiver cheio, ele sinaliza ao remetente para diminuir a velocidade. Se a rede estiver congestionada, o protocolo reduz sua taxa de transmissão para aliviar a carga.
3. A Ilusão do “Dedicated Path”
O termo “Virtual” em Circuito Virtual é crucial. Ele não significa que um cabo físico foi reservado exclusivamente para você entre a origem e o destino (como em uma chamada telefônica analógica antiga).
- Compartilhamento de Estatística: Seus pacotes compartilham os mesmos enlaces físicos (fibra, roteadores) com pacotes de milhões de outros usuários.
- Abstração de Exclusividade: Do ponto de vista da aplicação, contudo, parece que há um tubo privado. Como o protocolo reordena os pacotes e remove duplicatas, a aplicação não percebe o compartilhamento da rede. Ela enxerga apenas um canal sequencial e confiável.
4. Vantagens e Desvantagens
A escolha pelo modelo de Circuito Virtual envolve trade-offs (vantagens e desvantagens):
- Vantagens:
- Confiabilidade: Garantia de entrega e ordem.
- Controle de Congestionamento: Melhor para a saúde geral da rede, pois evita inundações.
- Facilidade para a Aplicação: O desenvolvedor não precisa lidar com perdas de pacotes, reordenação ou erros; o protocolo cuida disso.
- Desvantagens:
- Latência de Setup: A necessidade de estabelecer a conexão antes de enviar dados cria um atraso inicial.
- Overhead (Sobrecarga): O cabeçalho é maior e o processamento mais pesado devido ao controle de estado e verificação de erros.
- Escalabilidade de Servidor: O servidor deve manter estado (memória) para cada conexão ativa, o que limita o número de conexões simultâneas em comparação com um servidor UDP stateless.
Em resumo, o Circuito Virtual é a construção da Camada de Transporte que transforma a rede “caótica e não confiável” da Camada de Rede em um “canal seguro e confiável” para as aplicações de software. É a base da internet moderna para Web, E-mail e Transferência de Arquivos.