【网络协议】----IPv6协议报文、地址分类

【网络协议】----IPv6协议简介

  • 【网络协议】----IPv6协议简介
    • IPv6特点
    • IPv4 和 IPv6报文结构
      • IPv6报文格式-拓展报头
    • IPv6地址分类
      • IPv6地址表示
      • IPv6单播地址
        • 可聚合全球单播地址
        • 链路本地地址
        • 唯一本地地址
        • 特殊地址
        • 补充 接口标识(主机位)生成方法
        • 通过EUI-64规范根据MAC地址生成接口ID
      • IPv6组播地址
        • 预定义组播地址
        • 被请求节点组播地址
        • IPv6组播的MAC地址映射

【网络协议】----IPv6协议简介

IPv6特点

=IPv6诞生背景=

  • 1、IPv4公网地址耗尽
  • 2、Internet用户快速增长
  • 3、NAT确实能解决私有地址空间与公网互访的问题,但是却破坏了端到端通信的完整性
  • 4、IPv4对移动性的支持不够理想等

IETF在20世纪90年代提出下一代互联网协议——IPv6,目前IPv6已成为公认IPv4未来的升级版本

IPv6技术特点

  • 地址空间巨大
  • 精简报文结构
  • 实现自动配置和重新编址
  • 支持层次化网络编址
  • 支持端对端安全
  • 更好的支持QOS、支持移动特性

IPv4 和 IPv6报文结构

IPv4报文结构
前面的文章有写过IPv4报文结构和各个字段作用,感兴趣的朋友可以看看
《数据帧、IP数据包、TCP、UDP报文格式详解》
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • Version:版本号,长度为4bit。对于IPv6,该值为6。
  • Traffic Class:流类别,长度为8bit。等同于IPv4中的Type Of Service字段,表示IPv6数据报的类或优先级,主要应用于QoS
  • Flow Label:流标签,长度为20bit。IPv6新增字段,用于区分实时流量。不同流标签加源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
  • Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)
  • Next Header:下一个报头,长度为8bit。指明下一个扩展报头(如果存在)或上层协议的类型。
  • Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。
  • Source Address:源地址,长度为128bit。表示发送方的地址。
  • Destination Address:目的地址,长度为128bit。表示接收方的地址。

IPv6报文格式-拓展报头

扩展报头是可选的,只有需要该扩展报头对应的功能时,数据的发送者才会添加相应扩展报头。
在这里插入图片描述

1、在IPv4中,IPv4报头包含可选字段Options,内容涉及security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用路由器很大的资源,因此实际中也很少使用

2、在IPv6中这些Option从基本报文格式中剥离,放到基本报头和上层协议数据单元之间一个IPv6报文可以包含0个、1个或多个扩展报头,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,这样便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展报头总是8字节长度的整数倍。

3、当使用多个扩展报头时,前面报头的Next Header字段指明下一个扩展报头的类型,这样就形成了链状的列表
extension header length

  1. 路由设备转发时根据基本报头中的Next Hesder值来决定是否要处理扩展头,并不是所有扩展报头都需要被路由转发设备查看和处理
  2. 除了目的选项扩展报头可能在一个IPv6报文中出现一次活两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余1扩展报头只能出现一次

IPv6地址分类

在这里插入图片描述

  1. IPv4地址分为:单播地址、组播地址、广播地址。而IPv6中没有广播地址,增加了任播地址,IPv6地址被分为:单播地址、组播地址、任播地址
  • 单播地址用于标识一个接口,发往该目的地址的报文会被送到被标识的接口,一个接口拥有多个IPv6地址是非常常见的现象
  • 组播地址用于标识多个接口,发往该目的地址到的报文会被送到被标识的所有接口
  • 任播地址用于标识多个(一组)网络接口(通常属于不同节点),发往该目的地址的报文会被送到被标识的所有接口中最近的一个接口上,实际上任播地址与单播地址使用同一个地址空间,就是说,由路由器决定数据包是做任播转发还是单播转发(任播地址只能作为目标地址)

IPv6地址表示

IPv6地址总长128比特,通常为8组,每组为4个十六进制数的形式,每组十六进制数间用冒号分隔,例FC00:0000:130F:0000:0000:09C0:876A:130B这是IPv6地址的首选格式
压缩:每组中的前导“0”都可以省略,所以上述地址可写为:FC00:0:130F::90C:876A:130B
地址中包含两个连续或多个连续均为“0”的组,可用冒号::来代替
注意:在一个IPv6地址中只能出现一次双冒号“::”

IPv6单播地址

可聚合全球单播地址

