您的位置:首页 > 其它

后继路由和可行距离

2011-06-08 10:41 344 查看


IP报头最长为60字节,最小为20字节,IP数据报最大为65535字节。

1 版本字段长度为4,用来表明建立数据报的IP版本,目前的IP版本是IPv4,IPv6正在发展中。IPv4的字段为0100 二进制0100等于十进制4.

2 首部长度(报头长度)指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。4bit二进制最大1111为15,15个32bit段,因此IP报头最大长度为15x32bit/8=60字节.

IP首部始终是32 bit的整数倍.IP数据报报头的最小长度为20个字(不含填充字段和IP选项字段的IP报头是最常见的IP报头,为20个字节)
前5个32bit段,到目的IP地址为止,共32bit x 5=160bit/8=20字节。

3 服务类型TOS,服务类型字段长度为8比特,用于指定数据报所要求的服务质量(TOS)。

4 总长度字段是指整个I P数据报的长度,以字节为单位.由于该字段长1 6比特,所以I P数据报最长可达66535字节.
(16位二进制全为1数值为65535,因此IP数据报总长为65535字节。)

总长度字段是I P首部中必要的内容。数据长度=总长-报头长度。

5 标识符长16比特,每个数据报都必须由惟一的标识符来标识,以便使接收主机能重装被分段的数据报。

6 标志位长度为3比特。用于分段控制:第0位为预留位。
第1位表示可否分段。当该位的值为0时,表示数据报不可分段,值为1时,表示数据报可被分段。
(请注意:2007/8/15 注:感谢网友daerba的回复,现将RFC791关于此段的描述贴于此:

Flags: 3 bits

Various Control Flags.

Bit 0: reserved, must be zero

Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment.

Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.

0 1 2

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

| | D | M |

| 0 | F | F |

+---+---+---+
也就是:第1位为0时为可分段、为1时为不可分段.非常抱歉,呵呵,不过我也是对着资料写的,为了避免引起误导,特此说明,有时间会再验证还有没有出入。

 
  RFC791  http://www.ietf.org/rfc/rfc0791.txt?number=791 请过往网友查证 )

第2位为段是否结束位,当该位的值为0时,表示该段是原数据报的最后一段,值为1时,表示后面还有更多的分段。

当网络设备要发送的数据报长度比所在网络的最大传输单元MTU大,并且标志位的第1位设置为不能分段(1)时,网络设备会向发送方返回一个因特网控制消息协议ICMP错误消息,并丢弃该数据报。除了最后一个分段外,其余分段的第2位均设置为1。

7 段偏移13比特长度,用于指定分段在原始数据报中的位置,以8个字节为单位进行计数,表示该段数据在原始数据报数据区中的偏移量。

8 生存时间TTL长度为8比特,用于指定数据报允许保留在网络上的时间。

9 协议字段长度为8比特,用于指定数据报数据区中携带的消息是由哪种高级协议建立的。协议号分配RFC790.

ICMP为1

TCP为6
UDP为17

10 报头校验和16比特,仅用于IP报头校验和。

11 源IP地址及目的IP地址,长度为32比特,用于指定发送者和所期望的接收者的IP地址。在数据包通过网络传输的过程中基值不会发生变化。

12 选项,填充字段用于确保将选项字段填充为最少32个比特位,以保证IP报头以32位结束。

13 填充位:包含填充信息以确保报头是32位的倍数,该域的大小可变。(上图已经包含在选项中)

14 数据 包括了由源结点发送的原始数据,外加TCP信息。

分段:分段是将一个大的IP数据报分解成几个较小的数据报段的过程。当IP模块需要通过一个具有较小MTU的网络传送较大的数据包时,就必须将其分段。
IP协议是一种不可靠的、无连接的协议,即意味着它不保证数据的可靠传输。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: