Circuit switching directly connects the sender and receiver through a dedicated communication path. It has high initial delay but low data delay. Message switching stores and forwards entire messages without dedicated paths, causing some delay. Packet switching breaks messages into packets that can take different routes, with virtual circuits establishing logical connections and datagrams addressing each packet individually.