不同网络需要共同的信封

1981年9月发布的RFC 791规定了互联网协议(Internet Protocol,IP)的第四版格式与行为。文件由南加利福尼亚大学信息科学研究所为美国国防高级研究计划局(DARPA)的互联网计划编制,乔恩·波斯特尔担任编辑。它修订此前多版规范,并不是在这个月才突然提出互联网络的全部思想。

研究面对的实际环境包括阿帕网、分组无线电网和卫星网络:它们的帧格式、寻址办法和可承载的分组大小并不一致。IP让端系统把数据装入一种共同的数据报,再交给各段网络运送。跨网设备在当时文献中常称网关,它们从本地网络封装中取出数据报,决定下一段去向,再装进下一种网络能够传送的形式。

参考:[1] [4]

首部告诉设备如何处理

RFC 791的首部以版本号开头,随后用首部长度字段说明数据从哪里开始;没有选项时首部通常为二十字节。总长度字段涵盖首部与数据,源地址和目的地址各占三十二位。地址帮助网络层选择交付方向,却不是人的姓名,也不保证能够直接对应某一台永久不变的物理设备。

协议字段说明数据部分应交给哪一种上层协议,因而同一IP网络可以承载不同传输服务。生存时间字段限制数据报滞留:原文以秒表述,并要求每次处理至少减一,防止无法交付的分组无限循环。首部校验和只检查首部,相关字段改变后要重新计算;它既不验证整个应用内容,也不是防止恶意篡改的密码认证。

参考:[1]

大数据报怎样通过小网络

跨越网络时,下一段能够接受的最大分组可能更小。RFC 791允许在必要时把数据报分片,除非发送方设置禁止分片标志。每一片都带有IP首部,并用标识、源与目的地址及协议等信息表明自己属于哪一份原始数据;分片偏移说明数据在原文中的位置,“还有分片”标志帮助接收端判断是否到达末尾。

偏移以八字节为单位,因此除最后一片外,片中数据的长度需要按这一单位安排。例如,若某链路最多容纳一千五百字节,且每片首部为二十字节,那么一片最多承载一千四百八十字节数据。目的主机负责重组;中途网关不必先收齐所有片才继续转发。分片解决大小不一致,却增加首部开销和重组负担,丢失一片也可能使整份数据无法交付。

参考:[1]

尽力交付与可靠传输分工

IP把每个数据报作为独立对象处理,并不建立一条保证顺序和必达的连接。网关会作路由选择,但RFC 791没有规定所有网络必须采用同一种路由算法。拥塞、线路失效或生存时间耗尽都可能造成丢弃。发送端收到某些控制差错信息,也不等于每一个失败都能够被完整报告。

同月的RFC 793另行规定传输控制协议(Transmission Control Protocol,TCP),通过序号、确认、重传和窗口等机制,为应用提供有序字节流。TCP报文段可以作为IP数据报的内容,而IP无需理解一段数据是邮件还是文件。分层把互联所必需的共同功能保持在较小范围,也让不同应用可以根据需要选择传输方式,可靠性责任不会因套上IP首部而自动消失。

参考:[1] [2]

文档发布之后才有全面迁移

1981年11月的RFC 801把规范转成迁移安排:各主机组织要实现IP和TCP,还必须让远程登录、文件传输、邮件等主要服务在新协议上运行。旧网络控制程序(NCP)环境与新环境不能一次同时切换,因此计划设置双协议主机及中继服务,帮助不同阶段的用户保持通信。这里涉及操作系统、服务程序和管理工作,远多于更换首部格式。

该计划以1983年1月为完成转换的目标,通常所说的阿帕网1983年切换属于后续采用事件,不能拿来替代RFC 791的1981年9月出版日期。文档也没有在发布时建成后来整个公共互联网。其长期影响在于确立共同而有限的网络层约定:各网络保留自己的技术,主机和网关却能够围绕一致的数据报格式协同,把局部连接组织成跨网通信。

参考:[3]