通信是支持导向服务地址的,但是目前IPv6中它的很多定义是模糊的,并且在控制路由方面没有达成一致的协议标准,因此节点间任播通信仍然无法实现。在本文中首先说明了基于IPv6的任播通信,及目前在该领域中存在许多可能的应用,并指出一些问题和与之对应的解决办法,随后介绍了一种使用特殊任播地址来建立TCP连接的任播地址解析协议(AARP),使得任播地址在适应已经存在的应用和高层协议时,不需要修改或者扩展的情况下更加有效。
1 IPv6地址类型的概述
IPv6地址长度为128比特,地址按照其传输类型分为三种,即单播地址(UnicastAddress)、多播地址(Multicast Address)和任播地址(Anycast Address)。单播和多播地址在IPv4中已经存在,任播地址是IPv6中新的成员,RFC 2723将IPv6地址结构中的的任播地址定义为一系列网络接口(通常属于不同的节点)的标识,其特点是:发往一个任播地址的分组将被转发到由该地址标识的“最近”的一个网络接口(“最近”的定义是基于路由协议中的距离度量)。
单播地址是每个网络接口的唯一的标识符,多个接口不能分配相同的单播地址,带有同样目的地地址的数据包被发往同一个节点;另一方面,多播地址被分配给一组节点,组中所有成员拥有同样的组播地址,而带有同样地址的数据包同时发给所有成员;类似于多播地址,单一的任播地址被分配给多个节点(任播成员),但和多播机制不同的是:每次仅有一个分配任播地址的成员与发送端通信。一般与任播地址相关的有三个节点,当源节点发送一个目的地地址为任播地址地数据包时,数据包被发送给三个节点中的一个,而不是所有的主机。任播机制的优势在于源节点不需要了解服务节点或目前网络的情况,而可以接收特定服务,当一个节点无法工作时,带有任播地址的数据包又被发往其他两个主机节点,从任播成员中选择合适的目的地节点取决于任播路由协议。
2 IPv6任播技术的分析
任播技术是一种新的网络应用,它能够支持把同样的地址可以分配给多个节点去提供特定服务的以服务导向的地址,而带有任播目的地地址的数据报能够使用相同的任播地址并被传给众多节点中的任意一个。因特网研究任务组(IRTF)在1993年到RFC 1546中已经定义了任播技术的作用:“主机向一个任播地址发送数据报,网络负责尽力将数据报传递到至少一个,最好也是一个,按任播地址接收数据的服务器上。"采用任播机制的初衷是彻底去简化在互联网中寻找合适服务器的任务;任播通信的基本概念是从物理主机设备中分离出的逻辑服务标识符,任播地址可以根据服务类型来分配,使得网络服务担当一个逻辑主机的角色。
虽然目前任播技术的定义不是十分清楚,但是终端主机通过路由器是被基于包交换所决定。任播技术的概念并不局限于网络层,它也可以在其他层实现(例如:应用层),网络层和应用层的任播技术均有优点和缺点。
3 IPv6任播技术的应用