RFC 451 (rfc451) - Page 2 of 3


Tentative proposal for a Unified User Level Protocol



Alternative Format: Original Text Document



RFC 451           Unified User Level Protocol Proposal     February 1973


why not simply put hooks in Telnet to indicate that a Network Generic
Function is wanted instead of a Host-specific one at a given point in
time?  Then everybody can come in through Telnet in ways that are
already known (and usually debugged and optimized) and fan out to other
services through a single mechanism, where that single mechanism can be
whatever is most appropriate to a particular Host.  This view has the
additional virtue of keeping the Host "Answering Service"-equivalent
processes out of the act when new protocols come along -- where by
Answering Service, I mean that process which manages logins in general
for a given Host.  This process is, of course, a particularly sensitive
one on those systems which worry about accounting and security.

That's all probably a bit vague.  Perhaps some idea of how I think the
UULP would work will cast some light on what I think it is.  What's
needed is a way of letting the Server know that it's being given a
generic command (I decline to call it a Network Virtual command, but I'm
afraid that might be what I mean) like "STOR" or "RETR" rather than a
local command like "who" or "sys".  What could be simpler than defining
a Telnet Control Code (TCC) for "Network Generic Function Follows"?  So
if the Server Telnet receives a command line beginning with the NGF TCC
(say, 277 octal), it just feeds the line to the appropriate process or
procedure (depending on the structure of its operating system).  This
approach also offers a handy way of communicating back the fact that a
particular protocol or piece thereof isn't available: define a TCC for
"Unimplemented Generic Function".  This feels a lot cleaner than having
a close on socket 3 mean anything from "no FTP Server exists here" to
"the FTP Server happens to be busy."

Notice that the UULP automatically provides the answer to such
objections as the one Braden raises in RFC 430, that "there is no
mechanism within the FTP for _changing_ a password.  A user shouldn't
have to use a different protocol ... to merely change his password".
With the UULP, any system which has a password changing ability would
have it available for all user level protocols because all of its
abilities are made available by the generic login.  This seems clearly
superior to having to retrofit afterthought after afterthought to the
various user level protocols as we come to realize that life is more
convenient when we get away from the view that each protocol lives in
its own island universe.  I understand that one of the main motivations
for going the multiple contact socket route was to avoid syntactic (and
semantic) conflicts between the protocol and the particular Host's
"normal" command processor; however, locking ourselves in to special
command processors exclusively is awfully procrustean.  So instead of
cutting off the limbs to fit the bed, why not use the UULP to expand the
bed.






Padlipsky