IPv6地址格式
1.说明
IPv6是互联网协议的第六版,
现有IPv4只支持大概40亿个网络地址,
而IPv6支持3.4e38个网络地址。
IPv4的地址长度是32位(bit),
IPv6的地址长度是128位。
尽管大部分IPv4计算机每个接口只有一个IP地址,
但是IPv6计算机通常会有两个IP地址:
一个本地链路地址和一个全球单播地址。

2.首选格式(冒分十六进制表示法)
一个128位二进制数的IPv6地址如下:
0010000000000001 0000000000000000 0011001000111000 1101111111100001
0000000001100011 0000000000000000 0000000000000000 1111111011111011
一般二进制数不好阅读和记忆,
所以推荐使用十六进制数作为首选格式,
这128位的地址按每16位划分为一组,
每组转换成4个十六进制数,
每组之间用冒号隔开,
称为冒分十六进制表示法。
一个典型的IPv6地址为8组4个十六进制数,如下:
2001:0000:0000:0000:085b:3c51:f5ff:ffdb
3.压缩格式
基于使用冒分十六进制表示法的首选格式,
IPv6地址还可以进一步压缩为两种短格式。
3.1.省略前导零
可以省去任意组的前导零来压缩IPv6地址,
085b可以化简为85b,
全0块0000可以化简为0,
下面的IP地址与前一个IP地址完全相同:
2001:0:0:0:85b:3c51:f5ff:ffdb
3.2.双冒号::
对于多个连续地址块为0的情况时,
可以使用双冒号::压缩。
下面的IP地址省略了3组全0,
只使用剩下的5组十六进制数,
实际与前一个IP地址完全相同:
2001::85b:3c51:f5ff:ffdb
为保证地址解析的唯一性,
地址中双冒号::只能出现一次,
因为IPv6地址始终会有8组4个十六进制数,
所以可以确定有多少全0组被省略。
如果出现多个连续全0块时,
双冒号::要化简最长的一段,
没有最长的使用就近原则,
压缩最靠近左边的第一段,
双冒号::可以出现在地址开头或结尾。
4.内嵌IPv4地址的格式
为了实现IPv4-IPv6互通,
IPv4地址会嵌入IPv6地址中,
此时地址常表示为:
X:X:X:X:X:X:d.d.d.d
地址前96位采用冒分十六进制表示法,
地址后32位则使用IPv4的点分十进制表示法,
下面两个地址是典型的内嵌IPv4地址:
::192.168.0.1
::FFFF:192.168.0.1
注意在地址前96位中,压缩格式仍然适用。
4.1.通过IPv4映射的IPv6地址
此类型的地址用于将IPv4节点表示为IPv6地址。
它允许IPv6应用程序直接与IPv4应用程序通信。
例如:
0:0:0:0:0:ffff:192.1.56.10
::ffff:192.1.56.10/96
4.2.兼容IPv4的IPv6地址
此类型的地址用于隧道传送。
它允许IPv6节点通过IPv4基础结构通信。
例如:
0:0:0:0:0:0:192.1.56.10
::192.1.56.10/96
5.地址类型
IPv6协议主要定义了三种地址类型:
- 单播地址(Unicast Address)
- 任播地址(Anycast Address)
- 组播地址(Multicast Address)
5.1.单播地址
一个单播地址对应一个接口,
发往单播地址的数据包会被送到对应的接口。
5.1.1 全球单播地址
前缀2000::/3,相当于IPv4的公网地址。
这种地址在全球的路由器间可以路由。
5.1.2 链路本地地址
前缀FE80::/10,
此类地址用于同一链路上的节点间的通信,
主要用于自动配置地址和邻居节点发现过程。
Windows和Linux支持或开启IPv6后,
默认会给网卡接口自动配置一个链路本地地址。
Linux下查看链路本地地址:

Windows下查看链路本地地址:

