注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 IB客座主编(四)美国西蒙公..
 帮助

IP数据报格式


2007-07-26 21:38:17
 标签:IP 协议   [推送到技术圈]

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

首部长度(报头长度)指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。15x32/8=60字节.IP首部始终是32 bit的整数倍.IP数据报报头的最小长度为20个字(不含填充字段和IP选项字段的IP报头是最常见的IP报头,为20个字节)

服务类型TOS,服务类型字段长度为8比特,用于指定数据报所要求的服务质量(TOS)。
总长度字段是指整个I P数据报的长度,以字节为单位.由于该字段长1 6比特,所以I P数据报最长可达6 5 5 3 5字节.总长度字段是I P首部中必要的内容。数据长度=总长-报头长度。

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

标志位长度为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位设置为不能分段(0)时,网络设备会向发送方返回一个因特网控制消息协议ICMP错误消息,并丢弃该数据报。除了最后一个分段外,其余分段的第2位均设置为1。

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

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

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

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

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

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

分段:分段是将一个大的IP数据报分解成几个较小的数据报段的过程。当IP模块需要通过一个具有较小MTU的网络传送较大的数据包时,就必须将其分段。


上一篇 NAT原理简介  下一篇 恶意软件之BHO篇



    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: