ipv6协议报文格式

一、ipv6的基本格式

ipv6报文格式从简单性来看,比ipv4较简单,而且ipv6的基本头部的长度是固定的。相较与ipv4,ipv6去掉了一些头部,把这些头部全部弄到了后面的扩展投不中。ipv6的报文格式如下:


version:4bits 版本号  ipv6为6

Traffic Class: 8 bits,传输类别,可用于源节点或转寄路由器标识和区分IPV6包中的不同类别或优先级;类似于实现IPV4的TOS/DIFF

Flow Label:20bits 流标签,数据流是指从某特定的源节点向某特定的目的节点发送的数据包序列。当源节点希望中间的路由器对数据包进行一些特殊处理时,就可以使用数据流标签,不支持数据流标签的可以赋值为0;

Payload Length: 16bits unsigned integer, ipv6的载荷长度,首部以外的长度(包括扩展首部)

Next Header:8 bits 指明紧跟IP首部后面的下一个首部的类型

Hop Limit:8bits unsigned integer,在每个传输此包的节点处减1,如果跳数限制减到0,就抛弃此包

Source Address:128 bit 源地址
Destnation Address:128 bit 目的地址

二、扩展首部格式:

1、下面是几个扩展首部的例子:
+-----------------------+--------------------------------------------
|    ipv6    header          |   tcp header + data
|                                     |
|    next header = tcp   |  
|                                     |
+-----------------------+---------------------------------------------

+-----------------------+-----------------------+-----------------------------
|    ipv6    header          |       routing header    |      tcp header + data
|                                     |                                    |
|    next header =         |    next header = tcp   |
|    routing                    |                                     |
|                                     |                                     |
+-----------------------+------------------------+-------------------------------

一般情况下(hop-by-hop选项首部例外),扩展首部在数据包的传递过程中,中间的任何节点不会检测和处理,一直到这个ipv6首部中目的地址所标识的那个节点。
特例:hop-by-hop选项首部,携带了包的传送路径中的每个节点都必须检测和处理的信息。包括源节点和目的节点。如果HOP-BY-HOP选项首部存在,就必须紧跟在ipv6首部后面。

2、扩展首部出现的顺序
当在同一个包中使用多个扩展首部时,建议按如下顺序排列这些扩展首部:
ipv6 header
hop-by-hop options header (HOP-BY-HOP首部)
destionaion options header   (目的地址选项首部)
routing header  (路由首部)
fragment header  (分片首部)
authentication header (认证首部)
encapsulating security payload header 封装安全载荷首部
destination options header    (目的地址选项首部)
upper-layer header 上层协议首部