每个接口必须至少有一个链路本地地址,
每个接口可以配置1个以上的单播地址,
例如一个接口可以配置一个链路本地地址,
同时也可以配置一个全球单播地址。
5.1.3 唯一本地地址
前缀FC00::/7,
相当于IPv4的私网地址(10.0.0.0、172.16.0.0、192.168.0.0),
在RFC4193中新定义的一种解决私网需求的单播地址类型,
用来代替废弃使用的站点本地地址。
由于默认情况下私网内节点与外界通信的发起是单向的,
网络访问仅仅能从私网内发起,
外部发起的请求会被统一网关或者防火墙阻隔掉,
这样的网络架构很好的保护了私网内的节点安全性和私密性。
因此,在安全性和私密性要求下,
IPv6中同样需要支持私网,并且也需要支持NAT。
5.1.4 站点本地地址
前缀FEC9::/48,以前是用来部署私网的,
但RFC3879中已经不建议使用这类地址,
实际上这种地址已经不再使用,
建议使用唯一本地地址。
5.1.5 特殊地址:回环地址
0:0:0:0:0:0:0:1或::1,
等同于IPv4的127.0.0.1。
5.1.6过渡地址:内嵌IPv4地址的IPv6地址
参考上面的第4章节,
这类地址主要用于IPv6/IPv4的过渡技术中。
5.2.任播地址
一个任播地址对应一组接口,
发往任播地址的数据包会被送到这组接口中最近的一个接口,
最近的一个被标识接口由具体的路由协议确定。
5.3.组播地址
一个组播地址对应一组接口,
发往组播地址的数据包会被送到这组的所有接口。
IPv6中没有广播地址,其功能被组播地址取代。
6.参考文章:
IP Version 6 Addressing Architecture
RFC 2732 Format for Literal IPv6 Addresses in URL's
IPV6地址和报文结构详解
IPv6技术详解:基本概念、应用现状、技术实践(上篇)
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
IPv6地址格式的更多相关文章
- IPV6地址格式分析
IPV6地址格式分析 IPv6的地址长度是128位(bit). 将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开. 例如:2000:0000:0000:0000:00 ...
- IPv6地址格式示例及IPv6与IPv4的区别分析
认识IPv6地址 IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示: 而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128 ...
- IPv6介绍
一.为什么需要IPv6 为了扩大地址空间,拟通过IPv6重新定义地址空间.IPv4采用32位地址长度,只有大约43亿个地址,估计在2005-2010年间将被分配完毕,而IPv6采用128位地址长度,几 ...
- [华三] IPv6技术白皮书(V1.00)
IPv6技术白皮书(V1.00) http://www.h3c.com/cn/d_200802/605649_30003_0.htm H3C S7500E IPv6技术白皮书 关键词:IPv6,隧道 ...
- IPV6相关RFC文档
1. 通用 IPv6的通用RFC和Internet草案 RFC# 类 标题 1752 标准记录 对IP下一代协议的建议 1924 资料 IPv6地址的压缩表示法 2851 标准记录 Internet网 ...
- Nginx模块参考手册:HTTP核心模块
FROM: http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17238776&id=2982697 这些模块默认会全部编 ...
- 网络编程之addrinfo
addrinfo结构体定义如下: typedef struct addrinfo { int ai_flags;//指示在getaddrinfo函数中使用的选项的标志. int ai_family; ...
- Linux tcpdump命令详解
tcpdump官网:http://www.tcpdump.org/ 转载于:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.ht ...
- Linux tcpdump 详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
随机推荐
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐 ...
- 【Linux】【Services】【Docker】基础理论
1. 名称空间:NameSpace 内核级别,环境隔离: 1.1. 名称空间的历史 PID NameSpace:Linux 2.6.24 ,PID隔离 Network NameSpace:Linux ...
- 11.Vue.js-事件处理器
事件监听可以使用 v-on 指令: <div id="app"> <button v-on:click="counter += 1">增 ...
- 正则表达式入门(js版)
什么是正则表达式 正则表达式 Regular Expression (构造函数 RegExp) 用于字符串匹配规则 要么匹配字符,要么匹配位置 如何新建正则表达式 字面量 /[ab]/gim cons ...
- Innodb Cluster集群部署配置
目录 一.简介 二.环境声明 三.部署 安装(均操作) 配置(均操作) 开启group_replication(均操作) 启动group_replication 创建集群(在mysql-1执行) 创建 ...
- Python绘制饼图
Python绘制饼图 1.1 对应代码如下图所示 import matplotlib.pyplot as pltfrom pylab import mplmpl.rcParams['font.sans ...
- CentOS7学习笔记(四) 常用命令记录
查看命令的帮助信息 man 命令查看帮助信息 在想要获取帮助信息的命令前面加上man即可,例如查看ls命令的帮助信息 [root@localhost ~]# man ls help 命令查看帮助信息 ...
- iOS-启动项目(二)引入第三方库
摘要 项目中很大几率会用到第三方库,通过 Pod 方式引入第三方库是效率很高的方式,这里介绍一个新的项目搭建 Pod 方式的环境,方便项目中引入第三方库文件. 刚创建的项目中如果需要用到第三方库,常用 ...
- windows10 安装 Mysql8.0
目录 1.Mysql8.0下载 2.配置环境变量 3.在安装目录下创建my.ini文件 4 初始化Mysql 5 安装至系统服务 6 更改密码 1.Mysql8.0下载 2.配置环境变量 将下载后文件 ...
- CSS 常用颜色代号
常用颜色代号一览表:http://www.divcss5.com/html/h636.shtml #000000 #2F0000 #600030 #460046 #28004D ...