The RFC is the bible. But RFC790 that is referenced above has been obsoleted many times. You could refer to RFC1700, seems to be the latest text based document. But even this has been replaced by RFC3232, which refers to an online database. It's only short, so I'll paste RFC3232 here:
Description
From November 1977 through October 1994, the Internet Assigned
Numbers Authority (IANA) periodically published tables of the
Internet protocol parameter assignments in RFCs entitled, "Assigned
Numbers". The most current of these Assigned Numbers RFCs had
Standard status and carried the designation: STD 2. At this time,
the latest STD 2 is RFC 1700.
Since 1994, this sequence of RFCs have been replaced by an online
database accessible through a web page (currently,
www.iana.org).
The purpose of the present RFC is to note this fact and to officially
obsolete RFC 1700, whose status changes to Historic. RFC 1700 is
obsolete, and its values are incomplete and in some cases may be
wrong.
We expect this series to be revived in the future by the new IANA
organization.