JXSE_ProgGuide_v2.5.pdf中说:
A JxtaMulticastSocket is a sub-class of a java.net.MultiscastSocket, the difference being, is how it is bound. A java.net.MultiscastSocket is bound by a multicast address and a port number, where a JxtaMulticastSocket is bound by PeerGroup and PipeAdvertisement.
A JxtaMulticastSocket operates over a propagated pipe, the scope of propagation is governed by the network topology, and the role of the node (Ad-Hoc, Edge, Rendezvous).
——————————————————————————————————————————————————————————————
JxtaMulticastSocket是通过propagated pipe实现的,而propagated pipe尽可能的利用ip multicast实现。
P2P是一个应用层的协议,JXTA构造了一个P2P网络,可以认为JXSE就是在TCP/IP网络之上构造了一个应用层的叠加网。
在这个网络中,某些超级结点(rdv、relay)充当了路由器的角色,用于对消息进行路由。
JxtaMulticastSocket是通过propagated pipe实现的,从应用层组播的语义上看,消息在超级结点之间路由时,只有一份。
只有在到达最终目的结点前的最后一个超级结点才进行消息的复制。
这一点与单播不同,对于单播来说消息从发出时就有多份。
当然在底层JxtaMulticastSocket会尽量利用ip multicast的优势。
所以当整个网络拓扑错综复杂,拥有许多超级结点时,应该可以体现出应用层组播的优势。遗憾的是目前还没有看到这样的网络。
在这个网络中,某些超级结点(rdv、relay)充当了路由器的角色,用于对消息进行路由。
JxtaMulticastSocket是通过propagated pipe实现的,从应用层组播的语义上看,消息在超级结点之间路由时,只有一份。
只有在到达最终目的结点前的最后一个超级结点才进行消息的复制。
这一点与单播不同,对于单播来说消息从发出时就有多份。
当然在底层JxtaMulticastSocket会尽量利用ip multicast的优势。
所以当整个网络拓扑错综复杂,拥有许多超级结点时,应该可以体现出应用层组播的优势。遗憾的是目前还没有看到这样的网络。
————————————————————————————————————————————————
这是目前想到的一些东西,最好还是深入到源代码进行分析。