Virtual Circuit consists of:
- A path (series of links and routers) between the source and destination hosts,
- VC numbers, one number for each link along the path,
- Connection State Information, or entries in the forwarding table in each router along the path. A packet belonging to a virtual circuit will carry a VC number in its header. (Note that packets coming from same interface can have different VC values).
There are three identifiable phases in a virtual circuit:
- VC setup. During the setup phase, the sending transport layer contacts the network layer, specifies the receiver's address, and waits for the network to set up the VC. The network layer determines the path between sender and receiver, that is, the series of links and routers through which all packets of the VC will travel. The network layer also determines the VC number for each link along the path. Finally, the network layer adds an entry in the forwarding table in each router along the path. During VC setup, the network layer may also reserve resources (for example, bandwidth) along the path of the VC,
- Data transfer. Once the VC has been established, packets can begin to flow along the VC,
- VC teardown. This is initiated when the sender (or receiver) informs the network layer of its desire to terminate the VC. The network layer will then typically inform the end system on other side of the network of the call termination and update the forwarding tables in each of the packet routers on the path to indicate that VC no longer exists.
The messages that the end systems send into the network to initiate or terminate a VC, and the messages passed between the routers to set up the VC (that is, to modify connection state in router tables) are known as signaling messages, and the protocols used to exchange these messages are often referred to as signaling protocols.
In a datagram network, each time an end system wants to send a packet, it stamps the packet with the address of the destination end system and then pops the packet into the network. This is done without any VC setup. Routers in a datagram network do not maitain any state information about VCs (because there are no VCs!).
As a packet is transmitted from source to destination, it passes through a series of routers. Each of these routers uses packet's destination address to forward the packet.
To avoid too large forwarding tables, router matches prefix of the packet's destination address with the entries in the table. If there's a match the router forwards the packet to a link associated with the match. Although this sounds simple enough, there's an important subtlety here. It is possible for destrination address to match more than one entry. When there are multiple matches, the router uses longest prefix matching rule; that is, it finds the longest matching entry in the table and forwards the packet to the link interface associated with the longest prefix match.
Although routers in datagram network maitain no connection state information, they nevertheless maitain forwarding state information in their forwarding tables. However the time scale at which this forwarding state information changes is relatively slow. In a datagram network the forwarding tables are modified by the routing algorithms which typically may update a forwarding table every one-to-five minutes or so. In a VC network, a forwarding table in a router is modified whenever a new connection is set up through the router or whenever an existing connection through the router is torn down. This could easilly happen at a microsecond timescale in a backbone, tier-1 router.
Because forwarding tables in datagram networks can be modified at any time, a series of packets sent from one end system to another may follow different paths through network and may arrive out of order.