主页

索引

模块索引

搜索页面

IP Header

https://img.zhaoweiguo.com/knowledge/images/protocols/ip1.png
https://img.zhaoweiguo.com/knowledge/images/protocols/ip2.png

备注

由于TCP/IP首部中所有的二进制整数在网络中传输时都使用大端字节序(big endian),因此它又称作网络字节序。

字段详解

  1. 版本号-4:

    IP 协议版本号,目前使用的是版本 4
    
  2. 首部长度(IHL)-4:

    IP 头部的长度:指的是首部占 32 bit字的数目
    由于它是一个 4比特字段,因此最大值是15
      也就是说最大IP 首部长度是15*32bit=60字节
    普通IP数据报(没有任何选择项)字段的值是 5
    
  3. 服务类型(ToS)-8:

    表示包传输优先级。
    最初的协议对这个参数的规定很模糊,最近 DiffServ 规格重新定义了这个字段的用法
    包括:
      3 bit的优先权子字段(现在已被忽略)
      4 bit的TOS子字段
      1 bit未用位但必须置0
    
  4. 总长度-16:

    表示 IP 消息的总长度
    
  5. ID 号-16:

    用于识别包的编号,一般为包的序列号。
    如果一个包被 IP 分片,则所有分片都拥有相同的 ID
    
  6. 标志(Flag)-3:

    该字段有 3 个比特,其中 2 个比特有效,分别代表是否允许分片,以及当前包是否为分片包
    
  7. 分片偏移量-13:

    表示当前包的内容为整个 IP 消息的第几个字节开始的内容
    
  8. 生存时间(TTL)-8:

    表示包的生存时间
    这是为了避免网络出现回环时一个包永远在网络中打转。
    每经过一个路由器,这个值就会减 1,减到 0 时这个包就会被丢弃
    
    
    这个字段规定该数据包在穿过多少个路由之后才会被抛弃
    某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃
    这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了
    根据系统的不同,这个数字也不一样,一般是32或者是64
    
    Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255
    
  9. 协议号-8:

    协议号表示协议的类型(以下均为十六进制)
    ICMP: 01
    IGMP: 02
    TCP: 06
    UDP: 11
    
  10. 头部校验和-16:

    用于检查错误,现在已不使用
    
  11. 发送方 IP 地址-32:

    网络包发送方的 IP 地址
    
  12. 接收方 IP 地址-32:

    网络包接收方的 IP 地址
    
  13. 可选字段-可变长度:

    除了上面的头部字段之外,还可以添加可选字段 用于记录其他控制信息,但可选字段很少使用
    

主页

索引

模块索引

搜索页面