文章

有趣的程序员

有趣的程序员

有趣的程序员

RFC(Request For Comments),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多在标准内的论题,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。

RFC最早是一系列的草案,起始于1969年。第一个RFC是当年4月7日发布的

阿帕沃基

阿帕沃基于1973年6月22日发布,内容就是一首吐槽arpanet的摇滚歌曲。

启动前一夜

启动前一夜于1985年十二月发布,内容是一首吐槽系统上前前一晚的歌,歌词滑稽且押韵。

超文本咖啡壶控制协议

咖啡壶控制协议时1998年4月1日发布的由IETF虚构的一种协议,RFC 2324

2014年4月1日发布的恶搞RFC 7168是此协议的扩展,正式支持茶壶。

HTTP 418 I’m a teapot

以鸟类为载体的网际协议

该协议标准发布与1990年4月1日,应用于城市之中。鸽子可以提供高延迟、低吞吐量的高空服务,实现点对点传输,可以覆盖以太网没有覆盖的地方,具有一定的防碰撞能力,还可以解除无线电通信技术距离和障碍物的限制。

信鸽协议

信鸽协议

数据格式采用十六进制,每8位一组,用黑色和白色打印在小卷纸上,卷起后使用胶带封装,缠在鸟类的一条腿上,传输数据容量由鸟腿长度决定,不同年龄的鸟能携带的数据容量不一样。

接收方接收后,取下纸卷,撕去胶带,将纸条用光学设备扫描成可以电子传输的形式。

提供鸽子蠕虫检测和根除,因为互联网协议只保证尽力而为的交付,所以允许鸽子服务提供商丢失鸽子。随着时间流逝,鸽子会生鸽子。风暴会导致鸽子无法飞行,但是我们由审计功能,可以在电线、桥架上找到鸽子。

丢包的情况

丢包

我们不提供数据加密服务,请自行对数据进行加密。

使用禽鸟的网络协议(附服务质量数据)

该协议是RFC 1149的更新版本

无限猴子协议

无限猴子协议描述了一个伟大的构想:无数只猴子坐在电脑前随机按下几个按钮,他们最终会写出莎士比亚全集,谁也说不准,万一这个壮举完成了,猴子们还能把莎士比亚全集翻译成各国语言。而我们只需要解决猴子们的睡眠和食物问题。

另外猴子们除了写出莎士比亚,还可能写出如何终结实际贫困、治愈疾病的文件。甚至还能写出一部非常受欢迎的情景喜剧。协议中还表示现在时机已经成熟,可以通过设计规范来实现这个伟大的目标,可以利用这个计划让世界更美好。

TELNET随机丢失选项

IPv9

TCP选项表示数据包心情

使用128位Unicode对IPv6进行国际化

RFC8369发布于2018年4月1日,该规范表示Unicode代码所能表示的码点将会耗尽,需要更多可以表示的码点,于是描述了未来表示码点将会是128位,未来可以利用128位的Unicode提高IPv6的采用率。

该RFC内容中还表示,目前Unicode的规范已经限制了最多只能设置1114112个码点,并且UTF-8/UTF-16/UTF-32这些编码已经给136755个字符分配了码点,还有更多的码点在审批中,每年还有很多文字、符号、emoji被添加进来,而且这些没有一个被删除。我们咨询了专业的数学家后,确定会在未来的某一天耗尽Unicode的所有码点。

虽然以目前的状况来看,因该还可以撑很多年,我们有很多时间来处理这个问题,但是Internet的历史表明,流行的数字空间不是线性填充,而是以指数级别增长。而且越晚处理越麻烦,所以赶快好吗!

另外我们这个文档不指定细节,细节是IETF、ISO、Unicode这些联盟和各种神之间去制定的。但是基于我们已经知道的,猜你们也认同下一个固定编码方案就是UTF-128.

IETF可以利用这次UTF-128编码来解决IPv6遗留的问题:没有多少标准化的地方了。

并且因为有了制定UTF-128编码的这个任务,IETF在未来几十年都有事可以做,这将带动全球的经济发展,政府收入也会增多,就会有更多的钱来用于解决全球变暖的问题,基于这个逻辑,RFC8369的最终目的就是为了减少全球变暖.

1
2
var mahjong = String.fromCharCode(55356, 56320) + String.fromCharCode(55356, 56321) + String.fromCharCode(55356, 56322) + String.fromCharCode(55356, 56323) + String.fromCharCode(55356, 56324) + String.fromCharCode(55356, 56325) + String.fromCharCode(55356, 56326) + String.fromCharCode(55356, 56327) + String.fromCharCode(55356, 56328) + String.fromCharCode(55356, 56329) + String.fromCharCode(55356, 56330) + String.fromCharCode(55356, 56331) + String.fromCharCode(55356, 56332) + String.fromCharCode(55356, 56333) + String.fromCharCode(55356, 56334) + String.fromCharCode(55356, 56335) + String.fromCharCode(55356, 56336) + String.fromCharCode(55356, 56337) + String.fromCharCode(55356, 56338) + String.fromCharCode(55356, 56339) + String.fromCharCode(55356, 56340) + String.fromCharCode(55356, 56341) + String.fromCharCode(55356, 56342) + String.fromCharCode(55356, 56343) + String.fromCharCode(55356, 56344) + String.fromCharCode(55356, 56345) + String.fromCharCode(55356, 56346) + String.fromCharCode(55356, 56347) + String.fromCharCode(55356, 56348) + String.fromCharCode(55356, 56349) + String.fromCharCode(55356, 56350) + String.fromCharCode(55356, 56351) + String.fromCharCode(55356, 56352) + String.fromCharCode(55356, 56353) + String.fromCharCode(55356, 56354) + String.fromCharCode(55356, 56355) + String.fromCharCode(55356, 56356) + String.fromCharCode(55356, 56357) + String.fromCharCode(55356, 56358) + String.fromCharCode(55356, 56359) + String.fromCharCode(55356, 56360) + String.fromCharCode(55356, 56361) + String.fromCharCode(55356, 56362) + String.fromCharCode(55356, 56363);
console.log(mahjong);

RFC 527 — ARPAWOCKY. R. Merryman, UCSD 1973年6月22日 A Lewis Carroll pastiche.

RFC 968 — Twas the night before start-up. V.G. Cerf 1985年12月1日

1978年:

RFC 748 — TELNET RANDOMLY-LOSE option. M.R. Crispin.

1989:

RFC 1097 — TELNET SUBLIMINAL-MESSAGE option. B. Miller.

1990:

RFC 1149 — 以鸟类为载体的网际协议(IP over Avian Carriers) D. Waitzman:由白鸽携带数据包。

  • RFC 2549 为其更新版,详细见下。
  • 2001年,RFC 1149由一班挪威Linux用户协会的成员实现了。他们发送了9个数据包到约5公里外的地方,每个数据包由不同的鸽子携带,并有一个ICMP应答要求数据包(ping)。他们收到4个回应,数据包流失率是55%,回应时间是3000至6000秒。[1]
  • RFC 6214 为其于IPv6上的应用。见下。

1991:

RFC 1216 — GB网络经济与范式转移 更穷的理查、Kynikos教授

RFC 1217 — Memo from the Consortium for Slow Commotion Research (CSCR) Vint Cerf

1992:

RFC 1313 — Today’s Programming for KRFC AM 1313 Internet Talk Radio. C. Partridge. Certain portions of this RFC are obsolete: Doppler shift while flying on the Concorde is no longer a problem.

1993:

RFC 1437 — The Extension of MIME Content-Types to a New Medium. N. Borenstein, M. Linimon.

RFC 1438 — 互联网工程工作小组(IETF)沉闷宣言(SOBs) A. Lyman Chapin, C. Huitema.

1994:

RFC 1605 — SONET转换至Sonnet的方法 威廉·莎士比亚

RFC 1606 — IPv9使用史 J. Onions

RFC 1607 — 来自21世纪的观点 Vint Cerf

1995:

RFC 1776 — 地址就是消息(The Address is the Message) Steve Crocker:没有内容,我们还需要信息安全吗?

1996:

RFC 1924 — A Compact Representation of IPv6 Addresses. R. Elz.

RFC 1925 — The Twelve Networking Truths. R. Callon.

RFC 1926 — An Experimental Encapsulation of IP Datagrams on Top of ATM. J. Eriksson.

RFC 1927 — Suggested Additional MIME Types for Associating Documents. C. Rogers.

1997:

RFC 2100 — 主机命名 J. Ashworth

1998:

RFC 2321 — RITA – 可信的互联网疑难解答代理. A. Bressen.

RFC 2322 — IP地址管理(使用peg-dhcp) K. van den Hout et al.

RFC 2323 — IETF识别和安全指引 A. Ramos

