RFC 944

Official ARPA-Internet protocols

πŸ“… published April 1985, from ietf

RFC 944: Official ARPA-Internet Protocols πŸŽ€

okay bestie, this one is the official list of which protocols the ARPA-Internet folks were using, written by J. Reynolds and J. Postel from ISI in April 1985 πŸ¦‹. It obsoletes RFCs 924, 901, 880, and 840, so if you still have those lying around, toss them πŸ’…. Its category is an official status report on the protocols, and it does not update anything.

STATUS OF THIS MEMO ✨

This memo is an official status report on the protocols used in the ARPA-Internet community. Distribution of this memo is unlimited. 🌸

INTRODUCTION πŸ’–

This RFC identifies the documents that specify the official protocols used in the Internet. Comments point out any revisions or changes that are planned. πŸ“

To first order, the official protocols are the ones in the "Internet Protocol Transition Workbook" (IPTW) dated March 1982. There are several protocols in use that are not in the IPTW, and a few of the IPTW protocols have been revised. The mail protocols are the big glow-up here: they were revised and issued as a volume titled "Internet Mail Protocols" dated November 1982 πŸ“¬. Telnet and the most useful Telnet options were revised too, and that got its own volume called "Internet Telnet Protocol and Options" (ITP) dated June 1983 🧚. Some protocols haven't been revised in years, and those live in the old "ARPANET Protocol Handbook" (APH) dated January 1978 πŸ•°οΈ. There's also a volume of protocol-related info called the "Internet Protocol Implementers Guide" (IPIG) dated August 1982, which is basically the cheat sheet πŸ€“.

This document is organized as a sketchy outline. The entries are protocols (for example, Transmission Control Protocol). Each entry has notes on status, specification, comments, other references, dependencies, and contact. πŸ“

  • STATUS is one of: required, recommended, elective, or experimental.
  • SPECIFICATION identifies the protocol-defining documents.
  • COMMENTS describe any differences from the specification or problems with the protocol.
  • OTHER REFERENCES identify documents that comment on or expand on the protocol.
  • DEPENDENCIES indicate what other protocols are called upon by this protocol.
  • CONTACT indicates a person who can answer questions about the protocol.

Here's the status breakdown, and it's giving very clear vibes πŸ’…:

  • required
    • all hosts must implement the required protocol.
  • recommended
    • all hosts are encouraged to implement the recommended protocol.
  • elective
    • hosts may implement or not the elective protocol.
  • experimental
    • hosts should not implement the experimental protocol unless they are participating in the experiment and have coordinated their use of this protocol with the contact person.
  • none
    • this is not a protocol.

For further information about protocols in general, reach out to:

Joyce Reynolds
USC - Information Sciences Institute
4676 Admiralty Way
Marina del Rey, California  90292-6695

Phone: (213) 822-1511

ARPA mail: JKREYNOLDS@USC-ISIF.ARPA

OVERVIEW 🌈

Catenet Model πŸ¦‹

  • STATUS: None (not a protocol, bestie πŸ’€)
  • SPECIFICATION: IEN 48 (in IPTW)
  • COMMENTS:
    • Gives an overview of the organization and principles of the Internet. ✨
    • Could be revised and expanded. 🌷
  • OTHER REFERENCES:
    • RFC 871 - A Perspective on the ARPANET Reference Model
    • Padlipsky, M.A., "The Elements of Networking Style and other Essays and Animadversions on the Art of Intercomputer Networking", Prentice-Hall, New Jersey, 1985.
    • Leiner, Barry, Robert Cole, Jon Postel and Dave Mills, "The DARPA Protocol Suite", IEEE INFOCOM 85, Washington, D.C., March 1985. Also in IEEE Communications Magazine, March 1985.
  • DEPENDENCIES: (none listed) 🫢
  • CONTACT: Postel@USC-ISIF.ARPA

NETWORK LEVEL πŸ‘‘

Internet Protocol (IP) πŸ”₯

  • STATUS: Required, which means literally every host has to have it 😭
  • SPECIFICATION: RFC 791 (in IPTW)
  • COMMENTS:
    • This is the universal protocol of the Internet. It's a datagram protocol that gives universal addressing of hosts in the Internet. Iconic ✨
    • A few minor problems have been noted in this document. πŸ™ˆ
    • The most serious one is a bit of confusion in the route options. The route options have a pointer that indicates which octet of the route is the next to be used. The confusion is between the phrases "the pointer is relative to this option" and "the smallest legal value for the pointer is 4". If you're confused, forget about the relative part, because the pointer begins at 4 πŸ’….
    • Another important point is the alternate reassembly procedure suggested in RFC 815. 🧩
    • Some changes are in the works for the security option. πŸ”
    • Note that ICMP is defined to be an integral part of IP.
You have not completed an implementation of IP if it does not include ICMP. This is serious, bestie, don't skip it 🚨
  • OTHER REFERENCES:
    • RFC 815 (in IPIG) - IP Datagram Reassembly Algorithms
    • RFC 814 (in IPIG) - Names, Addresses, Ports, and Routes
    • RFC 816 (in IPIG) - Fault Isolation and Recovery
    • RFC 817 (in IPIG) - Modularity and Efficiency in Protocol Implementation
    • MIL-STD-1777 - Military Standard Internet Protocol
  • DEPENDENCIES: (none listed) 🌸
  • CONTACT: Postel@USC-ISIF.ARPA

