Internet Experiment Note No. 201
INTERNET SHORT-TERM SERVICE GOALS
David D. Clark
MIT Laboratory for Computer Science
Computer Systems and Communications Group
1. Introduction
The purpose of this document is to identify the milestones which must be met
in order to bring the current internet architecture to a stable service which
can be used while the next round of research development is undertaken. This
document describes the functionality associated with the service to be offered,
and identifies the work to be done in order to achieve that function. This
document discusses all aspects of the internet service, and is intended for
planning purposes within the internet research community. More detailed
documents are available as RFC's that discuss the specifics of host conversion
from NCP to TCP.
This document should be viewed in the larger context of the long-term project
planning which is now underway. An assumption underlying this document is that
it is necessary to identify carefully a service which we will provide in a
stable form at this time, in parallel with which a follow-on enhanced
capability will be designed and implemented in selected hosts and gateways.
This current service should more or less mimic the quality of service provided
today on the ARPANET by the NCP protocol, in terms of supported application
protocols, reliability, responsiveness, etc.
2. Service Milestones
There are five major milestones in the achievement of the current service
offering. Two of these relate to support of TCP on the ARPANET. The other
three relate to support of actual internet traffic. These milestones are as
follows:
1. First use of internet for service (now happening!)
2. NCP quality support for first TCP-only host on ARPANET (July 1982)
3. NCP quality service for internet (?)
2
4. Heavy load on internet (?)
5. Last NCP host removed from ARPANET (January 1983)
These five milestones are explained and elaborated in the following
paragraphs.
3. Milestone One: Minimal Support for Internet Service
Internet service is being used today, as part of the Fort Bragg packet radio
demonstration and by the machines at COMSAT, which are not connected directly
to the ARPANET. I would characterize the service currently available to these
users as somewhat less than minimal, in that it works only because certain
special case adjustments have been made to individual hosts. There are three
important components to this milestone:
a. Fragmentation and reassembly must be completely implemented through
the internet. It is repeatedly brought home that the failure to
implement this portion of the protocol causes important and
substantial confusion. At the last internet meeting, the failure of
the TIU to support reassembly once again prevented machines which
sent jumbograms from being used. There is no justification for
continuing to sidestep this problem.
b. Name tables on operational hosts must be upgraded so that they have
both the structure and capacity to name all of the hosts in the
internet. In the long term, we hope that it will not be necessary
for every host to maintain a complete internet table, since we
postulate the existence of name servers to which an individual host
can turn to convert a name to a number. However, name servers are
not currently available, and the requirement for this name conversion
is immediate.
c. ICMP must be supported. Without ICMP, one cannot achieve even a
minimal level of error recovery.
These subtasks must be completed quickly, because minimal service is
important for the sites in Europe who are momentarily being removed from the
ARPANET. If the only requirement of the European community is user telnet, then
the name table problem on server hosts such as TOPS 20 can be momentarily
sidestepped, but the lack of fragmentation will prove totally unworkable, as it
already has.
3
4. Milestone Two: NCP Quality Support for TCP on ARPANET
Today, there exist hosts on the internet that speak only TCP. However, these
hosts are very substantially limited as to what they can do. The intent of
this milestone is to define a point at which a TCP-only host connected to the
ARPANET can obtain a level of service to all other hosts directly connected to
the ARPANET that it might achieve using NCP today. This goal is for the
ARPANET only, not the general internet. This restriction is important, because
it defines the point at which a host converting from NCP to TCP can obtain a
reasonable service to other hosts to which it previously had NCP access.
In order to achieve this goal, there must be conversion facilities available
so that the TCP host can communicate with NCP-only hosts, and symmetric
conversion routines must be available to permit NCP only hosts to have access
to the TCP host. The exact function required for conversion in each direction
is slightly different, since the protocols available on the TCP side are
sometimes somewhat more powerful, as in SMTP, and we are interested in
providing a better level of service for the TCP only host than we are for the
unconverted NCP only host. The specific requirements for this milestone are:
a. Telnet forwarding in both directions. This is a machine which speaks
both TCP and NCP, to which a user can log in using one protocol and
then request an outgoing telnet connection using the other protocol.
b. FTP staging facility. It appears to be rather difficult to build an
automatic facility for linking two FTP transfers together end to end.
The FTP syntax is not rich enough so that one can describe to a
forwarder where the ultimate destination of the transmission is to
be. Thus, since this is only a transition mechanism, it seems
sufficient to create an FTP facility which is operated manually.
First the user transfers this file to an intermediate point, and then
he manually logs in to this intermediate point (or to the final
destination machine) to transfer the file to its ultimate
destination.
c. Mail forwarding. This is a very important facility, since mail is a
very important part of the day to day business of the ARPANET, and
because it will be a highly visible means by which we will make
conversion to TCP popular. SMTP has been specifically implemented to
make possible the use of forwarders to provide automatic protocol
conversion. As originally proposed, automatic forwarding of mail was
to be implemented by causing every host on the ARPANET, whether or
not it supported TCP, to implement SMTP by this milestone. It is not
clear that universal conformence can be achieved. I propose that
this strategy be modified to permit an alternative in which a more
4
sophisticated forwarder will permit mail to flow from an NCP to a TCP
host if the sender of the mail manually constructs a special
destination string which triggers forwarding.
In order to achieve SMTP service, the following sub-milestones must
occur. First, the definition of the protocol must be stabilized.
This is now being done. Secondly, mail forwarders must be
implemented and brought to a service level.
d. The TCP-only hosts must be identified and brought to a full,
functional level. Full function includes the following:
-IP
-ICMP
-TCP
-TELNET(User, Server)
-FTP(User, Server)
-SMTP(Sender, Receiver, Composer)
As part of implementing this rather ambitious list of protocols, it
is important to identify and eliminate certain popular deficiencies
which appear in some existing implementations. For example, the
structure which exists between the protocol layers for reporting
errors must be rich enough that network conditions such as host-dead
or imp-dead correctly terminate the network connection with the
appropriate message for the user. For another example the name table
must be upgraded from an ARPANET only to an internet facility.
There is a great deal of work implied by the above list. Currently none of
the forwarders, either TELNET, FTP, or SMTP, exist except in experimental
forms, and it is not clear that these experimental forms in fact provide the
basis for a service offering. This milestone is seven months away, and it will
require prompt effort to achieve it.
It is not the purpose of this milestone to encourage (or permit) a
"preliminary" host implementation suitable only for the relatively benign
ARPANET environment. The host implementor should be working toward all of
these goals at once. It is in the networks that these milestones can be
distinguished.
5
5. Milestone Three: NCP Level Service Over Internet
This is a somewhat vague milestone, and items which appear only on this list
have a habit of being repeatedly postponed in task schedules. Nonetheless,
this is an important goal, because it will establish the point at which we can
stop tinkering with the service we provide and proceed on to the next level of
design. It is important not to include too many items in this list, less the
list grow so big that we never complete its implementation. On the otherhand,
if we do agree to include something on this list, then we must be consistent
and sincere about implementing it in all the relevant machines. Partial
implementation is not a useful middle ground. The following functions are
nominated for this category.
a. Robustness features. Included in this category are replication of
hardware to provide an alternative path in the case of a single
component failure. This is particularly important in the SATNET link
to Europe. Dual gateways may be required in other locations, where
important acces nets enter the transport core.
b. Fault detection and isolation. "Dissapearing packets" are still an
overly common aspect of internet communication. It is important that
every host be equipped with suitable tools to detect and, to the
extent possible, recover from internetwork outages. At a minimum,
all hosts must use the ICMP facilities of host unreachable and
redirect to recover from gateway outages or at least notify the user
that further communication is impossible. It is also important that
tools be put in place so that proper repair procedures are instituted
properly when a portion of the internet fails.
c. Proper handling of option fields in the protocols. Currently,
options are most commonly processed by ignoring them. We must decide
which options we are really serious about and implement them. An
obvious topic for discussion is the set of options that deal with the
source route function. This is a good example of where we must do an
all or nothing implementation. Isolated implementation of source
route is demonstrably useless.
d. Access control. Certain mechanisms for controlling access to the
internet must be implemented as part of the interim service. At a
minimum, these include login features in the TAC. It may be
necessary to implement some further controls inside the gateway, but
as yet no one has conceived of what those mechanisms could be. This
topic requires consideration.
e. Name servers. The number of hosts, and thus the number of names in
6
the internet is much larger than that of the ARPANET. Many name
tables are overflowing. One way to avoid this problem is by providing
name servers to which a host can turn in order to translate an
unknown name into an internet address. In some respects, a namer
server is a very simple mechanism, but it is very easy to develop a
name server mechanism which is so complicated as to be unrealizable.
Some firm decision must be made as to the level of service to be
provided by name servers in the internet, and then to provide an
implementation strategy whereby name servers are universally
available.
6. Milestone Four: Heavy Traffic Over the Internet
This is difficult milestone to quantify, since we do not know the rate at
which traffic will build up, nor what maximum traffic level we must support.
Nonetheless, it seems clear that the existing gateway implementations will not
support the expected load. There are three improvements which have been
proposed to address this topic. All of these depend on replacement of existing
gateways with C/70 gateways or recoding of the existing software, so that there
is additional space available.
a. Upgrade the net interface software so that it shows more intelligence
about interacting with the support network. For example, the driver
for the ARPANET should count RFNMs, and the driver for the SATNET
should interact properly with the selective refusal mechanism of the
SATNET's non blocking interface.
b. More buffers in the gateway.
c. Improved instrumentation in the gateway, so that it is possible to
determine where bottlenecks are.
In addition to gateway tuning, we need to achieve a minimum level of TCP
"good behavior". The occurrence of Silly Window Syndrome under heavy load must
be avoided, or the net will clog up totally. Hosts must provide sufficient
buffering to obtain reasonable throughput under long-delay situations.
Finally, we must begin to plan for substantial congestion control problems in
the internet. The existing algorithm, which is based on a source quench
message from the gateway to the host, has not been shown to work well. In the
short run, we have not identified any alternative mechanism which will work
better. At a minimum, every host and gateway should implement ICMP, so that
source quench messages can at least be sent and received. More work is
required in this area to determine what the proper action should be.
7
Milestones three and four are closely related, and could have been combined.
The distinction is that milestone three contains things that must be done even
if the offered load is small. Adequate performance may depend on new gateway
hardware, which may delay milestone four. If this is so, users will be
interested in milestone three as a separate goal.
7. Milestone Five: NCP Service is Discontinued in the ARPANET
This milestone has occasionally been described as a very important one for
the internet implementors. In fact, most of the work necessary at the internet
level to achieve this goal will have been done as part of the previous
milestones. There are essentially two important subcomponents of this
milestone:
a. The TCP TAC must be deployed. This is very important, and should be
done somewhat in advance of this actual milestone to allow for the
following point.
b. Facilities for testing and debugging new TCPs must be conveniently
available on the ARPANET, so that hosts converting from NCP to TCP
can verify the correct operation.
The major effort in achieving this milestone is the implementation of the
previously itemized list of protocols on every host attached to the ARPANET.
This task will require substantial effort, but this effort is provided by the
system maintainers for the systems in question. Our responsibility is to
provide the proper support for those implementors.
In addition to the testing and debugging facility provided above, the other
important requirement is informal documentation that provides help and guidance
to implementors beyond the actual protocol specification. A number of ways
have been proposed to provide this informal help. One easy strategy is to
distribute a collection of TCP design documents for the TCPs that have already
been implemented. I am currently preparing a number of reports that attempt to
gather together the insights about TCP and IP which are well understood in the
implementation community but may not be obvious to first time implementors.
First topics include strategies for reassembly and packet resequencing,
management of window and acknowledgement algorithms, and proper management of
names, addresses, routes, and ports. Anyone wishing to contribute to this work
should contact me. A table of contents will be out soon.
There are a large number of preliminary milestones associated with the
upgrade of all ARPANET hosts to TCP, such as document distribution, and
interaction with the various host maintainers, and managers. These subgoals
are not outlined in this document, but are described in a separate document
recently released by Jon Postel.
8
8. Priorities
The preceding discussion of the five service milestones has presented a rough
outline of subtasks necessary to achieve these five goals. A separate project
milestone document, now being prepared, lists these individual tasks in a more
structured form, and provides dates and probabilities of success where known.
-------