当前位置: 首页 > news >正文

IPV6学习记录

IPV6的意义

从广义上来看IPV6协议包含的内容很多:

  1. IPV6地址的生成与分配

  2. IPV6的报头的功能内容

  3. IPV4网络兼容IPV6的方案

  4. ICMPv6的功能(融合了arp和IGMP功能)

  5. IPV6的路由方式

ipv6的诞生除了由于ipv4的地址枯竭外,很大程度上也是因为ipv4多年的发展产生了很多无法根治的缺陷:

1.路由表冗长 - 冗长的路由表大大增加了数据的延迟和转发速度,对于中间路由的维护复杂度也大大提高

2.广播的滥用 - ipv4的地址复杂导致arp广播高发,影响整个无线网的质量

3.ipv4头部固定 - 随着网络功能的日益增加,ipv4报头原本提供的能力已经不足以支撑复杂多元的业务,很多字段起初的设以也已经改变

IPV6地址

地址类型

本地单播地址 :传统的点对点通信FE80:开头。存在多种配置方式:静态、无状态配置、DHCPv6配置

多播地址 :一点对多点的通信。数据报发送到一组计算机中的每一个。IPv6没有采用广播的术语,而将广播看作多播的一个特例。

任播地址 (anycast address):这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付离发送方最近(由路由协议度量)的一个计算机。

全球单播地址:为全球唯一地址,不和任何本地单播地址或全球单播地址重复,头部地址为2001。注:用户想要使用需要申请公网ip,电信运营商20一个月。

组播地址: FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。

环回地址: 同ipv4 127.0.0.1,ipv6为0:0:0:0:0:0:0:1,可缩写为::1/128

未指明地址: 还未分配地址的接口,地址为0.如下:

地址生成

  1. 手工配置 - 在早期的ipv6配置中如果需要使用ipv6服务需要用户手动美之本地地址,dns服务,网关等。

  2. 系统通过软件自动生成 - 这里指自动生成:可以依据串口号、mac地址、本地唯一标识等来计算。

  3. IEEE EUI-64规范自动生成(64 位 EUI 64 地址是由电气和电子工程师协会 (IEEE) 定义的。将 EUI-64 地址指派给网络适配器,或从 IEEE802 地址派生得到该地址。)

在这里介绍EUI-64规范:第七位取反,在前24位和后24位中间插入FFFE

例:

MAC地址(48bit):74-29-AF-9A-05-5B

换算二进制为:01110100 00101001 10101111 10011010 00000101 01011011

换算后:01110110 00101001 10101111 11111111 11111110 10011010 00000101 01011011(第七位取反,由0变1) (中间插入FFFE)

EUI-64生成接口标识为:7629:AFFF:FE9A:055B

地址分配

地址的分配在ipv4网络中主要由dhcp完成,可以协助完成网关、dns、地址的分配。在ipv6网络中dhcpv6也提供了类似的功能,但是ipv6似乎更加推崇无状态配置。这里单独说下无地址状态配置的流程。

  1. 主机根据本地接口ID自动产生网卡的链路本地地址。

  2. 主机对链路本地地址进行DAD检测, 如果该地址不存在冲突则可以启用。

  3. 主机发送RS报文尝试在链路上发现IPv6路由器,该报文的源地址为主机的链路本地地址。

  4. 路由器回复RA报文(携带IPv6前缀信息,路由器在未收到RS时也能够配置主动发出RA报文)。

  5. 主机根据路由器回应的RA报文,获得IPv6地址前缀信息,使用该地址前缀,加上本地产生的接口ID,形成单播IPv6地址。

  6. 主机对生成的IPv6地址进行DAD检测,如果没有检测到冲突,那么该地址才能够启用。

IPV6报头

  1. 版本信息: ipv4标号为4 ipv6编号为6,长度4bit

  2. 区分常量:表示数据优先级以前叫TOS。在IPV4时代支持度就很一般。通过对数据类型进行划分,实现良性竞争,类似的方法还有802.11规范中的EDCA。现在被广泛滥用,不如没有。

  3. ECN:拥塞标识符,当路由器数据吞吐量很大出现数据大量排队,路由器可以设置ECN标志后转发出去,到达目的地后,接收端可以发送一个报文给发送方提示当前发送路径存在拥堵。

  4. 流标号:

  5. 有效载荷长度:报文中有效数据的长度,包含下一头部等信息

  6. 下一首部:和ipv4的协议字段一样: 如果ipv6没有下一首部,那么会表示上一层协议类型(TCP UDP);如果有下一首部,用来表示IPV6选项的内容。IPV6中将IPV4中的拓展功能下放到数据区,这样IPV6的报头就变成固定40字节。

IPV6的可选项

  1. 动作00(转发) 01(丢弃) 10(丢弃并发送icmp给数据源) 11(同10,仅在目的地不是多播时发送icmp消息):用于表示如果选项没有被识别,ipv6节点是转发还是丢弃此报文

  2. chg 可以看作是change,设置为1表示选项内容可以更改,0为不可更改

  3. 类型:数据类型。如超大有效载荷194,路由警告5,快速启动6等

  4. 数据长度就是字面意思,后边数据的长度大小。

