收藏 分享(赏)

IP协议-RFC791 中文版.doc

上传人:HR专家 文档编号:11358009 上传时间:2020-04-03 格式:DOC 页数:11 大小:21.87KB
下载 相关 举报
IP协议-RFC791 中文版.doc_第1页
第1页 / 共11页
IP协议-RFC791 中文版.doc_第2页
第2页 / 共11页
IP协议-RFC791 中文版.doc_第3页
第3页 / 共11页
IP协议-RFC791 中文版.doc_第4页
第4页 / 共11页
IP协议-RFC791 中文版.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 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 Adm

2、iralty Way Marina del Rey, California 90291索引前言 . iii1. 介绍 - 11.1 动机 - 11.2 范围 - 11.3 接口 -11.4 操作 -22. 概述2.1 与其他协议的关系 - 9 2.2 操作模型 - 52.3 函数说明 - 72.4 网关 - 93. 规范3.1 网际(Internet)头部格式 - 113.2 讨论 - 233.3 接口 - 31附录 A: 例子 & 场景附录 B: 数据传输顺序词汇表 - 41引用 - - 45前言这个文档规定了 DoD 标准网际协议。这个文档基于早期六个版本的ARPA 网际协议规范所以本文的

3、大部分内容来自于他们。曾经有许多的人对本文中的概念方面和文本方面做出了贡献。这个版本修正了地址,错误处理,选项代码,还有安全性,优先级,分隔符,和处理网际协议的限制特性方面的概念1. 介绍1.1 动机网际协议被设计用于实现 互联系统的分组交换计算机交流网络。这样一个系统被称为“catenet”。 IP协议使得 发送方能够传送被称为数据报的数据块给接收方, 发送方和接收方各自拥有一个固定长度的地址。 IP协议还能够拆分和充足一个长的数据包,如果必要的话,对那些只能传送小包的网络1.2 范围IP协议在互联网上传输数据时若有必要提供了一个函数去拆分包的的字节。本协议中没有这样一种机制去保证端到端的数

4、据的可靠性,流控制,顺序性,或者其他的一些主机到主机的服务中常有的内容。1.3 接口这个协议被在互联网上主机到主机的协议所调用。这个协议要求本地网络设备将数据包带到下一个网关或是目标主机举例来说,TCP模型会让互连模型将自己的TCP段当作一个数据部分装入internet数据报钟。 TCP模型会提供地址和其他一些参数放入IP数据报的头部作为本次调用的参数。IP模型接下来会创建一个网络数据报然后请求本地网络接口去传输网络数据报。互联网模块将会调用本地网络模块,它将会添加一些控制信息到网络数据包中并然后创建一个ARPANET数据传送到分组交换机中。网络地址将会派生成ARPANET地址通过本地的网络接

5、口,这个地址可能是网关或则其他的网络3.3 接口这个对IP协议用户接口的描述,充其量最多是虚构的,因为每个操作系统都有不一样的设备。 因此,我们必须警告阅读本文档的你,不太能够的IP实现可能会有不一样的用户接口。 但是不管怎么样, 所有的类型的IP协议,都一定提供了一组确定的至少要提供的服务,来保证所有的IP实现都能够支持一样的协议栈。 这一节规范了一些功能性接口对所有的IP实现IP协议在协议栈中位于本地网络和一些高层协议之间。接下来, 高于IP协议的高层协议以及程序将被称为 user。 因为他们的实现需要IP协议的服务。因为 IP 协议是一个 数据报协议, 这里有数据报传输间保持着最小的内存

6、和状态。并且每次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

7、= length of buffer Id = Identifier DF = Dont Fragment opt = option data result = response OK = datagram sent ok Error = error in arguments or local network errorRECV(BufPTR,prot,= result, src,dst,TOS,len,opt)当user发送一个数据包的时候,它调用SEND并且提供全部的参数。IP协议模型,在接收这个调用,检查所有的参数并且准备发送信息。 如果参数都没有问题,那么数据报就会被本地的网络设备接受

8、,这次调用会返回成功。 否则,如果这个参数有问题,或者这个数据包没有被本地设备接收,就会返回失败。 对于不成功的时候,一个合理的报告必须被反馈回去来解释问题的原因,但是这个报告的细节就依赖于个人的实现了。当一个数据报从本地的网络设备达到IP层,这里要么有一个待定的RECV函数,要么没有。 第一种情况中,这个待定的函数接受来自数据报中包含的信息传递给用户。 第二种情况下,数据报指定的用户会被通知。 如果指定的用户不存在, 一个 ICMP 错误信息,就会被返回给发送者,这个数据会被丢弃对于对用户的通知可以是通过一个伪造的中断或者其他类似的机制,总之就是适合于特定操作系统的一个用户的RECV请求,

9、可能要么直接就被满足了,要么就是等待一段时间,知道指定过的数据包到达Src参数必须被包含进send函数中,以发送方拥有多个地址(多个物理连接或者逻辑地址)。IP层必须检查src参数是否是一个合法的地址对于本地主机来说本节在功能上描述了 USER/IP 接口。这些符号可以被大多数函数过程以相似的方式使用, 但是这种用法并不意味着排除陷阱调用,或者其他任何进程间的交流附录 A: 例子 & 场景例子1:这个例子中数据报包含最小量的数据 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+

10、-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 21 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time

11、 = 123 | Protocol = 1 | header checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-

12、+-+-+-+-+图5 上图所示,是一个IPv4的数据报。 这个数据报的头部由5个4字节组成,让你后整个数据包的长度是21个字节,但是这个数据包已经是一个保证的数据包了(不是数据报片段)。例子2:这个例子中,我们首次展示了一个中等大小的数据包(452字节),之后这个数据包可能会由于最大传输单元的限制,而被分割为2个数据包片段(这里最多允许280字节) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

13、-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 472 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 123 | Protocol = 6 | header checksum

14、 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

15、-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Datagram Figure 6.现在数据包将会被分割256字节,并产生第一个数据包片段。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-

16、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 276 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=1| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 119

17、 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-

18、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment Figure 7.然后是第二个片段 And the second fragment. 0 1 2 3 0 1 2 3 4 5

19、6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 216 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 32 | +-+-+-+

20、-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 119 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-

21、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment Figure 8.例子3:这个例子展示了一个包含

22、 Option 的数据包 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 8 |Type of Service| Total Length = 576 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=

23、0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 123 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destinat

24、ion address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Code = x | Opt. Len.= 3 | option value | Opt. Code = x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Len. = 4 | option value | Opt. Code = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

25、-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Code = y | Opt. Len. = 3 | option value | Opt. Code = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

26、-+-+-+-+-+-+-+ Example Internet Datagram Figure 9.附录B: 数据传输顺序这里描述的数据包中头部和数据部分的传输顺序精确到字节级别。 无论何时,一个图表展示一个字节组的传输顺序就是你阅读下来的正常的顺序。举例来说,下图中的所有字节都传输顺序都按照他们被标注的方式0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2

27、 | 3 | 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 5 | 6 | 7 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 9 | 10 | 11 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Transmission Order of Bytes Figure 10.每当一个字节表示一个数字时,图中最左边的位就是高位。 举例来说,下图代表数字 170(十进制) 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +-+-+-+-+-+-+-+-+ Significance of Bits Figure 11.同样的,每一个多字节域的最左边的位就是最有分量的位。 但一个多字节的域被传输的时候, 最左边的位也就是最高位是第一个被传输的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报