RFC:791
互联网协议
DARPA互联网程序
协议规范
1981.9
防御高级研究计划结构
信息处理技术办公室
1400 Wilson Boulevard
Arlington, Virginia 22209
南吉利福尼亚大学信息科研所
目录
前言 ........................................................ iii
1. 介绍 .................................................... 1
1.1 出发点.................................................... 1
1.2 范围......................................................... 1
1.3 接口 .................................................... 1
1.4 操作 ..................................................... 2
2. 总览 ......................................................... 5
2.1 同其他协议的联系 ................................... 9
2.2 操作模型 ............................................ 5
2.3 功能描述 .......................................... 7
2.4 网关 ...................................................... 9
3. 规范 ................................................... 11
3.1 Internet头部格式 ....................................... 11
3.2 讨论 .................................................. 23
3.3 接口 ................................................... 31
附录 A: 范例................................... 34
附录 B: 数据传输顺序................................ 39
词汇............................................................ 41
参考.......................................................... 45
[Page i]
前言
本文档详细说明叻国防部(DoD)的标准互联网协议.文档基于APRA互联网协议的前六个早期版本.很多人对规范的概念以及正文作出过贡献.这个版本对寻址(addressing),错误处理(error handling ),选项编码(option codes),以及互联网的安全(security)、优先(predence),划分(compartments)、处理限制的特性作出了修订。
Jon Postel
Editor
September 1981
Internet协议是为了在包交换(packet-switched)计算机通讯网络的互联系统中使用而设计的。我们称这样的系统为“catener”【1】。Internet协议提供从发起者(source)到目的地(destination)的块数据(数据报)的传输,发起者和目的地都是由固定长度的地址标识的主机(host)。如果需要,Internet协议也提供长数据报的分片(fragmentation)和重组(reassembly),以通过“小包”(small packet)网络传输大数据报。
internet协议仅限于提供在互联网络系统上从发起者到目的地投递一个internet数据报所需的功能。不提供增强端到端(end-to-end)的可靠性,流程控制(flow control),排序(sequencing),和其它主机到主机协议上常有的服务。internet协议可以支持网络提供不同类型和不同质量的服务(The internet protocol can capitalize
on the services of its supporting networks to provide various types and qualities of service.)。
在internet环境中,本协议被视为主机到主机(host-to-host)的协议。本协议调用本地网络协议来携带internet数据报到下一个网关或者目的主机。
比如,TCP模块调用internet模块携带一个TCP分片(该分片包含了TCP头部和用户数据)作为一个internet数据报的数据部分。TCP模块会在internet头部中提供地址(addresses)和其他参数作为调用Internet模块的参数。然后internet模块会创建一个internet数据报并且调用本地网络接口来传输internet数据报。
比如,对于ARPANET,internet模块会调用一个本地网络模块(local net module),该模块会给internet数据报添加一个1822个字节的前导字符,创建一条传输给IMP的ARPANET消息。ARPANET地址将通过本地网络接口从internet地址中获取,该地址是ARPANET中的某些主机的地址,该主机可能是个到其他网络的网关。
internet协议执行两个基本功能:寻址(addressing)和分片(fragmentation).
internet模块使用在internet头部中携带的地址来给目的地址传送internet数据报.传输路径的选择被称作选路(routing).
internet模块使用internet头部中的域来分片和重组internet数据报,这在通过"小包"网络传输的情况下是必要的.
操作模型是位于每个主机上的internet模块负责internet通信,位于每个网关上的internet模块负责网络互联.这些模块都具有解析地址,分片和重组数据报等相同的功能.另外,这些模块(特别是网关上的internet模块)具有选路和其他功能对应的程序.
internet协议将每个internet数据报视为同任何其他internet数据报无关的独立实体.这里不存在连接或者逻辑回路(虚的或其他).
internet协议使用4个主要的机制提供服务:服务类型(Type of Service),生存时间(Time to Live),操作(Operation)和校验和(Header Checksum).
服务类型用来指示要求的服务质量.服务类型是一个抽象的整套的参数,这些参数指定了组成internet的网络中提供的服务选择.这个服务指示类型在选路的时候被网关用来为某一个特定的网络,下一个网络或者下一个网关选择真实的传输参数.
生存时间数据报生存时间的上限.它由数据报的发送者设定,在网络上每个点,当数据报被处理的时候,逐渐递减.如果生存时间在internet数据报到达目的地址前达到0值,internet数据报就被销毁.生存时间可以看作一个自我销毁时间限制.
选项(options)提供了在某些情况下需要或有用的控制功能,但是大多数情况下是不必要的.选项包括时间戳(timestamp),安全(security)和特殊选路(special routing)
校验和提供了处理internet数据报使用到的信息被正确传输的确认.数据可能包含错误.如果校验和失败了,internet数据报就被检测到错误的实体立即丢弃.
Internet协议并没有提供可靠传输机制.没有端对端或者逐跳(hop-by-hop)的确认机制.没有数据的错误控制,只有一个头部校验和.没有重传.没有流控.
检测到的错误可以通过Internet 控制消息协议(ICMP)来报告,该协议在internet协议模块中实现.