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