Circuit switching happens when two network devices establish a dedicated communication channel. The channel guarantees the full bandwidth for the duration of the session. It functions as if both devices are directly connected with a wire. Therefore, a bit rate is constant during a connection. There is no competition for the circuit from other parties. It stays connected even though no data may be transferred; therefore, it is not efficient. The peers are billed based on the time they use the circuit, not the amount of data that they transmit. Examples of circuit-switched networks are PSTN, ISDN and GSM.
Packet switching divides data into small units called packets. The communication channel is occupied only for the transmission of a packet, not for the duration of a communication session; hence, it is not a dedicated channel. The packet may traverse many network nodes, being queued and re-transmitted over media with a different bandwidth. Another words, the bit rate is variable, and the communication channel is shared. Packet switching is more efficient in terms of the channel capacity utilization. Examples of packet-switched networks are Ethernet and Frame Relay.
Some protocols use packet-switching technology to construct virtual circuits to guarantee a quality of service for such applications as voice and video. Examples are X.25, ATM and MPLS.