IPv4报文格式

IP报文格式详解
这里写图片描述

IP包头的格式:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IP报头前5块为必选,因此,IP包最少20字节。
Version(版本):标识了数据包的IP版本号,一共4位,0100表示IPV4,0110表示IPV6.

IHL(报头长度):表示32位字长的报头长度,一共4位。

TOS(服务类型):用来指定特殊的数据包处理方式。一共8位

Bits 0-2: Precedence. (优先权)
Bit 3: 0 = Normal Delay, 1 = Low Delay. (延迟)
Bits 4: 0 = Normal Throughput, 1 = High Throughput. (吞吐量)
Bits 5: 0 = Normal Relibility, 1 = High Relibility. (可靠性)
Bit 6-7: Reserved for Future Use. (6:开销;7:保留)

     0     1     2     3     4     5     6     7
  +-----+-----+-----+-----+-----+-----+-----+-----+
  |                 |     |     |     |     |     |
  |   PRECEDENCE    |  D  |  T  |  R  |  0  |  0  |
  |                 |     |     |     |     |     |
  +-----+-----+-----+-----+-----+-----+-----+-----+

Precedence

      111 - Network Control        网络控制
      110 - Internetwork Control   互联网控制
      101 - CRITIC/ECP             紧急
      100 - Flash Override         火速覆盖
      011 - Flash                  火速
      010 - Immediate              立即
      001 - Priority               优先级
      000 - Routine                路由

Total Length(总长度):接收者用IP数据包总程度减去IP报头长度,就可以确定数据包数据有效载荷的大小。
所以IP数据包的最大长度是65535.
报头总长度必须是32位的倍数,即,报头长度可以被8整除。
当MTU=1000时候,可传输IP包的总长度为976+20=996,剩下4字节被分片到下一个IP包
当MTU=1500时候,可传输IP包的总长度为1480+20=1500;

Identification(标识符):通常与标记字段和分片字段一起用于数据包的分段,长度为16位;

Flags(标记字段):用于IP数据包分段标记使用;一共3位,第1位不使用,第2位是DF位,当DF为1时,表示路由器不
允许分段处理,为0时,表示允许分段。第3位是MF位,当MF为1时,表示不是最后一个分段,
为0时,表示是最后一个分段。

  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 |
    +---+---+---+

Fragment Offset(分段偏移):用于指明分段起始点相对于报头起始点的偏移量,可以使接受者按照正确的顺序重组数据包。长度13位,以8个八位组为单位。 若MTU=1500时,一个大小为3000字节的数据经过该接口,会被分为3段传输,第一段报文总长度为1480+20,第二段为1480,第三段为40那么第一段的分段偏移为0,第二段分段偏移为1480/8=185,第三段为185+185=370

Time to Live(生存时间):用于防止数据包在网络上无休止地被传输;长度8位,最大值255,每经过一台路由器,TTL被减1。

Protocol(协议):指定了数据包中信息的类型,长度8位。

              Protocol Number   Host-to-Host Layer Protocol

                    1           Internet Control Message Protocol (ICMP)
                    2           Internet Group Management Protocol (IGMP)
                    4           IP in IP (encapsulation)
                    6           Transmission Control Protocol (TCP)
                    17          User Datagram Protocol (UDP)
                    45          Inter-Domain Routing Protocol (IDRP)
                    46          Resource Reservation Protocol (RSVP)
                    47          Generic Routing Encapsulation (GRE)
                    54          NBMA Next Hop Resolution Protocol (NHRP)
                    88          Cisco Internet Gateway Routing Protocol (IGRP)
                    89          Open Shortest Path First (OSPF)

Header Checksum(报头校验和):针对IP报头的纠错字段。

Source Address(源地址):表示发送者数据包源点的IP地址,长度为32位;

Destination Address(目标地址):表示发送者目标的IP地址,长度为32位;

Options(可选项):被添加在IP报头中,包括源点产生的信息和其它路由器加入的信息;可选字段,主要用于测试,长度可变;

Loose Source Routing(松散源路由选择):可以指定数据包传递的路径;可以跨越中间多台路由器;

Strict Soutce Routing(严格源路由选择):可以指定数据包传递的路径;不同于loose的是,数据包必须严格按照路由转发,如果下一跳不在路由表中,将会产生错误。

Record Route(记录路由):记录数据包离开每台路由的出接口,区别于traceroute的是,record可以记录来 回的路径,而traceroute只可以记录但方向的;

Timestamp(时间戳):记录数据包到达设备的时间;

Verbose(详细内容):查看数据包传送的详细内容;一般用于查看延迟;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值