RFC 1543
Instructions to RFC Authors
Instructions to RFC Authors ๐
Okay bestie, let's start with the basics ๐ This one is called Instructions to RFC Authors, and J. Postel from ISI wrote it for the Network Working Group. It's an Informational doc dated October 1993, and it obsoletes RFCs 1111, 825. It doesn't list any RFCs that it updates ๐ฆ.
Status of this Memo ๐
Okay so this memo is giving information for the Internet community ๐ It does not specify an Internet standard of any kind, so it's not a spec. Distribution of this memo is unlimited, so share away ๐ซถ.
Table of Contents ๐
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Editorial Policy . . . . . . . . . . . . . . . . . . . . . . 3
3. Format Rules . . . . . . . . . . . . . . . . . . . . . . . . 4
3a. ASCII Format Rules . . . . . . . . . . . . . . . . . . . . 4
3b. PostScript Format Rules . . . . . . . . . . . . . . . . . . 5
4. Header . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4a. First Page Heading . . . . . . . . . . . . . . . . . . . . 6
4b. Running Header . . . . . . . . . . . . . . . . . . . . . . 7
4c. Running Footer . . . . . . . . . . . . . . . . . . . . . . 7
5. Status Section . . . . . . . . . . . . . . . . . . . . . . . 5
6. Introduction Section . . . . . . . . . . . . . . . . . . . . 8
7. References Section . . . . . . . . . . . . . . . . . . . . . 9
8. Security Considerations Section . . . . . . . . . . . . . 10
9. Author's Address Section . . . . . . . . . . . . . . . . . 10
10. Relation to other RFCs . . . . . . . . . . . . . . . . . . 10
11. Protocol Standards Process . . . . . . . . . . . . . . . . 11
12. Contact . . . . . . . . . . . . . . . . . . . . . . . . . 11
13. Distribution Lists . . . . . . . . . . . . . . . . . . . . 11
14. RFC Index . . . . . . . . . . . . . . . . . . . . . . . . 12
15. Security Considerations . . . . . . . . . . . . . . . . . 12
16. References . . . . . . . . . . . . . . . . . . . . . . . . 12
17. Author's Address . . . . . . . . . . . . . . . . . . . . . 12
18. Appendix - RFC "nroff macros" . . . . . . . . . . . . . . 13
1. Introduction ๐ธ
Bestie, this Request for Comments (RFC) is all about how RFCs get prepared, plus the policies around publishing them ๐ง
The RFC series is super broad, no cap ๐ The core topics are the Internet and the TCP/IP protocol suite, but honestly any topic related to computer communication may be acceptable, at the discretion of the RFC Editor.
Literally anyone can submit a memo to become an RFC ๐ A big chunk of them come from the Internet Engineering Task Force (IETF). The IETF working groups (WGs) glow up their working memos (called Internet Drafts or I-Ds) until they feel ready for publication ๐ฆ. Then the Internet Engineering Steering Group (IESG) reviews them, and if they get approved, the IESG sends them on to the RFC Editor.
RFCs are distributed online. They get stored as public access files, and a short message goes out to the distribution list saying the memo is available ๐ฌ
People copy those online files and print or display them on their own gear at their own site ๐จ๏ธ So the format of the online files must meet the constraints of a wide variety of printing and display equipment. (RFCs may also be returned via e-mail in response to an e-mail query, or they may be found using information and database searching tools such as Gopher, Wais, WWW, or Mosaic ๐)
RFCs have always been published in ASCII text, and honestly they still are ๐
The primary version of an RFC is always an ASCII text file, but secondary or alternative versions may be provided in PostScript ๐จ The reason is wanting diagrams, drawings, and stuff like that in RFCs. PostScript docs (on paper only, so far) are visually more appealing and have better readability โจ
PostScript got picked for the fancy RFC format over other options like impress, interpress, and oda ๐ because PostScript-capable printers seemed to be widely available.
But tbh lots of RFC readers go online and use text tools (e.g., emacs, grep) to search them ๐ Brief excerpts also often end up in e-mail. These habits aren't practical yet with PostScript files ๐
Also, PostScript-producing systems are less standard than people had assumed ๐ฌ Several of the document production systems that claim to make PostScript actually produce nonstandard results ๐
Down the road, it may be necessary to identify a set of document production systems that are authorized for making PostScript RFCs, based on how reasonable the output files they generate are ๐ง
2. Editorial Policy ๐
Docs proposed to become RFCs get reviewed by the RFC Editor, and possibly by other reviewers he picks ๐
The review result may be to suggest to the author some improvements to the document before publication โ๏ธ
Sometimes it may become apparent that a proposed RFC's topic is also being worked on by an IETF Working Group ๐ค In that case the author could coordinate with the working group, which can help both sides. Usually a revised memo ends up as a working group Internet Draft, and eventually comes out of the IETF process as a recommendation from the IESG to the RFC Editor ๐
Sometimes it may be determined that the submitted document just isn't appropriate material to publish as an RFC ๐
Sometimes it may be necessary to put a statement in the document, based on the reviews, about the ideas in it. This may be done when the document suggests ideas that are relevant but inappropriate or unsafe, plus other situations ๐จ
The RFC Editor may make minor changes, mostly to style and format, but sometimes to the text too โ๏ธ Sometimes the RFC Editor will take on bigger changes, especially when the format rules (see below) aren't followed. Honestly though, the memo is more often sent back to the author for the extra work ๐
Docs meant to become RFCs that specify standards track protocols must be approved by the IESG before they go to the RFC Editor ๐ The usual way it works: once the IESG finishes with a doc that's going to be a standards track RFC, the Secretary of the IESG is the one who contacts the RFC Editor. Those docs are generally Internet Drafts, and the message usually names the exact Internet Draft (by file name) ๐
The RFC Editor must assume that only that file is to be processed into the RFC. If the authors have small corrections to the text, they should send them to the RFC Editor separately (or as a "diff"). Do not send a new version of the document ๐
Sometimes authors make fancy alternate secondary versions of RFCs in PostScript โจ Since the ASCII text version is the primary one, the PostScript version must match the text version. The RFC Editor must decide whether the PostScript version is "the same as" the ASCII version before it can be published ๐
So basically, the RFC Editor pushes the ASCII version of the memo through to publication as an RFC first ๐ค๏ธ If the author then wants to submit a PostScript version that matches the ASCII version (and the RFC Editor agrees that it does), the PostScript version gets installed in the RFC repositories and announced to the community ๐ฃ
The RFC Editorial staff are juggling a lot of time pressures, so the wait between submission and publication can vary a LOT โณ It is always acceptable to query (ping) the RFC Editor about an RFC's status during this time, but not more than once a week ๐ The two weeks before an IETF meeting are generally super busy, so RFCs submitted shortly before one are most likely to get published after the meeting ๐
3. Format Rules โจ
okay so bestie, this is where we talk about the two allowed formats for RFCs: ASCII and PostScript ๐ These rules are strict because they exist to protect distribution, so the vibe is "we are not playing around" ๐
The RFC Editor works hard to keep the whole series looking consistent, so they may reformat your RFC. It's way easier for them if your submission already matches the style of the most recent RFCs, so please do look at some recent ones and prep yours in the same style ๐ฆ
You must submit an editable online document to the RFC Editor. They may ask for minor changes in format or style, and they'll insert the actual RFC number themselves ๐
Most RFCs are processed by the RFC Editor with the unix "nroff" program, using a very simple set of formatting commands (or "requests") from the "ms" macro package (see the appendix). If your memo was prepared with nroff, it's super helpful to let the RFC Editor know when you submit it ๐
3a. ASCII Format Rules
Here's the ASCII checklist, and every item is a must-know โ
- Characters: the character codes are ASCII ๐ค
- Pages: each page must be limited to 58 lines, followed by a form feed on a line by itself ๐
- Lines: each line must be limited to 72 characters, followed by carriage return and line feed ๐
- No overstriking: overstriking (or underlining) is not allowed ๐ซ
- Height and width: these "height" and "width" constraints include any headers, footers, page numbers, or left side indenting ๐
- No padding: do not fill the text with extra spaces to make a straight right margin ๐ โโ๏ธ
- No hyphens at the edge: do not hyphenate words at the right margin โ๏ธ
- No footnotes: do not use footnotes. If such notes are necessary, put them at the end of a section, or at the end of the document ๐ซฃ
- Spacing: use single spaced text within a paragraph, and one blank line between paragraphs ๐ธ
Page counts and page numbers will probably shift when the document gets reformatted, so cross references by section number are way easier to keep consistent than cross references by page number ๐ง
RFCs in ASCII Format may be submitted to the RFC Editor in e-mail messages (or as online files), in either the finished publication format or in NROFF. If you plan to submit a document in NROFF, please consult the RFC Editor first ๐
3b. PostScript Format Rules
Now the PostScript side ๐จ๏ธ
- Page size: standard page size is 8 1/2 by 11 inches ๐
- Margins: margin of 1 inch on all sides (top, bottom, left, and right) ๐ผ๏ธ
- Main text: main text should have a point size of no less than 10 points, with a line spacing of 12 points โ๏ธ
- Footnotes and graph notations: no smaller than 8 points, with a line spacing of 9.6 points ๐
- Fonts: three fonts are acceptable: Helvetica, Times Roman, and Courier, plus their bold-face and italic versions. These are the three standard fonts on most PostScript printers ๐
- Diagrams: prepare diagrams and images based on lowest common denominator PostScript. Consider common PostScript printer functionality and memory requirements ๐งฉ
- Banned commands: the following PostScript commands should not be used:
initgraphics, erasepage, copypage, grestoreall, initmatrix,
initclip, banddevice, framedevice, nulldevice and renderbands.
The page counts and page numbers will likely differ between the ASCII and PostScript versions, so again, section-number cross references are the safer bet than page-number ones ๐ฆ
These PostScript rules will likely change and expand as experience is gained ๐
RFCs in PostScript Format may be submitted to the RFC Editor in e-mail messages (or as online files). If you plan to submit a document in PostScript, please consult the RFC Editor first ๐ฌ
Here's the important part though: since the ASCII text version is the primary version, the PostScript version must match the text version. The RFC Editor must decide whether the PostScript version is "the same as" the ASCII version before the PostScript version can be published ๐
4. Headers and Footers ๐
There are three things to know about: the first page heading, the running headers, and the running footers ๐ง
4a. First Page
Please see the front page of this memo for an example of the front page heading. On the first page there is no running header. Here's what the top of the first page has, in order ๐
Network Working Group: the traditional heading for the group that founded the RFC series. This appears on the first line, on the left hand side of the heading ๐ฑRequest for Comments: nnnn: this identifies the document as a request for comments and specifies the number. It's on the second line, on the left side. The actual number is filled in at the last moment before publication by the RFC Editor โฐAuthor: the author's name (first initial and last name only), on the first line on the right side of the heading ๐๏ธOrganization: the author's organization, on the second line on the right side ๐ขDate: the Month and Year of the RFC publication, on the third line on the right side ๐Updates or Obsoletes: if this RFC updates or obsoletes another RFC, this is indicated on the third line of the left side of the heading ๐Category: the category of this RFC, one of:Standards Track,Informational, orExperimental. This is indicated on the third line (if there is no Updates or Obsoletes indication) or the fourth line of the left side ๐ท๏ธTitle: the title appears, centered, below the rest of the heading ๐
If there are multiple authors, and they're from multiple organizations, the right side heading may get extra lines so the authors line up properly with their organizations ๐
4b. Running Headers
The running header is one line, and it appears on page 2 and all subsequent pages ๐. It has the RFC number on the left (RFC NNNN), the title (possibly a shortened form) centered, and the date (Month Year) on the right โจ
4c. Running Footers
The running footer is one line, and it appears on all pages ๐ฆถ. It has the author's last name on the left and the page number on the right ([Page N]) ๐ธ
5. Status Section ๐ฅ
Each RFC must include the "Status of this Memo" section on its first page, and it has to contain a paragraph describing the type of the RFC ๐ซถ
The content of this section will be one of the following three statements, copied exactly, so use the one that matches your category ๐
Standards Track
"This document specifies an Internet standards track protocol for
the Internet community, and requests discussion and suggestions
for improvements. Please refer to the current edition of the
"Internet Official Protocol Standards" (STD 1) for the
standardization state and status of this protocol. Distribution
of this memo is unlimited."
Experimental
"This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited."
Informational
"This memo provides information for the Internet community. This
memo does not specify an Internet standard of any kind.
Distribution of this memo is unlimited."
6. Introduction Section ๐
Each RFC should have an Introduction section that (among other things) explains the motivation for the RFC and, if appropriate, describes the applicability of the protocol described ๐ง
Here are some example paragraphs, depending on what kind of RFC you're writing ๐
Protocol
This protocol is intended to provide the bla-bla service,
and be used between clients and servers on host computers.
Typically the clients are on workstation hosts and the
servers on mainframe hosts.
or
This protocol is intended to provide the bla-bla service,
and be used between special purpose units such as terminal
servers or routers and a monitoring host.
Discussion
The purpose of this RFC is to focus discussion on particular
problems in the Internet and possible methods of solution.
No proposed solutions in this document are intended as
standards for the Internet. Rather, it is hoped that a
general consensus will emerge as to the appropriate solution
to such problems, leading eventually to the adoption of
standards.
Interest
This RFC is being distributed to members of the Internet
community in order to solicit their reactions to the
proposals contained in it. While the issues discussed may
not be directly relevant to the research problems of the
Internet, they may be interesting to a number of researchers
and implementers.
Status Report
In response to the need for maintenance of current
information about the status and progress of various
projects in the Internet community, this RFC is issued for
the benefit of community members. The information contained
in this document is accurate as of the date of publication,
but is subject to change. Subsequent RFCs will reflect such
changes.
These paragraphs don't have to be followed word for word, but the general intent of the RFC must be made clear ๐ฏ
7. References Section ๐
Nearly all RFCs cite other documents, and those citations are listed in a References section near the end of the RFC ๐ There are lots of reference styles out there, and the RFCs have their own. Please follow the reference style used in recent RFCs, and check the reference section of this RFC for an example ๐ One more thing: for protocols that have been assigned STD numbers, the STD number must be included in the reference ๐ข
8. Security Considerations Section ๐จ
Every RFC must contain a section near the end of the document that discusses the security considerations of the protocol or procedures that are the main topic of the RFC. This one is super important, so don't skip it ๐๐ญ
9. Author's Address Section ๐ก
Each RFC must have, at the very end, a section giving the author's address. That includes the name and postal address, the telephone number, the Internet e-mail address, and (optionally) a FAX number ๐ฎ๐
10. Relation to other RFCs โจ
Okay so sometimes a new RFC adds info on a topic from an older RFC, or it completely replaces one. There are two terms for that, and they're UPDATES and OBSOLETES ๐ . An OBSOLETES doc can stand on its own, bestie. An UPDATES doc can't stand alone ๐. It has to get added to or inserted into the existing doc, so it's got limited usefulness by itself. SUPERSEDES and REPLACES aren't used anymore, so don't reach for them ๐.
UPDATES ๐ธ
This is for referencing an older doc from a new item that can't be used alone (aka it supplements a previous doc). The newer publication is a part that supplements or gets added onto the existing doc. Think an addendum, or separate extra info that gets tacked onto the original ๐.
OBSOLETES ๐
This is for an earlier doc that gets replaced by this one. This doc has either revised info, or all the same info plus some new info (however extensive or brief that new info is). So this doc works alone, no need to go back to the older one ๐ฆ.
Here's the example from the original:
On the Assigned Numbers RFCs the term OBSOLETES should be used
since the new document actually incorporate new information
(however brief) into the text of existing information and is
more up-to-date than the older document, and hence, replaces it
and makes it OBSOLETE.
In lists of RFCs or the RFC-Index (but not on the RFCs themselves), these can be used with early docs to point to later ones ๐ง
OBSOLETED-BY ๐
Use this to point to the newer doc(s) that replace the older doc.
UPDATED-BY ๐
Use this to point to the newer section(s) that get added to the existing, still used, doc.
11. Protocol Standards Process ๐
Go check the current "Internet Official Protocol Standards" (STD 1) memo for the official word on protocol standards and how they get published [1] ๐ค.
Here's the procedure. When the IESG finishes work on a doc that's gonna become a standards track RFC, the message goes from the Secretary of the IESG to the RFC Editor. Usually the docs are Internet Drafts, and the message normally cites the exact Internet Draft by file name. The RFC Editor must assume that only that file is to be processed to become the RFC. If the authors have small corrections to the text, send them to the RFC Editor separately (or as a "diff"). Don't send a new version of the document, periodt ๐ .
12. Contact ๐
To reach the RFC Editor, send an email to "RFC-Editor@ISI.EDU" ๐ซถ.
13. Distribution Lists ๐ฌ
RFC announcements go out through two mailing lists, the "IETF-Announce" list and the "RFC-DIST" list. You don't want to be on both lists ๐.
To join (or quit) the IETF-Announce list, send a message to IETF-Request@cnri.reston.va.us.
To join (or quit) the RFC-DIST list, send a message to RFC-Request@NIC.DDN.MIL.
14. RFC Index ๐๏ธ
Several organizations keep RFC Index files, usually named "rfc-index.txt". A copy from one site might not match a copy from another site, so don't be shocked if they look different ๐.
15. Security Considerations ๐
Good news, bestie: this RFC raises no security issues (however, see Section 6) โจ.
16. References ๐
[1] Postel, J., "Internet Official Protocol Standards", STD 1, RFC
1540, Internet Architecture Board, October 1993.
17. Author's Address ๐
Jon Postel
USC/Information Sciences Institute
4676 Admiralty Way
Marina del Rey, CA 90292
Phone: 310-822-1511
Fax: 310-823-6714
EMail: Postel@ISI.EDU
18. Appendix - RFC "nroff macros" ๐ง
Okay, behind-the-scenes time. Generally, we use the very simplest nroff features, and we use the "ms" macros. So you run nroff -ms input-file > output-file. However, we couldn't get nroff to do the right thing about putting a form feed after the last visible line on a page, and about having no extra line feeds before the first visible line of the next page. We want this:
last visible line on page i
^L
first visible line on page i+1
So we invented some hacks to fix this. That includes a "sed" script called "fix.sh" and a "c" program we called "pg" (pg gets called from fix). So the command to process the file becomes nroff -ms input-file | fix.sh > output-file ๐.
Now, as to the nroff features we actually use, we'll append a sample memo, prepared in RFC style ๐.
The sed script fix.sh is:
sed -e 's/FORMFEED\[Page/ \[Page/' $* | pg -n5
The pg program is:
~~~Beginning of pg program~~~
/* $Header$
*
* Remove N lines following any line that contains a form feed (^L).
* (Why can't this be done with awk or sed?)
*
* OPTION:
* -n# Number of lines to delete following each ^L (0 default).
* $Log$
*/
#include <stdio.h>
#define FORM_FEED '\f'
#define OPTION "n:N:" /* for getopt() */
extern char *optarg;
extern int optind;
main(argc, argv)
int argc;
char *argv[];
{
int c, /* next input char */
nlines = 0; /* lines to delete after ^L */
void print_and_delete(); /* print line starting with ^L,
then delete N lines */
/* Process option (-nlines) */
while ((c = getopt(argc, argv, OPTION)) != EOF)
switch(c)
{
case 'n' :
case 'N' : nlines = atoi(optarg);
break;
}
/* READ AND PROCESS CHARS */
while ((c = getchar()) != EOF)
if (c == FORM_FEED)
print_and_delete(nlines); /* remove N lines after this one */
else
putchar(c); /* we write the form feed */
exit(0);
}
/* Print rest of line, then delete next N lines. */
void print_and_delete(n)
int n; /* nbr of lines to delete */
{
int c, /* next input char */
cntr = 0; /* count of deleted lines */
while ((c = getchar()) != '\n') /* finish current line */
putchar(c);
putchar('\n'); /* write the last CR */
putchar(FORM_FEED);
for ( ; cntr < n; cntr++)
while ((c = getchar()) != '\n')
if (c == EOF)
exit(0); /* exit on EOF */
putchar(c); /* write that last CR */
}
~~~End of pg program~~~
And here's the sample memo, macros and all, which is lowkey the most iconic thing in this whole doc ๐ญ๐ฅ:
.pl 10.0i
.po 0
.ll 7.2i
.lt 7.2i
.nr LL 7.2i
.nr LT 7.2i
.ds LF Waitzman
.ds RF FORMFEED[Page %]
.ds CF
.ds LH RFC 1149
.ds RH 1 April 1990
.ds CH IP Datagrams on Avian Carriers
.hy 0
.ad l
.in 0
Network Working Group D. Waitzman
Request for Comments: 1149 BBN STC
1 April 1990
.ce
A Standard for the Transmission of IP Datagrams on Avian Carriers
.ti 0
Status of this Memo
.fi
.in 3
This memo describes an experimental method for the encapsulation of IP
datagrams in avian carriers. This specification is primarily useful
in Metropolitan Area Networks. This is an experimental, not recommended
standard. Distribution of this memo is unlimited.
.ti 0
Overview and Rational
Avian carriers can provide high delay, low throughput, and low
altitude service. The connection topology is limited to a single
point-to-point path for each carrier, used with standard carriers, but
many carriers can be used without significant interference with each
other, outside of early spring. This is because of the 3D ether space
available to the carriers, in contrast to the 1D ether used by
IEEE802.3. The carriers have an intrinsic collision avoidance system,
which increases availability. Unlike some network technologies, such
as packet radio, communication is not limited to line-of-sight
distance. Connection oriented service is available in some cities,
usually based upon a central hub topology.
.ti 0
Frame Format
The IP datagram is printed, on a small scroll of paper, in
hexadecimal, with each octet separated by whitestuff and blackstuff.
The scroll of paper is wrapped around one leg of the avian carrier.
A band of duct tape is used to secure the datagram's edges. The
bandwidth is limited to the leg length. The MTU is variable, and
paradoxically, generally increases with increased carrier age. A
typical MTU is 256 milligrams. Some datagram padding may be needed.
Upon receipt, the duct tape is removed and the paper copy of the
datagram is optically scanned into a electronically transmittable
form.
.ti 0
Discussion
Multiple types of service can be provided with a prioritized pecking
order. An additional property is built-in worm detection and
eradication. Because IP only guarantees best effort delivery, loss of
a carrier can be tolerated. With time, the carriers are
self-regenerating. While broadcasting is not specified, storms can
cause data loss. There is persistent delivery retry, until the
carrier drops. Audit trails are automatically generated, and can
often be found on logs and cable trays.
.ti 0
Security Considerations
.in 3
Security is not generally a problem in normal operation, but special
measures must be taken (such as data encryption) when avian carriers
are used in a tactical environment.
.ti 0
Author's Address
.nf
David Waitzman
BBN Systems and Technologies Corporation
BBN Labs Division
10 Moulton Street
Cambridge, MA 02238
Phone: (617) 873-4323
EMail: dwaitzman@BBN.COM
๐ฆ where this page comes from
- ietf: rfc1543 1993-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms