# Circuito virtual

Un circuito virtual (VC por sus siglas en inglés) es un sistema de comunicación por el cual los datos de un usuario origen pueden ser transmitidos a otro usuario destino a través de más de un circuito de comunicaciones real durante un cierto periodo de tiempo, pero en el que la conmutación es transparente para el usuario. Un ejemplo de protocolo de circuito virtual es el ampliamente utilizado TCP (Protocolo de Control de Transmisión).
Es una forma de comunicación mediante conmutación de paquetes en la cual la información o datos son empaquetados en bloques que tienen un tamaño variable a los que se les denomina paquetes de datos. El tamaño de los bloques lo estipula la red. Los paquetes suelen incluir cabeceras con información de control. Estos se transmiten a la red, la cual se encarga de su encaminamiento hasta el destino final. Cuando un paquete se encuentra con un nodo intermedio, el nodo almacena temporalmente la información y encamina los paquetes a otro nodo según las cabeceras de control. Es importante saber que en este caso los nodos no necesitan tomar decisiones de encaminamiento, ya que la dirección a seguir viene especificada en el propio paquete.
La comunicación del circuito virtual se asemeja a la conmutación de circuitos, ya que ambos están orientados a la conexión, lo que significa que en ambos casos los datos se entregan en el orden correcto, y se requiere una sobrecarga de señalización durante la fase de establecimiento de la conexión. Sin embargo, la conmutación de circuitos proporciona una tasa de bits y latencia constantes, mientras que estos pueden variar en un servicio de circuito virtual debido a factores tales como:
* Longitudes de cola de paquetes variables en los nodos de la red.
* Velocidad de bits variable generada por la aplicación.
* Carga variable de otros usuarios que comparten los mismos recursos de red por medio de multiplexación estadística, etc.
Muchos protocolos de circuitos virtuales, pero no todos, proporcionan un servicio de comunicación confiable mediante el uso de retransmisiones de datos debido a la detección de errores y la solicitud de repetición automática (ARQ).
Las dos formas de encaminación de paquetes son: datagrama y circuitos virtuales. Este artículo está centrado en el segundo.
En los circuitos virtuales, al comienzo de la sesión se establece una ruta única entre las ETD (entidades terminales de datos) o los hosts extremos. A partir de aquí, todos los paquetes enviados entre estas entidades seguirán la misma ruta.
Las dos formas de establecer la transmisión mediante circuitos virtuales son los circuitos virtuales conmutados (SVC) y los circuitos virtuales permanentes (PVC).

## Ejemplo

* La ETD A solicita el envío de paquetes a la ETD E.
* Cuando la conexión ya está establecida se comienzan a enviar los paquetes de forma ordenada por la ruta uno tras otro.
* Cuando la ETD E recibe el último paquete, se libera la conexión, por lo que el circuito virtual deja de existir.

## Capa 4 circuitos virtuales

Los protocolos de enlace de datos de la capa de transporte orientados a la conexión, como TCP, pueden basarse en un protocolo de capa de red de conmutación de paquetes sin conexión, como el IP, donde diferentes paquetes pueden enrutarse a través de diferentes rutas y, por lo tanto, entregarse fuera de servicio. Sin embargo, es posible utilizar TCP como un circuito virtual, ya que TCP incluye la numeración de segmentos que permite reordenar en el lado del receptor para acomodar la entrega fuera de orden.

## Capa 2/3 circuitos virtuales

Los protocolos del circuito virtual de capa de red y capa de enlace de datos se basan en la conmutación de paquetes orientada a la conexión, lo que significa que los datos siempre se entregan a lo largo de la misma ruta de red, es decir, a través de los mismos nodos. Las ventajas sobre la conmutación de paquetes sin conexión son: Se admite la reserva de ancho de banda durante la fase de establecimiento de la conexión, lo que hace posible la Calidad de servicio (QoS) garantizada. Se requiere menos sobrecarga, ya que los paquetes no se enrutan individualmente y no se proporciona información completa de direccionamiento en el encabezado de cada paquete de datos. Solo se requiere un pequeño identificador de canal virtual (VCI) en cada paquete. La información de enrutamiento solo se transfiere a los nodos de la red durante la fase de establecimiento de la conexión. Los nodos de la red son más rápidos y en teoría tienen una mayor capacidad, ya que son conmutadores que solo realizan el enrutamiento durante la fase de establecimiento de la conexión, mientras que los nodos de la red sin conexión son enrutadores que realizan el enrutamiento para cada paquete individualmente. Los conmutadores pueden implementarse fácilmente en el hardware ASIC, mientras que el enrutamiento es más complejo y requiere implementación de software.

