段珊珊 中国矿业大学
摘 要 Anycast(选播)是一种新型的网络服务,是IPv6的新特性,Anycast给用户的期望是通过一个Anycast地址就可以访问到该地址所表示的对用户而言是最近的一个服务器,对Anycast最初的研究主要是网络层,在网络层路由器自动完成选路的过程,而应用层选播带来了更多的灵活性和可以规划性。
关键词 IPv6 选播 网络层选播 应用层选播 无状态服务
1 引言
因特网成指数级的增长,在1999年,每10s就有一个新的PC连接到因特网上去。分布式服务面临服务器严重超载,带宽浪费和延迟增加的问题。服务器复制和缓存的技术可以有效地改善服务的性能,但是关键的问题是客户机如何找到性能最好成绩的服务器?IPv6支持的选播应运而生,是解决类似问题的好办法。
2 IPv6的选播
IPv6是下一代网络层协议,是用来替换IPv4的,IPv6的地址是用128bit进行标识,极大地扩大了IP地址空间。IPv6的一个比较大的引人注目的变化是提出了一种新的寻址模式——Anycast。Anycast最初的定义是在RFC 1546中,用一个Anycast地址来表示提供某种服务的主机,发送到该Anycas地址的数据包将被投递到这组服务中的某一台,RFC 2373中IPv6正式接纳了Anycast服务,并定义了IPv6 Anycast地址,规定发送给选播地址的数据包将被投递到离该地址标识的最近的接口之一,这时,Anycast有了选择的含义,因此我们在这里把Anycast译为选播。
选播是点对多点中的一点的通信,选播与多播类似,也是多个节点共享一个地址,不同的是多播中每个节点都期待接受发给多播地址的数据报,而选播的数据报将被投递到离这组主机中最近的任意一台。
为了更好地说明选播的定义,有两个配置选播地址A的服务器,放置于网络中的不同位置,客户机所发出的请求将由路由系统自动地转发到离客户机最近的服务器,如客户机1的请求将由服务器A来提供服务,而客户机5将由服务器“A”来提供服务。而这个“最近”是按路由协议的距离量度的最近的一个接口。在选播通信中,客户机不需要知道服务器的具体位置,可以自动地获得合适的节点来响应相应的服务,这种服务对某些类型的服务特别有效,特别是对于客户机和服务器之间不需要有特定关系的一些服务,如复制服务器,名字服务器等。
3 网络层选播与应用层选播
问题是客户机如何在一组服务器中发现一个性能最好的最合适的服务器?如果用路由器的跳数来决定最近的话,对客户机1而言应该是服务器A来提供相应的服务,选播过程由路由器自动完成,不需要用户的干预。但是也许服务器的A的性能不好,或者过于繁忙,不一定比服务器“A”提供的服务性能好。选播服务是由一组服务器来提供的,客户机选择的服务器不同得到的服务性能可能也不同。目标服务器选择的标准依赖于不同的尺度,如性能、负载和所使用的选播的体系架构。如果选择的标准依赖于网络的拓扑,例如路由器最小的跳数,最小的花费(不同的路由器可能有不同的花费);依赖路由器选路的算法,这叫网络层选播。如果选择的标准依赖于服务器或者应用的尺度,如可以获得的容量,可以测量的响应时间,激活连接的数量等称为应用层选播。两者关键的区别在于网络层选播仅仅依靠网络自身来选择服务器;而应用层选播依赖于外部的实体来选择连接性能最好的服务器。仅仅依靠网络自己来选择服务器的问题是客户机不一定能选择到性能最好的服务器,而应用层的选播则能带来更多的灵活性和可规划性。总之,网络层选播实现方法简单,但是需要修改路由器配置,在选择标准方面缺乏灵活性;而应用层选择的标准灵活,不需要修改路由器但是需要周期的收集信息。
4 选播的无状态服务问题
TCP是一个面向连接的传输层协议,很多服务使用这个协议,它提供客户机和服务器之间数据包有序可靠的发送,但是选播有可能将同一个客户的数据包传送到不同的服务器上去,这样可能降低TCP的吞吐量甚至丢失TCP 会话。IPv6规定选播地址不能作为源地址,只能作为目标地址,所以选播不能应用在有状态的服务中,如FTP,为了在有状态的服务中使用选播,必须完成选播地址到单播地址的转换。选播地址只是用来在通信的开始前确定合适的节点,在通信的过程当中,必须使用该节点的单播地址。
一种方法是TCP客户向一个Anycast地址发送数据包,一个服务器接受这个数据包并用带有其单播地址的SYN+ACK 数据包作为响应,客户机校验应答包,并用该服务器的单播地址进行以后的通信。这种方法的限制是初始数据包不能分段,并且该方法要修改现有的传输层的语义,在TCP 被广泛使用的今天实施起来比较困难。
另外一种方法是在客户机上运行一个代理,在客户机和服务器通信之前由代理来完成选播地址到单播地址的转变过程。该代理的实现是通过发一个ICMP请求信息给一个选播地址,选播地址中的一个服务器接受该请求并用自己的单播地址作为源地址进行回应,代理接受到ICMP响应之后,提取该服务器的单播地址存储在自己的选播讲地址解析库AARPLIB中。该库中存放的是服务器的单播地址和选播地址,地址解析库采用缓存的机制可以有效地减少每次通信时查询的时间,由代理机制来保证地址解析库中存放的数据是常用的且是最新的。
采用该方法的优点是不需要对应用层做相应的修改,地址解析的完成是在应用层以下,只需要选播地址的主机可以接受ICMP请求包和可以在ICMP响应中在源地址项中放入自己的单播地址。该方法实现起来比较简单,而且客户机比较容易设置,如果有新的主机想要支持选播的话只要把地址解析库中的数据拷贝到响应的目录下即可,但是这种方法的实现前提是初始数据包不能被分段。
5 选播的应用范围
选播被广泛应用在最优服务器的选择上,上面我们已经比较详细地介绍到,选播还应用在主机的自动配置上。比较典型的是用在域名服务器的解析。名字服务器不管距离远近,只要能够完成名字的解析即可,有了选播服务,用户在进行DNS解析时只要向全球的某个代表DNS的知名选播地址发送查询请求即可得到地址解析的结果。这样可以简化客户机的配置,即使主机移动到一个新的网络也不用重新配置本地的DNS服务器的地址。选播的最大特性是可以有效地分摊网络中的不同链路上的负载。
6 选播的应用实例
随着网络新的应用、新服务的不断涌现,应用Anycast地方越来越多,下面是应用选播来简化IPv4 to IPv6 网络的传输机制的实例。IPv4网络向IPv6的网络转变是一个渐进的过程,最初IPv6的网络被配置成通过IPv4隧道传输的孤岛,IPv6的包将被封装在IPv4的包中进行传输。6 to 4技术使用特殊的IPv6地址可以在IPv6的孤岛之间自动地构造隧道,6 to 4机制允许在采用6 to 4的IPv6站点之间和纯IPv6站点通过中继路由器进行通信,也就是说6 to 4的站点的边界路由器要通过IPv6中继路由器连接到纯的IPv6的网络上。
目前,6 to 4边界路由器的管理员必须手工配置穿过IPv4网络到达中继路由器的默认路由或者配置复杂的IPv6自治域路由协议。解决这个问题的一个简单方法是采用选播的方法让中继路由器在IPv4的网络上宣告自己的存在。这样可以增强网络的性能,数据包可以通过最短的路径到达中继路由器。
7 总结
本文介绍了IPv6的新的网络通信模式选播的定义、分类、无状态服务问题、应用范围、应用实例。选播是随着应用的要求而产生的新的服务模式,关于这方面很多的研究工作正在进行中,关于选播的一些协议和标准还在讨论当中。作为一种新的通信模式,Anycast 给研究工作者带来崭新的挑战和难得的机遇。
参 考 文 献
[1] Anycast——IP又一通信模式 . 计算机研究与发展 . 2003,6
[2] Ata S, Kitamura H, Murata M . draft-ata-ipv6-anycast-resolving-00.txt,24 June 2002
[3] Mtez C . IP Anycast, Point to any Point Communication . ttp://www.cisco.com/public/cons/isp/essentials/ ip-anycast-cmetz-03.pdf,2003,9
[4] 孙红兵,石晶林,钟声 . IPv4/IPv6互通技术 . 计算机工程与应用,2002,16
段珊珊,女,1975年生,江苏徐州人,中国矿业大学硕士研究生,主要研究方向为网络管理和安全技术、IPv6 Anycast技术。
----《中国数据通信》
|