Internet协议(Internet Protocol)2

06-05-17

Permalink 23:52:44, 分类: 业余

Internet协议(Internet Protocol)2

 3. 说明

  3.1. Internet包头格式

  包头格式如下:



  版本:4位

  此域标明包头的格式。我们现在说明的是IP版本4。

  IHL:4位

  Internet包头长度是以32位为单位标记的包头长度,它指向数据的开始位置,这个域的最小合法值为5。

  服务类型:8位

  它是一些指示服务质量的参数,这些参数用于在特定网络指示所需要的服务。有些网络会提供优先级服务。选择的基本原则是以下三者的权衡:低延时,高可靠和高吞吐量。

  0-2: 优先级

  3: 0 = 通常延时 1 = 低延时

  4: 0 = 通常吞吐量 1 = 高吞吐量

  5: 0 = 通常可靠性 1 = 高可靠性

  6-7: 保留



  优先级的说明如下:

  111 - Network Control

  110 - Internetwork Control

  101 - CRITIC/ECP

  100 - Flash Override

  011 - Flash

  010 - Immediate

  001 - Priority

  000 - Routine

  如果使用了延时(D),吞吐量(T)和可靠性(R)选项可以增加服务质量。这因各个网络不同而不同,没有通用性。除了非常特殊的情况外,最多设置两个参数就够了。服务类型是用来指示如何对待在网络中传送的数据报。网络控制优先级原来是用于一个网络中的,而实际中却应用于每个网络了。互联控制是用于网关控制的。如果只在一个网络中实现了这些参数,那个网络必须在自己的范围之内控制对它们的访问。

  总长度:16位

  总长度指的是数据报的长度,由字节计,包括数据和报头。允许数据报的大小为64K。这么大的数据报对大多数主机和网络来说是不适用的。但是,所有主机必须能够接收大于576字节的数据报,无论它们是一起来,还是分段来。如果知道对方主机能够接收大于576字节的数据报,最好在发送时不要发送小于576字节的数据报。选择576是因为576=512(数据)+64(报头)。报头最长不超过60字节,通常为20字节。

  标识:16位

  标记是发送用于帮助重组分段的包的。

  标记:3位

  0: 保留,必须为0

  1: (DF) 0 = 可分段,1 = 不可分段

  Bit 2: (MF) 0 = 最后一段,1 = 还有多段

  0
  1
  2

  0
  D
  F
  M
  F


  

  段偏移:13位

  此域指示这个段在应该在数据报中什么位置,它以64位为单位计算,首段的偏移为零。

  生存期:8位

  此域说明数据报在互联网系统生存的最大时间。如果此域的值为零,抛弃此数据报。在处理报头的同时也处理此域。时间以秒计,但每个处理单元都至少会对TTL减一,即使时间小于一秒。

  协议:8位

  此域指示用于数据报数据部分的下一层协议。

  头校验码:16位

  校验码只在头部,因此头域会在处理时改变,因此头会经常改变。这种校验方法比较容易计算,实验证明它也是适用的,但它可能在未来被CRC校验过程取代。

  源地址和目的地址:32位,具体情况请看下文。

  选项:长度不定

  在数据报中可以有选项也可以没有,但IP模块中必须有处理选项的功能。有些情况下,安全选项是必须的。它的长度不定,可以没有也可以是多个。选项有两种格式:

  1: 单独一个选项类型字节

  2: 一个选项类型字节,一个选项长度字节和实际选项数据字节

  选项长度是选项类型,长度本身和数据的长度。选项类型可被看作有3个域:

  1位 复制标记

  2位 选项类

  5位 选项号

  复制标记指这个选项要在分段是要存在于所有段中。

  0 = 不复制

  1 = 复制

  选项类有:

  0 = 控制

  1 = 保留

  2 = 调度和测量

  3 = 保留

  下面是具体选项:

  

  CLASS
  NUMBER
  LENGTH
  DESCRIPTION

  0
  0
  -
  选项表结束。只占一个字节,没有长度字节

  0
  1
  -
  无操作。只占一个字节,没有长度字节

  0
  2
  11
  安全,用于传送安全,Compartmentation,用户组(TCC)和DOD规则兼容的处理限制码

  0
  3
  变长
  松源地址路由,使用源地址提供的信息进行路由

  0
  9
  变长
  紧源地址路由,使用源地址提供的信息进行路由

  0
  7
  变长
  记录路由,用于跟踪数据报采用的路由

  0
  8
  4
  流ID,用于传送流标记

  2
  4
  变长
  Internet时间戳


  

  特定选项定义

  选项表结束

  +--------+

  |00000000|

  +--------+

  Type=0

  此选项指示选项表的结束,它不一定和报头结束点一致,它用于指示选项表的结束而不是每个选项的结束,只有当选项表结束位置和报头结束位置不一致时使用。它可以被复制,引入或在分段时删除。

  无操作

  +--------+

  |00000001|

  +--------+

  Type=1

  此选项可被用于选项间,它可以被复制,引入或在分段时删除。

  安全

  此选项提供主机一种发送安全,compartmentation,处理限制和TCC参数的方法。此选项的格式如下:



  类型=130 长度=11

  安全(S域):16位

  安全共分16级,8级保留。

  00000000 00000000 - 未分类的

  11110001 00110101 - 机密

  01111000 10011010 - EFTO

  10111100 01001101 - MMMM

  01011110 00100110 - PROG

  10101111 00010011 - 限制的

  11010111 10001000 - 秘密

  01101011 11000101 - 绝对机密

  00110101 11100010 - 保留

  10011010 11110001 - 保留

  01001101 01111000 - 保留

  00100100 10111101 - 保留

  00010011 01011110 - 保留

  10001001 10101111 - 保留

  11000100 11010110 - 保留

  11100010 01101011 - 保留

  Compartments(C域):16位

  全0代表传送的信息是非compartment的。

  处理限制(H域):16位

  控制值和版本标记是由字母和数字组成的,具体说明请参阅其它资料。

  传输控制码(TCC域):24位

  提供控制流量的方法。TCC的值为三字母词,在HQ DCA Code 530中有说明。在分段时必须复制它。

  松源地址和记录路由

  +--------+--------+--------+---------//--------+

  |10000011| length | pointer| route data |

  +--------+--------+--------+---------//--------+

  Type=131

  松源地址和记录路由(LSRR)可以由源地址提供路由信息,并记录路由信息。这个选项以选项类型码开始。第二位是选项长度,第三位是一个指针,指向路由数据中下一个要被处理的源地址,它的最小值为4。路由数据是由一系列地址组成的,每个地址是32位。如果指针大于长度,源路由为空(记录的路由满),路由要根据目的地址域进行。

  如果目的地址已经达到,而指针未大于长度,源路由中的下一地址代替目的地址域中的地址,同时记录的路由地址代替则使用过的源地址,将指针加4。这一以记录的路由替换源路由的过程意味着选项(和IP头一起作为一个整体)数据报在网络中经过处理后保持一个固定长度。它称之为松源地址路由是因为网关或主机IP在达到路由的下一个地址时可以使用多个中间网关。它在分段时必须复制。

  紧源地址和记录路由

  +--------+--------+--------+---------//--------+

  |10001001| length | pointer| route data |

  +--------+--------+--------+---------//--------+

  Type=137

  紧源地址和记录路由(SSRR)选项可以由源地址提供路由信息,并记录路由信息。这个选项以选项类型码开始。第二位是选项长度,第三位是一个指针,指向路由数据中下一个要被处理的源地址,它的最小值为4。路由数据是由一系列地址组成的,每个地址是32位。如果指针大于长度,源路由为空(记录的路由满),路由要根据目的地址域进行。

  如果目的地址已经达到,而指针未大于长度,源路由中的下一地址代替目的地址域中的地址,同时记录的路由地址代替则使用过的源地址,将指针加4。这一以记录的路由替换源路由的过程意味着选项(和IP头一起作为一个整体)数据报在网络中经过处理后保持一个固定长度。它称之为紧源地址路由是因为网关或主机IP在达到路由的下一个地址时不可以使用中间网关。它在分段时必须复制。

  记录路由

  +--------+--------+--------+---------//--------+

  |00000111| length | pointer| route data |

  +--------+--------+--------+---------//--------+

  Type=7

  此选项提供了记录数据报路由的方法。这个选项以选项类型码开始。第二位是选项长度,第三位是一个指针,指向路由数据中下一个要被处理的源地址,它的最小值为4。记录的路由是由一系列IP地址构成的,每个IP地址是32位。如果指针大于长度,记录路由数据域已满。源主机必须为这一选项分配足够大的空间。空间分定后不会因为加入地址而增加。初始内容必须为0。

  当IP模块处理数据报时,它检查是否有记录路由选项,如果有,它将自己的IP地址放入记录路由地址空间,指针值加4。如果地址空间已满,模块不会把自己的IP地址加入了;如果空间未满,可是不够整个地址加入,模块会认为源数据报出错并抛弃它。上面两种情况下,ICMP参数信息消息会发送到源主机。在分段时不复制,而仅仅存在于第一个段。

  流标记

  

  10001000

  00000010

  流ID

  类型=136 长度=4

  此选项提供一种在不支持流的网络中传送16位SATNET流标记的方法。分段时必须复制。

  Internet时间戳

  01000100
  长度
  指针
  oflw标记

  IP地址

  时间戳

  ......


  类型=68

  选项长度是在选项内的类型,长度,指针和溢出/标记字节的大小。指针是从选项开始到时间戳结束的字节数加一。最小值为5。当指针大于长度时时间戳域满。溢出(oflw)(大小为4位)是IP模块号,这个模块因缺省空间而不能注册时间戳。它的值分别为:

  0 -- 仅有时间戳,保存于连续的32位字中;

  1 -- 每个时间戳前都有注册单元的IP地址;

  3 -- IP地址域是预先指定的,如果IP模块的地址和下一个指定的IP地址一致,则注册自己的时间戳。

  时间戳是从UT午夜时间开始以毫秒计算的,如果时间不以毫秒计算,或不能提供以UT午夜为基准,那用什么时间倒都可以,只要时间戳的最高位设置为1,表示这不是一个标准值就行了。源主机必须为这一选项分配足够大的空间。空间分定后不会因为加入地址而增加。初值必须为零或IP地址/零这样的偶对。如果空间已满,模块在传送数据报时不加入时间戳,但溢出计数仍然加一。

  如果剩余的空间不能使完全的时间戳加入,或溢出计数溢出,源数据报出错并被抛弃。ICMP参数信息消息会发送到源主机。此选项在分段时不复制,仅在第一段出现。

  填充:变长

  报头域填充用于保证报头是32位的倍数。填充值为0。

这个帖子的Trackback地址

http://blog.westca.com/htsrv/trackback.php/70310

评论, Trackbacks, Pingbacks:

此贴还没有 评论/Trackbacks/Pingbacks

发表评论:


您的邮件地址将不会显示在这个网站上

您的网址将被显示

允许的xhtml标记: <a, strong, em, b, i, del, ins, dfn, code, q, samp, kdb, var, cite, abbr, acronym, sub, sup, dl, ul, ol, li, p, br, bdo, dt, dd>
链接、邮件地址、即时通信帐号将被自动转化。
安全校验码
选项:
(换行变成了 <br />)
(设置Cookie以记住名字,邮件地址和网址)

计算机(8)

统计

搜索

分类


最新评论

最新留言 [更多留言]

我要留言:

选择一个布景主题

杂项

友情链接

北美中文网

引用这个博客系统 XML

北美中文网 版权所有 2004-2008 | 苏ICP备08004803号