Protocol numbers as defined at:
http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
Above protocol numbers last updated: 2014-01-16
These values should be used in either the IPv4 Next Level Protocol field
or the IPv6 Next Header field.
NOTE Everything here is pretending to be an enum, but with namespacing by
default, so we allow breaking style guidelines.
Internally handles the splitting and reassembly of IP fragmentation.
The read and write operations of Ipv4Socket do not include the IP header.
For reading and writing, only the upper-layer protocol data of IP needs to be considered.