IPv6介绍
一、为什么需要IPv6
为了扩大地址空间,拟通过IPv6重新定义地址空间。IPv4采用32位地址长度,只有大约43亿个地址,估计在2005~2010年间将被分配完毕,而IPv6采用128位地址长度,几乎可以不受限制地提供地址。按保守方法估算IPv6实际可分配的地址,整个地球每平方米面积上可分配1000多个地址。在IPv6的设计过程中除了一劳永逸地解决地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题。IPv6的主要优势体现在以下几方面:扩大地址空间、提高网络的整体吞吐量、改善服务质量(QoS)、安全性有更好的保证、支持即插即用和移动性、更好实现多播功能。
显然,IPv6的优势能够对上述挑战直接或间接地作出贡献。其中最突出的是IPv6大大地扩大了地址空间,恢复了原来因地址受限而失去的端到端连接功能,为互联网的普及与深化发展提供了基本条件。当然,IPv6并非十全十美、一劳永逸,不可能解决所有问题。IPv6只能在发展中不断完善,也不可能在一夜之间发生,过渡需要时间和成本,但从长远看,IPv6有利于互联网的持续和长久发展。
二、IPv6的优势
相比较于IPv4,IPv6的优点主要有:更大的地址空间、更小的路由表、增强的组播和流控制、自动配置和更高的安全性。
1. 巨大的地址空间
由于IPv6具有巨大的地址空间,每个接入设备(数量可达数十亿的移动终端、家用电器等等)都可以拥有一个全球唯一的、可被路由的IP地址。
2. 高效的路由选择
IPv6定义了一种新的分组格式,目的是为了最小化路由器处理的报文首部。由于IPv4报文和IPv6 报文首部有很大不同,因此这两种协议无法互操作。基于结构化的IP地址,核心路由器只需要查看地址域中的一小部分就可以作出路由选择。
IPv4地址的层次结果缺乏统一的分配和管理,多数的地址空间拓扑结构只要两层或者三层,这导致主干路由器中存在大量的路由表项。庞大的路由表项增加了路由查找和存储的开销,成为互联网进一步发展的瓶颈。另外,由于IPv4数据包的包头长度不固定,很难用硬件来提取和分析路由信息,限制了路由器数据吞吐率 的提高。
3. 可靠的安全性
对所有IPv6节点, IPSec是强制实现的,因此当建立一个IPv6的连接时,可以得到一个安全的端到端连接。通过对通信端的验证和对数据的加密保护使得敏感数据可以在IPv6 网络上安全地传输。
IPv4自身缺乏安全机制,传统的安全机制基本都是在应用层或传输层实现,虽然有一些基于IP选项的关于IPv4的安全机制,但在实际应用中并不成功,也就是说目前以IPv4为基础的Internet,在网络层缺少安全保障。
4. 多样化的服务质量
IPv6包头中有一个业务类别域(Traffic Class),利用此域可以实现对关键用户和应用的优先服务。IPv6包头中的流标记域(flow label)为流量工程 (Traffic Engineering) 和负载平衡以及区分端到端的数据流提供了一个强有力的工具。全球唯一的地址可以更详细地区分数据流,而结构化的地址则可以很容易地在边缘网络上实现数据流的聚合。
IPv4协议对所有的数据没有类型区分,都会尽力投递,这样无法为一些新业务提供有效的支持。比如一些实时数据或者多媒体数据,要求有一定的服务质量保证,然而在IPv4协议中缺少良好的服务质量(QoS)机制。
5. 易管理性
结构化的地址加上主机的自动配置,使得网络和路由器的网络重编号得以轻松实现。对ISP和网络管理员而言,这大大减轻了网络管理和用户支持的工作量,地址的自动配置使得主机可以自动获得IPv6连接而无需人工干预。
当连接到IPv6网络上时,IPv6主机可以使用邻居发现协议对自身进行自动配置。当第一次连接到网络上时,主机发送一个链路本地路由器请求(solicitation)多播请求来获取配置参数。路由器使用包含Internet层配置参数的路由器声明(advertisement)报文进行回应。
在不适合使用IPv6无状态地址自动配置的场景下,网络可以使用有状态配置,如DHCPv6,或者使用静态方法手动配置。
6. 与移动的互通性
当移动终端移动到外地时,可以通过地址自动配置得到一个漫游地址,并且用此地址与网络上的节点进行通信。利用移动IPv6和HOME Agent,移动终端可以在保持已有的通信连接不被中断的情况下,在不同的网络间进行漫游,同时还能保持自身的可达性。
三、IPv6基础知识
1. IPv6的层次化设计
大型互联网服务商的IPv6网络采用层次化、结构化的设计,可以把网络分为多个区域(地区),每个区域有多个区域骨干节点,每个骨干节点汇聚多个接入网(站)点,通过接入网点连接终端网点(企业或个人用户)提供服务;一般来说,是一个4个层级的网络模型,而小型互联网服务商则采用1-2层级的网络模型。
2. IPv6地址格式及IPv6地址空间格式
IPv6地址全部长度128位(bit),每16位为一个双字节,用十进制表示值从0到65535,共八段。(IPv4地址长度为32位,可支持232,约43亿个设备直接接入互联网。)其表示方法如下:
A、冒号分隔形式,比如x:x:x:x:x:x:x:x,其中x是16进制数,值从0x0000-0xFFFF。示例:FB21:1233:55B2:AA44:12B8:6761:890F:AB31。
B、同0压缩形式,就是地址中如果出现连续两个或两个以上0时,可以采用压缩表示形式::(双冒号表示),但只能出现一次,因为如果出现两个或以上双冒号,技术上无法识别出实际的地址,比如FB21:0:0:0:12B8:6761:0:0,就可表示成FB21::12B8:6761:0:0,或 FB21:0:0:0:12B8:6761::,不能表示成FB21::12B8:6761::。如果8个段值都是0,可以用::表示。
C、每项数字前导的0可以省略,省略后前导数字仍是0则继续,例如下组IPv6是相等的。如FB21:0233:05B2:AA44:12B8:6761:890F:AB31
C、混合形。如果这个地址实际上是IPv4地址,后32位可以用10进制数表示。如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:ffff:874B:2B34或者::ffff:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::ffff:135.75.43.52。
IPv6地址空间:类似于IPv4中的CDIR表示方法,IPv6用前缀来表示网络地址空间,比如:2001:250:6000::/48 表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有2的80次方个地址。
3. IPv6地址分类
IPv6按照传输类型分为单播地址(unicast)、任播地址(anycast)和多播地址(multicast)。
Ø 单播(unicast)地址。单播地址标示一个网络接口。协议会把送往地址的数据包投送给其接口。IPv6的单播地址可以有一个代表特殊地址名字的范畴,如link-local地址和唯一区域地址(ULA,unique local address)。单播地址包括可聚类的全球单播地址、链路本地地址等。
Ø 任播(anycast)地址。Anycast 是 IPv6 特有的数据传送方式,它像是IPv4的Unicast(单点传播)与Broadcast(多点广播)的综合。IPv4 支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。 而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址栏表,但指定为 Anycast 的数据包,只会传送给距离最近或传送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。 以目前的应用为例,Anycast 地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。
Ø 多播(multicast)地址。多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被传送到所有的地址。
3. IPv6地址结构
为了便于路由汇聚和简化网络管理,配置,变更和扩展的工作量,IPv6采用层次化、结构化的地址规划,一般来说,按RFC3177的原则,把128位的IPv6地址分为一个64位的网络标识符和一个64位的节点(主机)标识符,节点(主机)标识符通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识);64位的网络标识符又进一步分为全球网络标识符和本地子网标识符,通常全球网络标识符占用48位和本地子网标识符占有16位,如下图所示:
4.IPv6数据包
IPv6数据包由两个主要部分组成:头部和负载。包头是包的前64比特并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20比特,QoS服务质量控制),分组长度(16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。后面是负载,至少1280字节长,在常见的以太网环境中为1500字节。负载在标准模式下最大可为65535字节,如果扩展报头设置了"jumbo payload"选项,则长度值被置为0。
图2 IPv6数据包的架构说明
三、IPv6推广中存在的问题及解决方案
IPv6仅仅是对IPv4的一种保守扩展,除了嵌入了互联网地址的那些应用协议(如FTP和NTPv3,新地址格式可能会与当前协议的语法冲突)以外,大多数传输层和应用层协议几乎不怎么需要修改就可以工作在IPv6上。虽然如此,但由于IPv6和IPv4的报文商务部有很大的不同,因此这两种协议无法互操作。
IPv6与IPv4不兼容,实际上建成的相当于两张网。对用户来说,IPv4网的资源非常丰富,而IPv6网的内容却很少。虽然标准制定者、研究机构和政府部门大力推广IPv6网络,但由于用户和企业的动力不足,IPv6网络推进缓慢。2010年3月份,专家们表示IPv6信息仅占互联网信息总量的1%。
IPv6介绍的更多相关文章
- IPV6介绍已经IPV6改造基本步骤
IPV6介绍 地址资源无限多 通常见到的124.33.24.116这种形式的是ipv4版本的地址,这种地址由32位二进制数表示. ipv6是一种新的ip地址的表示方式形如fc80::2367:7cff ...
- IPV6 实现
看代码实现前,请先保证了解ipv6的概念,可以先看ipv6介绍一文.code extract . 在文件 net/ipv6/af_inet6.c 中包含了ipv6协议初始化的主函数. static i ...
- ipv4枯竭和ipv6的启用
IPv4是Internet Protocol version 4的缩写,中文翻译为互联网通信协议(TCP/IP协议)第四版,通常简称为网际协议版本4. IPv4使用32位(4字节)地址,因此地址空间中 ...
- python就业班-淘宝-目录.txt
卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python就业班-淘宝-目录.txt│ ├─01 网络编程│ ├─01-基本概念│ │ 01-网络通信概述 ...
- ping localhost出现地址::1
近期发现本机的localhost不好用了. 症状: 自己本机部署服务器时,浏览器地址栏访问localhost:8080不通: 禁用网络连接,未果: 拔出网线,OK. cmd里ping之,返回结果如下: ...
- IPv6地址介绍
IPv6地址介绍 2008 年 04 月 10 日 1. 认识IPv6地址 IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示:而IPv6 ...
- IPv6协议介绍
IPv6是为了解决基于IPv4的TCP/IP协议簇遇到的问题而推出的下一代IP协议.由于IPv4中采用的编制方式使得可用的网络地址和主机地址的数目远低于理论数目,随着全球互联网的快速发展,现有的IPv ...
- IPv4和IPv6简单对比介绍(转载)
原链接:https://baijiahao.baidu.com/s?id=1570208896149974&wfr=spider&for=pc 在配置计算机网络,特别是内网的时候,有时 ...
- python select网络编程详细介绍
刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...
随机推荐
- JSON格式转换成XML格式
第一种方法: 需要使用命名空间System.Runtime.Serialization.Json 下面有JsonReaderWriterFactory XmlDictionaryReader read ...
- C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什
C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什么?如果要学我该从何学起??? C# 框架看这里http://download.csdn.net/source/25784 ...
- Android开发之onClick事件的实现
算是从2015年开始学习android开发,目前把onClick的事件实现写下来,记录下,以备参考. 实现button的点击功能,让textView显示一行文字,最简单的onClick事件. 直接贴代 ...
- JsonPath详解
JsonPath is to JSON what XPATH is to XML, a simple way to extract parts of a given document. JsonPat ...
- virtualbox怎么装系统OVA虚拟包大全一键安装
1 第一步,下载ova虚拟包 http://pan.baidu.com/s/1hqxWkUo . 里面有win7.ubuntu.kali,你自己挑一个需要的 全都可以自动缩放屏幕,有VirtualBo ...
- 如何写mysql的定时任务
什么是事件: 一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行: 查看是否开启: show variables li ...
- jqGrid如何实现单选。
设置如下:multiselect:true // multi-select checkboxes appear multiboxonly:true // checkboxes act like rad ...
- 探秘Java虚拟机——内存管理与垃圾回收
本文主要是基于Sun JDK 1.6 Garbage Collector(作者:毕玄)的整理与总结,原文请读者在网上搜索. 1.Java虚拟机运行时的数据区 2.常用的内存区域调节参数 -Xms:初始 ...
- Java [leetcode 13] Roman to Integer
问题描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...
- MySQL 视图知识点小结
视图本身是一个虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,它返回的数据是MySQL从其他表中生成的.视图和表在同一个命名空间, MySQL在很多地方对于视图和表是同样对待的.不过视图和表也 ...