3、选项
     在hop-by-hop和目的地址选项首部,包含若干个以类型-长度-值格式进行编码的选项,格式如下:
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+------------------
     | option type        | opt data len             |options data
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+------------------

     Option type:     8bit,标识选项类型;
     Opt data len: 8bit 选项数据字段的长度;
     Option data:可变长度,依选项类型而不同的数据;
     
     选项类型的最高两个比特,指明当IPV6节点无法识别这个选项时的处理方式:
     00: 跳过这个选项,继续处理首部
     01:丢弃这个包
     10:丢弃这个包,并给源地址发送一个“参数错误”的icmp,同时指针指向无法识别的选项类型
     11:丢弃这个包,并且如果目的地址不是组播地址时,给源地址发送一个参数错误的icmp,同时指针指向无法识别的选项类型

     选项的第三个比特:
     0:选项数据不会改变选路
     1:选项数据可能改变选路

 4、Hop-by-Hop选项头部
       用IPV6首部的”下一个首部“为 0(0x00)来标识,此选项头部用于传送在数据包的传送路径中每个节点都必须检测的可选信息。格式如下:
       
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |   next   header  |  hdr ext  len          |                                                           |
        |                                                                                                                       |
        .                                                                                                                       .
        .                                            options                                                              .
        .                                                                                                                       . 
        |                                                                                                                       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Next header:   8bits, 紧跟在hop-by-hop选项首部后面的首部类型式
        Hdr  Ext  len:8 bits hop-by-hop选项首部的长度,不包括开始的8个八位组
        options: 可变长度,包含一个或多个TLV的选项

        5、路由首部
            next header = 43标识;用于IPV6源节点列出到目的节点的路径中所应"访问"的一个或多个中间节点,格式如下:

            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             |      next header |   Hdr Ext Len         |   Routing Type     |    Segments Left   |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             |                                                                                                                           |
             .                                                                                                                           .
             .                                 type-specific data                                                            .
             .                                                                                                                           .
             |                                                                                                                           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Next header: 8bit 紧跟在路由首部后面的首部类型
            Hdr Ext Len: 8bit  路由首部长度,不包括开始的8个八位组
            Routing Type: 8bit 标识路由头部类型
            Segements left:8bit 到达目的节点前仍然应当访问的中间节点数
            type-specific data: 可变长度,格式由路由类型(routing type)来决定

            6、分片首部
            next header = 44标识;在ipv6中,只有源节点才可以分片,中间路由器不能分片,当发送的数据包长度大于MTU时,就需要分片,分片首部的格式如下:
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             |  next header     | reserved        |             fragment offset    |          Res        |      m     |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             |                                               Identification                                                                  |
             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             next header: 8bit  同上
             reserved : 3bit,保留
             fragment offset: 13bit,分片偏移量。首部后面的数据相对于原包中可分片部分的开始位置处的偏移量
             Res:2bit,保留,用0填充,接收时忽略
             M flag:标识是否还有分片(1: 分片;0:最后一个分片)
             Identification:32 bit,标识符

例子如下图:


 7、目的选项首部
            next header = 60标识,用于携带仅需要目的节点检测的可选信息。格式如下:
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |   next   header  |  hdr ext  len          |                                                           |
        |                                                                                                                       |
        .                                                                                                                       .
        .                                            options                                                              .
        .                                                                                                                       . 
        |                                                                                                                       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      next header: 8bit 同上
      Hdr Ext Len:  8bit 目的选项首部长度,不包括开始的8个八位组
      options:可变长度。一个或多个TLV格式的选项

     8、无下一个首部:
            next header = 59 (0x3b)


  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP协议是一组用于互联网通信的网络协议,其中TCP(传输控制协议)是一种可靠的连接协议,而IP(互联网协议)是一种网络层协议。TCP/IP报文格式是TCP和IP协议在通信过程中使用的数据格式。 TCP报文格式如下: - 源端口和目标端口:用于标识源主机和目标主机上的应用程序。 - 序列号和确认号:用于保证数据的可靠传输和重组。 - 数据偏移、保留位、控制位:用于定义TCP报文的各种控制信息,如连接建立、连接终止等。 - 窗口大小:用于流量控制和拥塞控制。 - 校验和:用于检测报文是否被篡改。 - 紧急指针:用于标识报文中的紧急数据。 - 选项字段:可选的字段,用于扩展TCP功能。 IP报文格式如下: - 版本:指定IP协议的版本号,如IPv4或IPv6。 - 头部长度:指定IP报文头部的长度。 - 服务类型:用于指定报文的服务类型,如优先级、延迟等。 - 总长度:指定整个IP报文的长度。 - 标识、标志位和片偏移:用于分片和重组IP报文。 - 生存时间(TTL):用于限制报文在网络中的存活时间。 - 协议:指定上层协议类型,如TCP、UDP等。 - 校验和:用于检测报文是否被篡改。 - 源IP地址和目标IP地址:指定报文的源主机和目标主机的IP地址。 - 选项字段:可选的字段,用于扩展IP功能。 以上是简要的TCP/IP报文格式,实际上还有更多字段和选项,这些报文格式规定了数据在TCP/IP网络中的传输方式和控制信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值