There are a number of differences between Virtual circuits and Datagram networks. Virtual Circuits are computer networks that provide connection-oriented services, while those providing connection-less services are called as Datagram networks.
Examples: The Internet which we use is based on Datagram network. ATM (Asynchronous Transfer Mode) and frame relay – are virtual circuit networks and, therefore they use connections at the network layer.
Virtual Circuits Datagram Networks Virtual circuits are connection-oriented, which means that there is a reservation of resources like buffers, bandwidth, etc. for the time during which the newly setup VC is going to be used by a data transfer session. It is connectionless service. There is no need for reservation of resources as there is no dedicated path for a connection session. A virtual circuit network uses a fixed path for a particular session, after which it breaks the connection and another path has to be set up for the next the next session. A Datagram based network is a true packet switched network. There is no fixed path for transmitting data. All the packets follow the same path and hence a global header is required only for the first packet of connection and other packets will not require it. Every packet is free to choose any path, and hence all the packets must be associated with a header containing information about the source and the upper layer data. Packets reach in order to the destination as data follows the same path. Data packets reach the destination in random order, which means they need not reach in the order in which they were sent out. Virtual Circuits are highly reliable. Datagram networks are not as reliable as Virtual Circuits. Implementation of virtual circuits is costly as each time a new connection has to be set up with reservation of resources and extra information handling at routers. But it is always easy and cost-efficient to implement datagram networks as there is no need of reserving resources and making a dedicated path each time an application has to communicate.