全球单播地址定义用于IPv6 Internet,是全局唯一和全局可达路由

类似于IPv4公网地址
由前缀、子网ID和接口标识组成
在这里插入图片描述

2 进制表示:0010 0000 0000 0000::
16 进制表示:2 0 0 0 ::
2 进制表示:0011 1111 1111 1111::
16 进制表示: 3 E E E ::

  • 全局路由前缀:由提供商指定给一个组织机构,一般至少为48bit。目前已分配的全局路由前缀前3bit均为001。前缀为2000::/3。
  • 子网:组织机构用子网ID来构建本地网络,与IPv4中的子网号作用类似。
  • 主机位,与IPv4中的主机ID作用相同
    在这里插入图片描述
链路本地地址

在一个节点启动ipv6协议栈时,节点每个接口会自动分配一个链路本地地址,专门用来和相同链路上的其它主机通信

  • 只能在连接到同一本地链路的节点之间使用,用于邻居发现,无状态地址,路由协议
  • 链路本地地址前缀FE80::/10,将接口ID添在后面作为地址的低64位
  • 每个IPv6接口都必须具备一个链路本地地址
    在这里插入图片描述
    ###
唯一本地地址
  • 因为IPv6要实现端到端的特性,导致此地址没有实施的可能性
  • 类似于IPv4中的私网地址,仅能在本地网络中使用,在公网Internet上不可被路由

唯一本地地址固定前缀FC00::/7。他被分为两块,其中FC00::/8暂未定义,另一块是FD00::/8,其格式如下:
在这里插入图片描述

特殊地址
  • 未指定地址。
    • 0:0:0:0:0:0:0:0/128 或者::/128。
      该地址作为某些报文的源地址,比如作为重复地址检测时发送的邻居请求报文(NS)的源地址,或者DHCPv6初始化过程中客户端所发送的请求报文的源地址。
  • 环回地址
    • 0:0:0:0:0:0:0:1/128 或者::1/128。
      与IPv4中的127.0.0.1作用相同,用于本地回环,发往::/1的数据包实际上就是发给本地,可用于本地协议栈回环测试。
  • IPv4兼容地址。
    • 在过渡技术中,为了让IPv4地址显得更加突出一些,定义了内嵌IPv4地址的IPv6地址格式。在这种表示方法中,IPv6地址的部分使用十六进制表示,IPv4地址部分可用十进制格式。如:64:FF9B::11.11.11.11 用于过渡技术NAT64 翻译。
      该地址已经几乎不再使用。
补充 接口标识(主机位)生成方法

关于接口ID:接口ID位64bit,用与标识链路上的接口,在每条链路上接口ID必须唯一

  • 接口ID可通过3种方法生成:手工配置、系统自动生成和IEEE EUI-64规范生成
通过EUI-64规范根据MAC地址生成接口ID

在这里插入图片描述

  • 假设一个接口的MAC地址如上图所示,那么采用EUI-64规范,接口可根据该MAC地址计算得到接口ID,由于MAC地址全局唯一,因此该接口ID也相应的具备全局唯一性。计算过程如下。
  • 将48bit的MAC地址对半劈开,然后插入“FFFE”,再对从左数起的第7位,也就是U/L位取反,即可得到对应的接口ID。
  • 而在在EUI-64接口ID中,第7bit的含义与MAC地址正好相反,0表示本地管理,1表示全球管理,所以使用EUI-64格式的接口ID,U/L位为1,则地址是全球唯一的,如果为0,则为本地唯一。这就是为什么要反转该位。
    在这里插入图片描述

IPv6组播地址

  • 用来表示一组接口。发往组播地址的数据将被转发给侦听该地址的多个设备
  • 地址范围:FF00::/8
预定义组播地址

Node-local
FF01::1,所有节点的组播地址。
FF01::2,所有路由器的组播地址。
Link-local
FF02::1,所有节点的组播地址。
FF02::2,所有路由器的组播地址。
FF02::1:FFXX:XXXX ,Solicited-Node组播地址。
FF02::5,所有OSPF路由器组播地址。
FF02::6,所有OSPF的DR路由器组播地址。
FF02:😄,所有PIM路由器组播地址。

被请求节点组播地址

被请求节点组播地址,通过节点的单播或任播地址生成。当一个节点具有单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组

  • 一个单播或任播地址对应一个被请求节点组播地址,用于地址解析和地址重复检测等功能
  • 被请求节点组播地址由固定前缀FF02::1:FF00:0/104和对对应IPv6地址最后24比特组成。被请求节点组播地址的有效范围为本地链路范围。

