IPv4 和 IPv6 头部结构主要区别

原创 2011年01月18日 10:00:00

31                                     0
     |----|----|------|--|-------------------|----------
     |ver |ihl | -tos | -|    tot_len        |
     |----|----|------|--|-------------------|
     |       id          |   frag_off       -|
     |---------|---------|-------------------|
     |   ttl   |protocol |    check          | 20 Bytes
     |---------|---------|-------------------|
     |                saddr                  |
     |---------------------------------------|
     |                daddr                  |
     |---------------------------------------|
----------
     |                                       |
    -|                options                |
40 Bytes
     |                                       |

     |
---------------------------------------|

           
              IPv4 (Internel协议)头部

这里对IPv4IPv6头部的一些常用的重要字段进行整理总结,没做出解释的是一些不常用到的字段,有兴趣可以自行查阅。

MAC header

IPv4 header

Data :::

1.      IPv4 header:

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Version

IHL

Differentiated Services

Total length

Identification

Flags

Fragment offset

TTL

Protocol

Header checksum

Source IP address

Destination IP address

Options and padding :::

 

·         VersionIP版本号4 ;

·         IHL: IP 头部长度,以字节表示;

·         Total Length:整个IP报长度,包含IP头部和数据,以字节表示 ;结合IP头部长度便可确定IP报数据部分的开始和结束;

·         TTL:IP数据包生存周期,通常每经过一次路由该值就会被减一;

·         Protocol:表示传输层是哪种协议,该值有IANA统一规定(http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)

·         Source/Destination IP address: 消息的源/目的IP地址,这两地址不会随着消息的路由而发生变化。

IPv4数据报分片相关的Field

首先接受为何要分片,以太网规定网络间传输的MTU1500个字节,超过1500个字节的IP报就需要被分片;此外不同的链路层(Token Ring,FDDI…)规定的MTU值是不同的,在一个IP报从源地址送到目的地的过程中可能需要经过各种不同的网络,所以即使在以太网里面不分片,在其他网络里面可能被分片。

·         Identification: 源主机每发出一个数据包就会为该数据包分配一个唯一的Identification值,通常是依次递增的方式分配;加入IP报在某个路由上需要分片,则 Identification会被复制到每一个分片的IP头中。

·         Flags:一共有三个bit,第一个bit目前不用,始终为0;第二个bit0表示允许分片;为1表示不允许分片;第三个bit0表示这是最后一个IP报分片,为1表示后面还有更多的IP报分片;

·         Fragement Offset:表示该分片距离原始IP数据包的偏移字节数;

·         Total LengthIP报被分片后,该值需要被更新为新分片的总长度;

MAC header

IPv6 header

Data :::

2.      IPv6 header:

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Version

Traffic Class

Flow Label

Payload Length

Next Header

Hop Limit

Source address :::

Destination address :::

Data :::

·         VersionIP版本号6 ;

·         Payload Length:由于IPv6的基本头部的长度是固定的,所以只需要记录Payload的长度即可定位一个IP数据包的结束,这里的Payload包含IPv6的扩展头部。

·         Hop Limit:和IPv4中的TTL作用一致;

·         Source/Destination IP address: 消息的源/目的IP地址,格式变为IPv6IP地址格式;这两地址不会随着消息的路由而发生变化。

·         Next Header:相当于IPv4中的protocol域,标识上层协议(协议的标识值与IPv4兼容);此外的另一个作用是标识IPv6的扩展头部,目前IPv6定义了7中扩展头部,每一中扩展头部都有一个数值来标识,比如基本头部中的Next Header中的值是44,表示基本头部后面紧跟一个分段扩展头部;

0

逐跳头

43

选路头( R H )

44

分段头( F H)

51

身份验证头( A H )

52

封装安全性净荷( E S P )

59

没有下一个头

60

目的地选项头

扩展头部的基本结构如下:

扩展头部的第一字节也是Next Header,作用同基本头部中的Next HeaderIPv6除了基本头部之外可以带多个扩展头部,如果带有扩展头部则基本头部中的Next Header指示第一个扩展头部类型,否则指示传输层的协议类型;如果带有多个扩展头部,则扩展头部中的Next Header依次指示下一个扩展头部类型,最后一个扩展头部的Next Header指示传输层的协议类型;如下图所示:

 

扩展头部的第二个字节是该扩展头部的长度,依此可找到该扩展头部的结束位置;某些类型的扩展头部(比如,分段扩展头部)长度是固定的,则该字节作为保留字节不用。

IPv6的分片:

