[e2e] What if there were no well known numbers? (history)

David P. Reed dpreed at reed.com
Mon Aug 7 08:24:09 PDT 2006

Sitting in MIT's computing milieu, well-known sockets seemed like an 
unscalable kludge to us as well (hardwiring low core would capture the 
feeling we had).   I'm sure the comms guys (who never really get the 
idea of abstraction and virtualization, even today) thought the idea of 
hard-bound numbers would be perfectly fine (911 is perfectly perfect for 
emergency services in the phone network, right?  :-)  until you realize 
that that architectural choice combines calls for cats in trees and 
terrorist emergencies through the same unspecialized clerks in some 
outsourced callcenter 250 miles away).   It really is amazing to me that 
RFC's still are being updated to add new well-known port numbers for 
ridiculously parochial purposes.

But it's fair to remember that the Internet experiment was an elephant 
that few of the participants saw all sides of.  People focused on 
networking rarely considered the application and systems architecture 
questions as serious.

John Day wrote:
> Just to get the record straight.  Sitting at Illinois, we immediately 
> saw well-known sockets as I said, "hard-wiring low core" but a 
> necessary kludge because we didn't have time to do it right with 
> application names and we didn't have all that many applications and we 
> could do it right later (those famous last words of many projects).
> The story that is being painted here is that this view was in the vast 
> minority, that most people saw well-known sockets as a quite 
> reasonable general solution for the long term (as it has turned out 
> until the web came along that is.)
> I don't mind changing my view, although my perspective is more 
> flattering of the ARPANet guys who did it than the picture being 
> painted here.
> Take care,
> John
> At 4:04 +0000 2006/08/05, Greg Skinner wrote:
>> On Fri, Aug 04, 2006 at 10:00:33PM -0400, John Day wrote:
>>>  I remember that we had already had conversations about
>>>  application-names and network addresses and a directory.  I know that
>>>  a lot of our thinking was using operating systems as a guide to how
>>>  to do it.  But since we only had 3 applications and only one
>>>  occurrence of each per host, and we needed to get something up and
>>>  running, there wasn't time to do it right.  Perhaps we were having
>>>  these conversations with people other than the UCLA people.  Maybe it
>>>  was the Multics crowd.  I can believe that in the very very early
>>>  days that was the logic, but by 1970 or so, we knew better.  From
>>>  about then, I always considered well-known sockets to be the
>>>  equivalent of "hard-wiring low core."
>>>  A kludge.
>>>  The port numbers in TCP and NCP function as a connection-identifier
>>>  within the scope of the (src, dest) addresses, i.e. it distinguishes
>>>  multiple connections/flows between the same two points.  They do not
>>>  identify applications.  The well-known idea is just an expedient
>>>  convention.  It clearly doesn't generalize unless you are McKenzie
>>>  who believed that Telnet and FTP were all you needed. ;-)
>> I wasn't involved in any of the ARPANET R&D, but I was able to piece
>> together a bit from the old RFCs.  The socket as connection identifier
>> made its debut in RFC 33.  It was a 8-bit field called AEN (Another
>> Eight-Bit Number).  The idea that there should be a "directory"
>> of sockets appeared in RFC 65.  Jon Postel posed the question of
>> whether standard protocols should have assigned/reserved socket
>> numbers in RFC 205.  The first call for well known socket numbers came
>> in RFC 322 (accompanying a concern about which socket numbers were
>> currently in use at which hosts).  JP proposed that he be the "czar"
>> for standard socket numbers in RFC 349.  So it seems as if well-known
>> sockets were an expediency, as you say, which was preserved in TCP and
>> UDP.
>> BTW, speaking of hosts.txt, RFC 226 contained the first cut at an
>> "official" hosts list.  (Before that, the RFC noted that each telnet
>> implementation provided its own list of host names.)
>> --gregbo

More information about the end2end-interest mailing list