Packet switching is a data transmission technique that divides data into small packets before transmission. Each packet contains a header with source and destination addresses, a payload with the original data, and a trailer with a checksum. Packets are transmitted hop-by-hop through a packet switched network and reassembled at the destination. X.25 was an early protocol for packet switched networks that established virtual circuits to provide reliable connections over unreliable transmission links. It defined physical, link, and packet layer protocols to assemble and transmit packets through public data networks. Frame Relay and ATM are later protocols that also use virtual circuits to transmit packets through packet switched networks.