A virtual circuit (VC) is a means of transporting data over a data network, based on packet switching and in which a connection is established within the network between two endpoints. The network, rather than having a fixed data rate reservation per connection, like in circuit switching, takes advantage of the statistical multiplexing on its transmission links (an intrinsic feature of packet switching, well suited to data traffic). In addition, VCs standardized by the CCITT in 1976 impose per-connection flow controls at all user-to-network and network-to-network interfaces. They thus eliminate the need for the network to lose user packets in heavily loaded network zones, an intrinsic feature of datagram networks for their congestion control.
Before a connection or virtual circuit may be used, it must be established between two or more nodes or software applications by means of call setup. After that, a bit stream or byte stream may be delivered between the nodes; hence, a virtual circuit protocol allows higher-level protocols to avoid dealing with the division of data into Protocol data units.
Many virtual circuit protocols, but not all, provide reliable communication service through the use of data retransmissions invoked by error detection and automatic repeat request (ARQ).
An alternative to virtual-circuit networks are datagram networks.
Virtual circuit communication resembles circuit switching, since both are connection oriented, meaning that in both cases data is delivered in correct order, and signalling overhead is required during a connection establishment phase. However, circuit switching provides a constant bit rate and latency, while these may vary in a virtual circuit service due to factors such as:
In telecommunication, a virtual call capability, sometimes called a virtual call facility, is a service feature in which:
An alternative approach to virtual calls is connectionless communication using datagrams.
In the 1970s, the "virtual call" concept was used in the British EPSS and enhanced by Rémi Després as "virtual circuits" in the French RCP.
Connection oriented transport layer protocols such as TCP may rely on a connectionless packet switching network layer protocol such as IP, where different packets may be routed over different paths, and thus be delivered out of order. However, it is possible to use TCP as a virtual circuit, since TCP includes segment numbering that allows reordering on the receiver side to accommodate out-of-order delivery.
Data link layer and network layer virtual circuit protocols are based on connection-oriented packet switching, meaning that data is always delivered along the same network path, i.e., through the same nodes. Advantages with this over connectionless packet switching are:
Examples of transport layer protocols that provide a virtual circuit:
Examples of network-layer and data-link-layer virtual circuit protocols, where data always is delivered over the same path:
Switched virtual circuits (SVCs) are generally set up on a per-call basis and are disconnected when the call is terminated; however, a permanent virtual circuit (PVC) can be established as an option to provide a dedicated circuit link between two facilities. PVC configuration is usually preconfigured by the service provider. Unlike SVCs, PVC are usually very seldom broken/disconnected.
A switched virtual circuit (SVC) is a virtual circuit that is dynamically established on demand and is torn down when transmission is complete, for example after a phone call or a file download. SVCs are used in situations where data transmission is sporadic and/or not always between the same data terminal equipment (DTE) endpoints.
A permanent virtual circuit (PVC) is a virtual circuit established for repeated/continuous use between the same DTE. In a PVC, the long-term association is identical to the data transfer phase of a virtual call. Permanent virtual circuits eliminate the need for repeated call set-up and clearing.