大家好,又见面了,我是你们的朋友全栈君。
Anycast 技术简介 |
---|
作者:佚名 文章来源:本站原创 点击数:3024 更新时间:2009-1-23 10:40:52 |
Anycast最初是在RFC1546中提出并定义的,它的最初语义是,在IP网络上通过一个Anycast地址标识一组提供特定服务的主机,同时服务访问方并不关心提供服务的具体是哪一台主机(比如DNS服务器),访问该地址的报文可以被IP网络路由到这一组目标中的任何一台主机上,它提供的是一种无状态的、尽力而为的服务。 业界对anycast的定义是,当一个单播地址被分配到多于一个的接口上时,发到该接口的报文被网络路由到路由协议度量的“最近”的目标接口上。与Unicast和Multicast类似,Anycast也是IP网络的一种通信模式。Unicast允许源结点向单一目标结点发送数据报,Multicast允许源结点向一组目标结点发送数据报,而Anycast则允许源结点向一组目标结点中的一个结点发送数据报,而这个结点由路由系统选择,对源结点透明;同时,路由系统选择“最近”的结点为源结点提供服务,从而在一定程序上为源结点提供了更好的服务也减轻了网络负载。 正是Anycast这一通信模式的特点,使它在IP网络中具有了一定程序的应用前景。首先,分布的服务共享相同的IP地址,同时在IP层进行透明的服务定位,这使得各种网络服务特别是应用层服务具有更强的透明性,比如DNS,它可以共享一个熟知的IP地址,用户不需要特殊配置也不用关心访问的是哪一台DNS服务器;其次,路由系统选择了“最近”的服务,缩短了服务响应的时间,同时减轻了网络负载;最后,相同的服务在网络上冗余分布,路由系统可以提供机制选择负载相对轻的带宽相对高的路径来转发报文,这样就给用户带来了两个方面的好处: 1) 减弱了DOS攻击对用户带来的影响。当Anycast组中某一个成员或者几个成员受到攻击时,负责报文转发的路由器可以根据各个组成员的响应时间来决定报文应该转发到哪个成员上,这样受到攻击的成员由于没有响应,所以报文就不会被转发到那里,同时,由于Anycast提供的服务访问透明性,组成员也相对较难受到DOS攻击。 2) 减弱了网络拥塞给用户带来的影响。同上面的道理,当Anycast的某些组成员处在拥塞的网段时,它的响应时间就较长,报文可以被转发到响应较好的成员那里。 Anycast的实质是一种网络技术,主要是依靠网络的冗余来保证业务的高可靠性。就DNS业务来说,DNS业务相对于Anycast,或者说,应用层相对于网络层都是透明的,彼此之间没有任何关系,这为Anycast技术在DNS系统中的应用创造了良好条件,DNS软件不用经过任何修改即可以很好地吸纳Anycast技术。 我们谈及anycast,并没有指明anycast的实现类型,其实,anycast的实现可以分为两类:subnet anycast和global anycast。Subnet anycast是指所有服务器主机都位于同一个网段,按这种方式实现的类型可以称作subnet anycast,即集中部署的方式;Global anycast是指服务器主机不在同一个网段,可能在同一个节点的两个或者更多的网段,可能根本不在同一个节点,而在分散于多个节点,这些节点可能在同一个地市,也可能在多个地市,也可能多个省甚至多个国家,这种方式实现的anycast我们可以称作global anycast,亦称作分布部署方式。 |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142499.html原文链接:https://javaforall.cn