IPv6知识点整理

        IPv6:是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。

        国际IP地址分配方式:

  1. ICANN的IANA部门负责将IP地址分配给5个区域性的互联网注册机构RIR ,比如APNIC,它负责亚太地区的IP分配
  2. RIR将地址进一步分配给当地的ISP,比如:中国电信和中国移动
  3. ISP再根据自己的情况,将IP地址分配给机构或者直接分配给用户,比如将IPv4 A类地址分配给一个超大型机构,而将IPv4 C类地址分配给一个中型企业。

【1】与IPV4相比,IPV6具有以下优势:

  1. IPv6具有更大的地址空间
    IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
  2. IPv6使用更小的路由表
    IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  3. IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control)
    使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
  4. IPv6加入了对自动配置(Auto Configuration)的支持
    对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  5. IPv6具有更高的安全性
    在使用IPv6网络中,用户可以对网络层的数据进行加密,并对IP报文进行校验,极大增强了网络安全性。

 IPv6地址和IPv4地址对比

【2】IPv6地址介绍

        IPv6地址长度为128位,是IPv4地址长度的4倍。IPv4点分十进制格式不再适用,IPv6采用十六进制表示。

        IPv6地址用冒号分隔为8段,每一段16位,每一段用十六进制表示。

        与IPv4地址类似,IPv6也用"IPv6地址/掩码长度"的方式来表示IPv6地址,例如:
        2001:0db8:85a3:08d3:1319:8a2e:0370:7344/64

【2.1】IPv6的3种表示方法

【2.1.1】冒号分隔(简称:冒分)十六进制表示法

        格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16bit(16位二进制数),以十六进制表示,例如:

        ABCD:EF01:2345:6789:ABCD:EF01:2345:6789/64

        这种表示法中,每个X的前导0是可以省略的,例如:

        2001:0DB8:0000:0023:0008:0800:200C:417A >> 2001:DB8:0:23:8:800:200C:417A

【2.1.2】0位压缩表示法

        有时候一个IPv6地址中间可能连续多个0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
        FF01:0:0:0:0:0:0:1101>>FF01::1101
        0:0:0:0:0:0:0:1 >> ::1
        0:0:0:0:0:0:0:0 >> ::

【2.1.3】内嵌IPv4地址表示法

        IPv4地址会嵌入IPv6地址中,表示格式为:X:X:X:X:X:X:d.d.d.d,即IP地址前96位采用IPv6冒分十六进制表示,IP地址最后32位使用IPv4点分十进制表示,例如:
        ::192.168.0.1
        ::FFFF:192.168.0.1

注意在前96位,前导0省略和压缩0位的方法依旧适用。

【2.2】IPv6地址结构

IPv6地址分为如下两部分:网络前缀+接口标识

  • 网络前缀:nbit,相当于IPv4地址中的网络ID
  • 接口标识:(128 - n)bit,相当于IPv4地址中的主机ID

示例:

        2001:0DB8:6101:0001:5ED9:98FF:FECA:A298/64

【2.2.1】IPv6地址前缀

        鉴于IPv4地址在规划和分配上的局限性,IETF对IPv6地址类型进行了精细划分,不同类型的IPv6地址被赋予了不同的前缀,且受地址分配机构的严格管理。

        现阶段常用的IPv6地址或前缀

特定前缀IPv6地址

含义

2001::/16

用于IPv6 Internet,类似于IPv4公网地址

2002::/16

用于6to4隧道

FE80::/10

链路本地地址前缀,用于本地链路范围内的通信

FF00::/8

组播地址前缀,用于IPv6组播

::/128

未指定地址,类似于IPv4中的0.0.0.0

::1/128

环回地址,类似于IPv4中的127.0.0.1

【2.2.2】IPv6地址接口标识

接口ID可以通过三种方式生成:

  • 手工配置
  • 系统自动生成
  • 基于IEEE EUI-64规范生成

基于IEEE EUI-64的规范生成IPv6接口标识

        转换算法:将第7位取反,即0变为1,或者1变为0,在MAC地址的中间(24bit处)插入两个字节:FFFE。

【3】IPv6地址分类

        IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。

        单播地址:用来唯一标识一个接口,发送到单播地址的数据报文将被传送给此地址所标识的一个接口。

        组播地址:用来标识一组接口(通常这组接口属于不同的节点),发送到组播地址的数据报文被传送给此地址所标识的所有接口。

        任播地址:用来标识一组接口(通常这组接口属于不同的节点),发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

        IPv6地址类型是由地址前缀部分来确定,主要地址类型与地址前缀的对应关系如下:

