DieRequests for Comments (RFC;englisch für „Bitte um Kommentare“) sind eine Reihe technischer und organisatorischer Dokumente zumInternet (ursprünglichARPANET), die seit dem 7. April 1969 vomRFC-Editor herausgegeben werden. Handelte es sich ursprünglich um im Wortsinne zur Diskussion gestellte Dokumente, so findet die Diskussion heute während der Erstellung der Entwürfe statt. Somit handelt es sich bei einem veröffentlichten RFC in der Regel um eine begutachtetetechnische Spezifikation.[1]
Alle RFCs werden vor der Veröffentlichung einer Begutachtung unterzogen. Der Veröffentlichungsprozess und die darin vorgegebenen Anforderungen unterscheiden sich, je nachdem, ob einInternetstandard angestrebt wird oder nicht. Werdende Internetstandards müssen hohe Anforderungen erfüllen und einen Gemeinschaftskonsens derInternet Engineering Task Force (IETF) darstellen.
Alle eingereichten Entwürfe werden von der IETF unter der Bezeichnung „Internet-Draft“ (I-D) im Internet veröffentlicht. Internet-Drafts gelten als unfertig und sollen nicht als Referenz verwendet werden. Sie verfallen nach Ablauf von sechs Monaten (bleiben jedoch weiterhin online archiviert), es sei denn es wird eine neue Entwurfsversion eingereicht oder der Publikationsprozess angestoßen.
Neue RFCs gibt derRFC-Editor mit einer fortlaufenden Nummerierung alsASCII-Textdatei sowie in weiteren Dokumentenformaten heraus. Sobald ein RFC veröffentlicht ist, wird der Inhalt nie mehr verändert. Korrekturen von editoriellen oder technischen Fehlern werden alsErrata veröffentlicht; das fehlerhafte RFC bleibt jedoch unverändert bestehen. Soll eine veraltete Spezifikation abgelöst werden, so durchläuft die neue Spezifikation den üblichen Prozess und wird unter einer neuen RFC-Nummer veröffentlicht. Das neue Dokument referenziert das alte RFC und erklärt es für obsolet. Ein neues RFC kann auch nur einen Teilaspekt eines bestehenden RFCs aktualisieren oder ergänzen, ohne dabei das gesamte Dokument zu invalidieren.
Die Reihe BCP wurde 1995 für RFCs eingeführt, die technische Informationen oder administrative Vorgaben enthalten, die von der IETF gebilligt werden. Damit unterscheiden sich BCPs von rein informativen RFCs, zu denen die IETF keine Position bezieht. Die Veröffentlichung als Internetstandard scheidet hierbei aus, da es sich bei BCPs nicht umNetzwerkprotokolle handelt.[8]
For Your Information (FYI)
Die Reihe FYI wurde 1990 eingeführt, um informative RFCs einem breiten Publikum bekannt zu machen, das ausdrücklich auch Anfänger umfasst.[9] Die Reihe wurde 2011 eingestellt.[10]
EinzelneRARE Technical Reports (RTR) wurden auch als RFC veröffentlicht.[11]
Es gibt unterschiedliche Genehmigungsverfahren für RFCs, je nachdem woher das Dokument stammt. Ein solches Verfahren wird alsStream bezeichnet. RFC 4844 definiert die folgenden Streams:[12]
Das Dokument stammt von einem unabhängigen Beitragenden, der es direkt beim RFC-Editor einreicht. Es wird kein technischer Konsens innerhalb der IETF benötigt, wodurch eine Veröffentlichung als Internetstandard ausgeschlossen ist. RFC 4846[16] beschreibt das Verfahren.
Jedes RFC besitzt einen Dokumentenstatus, der im Gegensatz zum Inhalt nachträglich verändert werden kann.
Unknown (unbekannt)
Dem RFC ist kein Status zugeordnet. Dies trifft auf einige frühe RFCs zu.
Draft (Entwurf)
Kein RFC, da noch im Entwurfsstadium.
Informational (informativ)
Informatives Dokument jeglicher Art, beispielsweise Terminologie-Erklärungen, Nutzungshinweise, Problemstellungen oder neue Ideen. Vereinzelt kommen auch Antworten auf allgemeine Fragen oder Nachrufe vor.
Experimental (experimentell)
Protokollspezifikation, die als Teil eines Forschungs- oder Entwicklungsvorhaben entstand. Der Zweck ist es, innerhalb der Netzgemeinde weitere Erfahrung zu sammeln, um auf dieser Basis in der Zukunft ggf. einen Internetstandard zu entwerfen. Beispielsweise begann dasSender Policy Framework als experimentelles RFC 4408[17] und kam mit RFC 7208[18] in das Standardisierungsverfahren.
Best Current Practice (beste gegenwärtige Praxis)
Ein technisches Dokument, das durch Veröffentlichung in der Dokumentenreihe BCP einen verbindlichen Charakter erhält.
Proposed Standard (vorgeschlagener Standard), Draft Standard (Standardisierungsentwurf) und Internet Standard
Verschiedene Reifegrade einesInternetstandards.Proposed Standards sind Spezifikationen, die eine rigorose Begutachtung und Konsensfindung der entsprechenden IETF-Arbeitsgruppe durchlaufen haben.Draft Standard wird nicht länger als Status verwendet.[19]Internet Standards haben die höchste Reife und werden zusätzlich in der Dokumentenreihe STD veröffentlicht.
Historic (historisch) und Obsolete (überholt)
Veraltete Spezifikationen werden von der IESG alsHistoric gekennzeichnet, wenn ihre Verwendung nicht mehr empfohlen ist. Wird eine Spezifikation durch ein neues RFC abgelöst, wird hingegen der StatusObsolete verwendet. Letzteres hat den Zweck überholte Spezifikationen zu kennzeichnen, die aber weiterhin relevant sind, etwa weil sie noch verbreitet sind.
Die IETF und der RFC-Editor legen einen hohen Wert auf Formalismus:
Vorschläge für neue oder geänderte RFCs werden in allen Änderungen vor der formellen Veröffentlichung nachvollziehbar dokumentiert.
Ein einmal abschließend veröffentlichter RFC ist für immer öffentlich und fest. Er kann auch nicht korrigiert, sondern nur durch neuere RFCs abgelöst werden.
Die Struktur und der Stil eines RFCs sind durch RFC 7322 vorgegeben.[20]
RFC 2119[21] (BCP 14) legt die Terminologie von Anforderungen fest, die in ihrer Bedeutung klar definiert sind, um Missverständnisse in deren Interpretation zu vermeiden.
MUST undMUST NOT (äquivalent:SHALL undSHALL NOT) geben an, dass eine Anforderung zwingend eingehalten werden muss.
SHOULD undSHOULD NOT (äquivalent:RECOMMENDED undNOT RECOMMENDED) geben an, dass eine Anforderung empfohlen ist, aber in begründeten Fällen davon abgewichen werden kann.
MAY (äquivalent:OPTIONAL) gibt eine Option an, die im eigenen Ermessen des Herstellers umgesetzt werden kann.
Zeichenketten und ihre Zusammensetzung werden formalistisch mittels derBackus-Naur-Form (BNF) dargestellt. Dies sorgt für eine eindeutige Interpretation, hilfreich zum Beispiel beim Aufbau von URLs und URIs.
All diese Formalismen sorgen für die Vermeidung von Missverständnissen in der Interpretation und Implementierung und somit für den Erfolg beim Betrieb des Internets. Als Beispiele hierfür und gleichermaßen für ihren Erfolg seien RFC 2822[22] (E-Mail) sowie RFC 2616[23] (HTTP) genannt.
Zwischen den RFCs, die Internetstandards oder Best Current Practices beschreiben, finden sich auch immer wieder scherzhafte RFCs, die nicht buchstabengetreu genommen werden sollten, oft aus Anlass des1. April.
Das am 1. April 1996 veröffentlichte RFC 1925[24] listetThe Twelve Networking Truths auf, die mit dem fundamentalen GrundsatzIt Has To Work beginnen.
Als Parodie auf das Routing-ProtokollMPLS findet sich in RFC 3251[25] dasMostly Pointless Lamp Switching.
RFC 2795[26] beschäftigt sich mit demInfinite-Monkey-Theorem und beschreibt, wie eine unendliche Anzahl von Affen koordiniert werden kann, die die Werke von Shakespeare produzieren sollen.
Aber auch echte Kunstwerke lassen sich ausmachen, so zum Beispiel eine Lobeshymne auf dasARPANET (RFC 527[27]), Wissenschaftsgeschichte in Versform (RFC 1121[28]) oderThe Twelve Days of Christmas aus der Sicht eines gestressten Netzwerk-Admins (RFC 1882[29]).
Am 1. April 2003 wurde ein RFC (RFC 3514[31]) veröffentlicht, das dazu aufruft, beiIP-Paketen, die in irgendeiner Form „evil“ (böse) sind, ein entsprechendes Bit im Header zu setzen, um diese Pakete anFirewalls leichter ausfiltern zu können. Dies rührt daher, dass in IPv4-Headern ein Bit, das den „Type of Service“ angibt, normalerweise mit 0 gesetzt ist, von einigen modernen Anwendungen jedoch mit 1 gesetzt wird. Einige Firewalls verlassen sich darauf, dass dieses 0 ist, und stufen das Paket eben als böse ein, da es einen nicht-unterstützten Service-Typ darstellt.
Am 1. April 2004 wurde ein Allwissenheitsprotokoll entwickelt, das es der amerikanischen Regierung ermöglichen sollte, alle Formen der Computerkriminalität zu erkennen und zu verhindern (RFC 3751[32]). Nachdem sich die Anforderungen an dieses Protokoll als nicht durchführbar erwiesen hatten, endet der Text mit den Worten: „Good luck.“
Am 1. April 2005 wurde ein neuer Standard vorgestellt, welchermoralisch einwandfreiesRouting ermöglicht (RFC 4041[33]). Des Weiteren wurde das schon sehr in die Jahre gekommeneUTF-8, das8 Bit breite Einheiten verwendet, durch UTF-9 ersetzt, das 9 Bits (3 × 3) proByte erlaubt (RFC 4042[34]).
Am 1. April 2007 wurde eine Methode für die Übertragung von IP über dasWinkeralphabet vorgestellt (RFC 4824[35]).
Am 1. April 2010 wurde dasTransmission Control Protocol erweitert: Die Laune des übertragenen Segments kann durchEmoticons imHeader festgelegt werden. So kann ein Segment beispielsweise fröhlich oder frustriert sein (RFC 5841[36]).
Nicht immer jedoch bleibt es bei RFC zum 1. April bei der Theorie.So wurde am 6. März 2001 eine Implementierung des RFC 1149A Standard for theTransmission of IP Datagrams on Avian Carriers (die Übertragung von IP-Datagrammen perBrieftaube)[37] vorgestellt. Die durchschnittlicheAntwortzeit einesPings betrug jedoch 45 Minuten, sodass nicht mit einer regelmäßigen Nutzung im Echteinsatz zu rechnen sein wird. Allerdings führte dies zu einer Weiterentwicklung RFC 2549IP over Avian Carriers withQuality of Service,[38] aber auch dieser Einsatz ist unwahrscheinlich.
Der EditorEmacs enthält schon seit Jahren eine vollständige Implementierung von RFC 2324:[39]DasHyper Text Coffee Pot Control Protocol (HTCPCP) dient der Fernsteuerung und -überwachung von Kaffeemaschinen. Am 1. April 2014 wurde das Protokoll mit dem RFC 7168[40] um die Nutzung von Tee erweitert.