1.IPv6基础知识

IPv6简介

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任
务组(IETF)设计的用于替代IPv4的下一代IP协议,IPv6采用128位的二进制地址,因此新
增的地址空间支持2 128 (约3.4×10 38 )个地址,其地址数量号称可以为全世界的每一粒沙子编
上一个地址。由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍 。

IPv6地址表示方法

IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。
IPv6地址分为两部分,分别是网络前缀和接口标识。
网络前缀,相当于IPv4中的网络ID;接口标识,相当于IPv4中的主机ID
其前缀可书写为:地址/前缀长度。如:21DA:D3:0:2F3B::/64
IPv6有3种表示方法:
1)冒分十六进制表示法
  格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  这种表示法中,每个X的前导0是可以省略的,例如:
  2001:0DB8:0000:0023:0000:0000:200C:017A→ 2001:DB8:0:23:0:0:200C:17A

2)0位压缩表示法
  在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址
解析的唯一性,地址中”::”只能出现一次,例如:
  FF00:0:0:0:0:0:0:1101 → FF00::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
3)内嵌IPv4地址表示法
  为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b
采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1
与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用

IPv6报文内容

IPv6报文的整体结构分为IPv6报头、扩展报头和上层协议数据3部分。IPv6报头是必选报文头部,长度固定为40B,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他可能报文。

 IPv6地址类型

IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。与原来在IPv4地址相比,新增了“任播地址”类型,取消了原来IPv4地址中的广播地址,因为在IPv6中的广播功能是通过组播来完成的;
单播地址:用来唯一标识一个接口,类似于IPv4中的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的一个接口。
组播地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4中的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。
任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

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

IPv6组播地址

IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组;
IPv6组播地址的最明显特征就是最高的8位固定为1111 1111。IPv6地址很容易区分组播地址,因为它总是以FF开始的;
组播地址高8bit为固定值FF,此高8个bit中4bit为标志位,4bit为组播组的作用域,后112位为组ID,用以标识组播组。目前,RFC2373并没有将所有的112位都定义成组标识,而是建议仅使用该112位的最低32位作为组播组ID,将剩余的80位都置0。这样每个组播组ID都映射到一个唯一的以太网组播MAC地址。

 被请求节点组播地址(Solicited-Node Address)

被请求节点组播地址通过节点的单播或任播地址生成。当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。一个单播地址或任播地址对应一个被请求节点组播地址。该地址主要用于邻居发现机制和地址重复检测功能。IPv6中没有广播地址,也不使用ARP。但是仍然需要从IP地址解析到MAC地址的功能。在IPv6中,这个功能通过邻居请求NS(Neighbor Solicitation)报文完成。当一个节点需要解析某个IPv6地址对应的MAC地址时,会发送NS报文,该报文的目的IP就是需要解析的IPv6地址对应的被请求节点组播地址;只有具有该组播地址的节点会检查处理。
被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成

例如:Node_B的单播地址为1::2:B ,其被请求节点组播地址为FF02::1:FF02:B

NDP

NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6协议体系中一个重要的基础协议。通过使用ICMPv6报文实现以下丰富的功能:
• 无状态自动配置(简化版的DHCP):路由器发现、前缀发现、参数发现;
• 重复地址检测(DAD),相当于IPv4的免费ARP;
• 地址解析,相当于IPv4的ARP;
• 邻居不可达检测(NUD);
•路由器重定向。
与IPv4的ARP相比,IPv6地址解析技术工作在OSI参考模型的网络层,与链路层协议无关。ICMPv6的报文格式图1所示;ICMPv6消息类型中有5种是为了支持邻居发现协议而定义的,功能如图2描述:

重复地址检测DAD

重复地址检测DAD(Duplicate Address Detect)是在接口使用某个IPv6单播地址之前进行的,主要是为了探测是否有其它的节点使用了该地址。尤其是在地址自动配置的时候,进行DAD检测是很必要的。一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和试验地址所对应的
Solicited-Node组播组。
过程中使用了两种ICMPv6报文:邻居请求报文NS(Neighbor Solicitation)和邻居通告报文NA
(Neighbor Advertisement)。
• NS报文:Type字段值为135,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP请求报文。
• NA报文:Type字段值为136,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP应答报文。
IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向试验地址所对应的Solicited-Node组播组发送NS报文。NS报文中目标地址即为该试验地址。如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

