在线发布、提交软件

当前位置:首页 > 电脑教程 > 网络安全

IP报文格式详解 网络技术人员必备资料

时间:2016-10-21 10:03:32  来源:软件园  作者:动力软件园

IP报文格式详解

 

IP包头的格式:

     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 2

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

    |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位。

其中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。

 

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(详细内容):查看数据包传送的详细内容;一般用于查看延迟;

 


Padding(填充):通过在可选字段后面添加0来补足32位,为了确保报头长度是32的倍数。