对比IPV4

IPv6将IPv4数据报首部中不必要的功能取消,这使得IPv6数据报基本首部中的字段数量减少到只有8个。但由于IPv6地址的长度扩展到了128比特,因此使得IPv6数据报基本首部的长度反而增大到了40字节,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。

  1. IPv6数据报的首部长度是固定的40字节,取消了IPV4报头中首部长度字段。

  2. 取消了区分服务(服务类型)字段,因为IPv6数据报首部中的通信量类和流标号字段实现了区分服务字段的功能。

  3. IPv6数据报的首部长度是固定的40字节,只有其后面的有效载荷长度是可变的。取消总长度字段,改用有效载荷长度字段。

  4. 取消标识、标志和片偏移字段,因为这些功能已包含在IPv6数据报的分片扩展首部中。

  5. 把生存时间TTL字段改称为跳数限制字段,这样名称与作用更加一致。

  6. 取消协议字段,改用下一个首部字段。

  7. 取消首部检验和字段,这样可以加快路由器处理IPv6数据报的速度。

  8. 取消选项字段,改用扩展首部来实现选项功能。

IPV6的路由

IPV6的路由方式大体和IPV4相同,但是额外新增了ICMPV6实现的邻居发现协议来取代arp功能。与ARP使用的广播不同,IPV6规范中采用组播代替广播,在icmpV6的邻居发现协议中也采用组播方式获取局域网内各个节点的信息。

ICMPV6

ICMPV6对比ICMPV4和IGMPV4最主要的是新增的NS/NA、RS/RA这两个局域网内部的信息交换配置。

RA: router adviste 路由器定期发送的报文或响应一个RS报文。目的地址为组播地址ff02::2.示例如下

RS: router solicited 一般为搜索局域网内的路由器,等待路由器回复RA,报文示例:

NS: neighbor solicited 报文发送者想设法获取IPV6地址对应mac地址。当NS目标地址为单播时,需要包含源链路地址(mac)选项,让NA知晓请求来源;如果是重复地址检测,不需要包含此选项。

NA: neighbor adviste 此报文类似arp中的reply一样用于回复ns的探测请求或是当一个节点的IPV6地址变化时异步发送,此外还可以用于邻居不可达检测。

标签: Router - 发送者为路由器;solicited - 此报文为响应先前的请求 Oerride - 此报文信息覆盖之前提供的信息

IPV4兼容IPV6

双协议栈模式:目前用户设备中,都采用双协议栈形式兼容IPV4和IPV6。路由器和交换机也将IPV6作为基本的能力。

隧道模式:对于IPV6报文需要穿越某些独立网络且这部分网络中不支持IPV6协议栈,可以将IPV6报文封装为IPV4报文穿越此独立网络后解封发送出去。

相关文章:

IPV6学习记录

IPV6的意义 从广义上来看IPV6协议包含的内容很多: IPV6地址的生成与分配 IPV6的报头的功能内容 IPV4网络兼容IPV6的方案 ICMPv6的功能(融合了arp和IGMP功能) IPV6的路由方式 ipv6的诞生除了由于ipv4的地址枯竭外,很大程度上也是因为ipv4多年的发展产生了很多…...

使用proteus进行主从JK触发器仿真失败原因的分析

在进行JK触发器的原理分析的时候,我首先在proteus根据主从JK触发器的原理进行了实验根据原理图,如下图: 我进行仿真,在仿真的过程中,我向电路图中添加了外部的置0/1端口,由此在proteus中得到下面的电路图 …...

Golang基础入门及Gin入门教程(2024完整版)

Golang是Google公司2009年11月正式对外公开的一门编程语言,它不仅拥有静态编译语言的安全和高性能,而 且又达到了动态语言开发速度和易维护性。有人形容Go语言:Go C Python , 说明Go语言既有C语言程序的运行速度,又能达到Python…...

202312 青少年软件编程(C/C++)等级考试试卷(四级)电子学会真题

2023年12月 青少年软件编程(C/C)等级考试试卷(四级)电子学会真题 1.移动路线 题目描述 桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增…...

leetcode-合并两个有序数组

88. 合并两个有序数组 题解: 这是一个经典的双指针问题,我们可以使用两个指针分别指向nums1和nums2的最后一个元素,然后比较两个指针所指向的元素大小,将较大的元素放入nums1的末尾,并将对应的指针向前移动一位。重复…...

网站怎么做google搜索引擎优化?

网站想做google搜索引擎优化,作为大前提,您必须确保网站本身符合google规范,我们不少客户实际上就连这点都无法做到 有不少客户公司自己本身有技术,就自己弄一个网站出来,做网站本身不是难事,但前提是您需要…...

TDengine 签约西电电力

近年来,随着云计算和物联网技术的迅猛发展,传统电力行业正朝着数字化、信息化和智能化的大趋势迈进。在传统业务基础上,电力行业构建了信息网络、通信网络和能源网络,致力于实现发电、输电、变电、配电和用电的实时智能联动。在这…...

