浅谈 IPv6 基本技术原理和特点

IPv6是“互联网协议第六版”的缩写。IPv6是由IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版(IPv4)。IPv4的设计思想成功地造就了目前的国际互联网,其核心价值体现在:简单、灵活和开放性。但随着新应用的不断涌现,传统的IPv4协议已经难以支持互联网的进一步扩张和新业务的特性,比如实时应用和服务质量保证等。其不足主要体现在以下几方面:

1.地址资源即将枯竭:IPv4提供的IP地址位数是32位,也即1亿个左右的地址。随着连接到Internet上的主机数目的迅速增加,有预测表明,所有IPv4地址将在2005~2010年间分配完毕。
  2.路由表越来越大:由于IPv4采用与网络拓扑结构无关的形式来分配地址,所以随着连入网络数目的增涨,路由器数目飞速增加,相应地,决定数据传输路由的路由表也就不断增大。
  3.缺乏服务质量保证:IPv4遵循Best Effort原则,这一方面是一个优点,因为它使IPv4简单高效;但另一方面它对互联网上涌现出的新业务类型缺乏有效的支持,比如实时和多媒体应用,这些应用要求提供一定的服务质量保证,如带宽、延迟和抖动等。
  4.地址分配不便:IPv4是采用手工配置的方法来给用户分配地址,这不仅增加了管理和规划的复杂程度,而且不利于为那些需要IP移动性的用户提供更好服务。

IPv6能够解决IPv4的许多问题,如地址短缺、服务质量保证等。同时,IPv6还对IPv4作了大量的改进,包括路由和网络自动配置等。IPv6和IPv4将在过渡期内共存几年,并由IPv6渐渐取代IPv4。

一、IPv6核心技术
    在地址长度上,IPv6与IPv4相比,很明显的一个改善就是IPv6的128位地址长度可以提供充足的地址空间,同时它还为主机接口提供不同类型的地址配置,其中包括:全球地址、全球单播地址、区域地址、链路本地地址、地区本地地址、广播地址、多播群地址、任播地址、移动地址、家乡地址、转交地址等。IPv6的另一个基本特性是它支持无状态和有状态两种地址自动配置的方式。其中无状态地址自动配置方式是:需要配置地址的节点使用一种邻居发现机制获得一个局部连接地址。一旦得到这个地址之后,它使用另一种即插即用的机制,在没有任何人工干预的情况下,获得一个全球唯一的路由地址。另外IPv6还在以下几方面表现出很高的特性。

1. 服务质量方面
    IPv6数据包的格式包含一个8位的业务流类别(Class)和一个新的20位的流标签(Flow Label)。它的目的是允许发送业务流的源节点和转发业务流的路由器在数据包上加上标记,中间节点在接收到一个数据包后,通过验证它的流标签,就可以判断它属于哪个流,然后就可以知道数据包的QoS需求,并进行快速的转发。

2. 安全方面
    在安全性方面,IPv6与IP安全性(IPSec)机制和服务更加紧密结合。虽然两种IP标准目前都支持IPsec(IP安全协议),但是IPv6是将安全作为自身标准的有机组成部分,安全的部署是在更加协调统一的层次上,而不像IPv4那样通过叠加的解决方案来实现安全。通过IPv6中的IPsec可以对IP层上(也就是运行在IP层上的所有应用)的通信提供加密/授权,可以实现远程企业内部网(如企业VPN网络)的无缝接入,并且可以实现永远连接。除了这一强制性安全机制外,IPSec还提供两种服务。认证报头(AH)用于保证数据的一致性,而封装的安全负载报头(ESP)用于保证数据的保密性和数据的一致性。在IPv6包中,AH和ESP都是扩展报头,可以同时使用,也可以单独使用其中一个。作为IPSec的一项重要应用,IPv6集成了虚拟专网(VPN)的功能。

3. 移动IPv6方面
    移动性无疑是互联网上最精彩的服务之一。移动IPv6协议为用户提供可移动的IP数据服务,让用户可以在世界各地都使用同样的IPv6地址,非常适合未来的无线上网。

IPv6中的移动性支持是在制订IPv6协议的同时作为一个必需的协议内嵌在IP协议中的。不同于IPv4的移动性支持是作为一种对IP协议附加的功能提出的,不是所有的IPv4实现都能够提供对移动性的支持,其效率没有移动IPv6高。更重要的是,IPv4有限的地址空间资源无法提供所有潜在移动终端设备所需的IP地址,难以实现移动IP的大规模应用。和IPv4相比,IPv6的移动性支持取消了异地代理,完全支持路由优化,彻底消除了三角路由问题,并且为移动终端提供了足够的地址资源,使得移动IP的实际应用成为可能。

(a)当移动节点处于本地网络时,通过接收本地网络上路由器的路由器通告来进行地址配置;获取网络参数。
  (b)当移动节点接入异地网络后,不再收到来自本地网络的路由器通告;而是收到来自异地网络上路由器的路由器通告,移动节点利用接收到的异地网络路由器通告进行移动检测。
  (c)移动节点配置好在异地网络的转交地址后,就向本地代理发送绑订更新报文,通知其自己的转交地址,并注册。
  (d)移动节点同时向通信节点发送绑订更新报文,通知其自己的转交地址。
  (e)这样,本地代理就可以通过隧道的方式向移动节点转发来自通信节点的报文。
  (f)如果通信节点通过接收来自移动节点的绑定更新,获取了移动节点的转交地址,则可以直接与移动节点通信,而无需通过本地代理,实现路由优化。

