多播技术总结
前段时间配置ehCache在cluster环境下的同步时使用到多播技术,现总结如下。
概念:
- 多播组:使用同一个IP多播地址接收数据包的所有主机构成一个主机组,即多播组。
- 多播地址:IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255。
多播技术解决的问题:
- 解决广播给谁的问题。对网内的机器进行分组,小组成员要向多播服务器(一般是路由器)进行注册登记,用户主机向多播地址发送一份IP多播数据包,然后多播数据通过普通的IP发送操作发送出去。
- 解决收哪个广播的问题。有时在同一网络中有多个多播,每个都有不同的多播地址。发送端相当简单,但IP多播和接收端却十分复杂。为了接收数据包,用户工作站上的应用要申请与特定多播关联的多播主组会员资格。这种申请传送到用户的局域网路由器,如有必要,还要传送到发送者和接收者的路由器。这一步完成,接收工作站的网络接口卡开始“侦听”与新多播组地址关联的数据链路层地址。广域网路由器把请求进入的多播数据包送往局域网路由器,局域网路由器把主组地址变换成与它相关的数据链路层地址,并用这个地址建立报文。接收链路的网络接口卡和网络驱动程序侦听这个地址,把多播地址传向TCP/IP协议堆栈,从而使数据适合用户的应用。
加入多播组:
一个主机可以随时加入或离开多播组,把主机加入多播组是指把一个socket加入到一个多播组,一个主机也可以属于多个多播组。不属于某个多播组的主机也可以向该多播组发送数据包。
加入多播组详细参考:http://hi.baidu.com/wjtao291/blog/item/1540a20afc964e1e94ca6b2a.html
weblogic cluster用到的多播技术:
- WebLogic Server 使用的默认多播地址为 239.192.0.0
- WebLogic Server 对于群集中服务器实例之间的所有一对多通信均使用 IP 多播。此类通信包括:
- 群集范围的 JNDI 更新 - 群集中的每个 WebLogic Server 实例均使用多播来公告本地部署或本地删除的群集对象的可用性。群集中的每个服务器实例都监视这些公告,并更新其本地 JNDI 树以反映群集对象的当前部署。有关详细信息,请参阅群集范围的 JNDI 命名服务。
- 群集心跳 - 群集中的每个 WebLogic Server 实例均使用多播来广播通告其可用性的规律的“心跳”信号。群集中的服务器实例通过监视心跳信号来确定某个服务器实例的失效时间。(群集服务器实例也会监视 IP 套接口,以此作为确定服务器实例失败时间的一种更为即时的方法。)
参考: