IP addresses are a unique identifier for devices connected to a network. They allow for the delivery of data packets across networks. The structure of IP addresses includes a network prefix that identifies the network and a host number that identifies the specific device. Techniques like subnetting, CIDR, and IPv6 were developed to address the limited available IPv4 address space and allow for more efficient allocation and routing of IP addresses.