地址类型地址前缀(二进制)IPv6前缀标识
单播地址未指定地址00…0(128 bits)::/128
环回地址00…1(128 bits)::1/128
链路本地地址1111 1110 10FE80::/10
唯一本地地址1111 110FC00::/7(包括FD00::/8和不常用的FC00::/8)
站点本地地址(已弃用,被唯一本地地址代替)1111 1110 11FEC0::/10
全局单播地址其他形式-
组播地址1111 1111FF00::/8
任播地址从单播地址空间中进行分配,使用单播地址的格式

【3.1】单播地址

        IPv6单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。

【3.1.1】全局单播地址(GUA---Global Unicast Address)

        也被成为可聚合全球单播地址,相当于IPv4中的公网地址,用于IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。

        注:由于全局单播地址前3bit固定为001,因此全球单播地址在用冒分十六进制表示时,是以2000或3000开头,如,2000:X:X:X:X:X:X:X或者3000:X:X:X:X:X:X:X

【3.1.2】本地单播地址

        链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。

【3.1.2.1】链路本地地址(LLA---Link-Local Address)

        链路本地地址网络前缀为FE80::/10,仅用于单个链路(链路层不能跨网段),不能在不同子网中路由。结点使用链路本地地址与在同一个链路上的相邻结点进行通信。例如,在没有路由器的单链路IPv6网络上,主机使用链路本地地址与该链路上的其他主机进行通信。

        注:由于链路本地地址前10bit固定为1111 1110 10,因此链路本地地址在用冒分十六进制表示时,是以FE8、FE9、FEA和FEB开头,如,FE80:X:X:X:X:X:X:X、FE90:X:X:X:X:X:X:X、FEA0:X:X:X:X:X:X:X或者FEB0:X:X:X:X:X:X:X 

【3.1.2.2】唯一本地地址(ULA---Unique Local Address)

        唯一本地地址网络前缀为FC00::/7,是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可路由,因此不能用于访问公网(Internet)。

        注:由于唯一本地地址前7bit固定为1111 110,因此唯一本地地址在用冒分十六进制表示时,是以FC或FD开头,如,FC00:X:X:X:X:X:X:X或者FD00:X:X:X:X:X:X:X

 【3.2】组播地址

        IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组。

        IPv6组播地址q前8位固定为1111 1111,即以FF开始的IPv6地址为组播地址。

        组播地址由前缀(FF::/8)、标志(Flag)字段、范围(Scope)字段以及组播组ID(Group ID)4个部分组成。最后112位为组ID( Group ID ),标识不同的组播组,前面的80位为0 ,只使用最后32位。

Flags(标记):第一位为零,格式为|0|r|p|t|,通常0000或者0001。

  • r位:取0表示内嵌RP,取1表示内嵌RP。
  • p位:取0表示非基于单播前缀的组播地址,取1表示基于单播前缀的组播地址。
  • t位:取0表示永久分配组播地址,取1表示临时分配组播地址。

Scope(范围):4bit,标识传播范围。

  • 0001 node(节点):本地接口范围,仅用于Lookback。
  • 0010 link(链路):本地链路范围。
  • 0101 Site(站点):本地站点范围。

        发送组播数据包通常是单台设备,可以是组播组成员,也可以是其它主机,数据包的目的地址是组播地址。 

        被请求节点组播地址:当一个节点具有了单播和任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。该地址主要用于邻居发现机制和地址重复检测功能。被请求节点组播地址的有效范围为本地链路范围。被请求节点组播地址格式如下:

        被请求节点组播地址的前104位是固定的,后24位根据单播地址的后24来进行填充。
        例如:全球单播地址:2001:172:16:12::1
        对应被请求节点组播地址为:FF02::1:FF00:01 
        其中FF02::1表示所有主机,FF02::2表示所有路由器。

 如下示例:

        PC1发送数据至PC2前,首先需要获取其MAC地址。PC1将发起类似IPv4中ARP的解析流程,IPv6使用ICMPv6的NS和NA报文来实现地址解析过程,NS报文的目的IPv6地址为目标IPv6单播地址对应的被请求节点组播地址。

        组播IPv6报文的目的IP为组播IPv6地址,同样,目的MAC为组播MAC地址。组播MAC的前16bit为"33:33",是专门为IPv6组播预留的MAC地址前缀。后32bit从组播IPv6地址的后32bit直接映射而来。