4. 组播技术
    组播是一种允许一个或多个发送者(组播源)发送单一的数据包给多个接收者(一次的,同时的)的网络技术,它适用于一点到多点或多点到多点的数据传输业务。组播实现的基本原则是:依托IP协议完成组播,IP组播强制网络在数据分发树的分叉处进行信息包的复制。IP组播的实现包括三个部分:寻址、组播成员管理和组播路由协议。

1.组播寻址:IPv6为组播预留了一定的地址空间,其地址高8位为"11111111",后跟120位组播组标识。此地址仅用作组播数据包的目标地址,组播源地址只能是单播地址。发送方只需要发送数据给该组播地址,就可以实现对多个不同地点用户数据的发送,而不需要了解接收方的任何信息。

2.组播成员管理:组播使用IGMP(Internet Group Manager Protocol)协议实现用户的动态注册过程。在主机与组播路由器之间通过IGMP协议建立并维护组播组成员的关系。组播转发路由器通过IGMP协议了解其在每个接口连接的网段上是否存在某个组播组的接收者,即组成员。如果出现成员,组播路由器将组播数据包转发到这个网段;如果没有则停止转发或不转发,以节省带宽。

3.组播路由协议:组播路由协议的作用是建立和维护组播路由表,以充分利用带宽。组播路由协议分为两种类型:密集模式和稀疏模式。密集模式组播路由协议指组播成员在整个网络上密集分布,即许多子网至少包含一个成员,带宽充裕,但其不适用于规模大的适用于组播成员在网络中稀疏分布,且未必有充裕带宽可用的网络。

二、IPv4到IPv6的过渡技术
    如何完成从IPv4到IPv6的转换是IPv6发展中需要解决的第一个问题。目前,IETF已经成立了专门的工作组,研究IPv4到IPv6的转换问题,并且提出了很多方案,主要包括以下几个类型:

1. 网络过渡技术
    (l)隧道技术:随着IPv6网络的发展,出现了许多局部的IPv6网络,利用隧道技术可以通过现有的运行IPv4协议的Internet骨干网络(即隧道)将局部的IPv6网络连接起来,因而是IPv4向IPv6过渡的初期最易于采用的技术。隧道技术的方式为:路由器将IPv6的数据分组封装入IPv4,IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处,再将IPv6分组取出转发给目的站点。
    (2)网络地址转换/协议转换技术:网络地址转换/协议转换技术NAT-PT(Network Address Translation - Protocol Translation)通过与SIIT协议转换和传统的IPv4下的动态地址翻译(NAT)以及适当的应用层网关(ALG)相结合,实现了只安装了IPv6的主机和只安装了IPv4机器的大部分应用的相互通信。
  2. 主机过渡技术
    IPv6和IPv4是功能相近的网络层协议,两者都基于相同的物理平台,而且加载于其上的传输层协议TCP和UDP又没有任何区别。可以看出,如果一台主机同时支持IPv6和IPv4两种协议,那么该主机既能与支持IPv4协议的主机通信,又能与支持IPv6协议的主机通信,这就是双协议栈技术的工作机理。

3. 应用服务系统(DNS)过渡技术
    在IPv4到IPv6的过渡过程中,作为Internet基础架构的DNS服务也要支持这种网络协议的升级和转换。IPv4和IPv6的DNS记录格式等方面有所不同,为了实现IPv4网络和IPv6网络之间的DNS查询和响应,可以采用应用层网关DNS-ALG结合NAT-PT的方法,在IPv4和IPv6网络之间起到一个翻译的作用。例如,IPv4的地址域名映射使用“A”记录,而IPv6使用“AAAA”或“A6”记录。那么,IPv4的节点发送到IPv6网络的DNS查询请求是“A”记录,DNS-ALG就把“A”改写成“AAAA”,并发送给IPv6网络中的DNS服务器。当服务器的回答到达DNS-ALG时,DNS-ALG修改回答,把“AAAA”改为“A”,把IPv6地址改成DNS-ALG地址池中的IPv4转换地址,把这个IPv4转换地址和IPv6地址之间的映射关系通知NAT-PT,并把这个IPv4转换地址作为解析结果返回IPv4主机。IPv4主机就以这个IPv4转换地址作为目的地址与实际的IPv6主机通过NAT-PT通信。

上述技术很大程度上依赖于从支持IPv4的互联网到支持IPv6的互联网的转换,我们期待IPv4和IPv6可在这一转换过程中互相兼容。目前,6to4机制便是较为流行的实现手段之一。

文章录入:aaadxmmm    责任编辑:aaadxmmm

(0)