Internet Control Message Protocol (ICMP) πŸ“

  • STATUS: Required (yes, it's a must-have, no cap 🧁)
  • SPECIFICATION: RFC 792 (in IPTW)
  • COMMENTS:
    • These are the control messages and error reports that go with the Internet Protocol. They're the behind-the-scenes crew 🎬.
    • A few minor errors in the document have been noted. Suggestions have been made for additional types of redirect message and additional destination unreachable messages. πŸ’­
    • A proposal for two additional ICMP message types is made in RFC 917 "Internet Subnets": Address Format Request (A1=17), and Address Format Reply (A2=18). The details of these ICMP types are subject to change. Use of these ICMP types is experimental πŸ§ͺ.
    • Note that ICMP is defined to be an integral part of IP.
You have not completed an implementation of IP if it does not include ICMP. Say it with me, periodt 🫢
  • OTHER REFERENCES: RFC 917
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

HOST LEVEL

okay bestie, we're now at the host level, where the protocols actually live on the machines πŸ’»βœ¨ this is the part with all the big names, so let's go πŸ¦‹

User Datagram Protocol (UDP) πŸ’–

  • STATUS: Recommended
  • SPECIFICATION: RFC 768 (in IPTW)
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Postel@USC-ISIF.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: UDP gives applications a datagram service and adds port addressing on top of the IP services πŸŽ€ The only change noted for the UDP spec is a small clarification: if a padding octet is used when computing the checksum, it's not transmitted and it's not counted in the length 🧚


Transmission Control Protocol (TCP) πŸ‘‘

  • STATUS: Recommended
  • SPECIFICATION: RFC 793 (in IPTW)
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

COMMENTS: TCP provides a reliable end-to-end data stream service, and it's giving main character energy 🌈 People sent in lots of comments and corrections for the TCP spec, and they're mostly document bugs rather than protocol bugs πŸ™ˆ

Here's the tea on what needs fixing:

  • Event Processing Section: there are many minor corrections and clarifications needed in this section.
  • Push: some phrases still give a "record mark" flavor to the push. These should be clarified further. The push is not a record mark πŸ“
  • Urgent: Page 17 is wrong. The urgent pointer points to the last octet of urgent data, not to the first octet of non-urgent data πŸ’…
  • Listening Servers: people had trouble contacting listening servers, so the spec should discuss implementation issues for servers and include some notes on alternative models of system and process organization for servers 🏠
  • Maximum Segment Size: this option should be generalized and clarified. It can be used to either increase or decrease the maximum segment size from the default. The TCP Maximum Segment Size is the IP Maximum Datagram Size minus forty. The default IP Maximum Datagram Size is 576, and the default TCP Maximum Segment Size is 536. For further discussion, see RFC 879 πŸ“
  • Idle Connections: people asked about automatically closing idle connections, but idle connections are ok and should not be closed 🫢 They pop up all the time, like in Telnet when a user is thinking for a long time after a message from the server computer before their next input. There is no TCP "probe" mechanism, and none is needed ✨
  • Queued Receive Data on Closing: it's not always clear what to do with data the TCP has received but not yet passed to the user, especially when the connection is closing. In general, that data should be kept so it can be given to the user if they make a RECV call πŸ“¦
  • Out of Order Segments: the description says segments that arrive out of order (not exactly the next segment to be processed) may be kept on hand. It should also point out that there is a very large performance penalty for not doing so πŸ“‰
  • User Time Out: this is the time out started on an open or send call. If this user time out occurs, the user should be notified, but the connection should not be closed or the TCB deleted. If the user wants to give up, they should explicitly ABORT the connection πŸ™…β€β™€οΈ

OTHER REFERENCES:

  • RFC 813 (in IPIG) - Window and Acknowledgement Strategy in TCP
  • RFC 814 (in IPIG) - Names, Addresses, Ports, and Routes
  • RFC 816 (in IPIG) - Fault Isolation and Recovery
  • RFC 817 (in IPIG) - Modularity and Efficiency in Protocol Implementation
  • RFC 879 - TCP Maximum Segment Size
  • RFC 889 - Internet Delay Experiments
  • RFC 896 - TCP/IP Congestion Control
  • MIL-STD-1778 - Military Standard Transmission Control Protocol

Host Monitoring Protocol (HMP) πŸ”

  • STATUS: Elective
  • SPECIFICATION: RFC 869
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Hinden@BBN-UNIX.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: HMP is a good tool for debugging protocol implementations on remotely located computers πŸ§‘β€πŸ’» It's also used to monitor Internet gateways and the TACs πŸ›°οΈ


Cross Net Debugger (XNET) 🐞

  • STATUS: Elective
  • SPECIFICATION: IEN 158
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Postel@USC-ISIF.ARPA
  • OTHER REFERENCES: RFC 643

COMMENTS: XNET is a debugging protocol that allows debugger-like access to remote systems πŸ”§ This specification should be updated and reissued as an RFC 🌸


"Stub" Exterior Gateway Protocol (EGP) πŸŒ‰

  • STATUS: Recommended for Gateways
  • SPECIFICATION: RFC 888, RFC 904
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Mills@USC-ISID.ARPA
  • OTHER REFERENCES: RFC 827, RFC 890

COMMENTS: EGP is the protocol used between gateways of different administrations to exchange routing information πŸ—ΊοΈ If you have any plans for implementing or using this protocol, please discuss them with the contact πŸ’Œ


Gateway Gateway Protocol (GGP) πŸšͺ

  • STATUS: Experimental
  • SPECIFICATION: RFC 823
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Brescia@BBN-UNIX.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: GGP is the gateway protocol that's now used in the core gateways πŸ›οΈ If you have any plans for implementing or using this protocol, please discuss them with the contact πŸ’¬


Multiplexing Protocol (MUX) 🧩

  • STATUS: Experimental
  • SPECIFICATION: IEN 90
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Postel@USC-ISIF.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: MUX defines a way to combine several segments from different higher level protocols into one IP datagram πŸ“¦ There's no current experiment in progress. People question how much of the sharing this protocol envisions can actually happen πŸ€” There are also concerns that the information captured in the multiplexing header might be (a) insufficient, or (b) over specific. If you have any plans for implementing or using this protocol, please discuss them with the contact 🫧


Stream Protocol (ST) 🌊

  • STATUS: Experimental
  • SPECIFICATION: IEN 119
  • DEPENDENCIES: Internet Protocol
  • CONTACT: jwf@LL-EN.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: ST is a gateway resource allocation protocol designed for multihost real time applications ⏱️ Its implementation has evolved and may no longer be consistent with this specification. The document should be updated and issued as an RFC πŸ“œ If you have any plans for implementing or using this protocol, please discuss them with the contact πŸ’œ


Network Voice Protocol (NVP-II) πŸŽ™οΈ

  • STATUS: Experimental
  • SPECIFICATION: ISI Internal Memo
  • DEPENDENCIES: Internet Protocol, Stream Protocol
  • CONTACT: Casner@USC-ISIB.ARPA
  • OTHER REFERENCES: RFC 741

COMMENTS: NVP-II defines the procedures for real time voice conferencing πŸ—£οΈ The specification is an ISI Internal Memo, and it should be updated and issued as an RFC πŸŽ€ If you have any plans for implementing or using this protocol, please discuss them with the contact 🌟


Reliable Data Protocol (RDP) πŸ“¬

  • STATUS: Experimental
  • SPECIFICATION: RFC 908
  • DEPENDENCIES: Internet Protocol
  • CONTACT: CWelles@BBN-UNIX.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: RDP is built to efficiently support bulk transfer of data for host monitoring and control applications, like loading/dumping and remote debugging 🧰 It's meant to be simple to implement while still being efficient where there may be long transmission delays and loss or non-sequential delivery of message segments 🐒


Internet Reliable Transaction Protocol (IRTP) 🦒

  • STATUS: Experimental
  • SPECIFICATION: RFC 938
  • DEPENDENCIES: Internet Protocol
  • CONTACT: Trudy@ACC.ARPA
  • OTHER REFERENCES: none listed

COMMENTS: IRTP is a transport level host to host protocol designed for an internet environment 🌐 The issues discussed may not be directly relevant to the research problems of the DARPA community, but they may still be interesting to a number of researchers and implementors 🧠


APPLICATION LEVEL

Telnet Protocol (TELNET) πŸ–₯️

  • STATUS: Recommended
  • SPECIFICATION: RFC 854 (in "Internet Telnet Protocol and Options")
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Postel@USC-ISIF.ARPA
  • OTHER REFERENCES: MIL-STD-1782 - Telnet Protocol

COMMENTS: Telnet is the protocol for remote terminal access πŸ’» It has been revised since the IPTW, and RFC 764 in IPTW is now obsolete 🫧


Telnet Options (TELNET-OPTIONS) βš™οΈ

  • STATUS: Elective
  • SPECIFICATION: General description of options: RFC 855 (in "Internet Telnet Protocol and Options")

okay so the Telnet options table is literally the main character πŸŽ€πŸ“‹

      Number   Name                                RFC  NIC  ITP APH USE
      ------   ---------------------------------   --- ----- --- --- ---
         0     Binary Transmission                 856 ----- yes obs yes
         1     Echo                                857 ----- yes obs yes
         2     Reconnection                        ... 15391  no yes  no
         3     Suppress Go Ahead                   858 ----- yes obs yes
         4     Approx Message Size Negotiation     ... 15393  no yes  no
         5     Status                              859 ----- yes obs yes
         6     Timing Mark                         860 ----- yes obs yes
         7     Remote Controlled Trans and Echo    726 39237  no yes  no
         8     Output Line Width                   ... 20196  no yes  no
         9     Output Page Size                    ... 20197  no yes  no
        10     Output Carriage-Return Disposition  652 31155  no yes  no
        11     Output Horizontal Tabstops          653 31156  no yes  no
        12     Output Horizontal Tab Disposition   654 31157  no yes  no
        13     Output Formfeed Disposition         655 31158  no yes  no
        14     Output Vertical Tabstops            656 31159  no yes  no
        15     Output Vertical Tab Disposition     657 31160  no yes  no
        16     Output Linefeed Disposition         658 31161  no yes  no
        17     Extended ASCII                      698 32964  no yes  no
        18     Logout                              727 40025  no yes  no
        19     Byte Macro                          735 42083  no yes  no
        20     Data Entry Terminal                 732 41762  no yes  no
        21     SUPDUP                          734 736 42213  no yes  no
        22     SUPDUP Output                       749 45449  no  no  no
        23     Send Location                       779 -----  no  no  no
        24     Terminal Type                       930 -----  no  no  no
        25     End of Record                       885 -----  no  no  no
        26     TACACS User Identification          927 -----  no  no  no
        27     Output Marking                      933 -----  no  no  no
       255     Extended-Options-List               861 ----- yes obs yes

                                                        (obs = obsolete)

The ITP column tells you if the spec is part of the Internet Telnet Protocol and Options πŸ’… The APH column tells you if it's in the ARPANET Protocol Handbook πŸ“š And the USE column shows which options are in general use ✨

COMMENTS:

Okay, the Binary Transmission, Echo, Suppress Go Ahead, Status, Timing Mark, and Extended Options List options were recently updated and reissued πŸ”₯ They're the most frequently implemented ones, so they're basically the girlies of the group πŸ‘‘

The rest should be reviewed. The useful ones should be revised and reissued, and the others should be eliminated πŸ™ˆ

The following are recommended: Binary Transmission, Echo, Suppress Go Ahead, Status, Timing Mark, and Extended Options List πŸ’–

OTHER REFERENCES:

DEPENDENCIES: Telnet

CONTACT: Postel@USC-ISIF.ARPA


File Transfer Protocol (FTP)

STATUS: Recommended ✨

SPECIFICATION: RFC 765 (in IPTW)

COMMENTS:

FTP is the protocol for moving files between Internet hosts πŸ“ It gives you access control and lets you negotiate file parameters πŸŽ€

There are a few minor corrections to make. The big change is deleting the mail commands, and the discussion of managing the data connection needs major clarification πŸ™ˆ Someone also suggested adding some directory manipulation commands (RFC 775) πŸ’…

Even though the MAIL features are defined in this document, they are not to be used. SMTP is to be used for all mail service in the Internet πŸ’Œ

Data Connection Management:

a. Default Data Connection Ports: All FTP implementations must support use of the default data connection ports, and only the User-PI may initiate the use of non-default ports 🌸

b. Negotiating Non-Default Data Ports: The User-PI may specify a non-default user side data port with the PORT command. The User-PI may request the server side to identify a non-default server side data port with the PASV command. Since a connection is defined by the pair of addresses, either of these actions is enough to get a different data connection. Still, it is permitted to do both commands to use new ports on both ends of the data connection πŸ¦‹

c. Reuse of the Data Connection: When using the stream mode of data transfer, the end of the file must be indicated by closing the connection. This causes a problem if multiple files are to be transferred in the session, because TCP has to hold the connection record for a time-out period to guarantee reliable communication. So the connection can not be reopened at once 😭

There are two solutions to this problem. The first is to negotiate a non-default port (as in (b) above). The second is to use another transfer mode 🧚

A comment on transfer modes: the stream transfer mode is inherently unreliable, since one can not determine if the connection closed prematurely or not. The other transfer modes (Block, Compressed) do not close the connection to indicate the end of file. They have enough FTP encoding that the data connection can be parsed to determine the end of the file. So using these modes, one can leave the data connection open for multiple file transfers 🌈

Why this was not a problem with the old NCP FTP:

The NCP was designed with only the ARPANET in mind. The ARPANET provides very reliable service, and the NCP counted on it. If any packet of data from an NCP connection were lost or damaged by the network, the NCP could not recover. It is a tribute to the ARPANET designers that the NCP FTP worked so well 🫢

The TCP is designed to provide reliable connections over many different types of networks and interconnections of networks. TCP must cope with a set of networks that can not promise to work as well as the ARPANET. TCP must make its own provisions for end-to-end recovery from lost or damaged packets. This leads to the need for the connection phase-down time-out. The NCP never had to deal with acknowledgements, retransmissions, or many other things the TCP must do to make connections reliable in a more complex world πŸ’œ

LIST and NLST:

There is some confusion about the LIST and NLST commands, and about what is appropriate to return. Some clarification and motivation for these commands should be added to the specification πŸ€”

Multiple 1xx Replies:

There is some difference of opinion about the use of multiple 1xx responses during command processing. This issue comes up particularly when processing the RETR and STOR commands. The two opinions are summarized below πŸ‘€

For Exactly One 1xx Response:

When a RETR or SEND command is started, the server is supposed to give an "intermediate reply" of 1xx when it is opening the data connection. Currently, some FTP servers give two 1xx messages. This causes problems for single-thread FTP user implementations. After reading the first intermediate reply, they go off to do the transfer. The second 1xx message is not seen until the end of the transfer. The RFC gives a state diagram of the form:

                  --------->Wait--------->
                          /      \
                          ^      |
                          |      V
                          \      /
                           <-----

This implies any number of 1xx's (including 0). There is a suspicion that this is just sloppy diagramming, and that the intent is clear from other parts of the RFC 🧐

The FTP specification states that the reason for intermediate replies is to allow implementations that can't do any better to know when to stop listening to the control channel and switch their attention to the data channel. Given this intent, it seems clear that there should be exactly one 1xx reply at the start of the transfer πŸ’‘

The FTP specification is ambiguous in this regard. The state diagrams appear to sanction any number of responses, but the charts before them do not. And from the intent, it seems obvious that exactly one is the right thing 🎯

Consider an implementation on a PC. It is fairly hard to do parallel processing there. It should be possible for a PC implementation to stop paying attention to the control channel and start reading the file from the data channel when it sees the 1xx response. The only way this can work is if there is only one 1xx response πŸ’»

Of course, one could make it a requirement that every FTP implementation must be based on good enough interrupt technology so that it can field extra responses during the transfer. But what would such a constraint buy? Just the ability to have both a 125 and a 150 response. It doesn't seem worth the price. You could just as well combine the information in those responses into a single one πŸ™„

For Multiple 1xx Responses:

The multiple 1xx messages arose because the new TCP specification omitted the 050 spontaneous reply code. A solution was to change an 050 informational message to a 1xx message, creating both a 125 and a 150 πŸ”„

The state diagrams clearly allow this, and the "Command-Reply Sequences" section does not contradict it. A multiple 1xx implementation is in accord with the formal reply specifications βœ…

A multiple 1xx implementation works with the TOPS-20 FTPs, with a number of different UNIX implementations, and with the LOCUS system. So, a lot of implementors must follow state diagrams in preference to prose 🌟

Okay but page 34 of the spec kinda suggests that 1xx replies can be used by single-thread user implementations to switch attention to the data connection πŸ‘€. That would only allow a single 1xx message, which totally contradicts the state diagrams πŸ’€. It feels a bit strong to call that one sentence on page 34 "the intent" of the spec, though, since it clashes with the format spec for replies πŸ™ˆ.

A side discussion favoring more status information πŸ’…:

One view has always assumed a two-thread implementation. In this view, most user implementations are deficient because they do not allow the user to enter a STATUS command during data transfer. A cynic might say that is because the Computer Scientists who did these implementations only do "Toy" file transfers, and often use "Toy" operating systems. The Toy systems crowd has been complaining lately that FTP is too complicated. Well, it may be too complicated for Toy systems, but in fact it is too simple for many Real file systems 😀. For example, it has no way to encode a "library" (i.e., a named collection of subfiles). It is (barely) adequate for shipping around files of text, but not much more. With the notable exception of Multics and UNIX, many operating systems support complex file structures of which the user must be aware. One is not doing the user a favor by hiding details that may reach out and bite him. That is the reason some FTPs put out a large informative message at the beginning of the transfer, specifying the file baroqueness that is involved. As a Computer Scientist, you may find that message annoying, but if you had to use MVS very much, you would find it helpful, informative, and maybe even reassuring. Some believe that as DARPA technology moves into the production environment of DDN, there will be user requirements for such informative messages for a variety of vendor operating systems.

To provide important information to the user, the specification should either allow multiple 1xx messages, or restore the old spontaneous reply category. In fact, the latter is preferable 🌸. This information should be displayed to the user, but a user FTP might swallow 1xx messages without displaying their text.

The Answer:

Following the Robustness Principle (a protocol implementation ought to inflict minimal pain and accept maximal pain) there should be only one 1xx response ✨. That is, those FTP servers that now issue two 1xx responses should combine them.


OTHER REFERENCES:

  • RFC 678 - Document File Format Standards
  • MIL-STD-1780 - File Transfer Protocol

DEPENDENCIES: Transmission Control Protocol

CONTACT: Postel@USC-ISIF.ARPA


Trivial File Transfer Protocol (TFTP) πŸ¦‹

  • STATUS: Elective
  • SPECIFICATION: RFC 783 (in IPTW)

COMMENTS:

A very simple file moving protocol, no access control is provided πŸ“.

This is in use in several local networks.

Ambiguities in the interpretation of several of the transfer modes should be clarified, and additional transfer modes could be defined. Additional error codes could be defined to more clearly identify problems 🧚.

OTHER REFERENCES:

DEPENDENCIES: User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Simple File Transfer Protocol (SFTP) πŸŽ€

  • STATUS: Experimental
  • SPECIFICATION: RFC 913

COMMENTS:

SFTP is a simple file transfer protocol. It fills the need of people wanting a protocol that is more useful than TFTP but easier to implement (and less powerful) than FTP. SFTP supports user access control, file transfers, directory listing, directory changing, file renaming and deleting πŸ“‚.

SFTP can be implemented with any reliable 8-bit byte stream oriented protocol, this document describes its TCP specification. SFTP uses only one TCP connection; whereas TFTP implements a connection over UDP, and FTP uses two TCP connections (one using the TELNET protocol) πŸ”₯.

Please discuss any plans for implementation or use of this protocol with the contact πŸ’Œ.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol

CONTACT: MKL@MIT-XX.ARPA


Simple Mail Transfer Protocol (SMTP) πŸ’œ

  • STATUS: Recommended
  • SPECIFICATION: RFC 821 (in "Internet Mail Protocols")

COMMENTS:

The procedure for transmitting computer mail between hosts πŸ“¬.

This has been revised since the IPTW, it is in the "Internet Mail Protocols" volume of November 1982. RFC 788 (in IPTW) is obsolete.

There have been many misunderstandings and errors in the early implementations. Some documentation of these problems can be found in the file [ISIF]<SMTP>MAIL.ERRORS πŸ™ˆ.

Some minor differences between RFC 821 and RFC 822 should be resolved.

OTHER REFERENCES:

  • RFC 822 - Mail Header Format Standards

This has been revised since the IPTW, it is in the "Internet Mail Protocols" volume of November 1982. RFC 733 (in IPTW) is obsolete. Further revision of RFC 822 is needed to correct some minor errors in the details of the specification.

  • MIL-STD-1781 - Simple Mail Transfer Protocol (SMTP)

DEPENDENCIES: Transmission Control Protocol CONTACT: Postel@USC-ISIF.ARPA


Resource Location Protocol (RLP) 🌈

  • STATUS: Elective
  • SPECIFICATION: RFC 887

COMMENTS:

A resource location protocol for use in the ARPA-Internet. This protocol utilizes the User Datagram Protocol (UDP) which in turn calls on the Internet Protocol to deliver its datagrams πŸ›°οΈ.

OTHER REFERENCES:

DEPENDENCIES: User Datagram Protocol

CONTACT: Accetta@CMU-CS-A.ARPA


Loader Debugger Protocol (LDP) ⭐

  • STATUS: Experimental
  • SPECIFICATION: RFC 909

COMMENTS:

Specifies a protocol for loading, dumping and debugging target machines from hosts in a network environment. It is also designed to accommodate a variety of target CPU types. It provides a powerful set of debugging services, while at the same time, it is structured so that a simple subset may be implemented in applications like boot loading where efficiency and space are at a premium 🧠.

OTHER REFERENCES:

DEPENDENCIES: Reliable Data Protocol

CONTACT: Hinden@BBN-UNIX.ARPA


Remote Job Entry (RJE) πŸ“

  • STATUS: Elective
  • SPECIFICATION: RFC 407 (in APH)

COMMENTS:

The general protocol for submitting batch jobs and retrieving the results.

Some changes needed for use with TCP.

No known active implementations 😴.

OTHER REFERENCES:

DEPENDENCIES: File Transfer Protocol Transmission Control Protocol

CONTACT: Postel@USC-ISIF.ARPA


Remote Job Service (NETRJS) πŸŽ€

  • STATUS: Elective
  • SPECIFICATION: RFC 740 (in APH)

COMMENTS:

A special protocol for submitting batch jobs and retrieving the results, used with the UCLA IBM OS system.

Please discuss any plans for implementation or use of this protocol with the contact.

Revision in progress πŸ› οΈ.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol

CONTACT: Braden@UCLA-CCN.ARPA


Remote Telnet Service (RTELNET) πŸ¦‹

  • STATUS: Elective
  • SPECIFICATION: RFC 818

COMMENTS:

Provides special access to user Telnet on a remote system.

OTHER REFERENCES:

DEPENDENCIES: Telnet, Transmission Control Protocol

CONTACT: Postel@USC-ISIF.ARPA


Graphics Protocol (GRAPHICS) 🌸

  • STATUS: Elective
  • SPECIFICATION: NIC 24308 (in APH)

COMMENTS:

The protocol for vector graphics.

Very minor changes needed for use with TCP.

No known active implementations πŸ’€.

OTHER REFERENCES:

DEPENDENCIES: Telnet, Transmission Control Protocol

CONTACT: Postel@USC-ISIF.ARPA


Echo Protocol (ECHO) 🫢

  • STATUS: Recommended
  • SPECIFICATION: RFC 862

COMMENTS:

Debugging protocol, sends back whatever you send it πŸ”.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Discard Protocol (DISCARD) πŸ—‘οΈ

  • STATUS: Elective
  • SPECIFICATION: RFC 863

COMMENTS:

Debugging protocol, throws away whatever you send it 😌.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Character Generator Protocol (CHARGEN) πŸ”€

  • STATUS: Elective
  • SPECIFICATION: RFC 864

COMMENTS:

Debugging protocol, sends you ASCII data πŸ’».

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Quote of the Day Protocol (QUOTE) ✨

  • STATUS: Elective
  • SPECIFICATION: RFC 865

COMMENTS:

Debugging protocol, sends you a short ASCII message πŸ’¬.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Active Users Protocol (USERS) πŸ‘‘

  • STATUS: Elective
  • SPECIFICATION: RFC 866

COMMENTS:

Lists the currently active users πŸ‘€.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol

CONTACT: Postel@USC-ISIF.ARPA


Finger Protocol (FINGER) πŸ’…

  • STATUS: Elective
  • SPECIFICATION: RFC 742 (in APH)

COMMENTS:

Provides information on the current or most recent activity of a user πŸ“±.

Some extensions have been suggested.

Some changes are are needed for TCP.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol

CONTACT: Postel@USC-ISIF.ARPA


WhoIs Protocol (NICNAME) πŸ”

  • STATUS: Elective
  • SPECIFICATION: RFC 812 (in IPTW)

COMMENTS:

Okay bestie, first up is the ARPANET Directory database πŸ“‡ It's the one that lets you look up people, their addresses, phone numbers, organizations, and mailboxes 🧚 It's the whole phonebook energy, and it runs over TCP.

  • OTHER REFERENCES:
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Feinler@SRI-NIC.ARPA

Domain Name Protocol (DOMAIN) 🌐

This one is giving main character energy ✨ It's still Experimental, and the spec is RFC 881, 882, 883.

  • STATUS: Experimental
  • SPECIFICATION: RFC 881, 882, 883
  • COMMENTS:
  • OTHER REFERENCES:
    • RFC 920 - Domain Requirements
    • RFC 921 - Domain Name Implementation Schedule - Revised
  • DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol
  • CONTACT: Mockapetris@USC-ISIF.ARPA

HOSTNAME Protocol (HOSTNAME) 🏠

This one is Elective and it's all about the HOSTS.TXT file πŸ“œ It accesses the Registered Internet Hosts database, so you can find out about a host on the Internet, its Internet Address, and which protocols it implements. Iconic πŸ’…

  • STATUS: Elective
  • SPECIFICATION: RFC 811 (in IPTW)
  • COMMENTS: Accesses the Registered Internet Hosts database (HOSTS.TXT). Provides a way to find out about a host in the Internet, its Internet Address, and the protocols it implements.
  • OTHER REFERENCES:
    • RFC 810 - Host Table Specification
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Feinler@SRI-NIC.ARPA

Host Name Server Protocol (NAMESERVER) πŸ™ˆ

Okay so this one is a little messy, not gonna lie πŸ’€ It's Experimental, and it's a machine-oriented procedure for translating a host name into an Internet Address. But the spec has some real problems:

1) The name syntax is out of date. 2) The protocol details are ambiguous. In particular, the length octet either does or doesn't include itself and the op code. 3) The extensions are not supported by any known implementation.

