INTERNET PROTOCOL
DARPA INTERNET PROGRAM
PROTOCOL SPECIFICATION
September 1981
prepared for
Defense Advanced Research Projects Agency Information Processing Techniques Office
1400 Wilson Boulevard
Arlington, Virginia 22209
by
Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, California 90291
索引
前言 (iii)
1.介绍------------------- 1
1.1 ~动机----------------- 1
1.2 ~范围----------------- 1
1.3 接口------------------1
1.4 操作-------------------2
2. 概述
2.1 与其他协议的关系----------------- 9
2.2 操作模型------------------ 5
2.3 函数说明----------------- 7
2.4 ~网关----------------------- 9
3. 规范
3.1 ~网际(Internet)头部格式---------------------- 11
3.2 讨论----------------- 23
3.3 接口------------------ 31
附录A:例子& 场景
附录B:数据传输顺序
词汇表--------------------- 41
引用---------- --------- 45
前言
这个文档规定了DoD 标准网际协议。
这个文档基于早期六个版本的ARPA 网际协议规范
所以本文的大部分内容来自于他们。
曾经有许多的人对本文中的概念方面和文本方面做出了贡献。
这个版本修正了地址,错误处理,选项代码,还有安全性,优先级,分隔符,和处理网际协议的限制特性方面的概念
1.介绍
1.1动机
网际协议被设计用于实现互联系统的分组交换计算机交流网络。
这样一个系统被称为“catenet”。IP协议使得发送方能够传送被称为数据报的数据块给接收方,发送方和接收方各自拥有一个固定长度的地址。IP协议还能够拆分和充足一个长的数据包,如果必要的话,对那些只能传送小包的网络
1.2 范围
IP协议在互联网上传输数据时若有必要提供了一个函数去拆分包的的字节。
本协议中没有这样一种机制去保证端到端的数据的可靠性,流控制,顺序性,或者其他的一些主机到主机的服务中常有的内容。
1.3接口
这个协议被在互联网上主机到主机的协议所调用。这个协议要求本地网络设备将数据包带到下一个网关或是目标主机
举例来说,TCP模型会让互连模型将自己的TCP段当作一个数据部分装入internet数据报钟。TCP模型会提供地址和其他一些参数放入IP数据报的头部作为本次调用的参数。
IP模型接下来会创建一个网络数据报然后请求本地网络接口去传输网络数据报。
互联网模块将会调用本地网络模块,它将会添加一些控制信息到网络数据包中并然后创建一个ARPANET数据传送到分组交换机中。网络地址将会派生成ARPANET地址通过本地的网络接口,这个地址可能是网关或则其他的网络
3.3 接口
这个对IP协议用户接口的描述,充其量最多是虚构的,因为每个操作系统都有不一样的设备。因此,,我们必须警告阅读本文档的你,不太能够的IP实现可能会有不一样的用户接口。但是不管怎么样,所有的类型的IP协议,都一定提供了一组确定的至少要提供的服务,来保证所有的IP实现都能够支持一样的协议栈。这一节规范了一些功能性接口对所有的IP实现
IP协议在协议栈中位于本地网络和一些高层协议之间。
接下来,高于IP协议的高层协议以及程序将被称为user。因为他们的实现需要IP协议的服务。
因为IP 协议是一个数据报协议,这里有数据报传输间保持着最小的内存和状态。
并且每次user使用IP模型都必须提供必要的全部信息来让IP协议去执行要求的服务一个面向高层的接口例子:
接下来的两个例子对于IP协议的调用均满足user的要求
(”=>” 表示返回)
SEND (src, dst, prot, TOS, TTL, BufPTR, len, Id, DF, opt => result)
where:
src = source address
dst = destination address
prot = protocol
TOS = type of service
TTL = time to live
BufPTR = buffer pointer
len = length of buffer
Id = Identifier
DF = Don't Fragment
opt = option data
result = response
OK = datagram sent ok
Error = error in arguments or local network error
RECV(BufPTR,prot,=> result, src,dst,TOS,len,opt)