Packet switching is a communications paradigm in which packets (discrete blocks of data) are routed between nodes over data links shared with other traffic. In each network node, packets are queued or buffered, resulting in variable delay. This contrasts with the other principal paradigm, circuit switching, which sets up a limited number of constant bit rate and constant delay connections between nodes for their exclusive use for the duration of the communication.
Packet mode or packet-oriented communication may be utilized with or without a packet switch, in the latter case directly between two hosts. Examples of that are point-to-point data links, digital video and audio broadcasting or a shared physical medium, such as a bus network, ring network, or hub network.
Packet mode communication is a statistical multiplexing technique, also known as a dynamic bandwidth allocation method, where a physical communication channel is effectively divided into an arbitrary number of logical variable bit-rate channels or data streams. Each logical stream consists of a sequence of packets, which normally are forwarded by a network node asynchronously in a first-come first-serve fashion. Alternatively, the packets may be forwarded according to some scheduling discipline for fair queuing or differentiated and/or guaranteed Quality of service. In case of a shared physical media, the packets may be delivered according to some packet-mode multiple access scheme.
The service actually provided to the user by networks using packet switching internally to the network can be datagrams (connectionless messages), and/or virtual circuit switching (also known as connection oriented). Some connectionless protocols are Ethernet, IP, and UDP; connection oriented protocols include X.25, Frame relay, Asynchronous Transfer Mode (ATM), Multiprotocol Label Switching (MPLS), and TCP.
It's also entirely possible to have to weigh the various metrics against each other. For example, reducing the hop count could increase the latency to an unacceptable limit and some kind of balance would need to be found. For multi-parameter optimization, some form of optimization may be needed.
Once a route is determined for a packet, it is entirely possible that the route may change for the next packet, thus leading to a case where packets from the same source headed to the same destination could be routed differently.
Packet switching influenced the development of the Actor model of concurrent computation in which messages sent to the same address may be delivered in an order different from the order in which they were sent.
Reference:
http://en.wikipedia.org/wiki/Packet_switching