IPv4 is specified in RFC 791, “INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION”, September 1981.
IPv4 first went live on January 1, 1983. Prior to that, only an earlier protocol usually referred to as NDP was used. From that date forward, only IPv4 was used. This kind of abrupt transition is not possible with the changeover to IPv6. For one thing, NDP supported a maximum of 256 nodes, and there were a very small number of highly technical people using it. Even so, things did not go well, and there periods of several months in which things like world-wide e-mail stopped working. With IPv4 to IPv6, there are billions of users, and breaking e-mail or web, even for a few days, would cause massive problems and financial damage, around the world.
IPv4 uses 32-bit addresses. Internally, and “on the wire” these are just an ordered set of 32 binary digits. For the convenience of humans, these are represented in dotted-decimal notation. Software converts between the internal binary representation and the external dotted-decimal representation.
In dotted-decimal notation, the 32 bits are split into 4 groups of 8 bits. Each group of 8 bits is represented by a decimal (base 10) value from 0 (0000 00002) to 255 (1111 11112). The four groups of digits are separated by the “.” character (here called “dot”). Hence, the name “dotted-decimal”.
A typical IPv4 address is “172.20.2.1”. Represented in hexadecimal, that would be 0xAC140201. In binary that would be 1010 1100 0001 0100 0000 0010 0000 00012.
Before allocation was turned over to IANA, a gentleman named Jon Postel was in charge of allocating IPv4 addresses. The first allocation scheme was based on “classes“. Eventually, the IETF realized that we would run out of IPv4 public addresses very quickly using this “three sizes fit all” scheme, so a better scheme was adopted in RFC 1519, “Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy”, September 1993.