The version numbers for the 'version' are part of the IP header field (described in RFC 791) and is 4 bits wide. As with many of the numbers that find their way into the internet, the numbers for the version are part of the Internet Assigned Numbers Authority.

The list of the version numbers can be found at http://www.iana.org/assignments/version-numbers/version-numbers.xhtml which shows:

0 Reserved http://tools.ietf.org/html/rfc4928 section 3 1 Reserved http://tools.ietf.org/html/rfc4928 section 3 2 Unassigned 3 Unassigned 4 IP - Internet Protocol http://tools.ietf.org/html/rfc791 5 ST - ST Datagram Mode http://tools.ietf.org/html/rfc1190 6 IPv6 - Internet Protocol version 6 http://tools.ietf.org/html/rfc1752 7 TP/IX - TP/IX: The Next Internet http://tools.ietf.org/html/rfc1475 8 PiP - The P Internet Protocol http://tools.ietf.org/html/rfc1621 9 TUBA - TUBA http://tools.ietf.org/html/rfc1347 10 Unassigned 11 Unassigned 12 Unassigned 13 Unassigned 14 Unassigned 15 Reserved

And this is where the numbers come from and whats already out there. If there is something after IPv6 that is not one of the already defined numbers, the next available internet protocol version number available is 10.

The specifics of ST can be read in RFC 1190. This protocol was developed by Jim Forgie and was never more than experimental. The wikipedia page about it can be found at Internet Stream Protocol.

Note that these assigned numbers were from days back when things were a bit more... care free with the internet. Classful network /8 blocks were given out fairly freely (known as 'class A' networks) - a number of universities have network spaces of millions (16.7M) of IPv4 addresses.

Allocating versions numbers to experimental protocols was probably also a sign of the times (though IPv6 has made it to practical use). IANA is much more conservative with assigning numbers today.