IEN 98
TCP Implementation Status
Jon Postel
Mike Wingfield
Norm Abramovitz
Bob Braden
Gary Grossman
Bill Plummer
Jim Mathis
Aage Stensby
Dave Clark
3 May 1979
Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, California 90291
(213) 822-1511
IEN-98 J. Postel
ISI
3 May 1979
TCP IMPLEMENTATION STATUS
-------------------------
Introduction
------------
This is a collection of reports on the status of implementations of the
Transmission Control Protocol (TCP) [1]. The systems and reporters are:
BBN Unix -- Mike Wingfield
Ford KSOS -- Norm Abramovitz
UCLA 360 -- Bob Braden
DTI Unix -- Gary Grossman
BBN Tenex -- Bill Plummer
Tops-20
SRI LSI-11 -- Jim Mathis
NDRE NORD-10 -- Aage Stensby
MIT Multics -- Dave Clark
Postel [page 1]
3 May 1979
TCP Implementation Status IEN 98
BBN Unix
BBN Unix Report - Michael A. Wingfield
---------------
The following is a status report on the TCP developed at BBN for DCA
under contract DCA100-78-C-0011.
Implementation Language
C
Memory requirements
Bytes: 22000 instr, 15000 data
Number of connections
10 currently, but a compile time parameter
Operating System
Unix with BBN IPC additions
Hardware
PDP-11
Status
TCP has been completed since March 15, 1979.
User Programs
There is a THP user and server available, as well as a Telnet user and
server. A trivial ftp user and server for the raw movement of bytes
between files exists and has been used to move files between a Unix on
the ARPANET and a Unix on the RCCNET. There is also a test package
for exercising TCP.
Bandwidth
12Kb - 13Kb looped through the IMP, 20Kb internally looped.
Programming Effort
6 man-months
[page 2] Wingfield
3 May 1979
IEN 98 TCP Implementation Status
BBN Unix
Documentation
"TCP/PSIP Development Report" which describes the user interface to
TCP and high level design. A software documentation report is
required under the contract but is not available yet.
Accessibility
TCP is always available on link 155 at BBN-Unix (Host 0, Imp 63). A
THP server is always listening. TCP and THP are also available at
EDN-Unix when their machine is on the net (Host 3, Imp 20). All
numbers are decimal.
Additional Features
This TCP implements the AUTODIN II security, precedence, and TCC
features specified in the SRI TCP report. The gateway/2 program can
forward incoming segments to other destinations if necessary. A
flakiness simulator in the gateway can be made to drop, duplicate,
reorder, and break different percentages of outgoing segments for
testing purposes. These parameters can be changed dynamically.
Wingfield [page 3]
3 May 1979
TCP Implementation Status IEN 98
Ford KSOS
Ford KSOS Report - Norm Abramovitz
----------------
Implementation Language
C and Modula
Memory Requirements
??
Number of Simultaneous Connections
will depend on system capacity (not table space limited)
Operating System
KSOS Kernel
Hardware
PDP-11/70, 11/45(?)
Status
Currently in detail design, implementation to start circa 1 May 79.
Higher Level Protocols
none yet. (Server protocols for multi-level secure systems need some
serious research work yet.)
Other Features
Design envisages support for a multi-level secure network, although no
specific support is included. Internet datagram layer is supported
including fragment reassembly.
Point of Contact
Jay McCauley or Norm Abramovitz (chief designer/KSOS TCP)
[page 4] Abramovitz
3 May 1979
IEN 98 TCP Implementation Status
UCLA 360
UCLA 360 Report - Bob Braden
-----------
Philosophical Remarks
This implementation of the Internet and TCP protocols is designed to
meet the following general objectives:
(a) operate within the existing NCP system job, sharing code and
control-block formats wherever possible;
(b) be compatible at the system-call level with the existing
user-level protocol modules;
(c) implement the Internet protocol as a distinct layer, with
interfaces designed to expedite the implementation of other
higher-level internet protocols in addition to TCP;
(d) require minimum NCP resources when internet protocol is not in
use.
Hardware
IBM 360/370, with a Santa Barbara interface to the IMP.
Operating System
OS/MVT, Release 21.8, with the addition of several user-written
Supervisor-call routines (including the Exchange program). The UCLA
NCP operates as a system job, with its own internal multiprogramming
and resource management mechanism.
Implementation Language
BAL (IBM's macro assembly language)
Code Size (addition to existing NCP code)
Resident Control Process 4K bytes
Internet Protocol Layer 8K bytes (transient)
TCP Protocol Layer 9K bytes (transient)
Braden [page 5]
3 May 1979
TCP Implementation Status IEN 98
UCLA 360
Fixed Table Space
The limited fixed table space is included in the code (above).
Connections Supported
Only practical limitation is amount of memory available in NCP region
for buffers and per-connection control blocks (see following).
Cost per Connection
Control blocks
For each connection, the internet and TCP layers require control
blocks totaling 256 bytes.
(*)Receive
Segment reassembly buffer= max segment size - min internet header
length + 16= 572 bytes per buffer.
(*)Send
128 bytes per unacknowledged segment.
Note: The actual data being sent is not counted here, as it occupies
buffer space belonging to the appropriate user-level protocol module.
(*)Note: There is a dynamic pool of these objects, shared among all
active connections. The pool grows and shrinks dynamically with the
number of connections; it is probably reasonable to expect an average
of one segment reassembly buffer and one unacknowledged segment (total
of 700 bytes) per TCP connection.
In addition to this TCP-specific memory, there is the memory to
support the user-level protocol. For example, a server-Telnet session
to TSO requires control blocks and buffers totaling about 1800 bytes;
this is identical for TCP and for the ARPANET Host-Host protocol.
Performance
No information available yet
[page 6] Braden
3 May 1979
IEN 98 TCP Implementation Status
UCLA 360
Operational Status
In debugging
Implementation Time
Approximately 20 man-months
User-Level Protocols Available
User and Server Telnet
Documentation
In progress
Braden [page 7]
3 May 1979
TCP Implementation Status IEN 98
DTI Unix
DTI Unix Report - Gary Grossman
---------------
Background
Digital Technology Incorporated (DTI) is constructing an IOC Network
Front End (INFE) to connect WWMCCS hosts and terminals to the AUTODIN
II network. As part of the INFE effort, DTI has developed a version 3
TCP which will be updated to a version 4 TCP when Government direction
is forthcoming.
Implementation Language
PDP-11 Version 6 Unix C
Instruction Space Memory Required
9.6K 16-bit words of PDP-11 instructions
Buffer and Table Memory Space Required
Fixed
4K 16-bit words
Per-connection
Words of tables, etc.
100
Words of buffer space
None (uses user process buffers)
Connections Supported
Order of 50
Operating System
Version 6 Unix as modified for the INFE by the addition of a special
interprocess communication mechanism.
[page 8] Grossman
3 May 1979
IEN 98 TCP Implementation Status
DTI Unix
Hardware
DEC PDP-11/70 and PDP-11/45 (Code not machine-dependent; could run
on other machines given appropriate C compiler and operating
system, but there may be address space problems on machines with
a single 16-bit address space per process.)
Operational Status
Has been run extensively with identical implementations only.
Telnet Availability
None
Other Protocols Available
Terminal-to-Host Protocol (THP) as specified in
Postel, J., Garlick, L., and Rom, R., Terminal-to-Host Protocol
Specification, Stanford Research Institute, Menlo Park, 15 July
1976.
Measured Bandwidth
Maximum bandwidth on a single connection through the DTI H516 IMP is
60K bits/second.
Measured Packet Processing Rate
Order of 40 packets/second
Implementation Time
Six (6) man-months
Documentation
Described in
Healy, D.C. and Buford, W.E., Transmission Control Protocol and
Pseudo Segment Interface Protocol Program Maintenance Manual, DTI
Document Number 78020.C-INFE.3, Digital Technology Incorporated,
Champaign, Illinois, 18 December 1978, 207 pp.
Grossman [page 9]
3 May 1979
TCP Implementation Status IEN 98
DTI Unix
There is also extensive documentation in the source.
[page 10] Grossman
3 May 1979
IEN 98 TCP Implementation Status
BBN TENEX/TOPS20
BBN TENEX/TOPS20 Report - William W. Plummer
-----------------------
Background Information
There are several TCP implementations for TENEX and TOPS20. The first
such version was written in (the compiler language) BCPL and ran in
user mode. Later a MACRO-10 (assembly language) version was written
which has been included in the monitors. The BCPL version tracked all
protocol changes through TCP 2.5.2 and the assembly language version
started with TCP 2.4. The BCPL TCP has now been retired and assembly
language version are available for versions 2.5.2, 4.0 and 4.0(ver 1)
(see below).
It should be noted that the higher level protocols such as Telnet were
implemented originally for the BCPL TCP. Since only minor changes
have been made to the user interface, it is these same programs which
are still in use with the monitors TCP.
Bandwidth figures are rather hard to give because of variations in the
operating systems, networks, setting of various parameters in the TCP
during the measurement runs, and the continuing evolution of the TCP
code itself. The bench mark used for the figures below is TCPTST, a
program which sends 1000. packets to itself. This program attempts to
keep 8 packets outstanding and thus something between 125. and 1000.
acknowledge packets will flow in the reverse direction.
BCPL TCP 2.5.2
Code size
20,000. words
Data space
16,000. words
Environment
KA10 processor
TENEX operating system
JSYS traps used to simulate monitor calls SNDIM/RCVIM to communicate
with ARPANET
Plummer [page 11]
3 May 1979
TCP Implementation Status IEN 98
BBN TENEX/TOPS20
Implementation time
Basic protocol module
4 man-months, coding 6 man-months, debugging
Each server
1 man-month, coding 1 man-month, debugging
Higher-level protocols implemented
Telnet server
Telnet user
ECHO
SINK
PRDATA (measurement program for PR Net)
Bandwidth bench mark
438 seconds
Status
Retired, but could easily be revived.
Comments
Debugging was relatively easy since it was done in user mode. On
the other hand only on other host was available to talk to. Many
debugging feature such as a packet tracer were incorporated which
helped considerably. Being in BCPL, the TCP implementors
occasionally found themselves at the mercy of the compiler
implementors.
Assembly language TCP 2.5.2
Code size
5,000. words
Data space
4,000. words on TOPS20 101B 16,000. words on TENEX
16,000. words on TOPS20 3A on 2020
[page 12] Plummer
3 May 1979
IEN 98 TCP Implementation Status
BBN TENEX/TOPS20
Environment
KA10 processor running TENEX or, Model A KL10/20 running TOPS20 101B
or, Model 2020 running TOPS20 3A.
Implementation time
Basic protocol module
2 man-months, coding 6 man-months, debugging
Each server
None. (Same programs used)
Higher-level protocols implemented
Same as above.
Bandwidth bench marks
46 seconds on KA10 67 seconds on 2020 30 seconds on KL10 with cache
Status
Currently available on BBNC, ISIC, and SRI-KA. Secure version
running on BBNE and ISIA.
Comments
Last version 2.5 implementation. Many intermediate version 2.X
steps were taken over a relatively long time. Debugging hampered by
lack of stand alone computer time for monitor debugging.
TCP 4.0
This is the first of the version 4 implementations. The code was
derived from the version 2.5.2 sources in approximately 2 weeks.
Bandwidth and size figures are the same.
Status
Running on BBNB
Plummer [page 13]
3 May 1979
TCP Implementation Status IEN 98
BBN TENEX/TOPS20
TCP 4.0(ver 1)
TCP 4.0(ver 1) is derived from TCP 4. Internally it is somewhat
different and offers more features to users. Most notable is a set of
JSYS calls by which users may access the Internet layer in order to
experiment with private Internet protocols. The mechanism by which
TCP transfers data between user buffers and Internet packets is
considerably different than it was in 4.0 and is much faster. Also
the free storage management package has been streamlined. The major
task underway is embedding the Telnet server in the monitor along with
the TCP itself.
Code size
5,200 words
Data space
256,000 words on KL20 TOPS20 3A 16,000 words on TENEX, 2020, TOPS20
101B
Environment
Development System
KL2040 processor
TOPS20 3A monitor
(Should work with TENEX and other versions of TOPS20, but this has
not been tried yet.)
Bandwidth bench mark
26 seconds (2040 without cache) 43 seconds (2020)
Status
Running on BBNF by arrangement
[page 14] Plummer
3 May 1979
IEN 98 TCP Implementation Status
SRI LSI-11
SRI LSI-11 Report - Jim Mathis
-----------------
Implementation Language
PDP-11 MACRO assembler
Hardware
LSI-11 or PDP-11 in user mode
Note: The software was developed to run on the MOS operating system
for LSI-11s, but should be transportable with minor changes to other
real-time operating systems that provide an interprocess communication
and signaling mechanism. An earlier version of the software (version
2.5) has been transported to RSX-11, ELF, and Unix.
Instruction Space Requirements
TCP
approximately 1800 decimal words
Internet Protocol
approximately 1000 decimal words
Note: The TCP and Internet protocol operate from a network
characteristics table that simplifies conversion from use on one
packet-switched network to another. The software currently supports
attachment to the ARPANET or the Packet Radio Network. The software
is structured to allow attachments to multiple networks, although this
feature has not been tested.
Simultaneous Connections
limited only by CPU loading and the amount of buffer space available
The state information for each TCP connection is maintained in a
connection block of approximately 50 words; but a minimum of 100-500
words of buffer space is recommended for each connection in active
use.
Mathis [page 15]
3 May 1979
TCP Implementation Status IEN 98
SRI LSI-11
Comment
The TCP and Internet software were developed for the Packet Radio
Terminal Interface Unit to provide terminal access to internetwork
hosts (a function similar to that provided by the TIPS for ARPANET
hosts). Because the TIU is not a timesharing machine, the only higher
level protocols available are Telnet. The Telnet will operate, by
manual command, in either the active (user) or passive (server) mode.
Status
TCP
- in preliminary release stage and undergoing further debugging
- has undergone functional tests with other TCP version 4 sites
Internet
- has undergone functional tests with other TCP version 4 sites
Implementation Time
The effort expended to design and code the TCP and Internet software
is difficult to estimate; the software has been evolving for the last
3 years. Reconstruction of the software from scratch would probably
require about 6 to 10 man-months.
[page 16] Mathis
3 May 1979
IEN 98 TCP Implementation Status
NDRE NORD-10
NDRE NORD-10 Report - Aage Stensby
-------------------
TCP STATUS
Philosophical Remarks
Due to the idiosyncrasies of the operating system, it has been a
goal to keep the number of processes as low as possible without
complicating the internal logic of the program. Accordingly, there
is one process for input handling and one process for output
handling. In addition, it has been necessary to include a separate
retransmission process. The code has been tested rather thoroughly
routine by routine and connections have been opened and closed a
number of times in loop mode. The TCP does not yet support urgent
or rubber EOL.
Hardware
The TCP runs on a NORD-10 with 64K memory.
Operating System
SINTRAN III, version 77.05.17c
Implementation Language
NORD PL, which is a machine oriented medium level language.
Code Size
7k words(16 bit) This includes the present internet module.
Buffer Space
Dynamically allocated, maximum 7k which may be extended.
Connections Supported
No strict limit, but probably in the order of 4-5 due to available
processing power.
Cost per Connection
?
Stensby [page 17]
3 May 1979
TCP Implementation Status IEN 98
NDRE NORD-10
Delay per Packet
Not measured
Bandwidth
Not measured
CPU Utilization
Not estimated
INTERNET STATUS
The internet code is not separated from the TCP code. It is planned
to gather it in a separate process with a well-defined interface to
the TCP. Reassembling of fragments is not yet done. Maximum
acceptable segment size is 1008 bytes.
The internet address is:
IMP LH HOST
51 0 1
[page 18] Stensby
3 May 1979
IEN 98 TCP Implementation Status
MIT Multics
MIT Multics Report - Dave Clark
------------------
Implementation Language
PL/I
Memory Space (in 36 bit words)
TCP 13.6k, IN 5.5k
Table Space
About 40 words per connection
Buffer Space
In virtual memory, no relevant limit in size
Hardware/Operating System
H68/80, Multics
Operational Status
Currently available about half time for experimentation, up as
experimental service in week or so.
Other Protocols
Datagram protocol, name server, user Telnet, server Telnet (The server
Telnet is a kludge and requires programming by Honeywell before it can
be considered really useable. Performance: No relevant data
available yet. In a subjective test, Telnet is useable, but sometimes
sluggish.
Implementation Time
I have no idea. It has been worked on by several people at the 10%
level, so the total time invested is quite unclear.
Clark [page 19]
3 May 1979
TCP Implementation Status IEN 98
References
References
----------
[1] J. Postel. "Transmission Control Protocol -- Version 4," IEN 81,
USC-Information Sciences Institute, February 1979.
[page 20] Postel