The protocol is now abandoned in favor of the DOMAIN protocol 😭 So further implementations of this protocol are not advised. If you're planning anything with it, talk to the contact first 🫢

  • STATUS: Experimental
  • SPECIFICATION: IEN 116 (in IPTW)
  • COMMENTS: Provides a machine-oriented procedure for translating a host name to an Internet Address.

This specification has significant problems: 1) The name syntax is out of date. 2) The protocol details are ambiguous, in particular, the length octet either does or doesn't include itself and the op code. 3) The extensions are not supported by any known implementation.

This protocol is now abandoned in favor of the DOMAIN protocol. Further implementations of this protocol are not advised.

Please discuss any plans for implementation or use of this protocol with the contact.

  • OTHER REFERENCES:
  • DEPENDENCIES: User Datagram Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

CSNET Mailbox Name Server Protocol (CSNET-NS) πŸ“¬

This one is Experimental and gives you access to the CSNET database of users πŸ’œ You can look up names, affiliations, and mailboxes. Same as the others: talk to the contact before you build anything with it πŸŽ€

  • STATUS: Experimental
  • SPECIFICATION: CS-DN-2
  • COMMENTS: Provides access to the CSNET data base of users to give information about users names, affiliations, and mailboxes. Please discuss any plans for implementation or use of this protocol with the contact.
  • OTHER REFERENCES:
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Solomon@UWISC.ARPA

