IP协议-RFC791 中文版.doc_第1页
IP协议-RFC791 中文版.doc_第2页
IP协议-RFC791 中文版.doc_第3页
IP协议-RFC791 中文版.doc_第4页
IP协议-RFC791 中文版.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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索引前言 . 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 网际协议规范所以本文的大部分内容来自于他们。曾经有许多的人对本文中的概念方面和文本方面做出了贡献。这个版本修正了地址,错误处理,选项代码,还有安全性,优先级,分隔符,和处理网际协议的限制特性方面的概念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 = 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协议模型,在接收这个调用,检查所有的参数并且准备发送信息。 如果参数都没有问题,那么数据报就会被本地的网络设备接受,这次调用会返回成功。 否则,如果这个参数有问题,或者这个数据包没有被本地设备接收,就会返回失败。 对于不成功的时候,一个合理的报告必须被反馈回去来解释问题的原因,但是这个报告的细节就依赖于个人的实现了。当一个数据报从本地的网络设备达到IP层,这里要么有一个待定的RECV函数,要么没有。 第一种情况中,这个待定的函数接受来自数据报中包含的信息传递给用户。 第二种情况下,数据报指定的用户会被通知。 如果指定的用户不存在, 一个 ICMP 错误信息,就会被返回给发送者,这个数据会被丢弃对于对用户的通知可以是通过一个伪造的中断或者其他类似的机制,总之就是适合于特定操作系统的一个用户的RECV请求, 可能要么直接就被满足了,要么就是等待一段时间,知道指定过的数据包到达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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 21 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 123 | Protocol = 1 | header checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+图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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 472 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 123 | Protocol = 6 | header checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver= 4 |IHL= 5 |Type of Service| Total Length = 276 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=1| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 119 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment Figure 7.然后是第二个片段 And the second fragment. 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= 5 |Type of Service| Total Length = 216 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification = 111 |Flg=0| Fragment Offset = 32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 119 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment Figure 8.例子3:这个例子展示了一个包含 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=0| Fragment Offset = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time = 123 | Protocol = 6 | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | source address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | destination address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Code = x | Opt. Len.= 3 | option value | Opt. Code = x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Len. = 4 | option value | Opt. Code = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt. Code = y | Opt. Len. = 3 | option value | Opt. Code = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论