## Circuito virtual conmutado

Los circuitos virtuales conmutados (SVC) por lo general se crean ex profeso y de forma dinámica para cada llamada o conexión, y se desconectan cuando la sesión o llamada es terminada. Como ejemplo de circuito virtual conmutado se tienen los enlaces ISDN. Se utilizan principalmente en situaciones donde las transmisiones son esporádicas. En terminología ATM esto se conoce como conexión virtual conmutada. Se crea un circuito virtual cuando se necesita y existe sólo durante la duración del intercambio específico.

## Circuito virtual permanente

También se puede establecer un circuito virtual permanente (PVC) a fin de proporcionar un circuito dedicado entre dos puntos. Un PVC es un circuito virtual permanente establecido para uso repetido por parte de los mismos equipos de transmisión. En un PVC la asociación es idéntica a la fase de transferencia de datos de una llamada virtual. Los circuitos permanentes eliminan la necesidad de configuración y terminación repetitivas para cada llamada. Es decir se puede usar sin tener que pasar por la fase de establecimiento ni liberación de las conexiones. El circuito está reservado a una serie de usuarios y nadie más puede hacer uso de él. Una característica especial que en el SVC no se daba es que si dos usuarios solicitan una conexión, siempre obtienen la misma ruta.
El resumen general en cuanto a redes de comunicación sería el siguiente esquema:

## Circuitos virtuales permanentes y conmutados en ATM, frame relay y X.25

Los circuitos virtuales conmutados (SVC) generalmente se configuran para cada llamada y se desconectan cuando se termina la llamada; sin embargo, se puede establecer un circuito virtual permanente (PVC) como una opción para proporcionar un enlace de circuito dedicado entre dos instalaciones. La configuración de PVC generalmente está preconfigurada por el proveedor de servicios. A diferencia de los SVC, el PVC generalmente se rompe / desconecta muy raramente.
* Frame relé se utiliza normalmente para proporcionar PVC.
* ATM proporciona conexiones virtuales conmutadas y conexiones virtuales permanentes, como se les llama en la terminología ATM.
* X.25 proporciona tanto llamadas virtuales como PVC, aunque no todos los proveedores de servicios

## Ejemplos de protocolos de la capa de transporte que proporcionan un circuito virtual

* Protocolo de control de transmisión (TCP), donde se establece un circuito virtual confiable sobre el protocolo IP no confiable y sin conexión subyacente. El circuito virtual se identifica por el par de direcciones de socket de la red de origen y destino, es decir, la dirección IP del remitente y el receptor y el número de puerto.
* Stream Control Transmission Protocol (SCTP), donde se establece un circuito virtual sobre el protocolo IP o el protocolo UDP.

## Ejemplos de protocolos de circuito virtual de capa de red y capa de enlace de datos, donde los datos siempre se entregan por la misma ruta

* X.25, donde el VC se identifica mediante un identificador de canal virtual (VCI). X.25 proporciona comunicación confiable de nodo a nodo y calidad de servicio garantizada.
* Frame relay, donde el VC es identificado por un DLCI. El Frame Relay no es confiable, pero puede proporcionar QoS garantizada.
* Modo de transferencia asíncrono (ATM), donde el circuito se identifica mediante un identificador de ruta virtual (VPI) y un par de identificador de canal virtual (VCI). La capa ATM proporciona circuitos virtuales no confiables, pero el protocolo ATM proporciona confiabilidad a través de la subcapa de convergencia específica del servicio (SSCS) de la capa de adaptación ATM (ACI)
* Servicio general de paquetes de radio (GPRS)
* Conmutación de etiquetas multiprotocolo (MPLS), que se puede utilizar para IP sobre circuitos virtuales. Cada circuito está identificado por una etiqueta. MPLS no es confiable, pero proporciona ocho clases de QoS diferentes.