Packet switching refers to protocols where messages are divided into packets before being transmitted. Each packet is transmitted individually and can take different routes to the destination. Once all packets arrive, they are recompiled into the original message. There are two main approaches: virtual circuits establish a pre-planned route before transmission, while datagrams treat each packet independently without connection setup. Virtual circuits provide sequencing but are less reliable if a node fails, while datagrams are more flexible but packets may arrive out of order.