IPv6IPv4的分片进行了以下主要改进:

1)      IPv6只允许源节点对数据包进行分片,不允许中间路由分片,这样一来一个数据包如果需要分片则只进行一次分片即可;源主机为了判断是否需要分片,需要获取路径MTU

2)      IPv4的头部有些字段只和分片有关系,也就是说,在无需分片的时候,这些字段是没有用的,IPv6对此进行了改进,只有在需要分片的时候,才加一个“分段扩展头部”,把和分片相关的信息放到这个扩展头部中,从而提高了传输效率。

分段扩展头部结构:

 

·         分段偏移值:与 I P v 4的分段偏移值字段很相似。此字段共 1 3位,以8字节为单位,表示此包(分段)中数据的第一个字节与原来整个包中可分段部分的数据的第一个字节之间的位置关系。换言之,若该值为1 7 5,表示分段中的数据从原包的第1 4 0 0字节开始。

·         M:此位表示是否还有后续字段。若值为 1,表示后面还有后续字段;若值为 0则表示这是最后一个分段。

·         标识:该字段与I P v 4的标识字段类似,但是为3 2位,而在I P v 4中为1 6位。源节点为每个被分段的I P v 6包都分配一个3 2位标识符,用来唯一标识最近 (在包的生存期内)从源地址发送到目的地址的包。

注意:整个I P v 6包中只有部分可以被分段,可分段的部分包括:净荷和只能在到达最终目的地时才处理的扩展头。对于 I P v 6头和在发往目的节点的途中必须由路由器处理的扩展头,如选路头或逐跳选项头,则不允许进行分段。

 

IPv6和IPv4基本头部格式

原帖:http://book.51cto.com/art/201204/329740.htm 根据IPv4报文中存在的问题,IPv6报文头格式与IPv4相比进行了一些改动。IPv6头...
  • soipray
  • soipray
  • 2017-02-07 14:22:43
  • 1851

IPv4与IPv6数据包格式

本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别。 一、IPv4数据报 图1 IPv4数据报格式 版本...
  • frank_jb
  • frank_jb
  • 2015-04-17 10:28:20
  • 9394

IPV4 与IPV6 头部结构与其区别

  • 2015年03月10日 23:45
  • 88KB
  • 下载

ipv4头部可选项和ipv6头部的区别

转自深入解析IPv6 IPv4的头部中包含了所有的可选项。因此,每台中间路由器都必须检查所有这些可选项是否存在,如果存在,则进行处理。这会降低IPv4数据包的转发效率。而在IPv6中,发送和...
  • zhangyuan12805
  • zhangyuan12805
  • 2017-04-20 16:55:56
  • 293

ipv4和ipv6的区别

Ipv4(Internet Protocol version 4): 就是我们现在大部分用的网络协议,IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付分组,...
  • u012859193
  • u012859193
  • 2014-03-27 16:40:20
  • 2024

IPV4与IPV6地头部结构的区别

IPV4 I P数据报非常简单,就是在数据块(称为净荷)的前面加上一个包头。I P数据报中的数据(包括包头中的数据)以3 2位( 4字节或4个八位组)的方式来组织。图2 - 3中展示了I P头字...
  • u014174955
  • u014174955
  • 2015-04-25 10:53:34
  • 281

计算机网络—IPv4与IPv6 的区别

IPv6是由IETF设计的用来替代现行的IPv4协议的一种新的IP协议。目前,IPv4协议还是主流。但IPv4协议已经使用了30多年,在这30年的应用中,IPv4获得了巨大的成功的同时,随着应用范围的...
  • xaiomessi
  • xaiomessi
  • 2015-07-16 12:36:18
  • 458

IPv6数据报头部格式

IPv6数据报头部格式
  • u011784495
  • u011784495
  • 2017-05-11 20:37:34
  • 4014

IPV4和IPV6的区别

在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑...
  • li563868273
  • li563868273
  • 2016-04-11 23:01:56
  • 1299

OSI参考模型——网络层:IPv4协议和IPv6协议详解

博文目录一、网络层的基本概念 二、网络层IP协议的基本内容 三、IPv4分组的格式 四、IPv4分组的地址分类和表示 五、IPv4地址的子网划分 六、CIDR(无类别域间路由) 七、IPv...
  • jeffleo
  • jeffleo
  • 2016-12-30 15:10:34
  • 2049
收藏助手
不良信息举报
您举报文章:IPv4 和 IPv6 头部结构主要区别
举报原因:
原因补充:

(最多只允许输入30个字)