相关推荐

  • 浅谈 IPv6 基本技术原理和特点二

    三.几种IPv6应用介绍    从语音.数据到视频,从对现有网络应用更卓越的支持与改善,到IPv6独具特色的创新业务,IPv6带给我们的全方位.高品质的应用与服务前景是美妙而广阔的.以下简单介绍几种IPv6的应用:  1. 视频应用    IPv6对于视频应用的意义在于:解决了地址容量问题,优化了地址结构以提高选路效率,提高了数据吞吐量,以适应视频通信大信息量传输的需要.IPv6还加强了组播功能,实现基于组播.具有网络性能保障的VC视频会议.高清晰度数字电视.VOD视频点播.网络视频监控应用.这

  • 浅谈 IPv6 基本技术原理和特点

    IPv6是"互联网协议第六版"的缩写.IPv6是由IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版(IPv4).IPv4的设计思想成功地造就了目前的国际互联网,其核心价值体现在:简单.灵活和开放性.但随着新应用的不断涌现,传统的IPv4协议已经难以支持互联网的进一步扩张和新业务的特性,比如实时应用和服务质量保证等.其不足主要体现在以下几方面: 1.地址资源即将枯竭:IPv4提供的IP地址位数是32位,也即1亿个左右的地址.随着连接到Internet上的主机数目的迅速增加

  • 浅谈Python爬虫原理与数据抓取

    通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为通用爬虫和聚焦爬虫两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 通用搜索引擎(Search Engine)工作原理 通用网络爬虫从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 第一步:抓取网页

  • 浅谈servlet3异步原理与实践

    一.什么是Servlet servlet 是基于 Java 的 Web 组件,由容器进行管理,来生成动态内容.像其他基于 Java 的组件技术一样,servlet 也是基于平台无关的 Java 类格式,被编译为平台无关的字节码,可以被基于 Java 技术的 Web 服务器动态加载并运行.容器(Container),有时候也叫做 servlet 引擎,是 Web 服务器为支持 servlet 功能扩展的部分.客户端通过 servlet 容器实现的 request/response paradigm

  • 浅谈MySQL排序原理与案例分析

    前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序.本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个"奇怪"排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因. 1.排序优化与索引使用 为了优化SQL语句的排序性能,最好的情况是避免排序,合理利

  • 浅谈javascript中new操作符的原理

    javascript中的new是一个语法糖,对于学过c++,java 和c#等面向对象语言的人来说,以为js里面是有类和对象的区别的,实现上js并没有类,一切皆对象,比java还来的彻底 new的过程实际上是创建一个新对象,把新象的原型设置为构造器函数的原型,在使用new的过程中,一共有3个对象参与了协作,构造器函数是第一个对象,原型对象是二个,新生成了一个空对象是第三个对象,最终返回的是一个空对象,但这个空对象不是真空的,而是已经含有原型的引用(__proto__) 步骤如下: (1) 创建一

  • 浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)

    我们通过前篇:<浅谈web上存漏洞及原理分析.防范方法(安全文件上存方法)>,已经知道后端获取服务器变量,很多来自客户端传入的.跟普通的get,post没有什么不同.下面我们看看,常见出现漏洞代码.1.检测文件类型,并且用用户上存文件名保存 复制代码 代码如下: if(isset($_FILES['img'])){    $file = save_file($_FILES['img']); if($file===false) exit('上存失败!'); echo "上存成功!&qu

  • 浅谈C++中虚函数实现原理揭秘

    编译器到底做了什么实现的虚函数的晚绑定呢?我们来探个究竟. 编译器对每个包含虚函数的类创建一个表(称为V TA B L E).在V TA B L E中,编译器放置特定类的虚函数地址.在每个带有虚函数的类 中,编译器秘密地置一指针,称为v p o i n t e r(缩写为V P T R),指向这个对象的V TA B L E.通过基类指针做虚函数调 用时(也就是做多态调用时),编译器静态地插入取得这个V P T R,并在V TA B L E表中查找函数地址的代码,这样就能调用正确的函数使晚捆绑发生

  • 浅谈SSH框架中spring的原理

    在ssh项目中,是有明确分工的,spring的作用就相当于将struts和hibernate连接起来,是将两个没有关系的框架的特性,方法,action都放在spring的配置文件中使他们建立关系.取他门各自所长.而这些做法他们自己不知道,他们是听命于spring调度的,他的的任务只是做好自己的事情. 这样做的好处就是任务结构分明,struts只管理显示与做什么,hibernate只关心怎么做,而spring就相当于领导,所以一切的类都要交给spring的工厂创建,这是一种良好的开发模式,体现了一

  • 浅谈线性表的原理及简单实现方法

    一.线性表 原理:零个或多个同类数据元素的有限序列 原理图: 特点 : 1.有序性 2.有限性 3.同类型元素 4.第一个元素无前驱,最后一个元素无后继,中间的元素有一个前驱并且有一个后继 线性表是一种逻辑上的数据结构,在物理上一般有两种实现 顺序实现和链表实现 二.基于数组的 线性表顺序实现 原理 : 用一段地址连续的存储单元依次存储线性表数据元素. 原理图: 算法原理: 1.初始化一个定长的数组空间 elementData[] , size 存储长度 存储元素 2.通过索引来快速存取元素 3

随机推荐