在这里插入图片描述
在这里插入图片描述

IPv6组播的MAC地址映射

以太网环境中,一个组播IPv6报文必须执行以太网封装

  • 组播IPv6报文的目的地址是组播IPv6地址,而目的MAC地址必须是组播MAC地址,并且必须与对应组播IPv6地址对应
  • 3333是专门为IPv6组播预留的MAC地址前缀组播MAC地址的后32bit从对应的组播IPv6地址的后32bit拷贝而来。
    例:
    在这里插入图片描述
    例如
    1、一个接口MAC地址为
    00E0-FC10-2E1B 48bit
    2、根据EUI-64生成接口ID 。第7bit取反,插入FFFE
    02E0:FCFF:FE10:2E1B
    3、 链路本地地址前缀FE80::/10 接口ID作为后64bit
    FE80::2E0:FCFF:FE10:2E1B
    4、对应链路本地地址的组播地址,固定前缀FF02::1:FF00:0/104加上对应IPv6地址收24bit
    FF02::1:FF10:2E1B
    5、对应组播地址的MAC地址,固定前缀3333-后32bit从对应组播IPv6地址后的32bit拷取
    3333-FF10-2E1B

接口MAC为 00E0-FC10-2E1B
组播MAC为 3333-FF10-2E1B
悟了!!!!
在这里插入图片描述

下一篇打算写下NDP协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CISCN 2023 初赛