RFC 2324 — 超文本咖啡壶控制协议 (HTCPCP/1.0). L. Masinter

RFC 2325 — Definitions of Managed Objects for Drip-Type Heated Beverage Hardware Devices using SMIv2. M. Slavitch

1999:

RFC 2549 — 使用禽鸟的网络协议(附服务质量数据) D. Waitzman:此乃上面RFC 1149的更新版。

RFC 2550 — Y10K与其他 S. Glassman、M. Manasse、J. Mogul.

RFC 2551 — 罗马标准过程 – Revision IIIS. Bradner

2000:

RFC 2795 — 无限猴子协议组 (IMPS) S. Christey

2001:

RFC 3091 — 圆周率数字产生协议. H. Kennedy

RFC 3092 — “Foo”的字源学 D. Eastlake 3rd, C. Manros、埃里克·斯蒂芬·雷蒙

RFC 3093 — 防火墙加强协议 (FEP) M. Gaynor, S. Bradner

2002:

RFC 3251 — 电力发送(Electricity over IP, 参见Voice over IP) B. Rajagopalan.

RFC 3252 — Binary Lexical Octet Ad-hoc Transport. H. Kennedy.

2003:

RFC 3514 — The Security Flag in the IPv4 Header (Evil Bit). S. Bellovin.

2004:

RFC 3751 — 全知者协议的条件 S. Bradner

2005:

RFC 4041 — Requirements for Morality Sections in Routing Area Drafts. A. Farrel.

RFC 4042 — UTF-9和UTF-18 有效 Efficient Transformation Formats of Unicode. M. Crispin.

2007:

RFC 4824 — 使用旗语传递IP数据报 (SFSS)

2008:

RFC 5241 — Naming Rights in IETF Protocols, A. Falk

RFC 5242 — A Generalized Unified Character Code: Western European and CJK Sections, J. Klensin

2009:

RFC 5513 — IANA Considerations for Three Letter Acronyms, A. Farrel

RFC 5514 — IPv6架构上的社交网络 E. Vyncke

2010:

RFC 5841 — TCP数据包心情的选项 R. Hay, W. Turkal

2011:

RFC 5984 — Increasing Throughput in IP Networks with ESP-Based Forwarding: ESPBasedForwarding, K-M. Moller

RFC 6214 — RFC 1149在IPv6的应用 B. Carpenter, Univ. of Auckland

RFC 6217 — Regional Broadcast Using an Atmospheric Link Layer, T. Ritter

2012:

RFC 6592 — 发送空数据包, C. Pignataro

RFC 6593 — Service Undiscovery Using Hide-and-Go-Seek for the Domain Pseudonym System (DPS), C. Pignataro, J. Clarke, G. Salgueiro

2013:

RFC 6919 — Further Key Words for Use in RFCs to Indicate Requirement Levels, R. Barnes, S. Kent, E. Rescorla

RFC 6921 — Design Considerations for Faster-Than-Light (FTL) Communication, R. Hinden

2014:

RFC 7168 — The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA), I. Nazar

RFC 7169 — The NSA (No Secrecy Afforded) Certificate Extension, S. Turner

2015:

RFC 7511 — Scenic Routing for IPv6, M. Wilhelm

RFC 7514 — Really Explicit Congestion Notification (RECN), M. Luckie

2016:

此年4月1日未发布RFC。[2]

2017:

M. Danielson; M. Nilsson. Complex Addressing in IPv6. IETF. 1 April 2017. RFC 8135.

B. Carpenter. Additional Transition Functionality for IPv6. IETF. 1 April 2017. RFC 8136.

A. Farrel. The Arte of ASCII: Or, An True and Accurate Representation of an Menagerie of Thynges Fabulous and Wonderful in Ye Forme of Character. IETF. 1 April 2017. RFC 8140.

2018:

T. Mizrahi; J. Yallouz. Wrongful Termination of Internet Protocol (IP) Packets. IETF. 1 April 2018. RFC 8367.

H. Kaplan. Internationalizing IPv6 Using 128-Bit Unicode. IETF. 1 April 2018. RFC 8369.

2019:

E. Fokschaner. Hypertext Jeopardy Protocol (HTJP/1.0). IETF. 1 April 2019. RFC 8565.

E. Rye; R. Beverly. Customer Management DNS Resource Records. IETF. 1 April 2019. RFC 8567.

2020:

RFC 8771 国际化的故意不可读网络注释(I-DUNNO)

本文由作者按照 CC BY 4.0 进行授权