Daytime Protocol (DAYTIME) β˜€οΈ

Simple and sweet 🌸 It's Elective, and it gives you the day and time as an ASCII character string.

  • STATUS: Elective
  • SPECIFICATION: RFC 867
  • COMMENTS: Provides the day and time in ASCII character string.
  • OTHER REFERENCES:
  • DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

Time Server Protocol (TIME) ⏰

Also Elective, and this one gives you the time as a count of seconds from a specified reference time πŸ¦‹

  • STATUS: Elective
  • SPECIFICATION: RFC 868
  • COMMENTS: Provides the time as the number of seconds from a specified reference time.
  • OTHER REFERENCES:
  • DEPENDENCIES: Transmission Control Protocol or User Datagram Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

DCNET Time Server Protocol (CLOCK) πŸ•°οΈ

Elective again, and its whole job is keeping synchronized clocks in sync πŸ”₯ It depends on the Internet Control Message Protocol.

  • STATUS: Elective
  • SPECIFICATION: RFC 778
  • COMMENTS: Provides a mechanism for keeping synchronized clocks.
  • OTHER REFERENCES:
  • DEPENDENCIES: Internet Control Message Protocol
  • CONTACT: Mills@USC-ISID.ARPA

SUPDUP Protocol (SUPDUP) πŸ–₯️

