A number of resources have been used for me to include all of this information. many of these resources and books can be found here:
Supporting sites for reference by the reader: (I have studied this project at previous times, and though the sites that I used to gain much of my knowledge do not exist, many of these contain information on this subject in less technical formats than the above books and RFCs.)