【3.3】任播地址

        在IPv6中没有广播的概念,但是有任播地址,它的范围和全球单播地址一致,只不过可以重复配置,无法根据地址判断是单播地址还是任意播地址。通过合适的路由拓扑,目的地址为任播地址的数据包将被发送到单个接口(该地址识别的最近接口,最近接口定义的根据是路由距离最近,而且当最近的路由器故障时,根据路由指向下一台最近的路由器。),一个任播地址绝不能用作IPv6数据包的源地址;也不能分配给IPv6主机,仅可以分配给IPv6路由器 。

【4】IPv6报文结构

IPv6报文一般由三个部分组成:

  • 基本报头:提供报文转发的基本消息,路由器通过解析基本报头就能完成绝大多数额报文转发任务(长度固定为40字节)
  • 扩展报头:提供一些扩展的报文转发信息,如分段、加密等,该部分不是必需的,也不是每个路由器都需要处理,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头
  • 上层协议数据单元:一般由上层协议报头和它的有效载荷构成,该部分与IPv4上层协议数据单元相似

【4.1】IPv6基本报头

版本号表示协议版本,值为6
流量类别主要用于QoS
流标签用来标识同一个流里面的报文
载荷长度包含扩展报头和数据部分的长度,最多可表示65535字节数,超过则置为0
下一报头该字段用来指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,它是IPv6各种功能的核心实现方法
跳数限制该字段类似于IPv4中的TTL,每次转发跳数减一,该字段达到0时包将会被丢弃
源地址标识该报文的来源地址
目的地址标识该报文的目的地址

【4.2】IPv6扩展报头

  • Extension Header Length:扩展报头长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)
  • Extension Header Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合

  • 逐跳选项报头:该扩展报头被每一条处理,可包含多种选项,如路由器告警选项
  • 目的选项报头:目的地处理,可包含多种选项,如Mobile IPv6的家乡地址选项
  • 路由报头:指定源路由,类似IPv4 源路由选项,IPv6源节点用来指定信息报到达目的地的路径上所必须经过的中间节点。IPv6基本报头的目的地址不是分组的最终目的地址,而是路由扩展头中所列的第一个地址
  • 分段报头:IP报文分片信息,只由目的地处理
  • 认证报头:IPsec用扩展头,只由目的地处理
  • 封装安全净载报头:IPsec用扩展头,只由目的地处理

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

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

相关文章

BigDataCloud 反向地理编码

在当今数字化飞速发展的时代,地理信息的精确获取和游戏数据的深入分析成为众多领域的关键需求。2024 年的今天,技术的创新为我们带来了更为出色的 API 服务。BigDataCloud 反向地理编码服务,能够将经纬度迅速而准确地转换为详细位置信息&…

ThinkPHP5大学生社会实践管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP5大学生社会实践管理系统 一 介绍 大学生社会实践管理系统基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:ThinkPHP5mysqlbootstrapphpstudyvscode 二 功…

ChatTTS增强版V3【已开源】,长文本修复,中英混读,导入音色,批量SRT、TXT

