IP协议RFC791中文版.docx

上传人:b****5 文档编号:3347089 上传时间:2022-11-22 格式:DOCX 页数:9 大小:18.73KB
下载 相关 举报
IP协议RFC791中文版.docx_第1页
第1页 / 共9页
IP协议RFC791中文版.docx_第2页
第2页 / 共9页
IP协议RFC791中文版.docx_第3页
第3页 / 共9页
IP协议RFC791中文版.docx_第4页
第4页 / 共9页
IP协议RFC791中文版.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

IP协议RFC791中文版.docx

《IP协议RFC791中文版.docx》由会员分享,可在线阅读,更多相关《IP协议RFC791中文版.docx(9页珍藏版)》请在冰豆网上搜索。

IP协议RFC791中文版.docx

IP协议RFC791中文版

INTERNETPROTOCOL

DARPAINTERNETPROGRAM

PROTOCOLSPECIFICATION

September1981

preparedfor

DefenseAdvancedResearchProjectsAgency

InformationProcessingTechniquesOffice

1400WilsonBoulevard

Arlington,Virginia22209

by

InformationSciencesInstitute

UniversityofSouthernCalifornia

4676AdmiraltyWay

MarinadelRey,California90291

索引

前言........................................................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=sourceaddress

dst=destinationaddress

prot=protocol

TOS=typeofservice

TTL=timetolive

BufPTR=bufferpointer

len=lengthofbuffer

Id=Identifier

DF=Don'tFragment

opt=optiondata

result=response

OK=datagramsentok

Error=errorinargumentsorlocalnetworkerror

 

RECV(BufPTR,prot,=>result,src,dst,TOS,len,opt)

当user发送一个数据包的时候,它调用SEND并且提供全部的参数。

IP协议模型,在接收这个调用,检查所有的参数并且准备发送信息。

如果参数都没有问题,那么数据报就会被本地的网络设备接受,这次调用会返回成功。

否则,如果这个参数有问题,或者这个数据包没有被本地设备接收,就会返回失败。

对于不成功的时候,一个合理的报告必须被反馈回去来解释问题的原因,但是这个报告的细节就依赖于个人的实现了。

当一个数据报从本地的网络设备达到IP层,这里要么有一个待定的RECV函数,要么没有。

第一种情况中,这个待定的函数接受来自数据报中包含的信息传递给用户。

第二种情况下,数据报指定的用户会被通知。

如果指定的用户不存在,一个ICMP错误信息,就会被返回给发送者,这个数据会被丢弃

对于对用户的通知可以是通过一个伪造的中断或者其他类似的机制,总之就是适合于特定操作系统的

一个用户的RECV请求,可能要么直接就被满足了,要么就是等待一段时间,知道指定过的数据包到达

Src参数必须被包含进send函数中,以发送方拥有多个地址(多个物理连接或者逻辑地址)。

IP层必须检查src参数是否是一个合法的地址对于本地主机来说

本节在功能上描述了USER/IP接口。

这些符号可以被大多数函数过程以相似的方式使用,但是这种用法并不意味着排除陷阱调用,或者其他任何进程间的交流

附录A:

例子&场景

例子1:

这个例子中数据报包含最小量的数据

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver=4|IHL=5|TypeofService|TotalLength=21|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Identification=111|Flg=0|FragmentOffset=0|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Time=123|Protocol=1|headerchecksum|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|sourceaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|destinationaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+

图5

上图所示,是一个IPv4的数据报。

这个数据报的头部由5个4字节组成,让你后整个数据包的长度是21个字节,但是这个数据包已经是一个保证的数据包了(不是数据报片段)。

例子2:

这个例子中,我们首次展示了一个中等大小的数据包(452字节),

之后这个数据包可能会由于最大传输单元的限制,而被分割为2个数据包片段(这里最多允许280字节)

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver=4|IHL=5|TypeofService|TotalLength=472|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Identification=111|Flg=0|FragmentOffset=0|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Time=123|Protocol=6|headerchecksum|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|sourceaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|destinationaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

\\

\\

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ExampleInternetDatagram

Figure6.

现在数据包将会被分割256字节,并产生第一个数据包片段。

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver=4|IHL=5|TypeofService|TotalLength=276|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Identification=111|Flg=1|FragmentOffset=0|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Time=119|Protocol=6|HeaderChecksum|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|sourceaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|destinationaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

\\

\\

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ExampleInternetFragment

Figure7.

然后是第二个片段

Andthesecondfragment.

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver=4|IHL=5|TypeofService|TotalLength=216|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Identification=111|Flg=0|FragmentOffset=32|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Time=119|Protocol=6|HeaderChecksum|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|sourceaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|destinationaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

\\

\\

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ExampleInternetFragment

Figure8.

例子3:

这个例子展示了一个包含Option的数据包

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver=4|IHL=8|TypeofService|TotalLength=576|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Identification=111|Flg=0|FragmentOffset=0|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Time=123|Protocol=6|HeaderChecksum|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|sourceaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|destinationaddress|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Opt.Code=x|Opt.Len.=3|optionvalue|Opt.Code=x|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Opt.Len.=4|optionvalue|Opt.Code=1|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Opt.Code=y|Opt.Len.=3|optionvalue|Opt.Code=0|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

\\

\\

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|data|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ExampleInternetDatagram

Figure9.

附录B:

数据传输顺序

这里描述的数据包中头部和数据部分的传输顺序精确到字节级别。

无论何时,一个图表展示一个字节组的传输顺序就是你阅读下来的正常的顺序。

举例来说,下图中的所有字节都传输顺序都按照他们被标注的方式

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|1|2|3|4|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|5|6|7|8|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|9|10|11|12|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TransmissionOrderofBytes

Figure10.

每当一个字节表示一个数字时,图中最左边的位就是高位。

举例来说,下图代表数字170(十进制)

01234567

+-+-+-+-+-+-+-+-+

|10101010|

+-+-+-+-+-+-+-+-+

SignificanceofBits

Figure11.

同样的,每一个多字节域的最左边的位就是最有分量的位。

但一个多字节的域被传输的时候,最左边的位也就是最高位是第一个被传输的

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1