This one is a special Telnet-like protocol for display terminals πŸ’– It's Elective, so it's optional, but it's serious style ✨

  • STATUS: Elective
  • SPECIFICATION: RFC 734 (in APH)
  • COMMENTS: A special Telnet like protocol for display terminals.
  • OTHER REFERENCES:
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Crispin@SU-SCORE.ARPA

Internet Message Protocol (MPM) βœ‰οΈ

This is an Experimental multimedia mail transfer protocol 🌈 The implementation is called a Message Processing Module, or MPM. Please talk to the contact about any implementation or use plans πŸ’œ

  • STATUS: Experimental
  • SPECIFICATION: RFC 759
  • COMMENTS: This is an experimental multimedia mail transfer protocol. The implementation is called a Message Processing Module or MPM.

Please discuss any plans for implementation or use of this protocol with the contact.

  • OTHER REFERENCES:
    • RFC 767 - Structured Document Formats
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: Postel@USC-ISIF.ARPA

Post Office Protocol - Version 2 (POP2) πŸ“₯

Experimental, and the goal is to let a user's workstation access mail from a mailbox server πŸŽ€ The expected flow is that mail gets posted from the workstation to the mailbox server over SMTP, the Simple Mail Transfer Protocol. This one obsoletes RFC 918, so it's the newer, glow-up version πŸ¦‹

  • STATUS: Experimental
  • SPECIFICATION: RFC 937
  • COMMENTS: The intent of the Post Office Protocol - Version 2 (POP2) is to allow a user's workstation to access mail from a mailbox server. It is expected that mail will be posted from the workstation to the mailbox server via the Simple Mail Transfer Protocol (SMTP).