ChatTTS增强版V3来啦!本次更新增加支持导入SRT、导入音色等功能。结合上次大家反馈的问题,修复了长文本、中英混读等问题。 项目已开源(https://github.com/CCmahua/ChatTTS-Enhanced) 项目介绍 V3 ChatTTS增强版V3,长文本修复&#xff0c…

找不到xinput1_3.dll如何修复?总结几种靠谱的修复方法

在数字时代,软件问题几乎是每个电脑用户都会遇到的难题。最近,我也遇到了一个令人头疼的问题——xinput1_3.dll文件丢失。这个问题导致我无法正常运行一些游戏,十分影响我的娱乐体验。通过这次修复经历,我不仅解决了问题&#xff…

8个腾讯,18个阿里,104个百度

8个腾讯、18个阿里巴巴、104个百度!英伟达市值已经超越我的前司微软,成为全球第一,(虽然今天又被微软超越,但势头非常猛)达到了恐怖的3.34万亿美元!这是什么概念?相当于8个腾讯,18个…

ES6+Vue

ES6Vue ES6语法 ​ VUE基于是ES6的,所以在使用Vue之前我们需要先了解一下ES6的语法。 1.什么是ECMAScript6 ECMAScript是浏览器脚本语言的规范,基于javascript来制定的。为什么会出现这个规范呢? 1.1.JS发展史 1995年,网景工…

【第25章】Vue实战篇之用户登出

文章目录 前言一、后端代码二、前端代码1.接口调用2.界面代码3.事件代码 三、效果总结 前言 这里来演示用户登出。 一、后端代码 /*** 登出* param token token* return Result*/RequestMapping("logout")public Result logout(RequestHeader("Authorization&…

LeetCode26. 删除有序数组中的重复项题解

LeetCode26. 删除有序数组中的重复项题解 题目链接: https://leetcode.cn/problems/remove-duplicates-from-sorted-array 题目描述: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一…

Excel 如何复制单元格而不换行

1. 打开excle, sheet1右键单击>查看代码>插入>模块 输入代码 Sub CopyText() Updated by NirmalDim xAutoWrapper As ObjectSet xAutoWrapper New DataObject or GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")xAutoWrapper.SetText ActiveC…

Depth Anything V2:抖音开源高性能任何单目图像深度估计V2版本,并开放具有精确注释和多样化场景的多功能评估基准

📜文献卡 题目: Depth Anything V2作者: Lihe Yang; Bingyi Kang; Zilong Huang; Zhen Zhao; Xiaogang Xu; Jiashi Feng; Hengshuang ZhaoDOI: 10.48550/arXiv.2406.09414摘要: This work presents Depth Anything V2. Without pursuing fancy technique…

RN组件库 - Button 组件

从零构建 React Native 组件库,作为一个前端er~谁不想拥有一个自己的组件库呢 1、定义 Button 基本类型 type.ts import type {StyleProp, TextStyle, ViewProps} from react-native; import type {TouchableOpacityProps} from ../TouchableOpacity/type; import…

webpack安装sass

package.json文件 {"devDependencies": {"sass-loader": "^7.2.0","sass": "^1.22.10","fibers": "^4.0.1"} }这个不用webpack.config.js module.exports {module: {rules: [{test: /\.s[ac]ss$/i,u…

FlinkSQL开发经验分享

最近做了几个实时数据开发需求,也不可避免地在使用Flink的过程中遇到了一些问题,比如数据倾斜导致的反压、interval join、开窗导致的水位线失效等问题,通过思考并解决这些问题,加深了我对Flink原理与机制的理解,因此将…

DC-DC 高压降压、非隔离AC-DC、提供强大的动力,选择优质电源芯片-(昱灿)

畅享长续航,尽在我们的充电芯片! 无论是手机、平板还是智能设备,长时间使用后电量不足总是令人头疼。然而,我们的充电芯片将为您带来全新的充电体验!采用先进的技术,我们的充电芯片能够提供快速而稳定的充电…

威纶通触摸屏软件出现显示异常问题(显示黑色)处理方法

异常现象 电脑端显示异常,显示黑色 解决方法 Step1:软件根目录查找DisplaySetting.exe Step2:勾选第1或第2项,重启软件即可 分享创作不易,请多多支持,点赞、收藏、关注! Ending~

《计算机英语》 Unit 3 Software Engineering 软件工程

Section A Software Engineering Methodologies 软件工程方法论 Software development is an engineering process. 软件开发是一个工程过程。 The goal of researchers in software engineering is to find principles that guide the software development process and lea…

冲击2024年CSDN博客之星TOP1:CSDN文章质量分查询在哪里?

文章目录 一,2023年博客之星规则1,不高的入围门槛2,[CSDN博文质量分测评地址](https://www.csdn.net/qc) 二,高分秘籍1,要有目录2,文章长度要足够,我的经验是汉字加代码至少1000字。3&#xff0…

6G时代,即将来临!

日前,由未来移动通信论坛、紫金山实验室主办的2024全球6G技术大会在南京召开。本次大会以“创新预见6G未来”为主题,在大会开幕式上发布了协力推进全球6G统一标准行动的倡议和紫金山科技城加速培育以6G技术引领未来产业行动计划。 在我国已开展第五代移动…

会自动清除的文件——tempfile

原文链接:http://www.juzicode.com/python-tutorial-tempfile/ 在某些不需要持久保存文件的场景下,可以用tempfile模块生成临时文件或者文件夹,这些临时文件或者文件夹在使用完之后就会自动删除。 NamedTemporaryFile用来创建临时文件&…

6月27日云技术研讨会 | 中央集中架构新车型功能和网络测试解决方案

会议摘要 “软件定义汽车”新时代下,整车电气电气架构向中央-区域集中式发展已成为行业共识,车型架构的变革带来更复杂的整车功能定义、更多的新技术的应用(如SOA服务化、TSN等)和更短的车型研发周期,对整车和新产品研…