2.IPv6过渡技术

4.网络基础-IPv6基础知识相关推荐

  1. 网络协议IPV6基础知识点集锦

    由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放.透明以及端到端的特性,因此IPV6地址协议应运而生. IPV ...

  2. 华为HCIA-datacom 学习笔记17——IPv6基础

    华为HCIA-datacom 学习笔记17--IPv6基础 IPv6基础 1.ipv4与ipv6 地址长度32bit IPv6:IP地址长度128bit IPv4包头(20byte~60byte) I ...

  3. 华南理工网络计算机基础知识,2019年华南理工大学网络教育计算机基础随堂练习第一章...

    2019年华南理工大学网络教育计算机基础随堂练习第一章 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 第一章 计算机基础知识·第 ...

  4. 一文快速掌握IPv6基础知识及使用指南

    随着5G.物联网等新兴技术领域的发展,IP空间需求巨大,IPv6成为万物互联的基础,势在必行:华为云作为IPv6成熟商用开拓者,针对金融.广电.媒资等不同行业推出IPv6解决方案,助力企业平滑升级到I ...

  5. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  6. python网络编程知识_python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  7. 【知识科普】解读闪电/雷电网络,零基础秒懂!

    知识科普,解读闪电/雷电网络,零基础秒懂! 闪电网络的技术是革命性的,将实现即时0手续费的小金额支付.第一步是解决扩容问题,第二部就是解决共通性问题,利用原子交换协议和不同链条的状态通道结合,进行不同 ...

  8. 【网络通信】【电信运营商实战工程师】思科设备篇-网络工程师必备基础知识

    电信运营商实战工程师系列文章. 思科设备篇-网络工程师必备基础知识. 文章目录 1. 电信运营商网络设备机房 2. 认识并管理运营商网络设备 3. GNS3 安装与配置 4. IPv4地址及子网划分 ...

  9. 网络运维基础知识手册

    <网络运维基础知识手册>     <Windows 系统管理> 01. 什么是 BIOS?如何进入 BIOS? BIOS 基本输入输出系统,一般按 DEL 或 F2 进 BIO ...

最新文章

  1. 5月15日直播预告:英飞凌AURIX™培训—图像处理、实车演示等热点问题
  2. Exception in thread main java.lang.IncompatibleClassChangeError: net/sf/cglib/core/DebuggingClassW
  3. redis启动问题:/var/redis/run/redis_6379.pid exists, process is already running or crashed
  4. 开发日记-20190718 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 11
  5. 一些windows下调试网络的命令行
  6. ML之LiR2PolyR4PolyR:使用线性回归LiR、二次多项式回归2PolyR、四次多项式回归4PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)
  7. 火狐ok谷歌适配_“ OK Google”在锁定手机上的安全性越来越高
  8. 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
  9. 分级时间轮优化普通时间轮定时器
  10. Python基础知识(3)
  11. 南丁格尔邮票图片大全_【鉴赏】武夷山普通纪念币鉴赏(高清图片)
  12. CPC客户端安装教程(2022/4/1)
  13. python中气泡图文字标签_Excel中制作气泡图及为气泡图的系列数据点添加文本数据标签...
  14. WinPE环境下WinNTSetup使用说明(WIM_ESD系统如何安装)
  15. 梯形图调用c语言编写程序,简单使用C语言写梯形图精简V2.0.pdf
  16. 位图排序算法优化篇-永无止境
  17. 移动硬盘安装Kali所碰到到问题
  18. 企业在线ERP系统与内控控制因素管理
  19. 研发效能度量框架解读
  20. 如何拥有好的精力去做事情?管理精力

热门文章

  1. C# 机器视觉工控通讯------发那科机器人上位机通讯
  2. linux filesystem not open,linux下出现repair filesystem解决办法
  3. 这三个NLP项目写进简历,网申通过率提高50%!
  4. qDebug 输出中文
  5. org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session
  6. bsc heco eth浏览器开源智能合约代码,图文说明
  7. 使用wordpress搭建独立域名的个人博客或网站
  8. python概率游戏_来自G胖的微笑:使用python监督学习预测Steam游戏打折的概率
  9. 如何将pdf转换成word,快速搞定的5种方法
  10. 虹软离线人脸识别java版本的SDK使用配置,也是整了半天才看明白一些,总结一下