目录

前文列表

IPv6 — 网际协议第 6 版

IPv6 — 地址格式与寻址模式

IPv6 协议头格式

IPv6 数据报文是 IPv4 的 4 倍,IPv6 数据报文主要由两个部分组成:Header(首部)和 Payload(负载)。其中,IPv6 Header 的大小是 IPv4 的 2 倍,包括以下字段:

  • 协议版本
  • 流量类:分为两部分,前 6 位用于服务类型,以便让路由器知道应该向该数据包提供什么服务,也标识了数据包的优先级。后 2 位用于显式拥塞通知(ECN)。
  • 流标记:标识数据包的 QoS,用于维护数据包的顺序。源标记序列帮助路由器识别特定数据包所属的特定信息流,此字段有助于避免数据包的重新排序,是为了流媒体、实时媒体而设计的。
  • 有效负载长度:有效载荷由扩展报头和上层数据组成。该字段为 16 位,可以表示最大 65535 个字节, 如果扩展报头设置了 “jumbo payload” 选项,则有效载荷可能超过 65535 字节,则此字段值应该被置为 0。
  • 下一个头部:用于标识扩展报头的类型,或者当扩展报头不存在时,则用于标识上层 PDU。 上层 PDU 的类型与 IPv4 的相同。
  • 跳跃限制:标识数据报文的生存时间,相当于 IPv4 中的 TTL。
  • 源地址
  • 目的地址

扩展报头

在 IPv6 的设计中,固定报头只包含了最低程度所需的信息,避免出现那些不需要的,或者很少使用的信息。所有这些信息以扩展报头的形式被放在固定报头和上层报头之间。

每个扩展报头由不同的 Next Header 值标识:当使用扩展报头时,IPv6 固定报头的 Next Header 字段指向下一个扩展报头,依此类推。最后一个扩展头的 Next Header 指向上层报头。 因此,所有报头以链接列表方式指向下一个报头。如果 Next Header 的值为 59,则表示在此报头之后就再没有报头了。

根据 RFC 2460 要求必须支持以下扩展报头:

扩展报头的顺序应该是:

扩展报头以链表方式一个接一个地排列,如下图所示:

IPv6 — 协议头的更多相关文章

  1. ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议

    一.IPv6协议 IPv6协议,全称"互联网协议第6版",即下一代的网际协议. 相对于IPv4来说,IPv6协议主要改进: *扩展的地址.IPv6地址长度为128位. *IPv6使 ...

  2. TCP系列01—概述及协议头格式

    一.TCP简单介绍 我们经常听人说TCP是一个面向连接的(connection-oriented).可靠的(reliable).字节流式(byte stream)传输协议,  TCP的这三个特性该怎么 ...

  3. IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

    IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...

  4. IPv6协议介绍

    IPv6是为了解决基于IPv4的TCP/IP协议簇遇到的问题而推出的下一代IP协议.由于IPv4中采用的编制方式使得可用的网络地址和主机地址的数目远低于理论数目,随着全球互联网的快速发展,现有的IPv ...

  5. 基于byte[]的HTTP协议头分析代码

    smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 基于byte[]的HTTP协议头分析代码 最近需要为组件实现一个HTTP的扩展包,所以简单地实现 ...

  6. 老李分享:HTTP协议之协议头

    老李分享:HTTP协议之协议头   当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器.你明白HTTP请求头的具体含 ...

  7. c++ 常见网络协议头

    //NTP协议 typedef struct _NTP_HEADER { uint8_t _flags;//Flags 0xdb uint8_t _pcs;//Peer Clock Stratum u ...

  8. HTTP协议头注射漏洞实例

    HTTP 响应头文件中包含未经验证的数据会引发 cache-poisoning.cross-site scripting.cross-user defacement.page hijacking.co ...

  9. HTTP协议头域详解

    HTTP协议头域详解 Requests部分 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编 ...

  10. webapi net 直接更改协议头

    1.直接更改协议头 [HttpGet] public HttpResponseMessage Users() { var sites = new object(); string str = tool ...

随机推荐

  1. #离线#洛谷 5358 [SDOI2019]快速查询

    题目传送门 分析 由于询问次数很多,只能离线去做,考虑全局的操作都可以打标记. 对于单点的操作,实际上的数为 \(x'=x*Mul+Add\) 由于这两个标记单独撤销比较困难, 不妨开一个数组直接维护 ...

  2. C++ While 和 For 循环:流程控制全解析

    C++ Switch 语句 使用 switch 语句选择要执行的多个代码块之一. 语法 switch(expression) { case x: // 代码块 break; case y: // 代码 ...

  3. 一文带你详细了解HarmonyOS折叠屏设计规范!

    原文:https://mp.weixin.qq.com/s/G25IbfcX2Bq9s1IDPCELGw,点击链接查看更多技术内容. 随着新一代折叠屏手机HUAWEI Mate Xs 2发布,Harm ...

  4. SilentEye qsnctf wp

    题目附件(注:文件名为Luminous.jpg) 根据题目提示,使用SilentEye工具 将图片使用SilentEye打开 使用左下角的Decode解密功能 猜测密码为文件名,输入并开始解密 将被加 ...

  5. electron 关于jquery不可以用

    前言 electron 实际是在google 内核上开发,实际上和我们在浏览器还是有些区别的. jquery 在electron 上引用是会出错的. 正文 解决方案 如果不做任何操作,在Electro ...

  6. C# 冻结Excel窗口以锁定行列、或解除冻结

    在处理大型Excel工作簿时,有时候我们需要在工作表中冻结窗格,这样可以在滚动查看数据的同时保持某些行或列固定不动.冻结窗格可以帮助我们更容易地导航和理解复杂的数据集.相反,当你不需要冻结窗格时,你可 ...

  7. 简单的UrlDns链分析

    URLDNS链学习 首先我们先理解一下序列化与反序列化,我先贴出三段代码,大家可以尝试先体验一下. 首先我们先构造一个Person类,其实跟这条链没什么关系,主要涉及序列化 点击查看代码 // 引入 ...

  8. 《c#高级编程》第2章C#2.0中的更改(三)——迭代器

    一.概念 C#迭代器(Iterator)是一种特殊类型的方法,它使得在使用循环遍历数据集合时更加简单和有效.使用迭代器可以通过简单地定义迭代器方法来自动实现枚举器模式. 当您需要访问一个数据集合中的每 ...

  9. IDEA操作MyBatis实现数据库增删改查

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 前置环境 ...

  10. 阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec

    ​简介:经历6年时间,在各团队的努力下,阿里巴巴集团大规模稀疏模型训练/预测引擎DeepRec正式对外开源,助力开发者提升稀疏模型训练性能和效果. ​ 作者 | 烟秋 来源 | 阿里技术公众号 经历6 ...