Please discuss any plans for implementation or use of this protocol with the contact.

  • OTHER REFERENCES: Obsoletes RFC 918
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: JKReynolds@USC-ISIF.ARPA

Network Standard Text Editor (NETED) πŸ“

Elective, and it's a simple line editor that every Internet host could provide πŸ“ It has no listed dependencies, so it's a chill one 🧚

  • STATUS: Elective
  • SPECIFICATION: RFC 569
  • COMMENTS: Describes a simple line editor which could be provided by every Internet host.
  • OTHER REFERENCES:
  • DEPENDENCIES:
  • CONTACT: Postel@USC-ISIF.ARPA

Authentication Service (AUTH) πŸ”

This one is Experimental and it figures out who owns a particular TCP connection πŸ‘‘ Give it a TCP port number pair, and it returns a character string that identifies the owner of that connection on the server's system. It supersedes RFC 912 😭

  • STATUS: Experimental
  • SPECIFICATION: RFC 931
  • COMMENTS: This server provides a means to determine the identity of a user of a particular TCP connection. Given a TCP port number pair, it returns a character string which identifies the owner of that connection on the server's system.

Please discuss any plans for implementation or use of this protocol with the contact.

  • OTHER REFERENCES: Supercedes RFC 912
  • DEPENDENCIES: Transmission Control Protocol
  • CONTACT: StJohns@MIT-Multics.ARPA