赛门铁克OV代码签名证书一年多少钱?

在当前,软件和应用程序的安全性变得尤为重要。为了保护软件的完整性和安全性,越来越多的开发者和厂商开始采用代码签名的方式来确保软件的真实性和完整性。赛门铁克OV代码签名证书成为了其中一个备受信任的选择。那么,赛门铁克OV代码签名证书…...

Dockerfile详解

文章目录 一、Dockerfile介绍二、常用指令三、Dockerfile示例四、最佳实践 一、Dockerfile介绍 Dockerfile是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据Dockerfile的内容构建镜像。 一般的,Dockerfile分为四部分:基础…...

零基础小白如何自学sql?

学习SQL对于数据分析和处理来说非常重要。SQL是一种强大的工具,可以帮助你与数据库沟通,提取,整理和理解数据。 以下是一些学习SQL的建议: 01 前期:SQL数据库学习 了解SQL的基本概念:首先,你…...

【刷题笔记2】

刷题笔记2 最小公倍数、最大公约数 两个数的最大公约数两数乘积/最小公倍数 #<include> cmath; int a,b; int mgcd(a,b);//求最大公约数复制字符串substr()函数 s.substr(pos, len) &#xff1a;pos的默认值是0&#xff0c;len的默认值是s.size() - pos string a1;in…...

Kafka之集群搭建

1. 为什么要使用kafka集群 单机服务下&#xff0c;Kafka已经具备了非常高的性能。TPS能够达到百万级别。但是&#xff0c;在实际工作中使用时&#xff0c;单机搭建的Kafka会有很大的局限性。 ​ 消息太多&#xff0c;需要分开保存。Kafka是面向海量消息设计的&#xff0c;一个T…...

Linux备忘手册

常⽤命令 作⽤ shutdown -h now 即刻关机 shutdown -h 10 10分钟后关机 shutdown -h 11:00 11&#xff1a;00关机 shutdown -h 10 预定时间关机&#xff08;10分钟后&#xff09; shutdown -c 取消指定时间关机 shutdown -r now 重启 shutdown -r 10 10分钟之后重启 shutdown -…...

Qt中QGraphicsView总体架构学习

前沿 前段时间学习了下如何在QGraphicsView架构中绘制刻度尺&#xff0c;主要是与OnPainter中进行比较的&#xff0c;那么今天就来详细讲解下我对QGraphicsView框架的认知吧~ 最近一段时间想学习下&#xff0c;如果我有不正确的&#xff0c;欢迎留言探讨哟~ QGraphicsView架…...

STL-list的使用简介

目录 ​编辑 一、list的底层实现是带头双向循环链表 二、list的使用 1、4种构造函数&#xff08;与vector类似&#xff09;​编辑 2、迭代器iterator 3、容量&#xff08;capicity&#xff09;操作 4、element access 元素获取 5、增删查改 list modifiers 6、list的迭…...

MySQL:索引失效场景总结

1 执行计划查索引 通过执行计划命令可以查看查询语句使用了什么索引。 EXPLAIN SELECT * FROM ods_finebi_area WHERE areaName = 福建 执行查询计划后,key列的值就是被使用的索引的名称,若key列没有值表示查询未使用索引。 2 在什么列上创建索引 (1)列经常被用于where…...

LNMP平台对接redis服务

目录 1、安装 LNMP 各个组件 2、安装 redis 服务 3、安装 redis 扩展 4、修改 php 配置文件 5、测试连接 1、安装 LNMP 各个组件 2、安装 redis 服务 3、安装 redis 扩展 官网&#xff1a;http://redis.io/ 下载包&#xff1a; https://codeload.github.com/phpredis/p…...

5G之味,在烟火长沙

今年夏天&#xff0c;有一部电影叫做《长沙夜生活》。影片讲述了长沙大排档中的一些故事。网红大排档的老板娘、厨师、顾客&#xff0c;他们的邂逅、热爱、留下、离开、和解、团圆&#xff0c;都发生在一段夜色里&#xff0c;发生在充满烟火气的长沙城。 有没有想过这样一个问题…...

【MYSQL】MYSQL 的学习教程(十一)之 MySQL 不同隔离级别,都使用了哪些锁

聊聊不同隔离级别下&#xff0c;都会使用哪些锁&#xff1f; 1. MySQL 锁机制 对于 MySQL 来说&#xff0c;如果只支持串行访问的话&#xff0c;那么其效率会非常低。因此&#xff0c;为了提高数据库的运行效率&#xff0c;MySQL 需要支持并发访问。而在并发访问的情况下&…...

LORA的基本原理

本文将介绍如下内容&#xff1a; 什么是Lora高效微调的基本原理LORA的实现方式LORA为何有效&#xff1f; 一、什么是LoRA LoRA 通常是指低秩分解&#xff08;Low-Rank Decomposition&#xff09;算法&#xff0c;是一种低资源微调大模型方法&#xff0c;论文如下: LoRA: Low…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...