Web unzip 文件上传页面 upload.php页面源码显示了出来 <?php error_reporting(0); highlight_file(__FILE__);$finfo finfo_open(FILEINFO_MIME_TYPE); if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) application/zip){exec(cd /tmp &am…

IP协议,网络层

一、IP协议报文 在网络层最主要的协议是IP协议&#xff0c;网络层的主要任务是进行&#xff1a;1.地址管理 2.路由选择 地址管理&#xff1a;使用一套地址体系&#xff0c;描述互联网中每个设备所处的位置。 IP地址有两个版本&#xff0c;1.IPV4 2.IPV6 &#xff0c;IP…

信奥数据“信息差”,让你惊掉下巴!

✅ 信奥红利分析 暑假信奥赛即将到来&#xff0c;在全国各地赛事也越来越受到重视&#xff0c;但是似乎关于红利这一块各地如何&#xff0c;并没有太多的老师给各位家长分析清楚。 那么今天曹老师就主要给从各位新手家长分析一下信奥红利地区&#xff0c;在开始分析之前请大家看…

使用 MediaMTX 和 FFmpeg 推拉 RTSP 流媒体

实时流传输协议 RTSP&#xff08;Real-Time Streaming Protocol&#xff09;是 TCP/IP 协议体系中的一个应用层协议&#xff0c;由哥伦比亚大学、网景和 RealNetworks 公司提交的 IETF RFC 标准。该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP 在体系…

初始化创建一个webpack项目

新建一个空的工程 -> % mkdir webpack-project 为了方便追踪执行每一个命令&#xff0c;最终产生了哪些变更&#xff0c;将这个空工程初始化成git项目 -> % cd webpack-project/-> % git init Initialized empty Git repository in /Users/lixiang/frontworkspace/…

初探MFC程序混合使用QT

一、背景 随着操作系统国产化替代的趋势越发明显&#xff0c;软件支持国际化、跨平台&#xff0c;已然是必须做的一件事情。原有的软件UI层用的是MFC&#xff0c;将其换成QT&#xff0c;想必是一种较好的方案。对于大型软件&#xff0c;特别是已发布&#xff0c;但还处于不断迭…

C++进阶之路:探索访问限定符、封装与this指针的奥秘(类与对象_上篇)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

数据统计:词频统计、词表生成、排序及计数、词云图生成

文章目录 &#x1f4da;输入及输出&#x1f4da;代码实现 &#x1f4da;输入及输出 输入&#xff1a;读取一个input.txt&#xff0c;其中包含单词及其对应的TED打卡号。 输出 output.txt&#xff1a;包含按频率降序排列的每个单词及其计数&#xff08;这里直接用于后续的词云…

设计模式之单例模式详解

单例模式 描述&#xff1a;单例&#xff08;Singleton&#xff09;模式的定义&#xff1a;指一个类只有一个实例&#xff0c;且该类能自行创建这个实例的一种模式。 核心特点 单例类只有一个实例对象&#xff1b;该单例对象必须由单例类自行创建&#xff1b;单例类对外提供一…

OpenCV 入门(一) —— OpenCV 基础

OpenCV 入门系列&#xff1a; OpenCV 入门&#xff08;一&#xff09;—— OpenCV 基础 OpenCV 入门&#xff08;二&#xff09;—— 车牌定位 OpenCV 入门&#xff08;三&#xff09;—— 车牌筛选 OpenCV 入门&#xff08;四&#xff09;—— 车牌号识别 OpenCV 入门&#xf…

每日两题 / 23. 合并 K 个升序链表 94. 二叉树的中序遍历(LeetCode热题100)

23. 合并 K 个升序链表 - 力扣&#xff08;LeetCode&#xff09; 若lists有k个元素&#xff0c;调用k - 1次&#xff08;两个有序链表的合并&#xff09;即可 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNod…

探索鸿蒙开发:鸿蒙系统如何引领嵌入式技术革新

嵌入式技术已经成为现代社会不可或缺的一部分。而在这个领域&#xff0c;华为凭借其自主研发的鸿蒙操作系统&#xff0c;正悄然引领着一场技术革新的浪潮。本文将探讨鸿蒙开发的特点、优势以及其对嵌入式技术发展的深远影响。 鸿蒙操作系统的特点 鸿蒙&#xff0c;作为华为推…

一键接入电商API数据接口淘宝API通过商品ID、URL采集商品详情页实时数据API接入指南

一键接入电商API数据接口&#xff0c;尤其是淘宝API&#xff0c;通常需要遵循以下步骤&#xff1a; 注册账号&#xff1a;注册接入账号获取Api Key和Api Secret。 选择API&#xff1a;根据需要选择合适的API服务&#xff0c;如通过商品ID或URL采集商品详情页数据的API。 权限…

WPF鼠标拖拽的最佳实现

WPF鼠标拖拽的最佳实现 在很多项目中都会遇到鼠标拖拽控件移动的需求&#xff0c;常见的有从在列表中拖拽列表项移动&#xff0c;拖拽控件移动等。 本文将介绍2种拖拽的简单的实现 列表项的拖拽 本文将使用 gong-wpf-dragdrop 这个github上的库来实现列表的拖拽的效果&…

GitLab使用记录

GitLab 文章目录 1. 常用命令1.1 配置邮箱 用户名1.2 查看配置1.3 基本语法 2. 连接gitlab3. 直接拉去项目 1. 常用命令 1.1 配置邮箱 用户名 git config --global user.name ShangzheChen git config --global user.email 735511377qq.com1.2 查看配置 cat ~/.gitconfig这…

企业信使_登陆页

在当今数字化时代&#xff0c;企业与员工之间的沟通变得越来越重要。为了满足企业内部沟通的需求&#xff0c;一款功能强大而方便使用的企业信使_登陆页应运而生。企业信使_登陆页是一种专为企业内部使用而设计的通讯工具&#xff0c;可以帮助企业提高沟通效率&#xff0c;加强…

4.用python爬取保存在text中的格式为m3u8的视频

文章目录 一、爬取过程详解1.寻找视频的m3u8链接2.从网页源码中寻找视频的m3u8链接的第二部分内容3.从视频的m3u8链接获取视频 二、完整的代码 一、爬取过程详解 1.寻找视频的m3u8链接 这个文档承接了爬虫专栏的 第一节.python爬虫爬取视频网站的视频可下载的源url&#xff0…

车规级低功耗汽车用晶振SG-9101CGA

车规级晶振SG-9101CGA属于爱普生9101系列&#xff0c;是一款可编程晶振。SG-9101CGA车规级晶振采用2.5x2.0mm封装&#xff0c;利用PLL技术生产&#xff0c;此款振荡器的频率范围从0.67M~170MHZ任一频点可选&#xff0c;步进1ppm&#xff0c;采用标准CMOS输出&#xff0c;最大输…

为 Flutter 应用设置主题:ThemeData 和 ColorScheme 指南

在媒体和其他来源中有许多关于这个主题的文章&#xff0c;那么这篇文章的必要性是什么&#xff1f; 在本文中&#xff0c;我计划仅关注 ThemeData 小部件的关键点以及我的开发经验中最常用的参数&#xff0c;并且您将获得有关每个参数如何对您的应用程序执行操作的简要说明。 …

分类任务的基础学习

1.什么是分类&#xff1f; 2.局限性&#xff1a; 当样本量逐渐变大的时候&#xff0c;准确率会下降——>因为线性回归曲线距离我们的原点越远&#xff0c;预测就会开始不准确&#xff0c;因为 x前面的倍数就会越来越小&#xff0c;这就导致了样本量变大&#xff0c;但是那些…