APPENDICES πŸ’–

Okay so bestie, this is the appendix section, and it's basically a giant "who's who" of the Internet's protocol registry from the mid-80s πŸ“šβœ¨. Each entry lists a protocol, its status, the spec it points to, some comments, other references, dependencies, and a contact person. Let's go!


Assigned Numbers πŸŽ€

STATUS: None

SPECIFICATION: RFC 943

COMMENTS:

Describes the fields of various protocols that are assigned specific values for actual use, and lists the currently assigned values.

Issued April 1985, replaces RFC 923, RFC 790 in IPTW, and RFC 900.

OTHER REFERENCES:

CONTACT: JKReynolds@USC-ISIF.ARPA


Pre-emption πŸ¦‹

STATUS: Elective

SPECIFICATION: RFC 794 (in IPTW)

COMMENTS:

Describes how to do pre-emption of TCP connections.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Service Mappings 🌸

STATUS: None

SPECIFICATION: RFC 795 (in IPTW)

COMMENTS:

Describes the mapping of the IP type of service field onto the parameters of some specific networks.

Out of date, needs revision.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Address Mappings 🧚

STATUS: None

SPECIFICATION: RFC 796 (in IPTW)

COMMENTS:

Describes the mapping between Internet Addresses and the addresses of some specific networks.

Out of date, needs revision.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Document Formats πŸ“

STATUS: None

SPECIFICATION: RFC 678

COMMENTS:

Describes standard format rules for several types of documents.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Bitmap Formats 🌈

STATUS: None

SPECIFICATION: RFC 797

COMMENTS:

Describes a standard format for bitmap data.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Facsimile Formats πŸ“ 

STATUS: None

SPECIFICATION: RFC 804

COMMENTS:

Describes a standard format for facsimile data.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Host-Front End Protocol (HFEP) πŸ’œ

STATUS: Experimental

SPECIFICATION: RFC 929

COMMENTS:

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES: RFC 928

DEPENDENCIES:

CONTACT: Padlipsky@USC-ISI.ARPA


Internet Protocol on X.25 Networks (IP-X25) ✨

STATUS: Recommended

SPECIFICATION: RFC 877

COMMENTS:

Describes a standard for the transmission of IP Datagrams over Public Data Networks.

OTHER REFERENCES:

CONTACT: jtk@PURDUE.ARPA


Internet Protocol on DC Networks (IP-DC) 🫢

STATUS: Elective

SPECIFICATION: RFC 891

COMMENTS:

OTHER REFERENCES:

RFC 778 - DCNET Internet Clock Service

CONTACT: Mills@USC-ISID.ARPA


Internet Protocol on Ethernet Networks (IP-E) πŸ”₯

STATUS: Recommended

SPECIFICATION: RFC 894

COMMENTS:

OTHER REFERENCES: RFC 893

CONTACT: Postel@USC-ISIF.ARPA


Internet Protocol on Experimental Ethernet Networks (IP-EE) πŸ’…

STATUS: Recommended

SPECIFICATION: RFC 895

COMMENTS:

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


Internet Subnets Protocol (IP-SUB) 🌸

STATUS: Experimental

SPECIFICATION: RFC 940

COMMENTS:

Discussion of the various problems and potential solutions of "explicit subnets" in a multi-LAN environment.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES: RFC 917, RFC 925, RFC 932, RFC 936, RFC 922

DEPENDENCIES:

CONTACT: Mills@USC-ISID.ARPA


Broadcasting Internet Datagrams (IP-BROAD) πŸ“‘

STATUS: Experimental

SPECIFICATION: RFC 919

COMMENTS:

A proposed protocol of simple rules for broadcasting Internet datagrams on local networks that support broadcast, for addressing broadcasts, and for how gateways should handle them.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES: RFC 922

DEPENDENCIES:

CONTACT: Mogul@SU-SCORE.ARPA


Address Resolution Protocol (ARP) πŸ¦‹

STATUS: Recommended

SPECIFICATION: RFC 826

COMMENTS:

This is a procedure for finding the network hardware address corresponding to an Internet Address.

OTHER REFERENCES:

CONTACT: Postel@USC-ISIF.ARPA


A Reverse Address Resolution Protocol (RARP) πŸ”„

STATUS: Elective

SPECIFICATION: RFC 903

COMMENTS:

This is a procedure for workstations to dynamically find their protocol address (e.g., their Internet Address), when they only only know their hardware address (e.g., their attached physical network address).

OTHER REFERENCES:

CONTACT: Mogul@SU-SCORE.ARPA


Multi-LAN Address Resolution Protocol (MARP) 🧠

STATUS: Experimental

SPECIFICATION: RFC 925

COMMENTS:

Discussion of the various problems and potential solutions of "transparent subnets" in a multi-LAN environment.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES: RFC 917, RFC 826

DEPENDENCIES:

CONTACT: Postel@USC-ISIF.ARPA


Broadcasting Internet Datagrams with Subnets (IP-SUB-BROAD) πŸ“£

STATUS: Experimental

SPECIFICATION: RFC 922

COMMENTS:

A proposed protocol of simple rules for broadcasting Internet datagrams on local networks that support broadcast, for addressing broadcasts, and for how gateways should handle them.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES:

DEPENDENCIES:

CONTACT: Mogul@SU-SCORE.ARPA


Host Access Protocol (HAP) πŸ›°οΈ

STATUS: Recommended

SPECIFICATION: RFC 907

COMMENTS:

This protocol specifies the network-access level communication between an arbitrary computer, called a host, and a packet-switched satellite network, e.g., SATNET or WBNET.

Note: Implementations of HAP should be performed in coordination with satellite network development and operations personnel.

OTHER REFERENCES:

DEPENDENCIES:

CONTACT: Schoen@BBN-UNIX.ARPA


Reliable Asynchronous Transfer Protocol (RATP) πŸ”

STATUS: Experimental

SPECIFICATION: RFC 916

COMMENTS:

This paper specifies a protocol which allows two programs to reliably communicate over a communication link. It ensures that the data entering one end of the link if received arrives at the other end intact and unaltered. This proposed protocol is designed to operate over a full duplex point-to-point connection. It contains some features which tailor it to the RS-232 links now in current use.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES:

DEPENDENCIES: Transmission Control Protocol

CONTACT: Finn@USC-ISIF.ARPA


Thinwire Protocol (THINWIRE) πŸ–₯️

STATUS: Experimental

SPECIFICATION: RFC 914

COMMENTS:

This paper discusses a Thinwire Protocol for connecting personal computers to the ARPA-Internet. It primarily focuses on the particular problems in the ARPA-Internet of low speed network interconnection with personal computers, and possible methods of solution.

Please discuss any plans for implementation or use of this protocol with the contact.

OTHER REFERENCES:

DEPENDENCIES:

CONTACT: Farber@ROCHESTER.ARPA

πŸ“¦ where this page comes from