next up previous contents
Next: Merging JRouter and gossip Up: Firewalls Previous: Using TUNNEL, JRouter and

Using multiple JRouters

The first, second and third problem can be solved by using a replicated gossip daemon and multiple instances of JRouter.

A replicated gossip daemon can be implemented using building blocks DistributedHashtable (see 3.4.7): all gossip daemons would join a common (administrative) group, and every registration to one gossip daemon would be propagated to all gossip daemons. A lookup, however, could be performed on the local gossip daemon (since no distributed state is modified).

Multiple JRouters can be used when IP multicast is enabled outside the firewall, and only a few channels are actually located behind firewalls: every channel behind a firewall would connect to a JRouter (outside the firewall) via TCP (as in the current solution), but the JRouters would use IP multicast to forward messages between themselves instead of TCP. This is shown in fig. 3.6.

  
Figure 3.6: Modified JRouter using IP multicasting
\begin{figure}
\center{\epsfig{file=/home/bba/JavaGroups/Papers/UsersGuide/figs/McastRouting.eps,width=.6\textwidth} }
\end{figure}

Every channel that is not behind a firewall would use IP multicasting to broadcast and receive messages to/from other group members: their protocol stack would contain UDP as bottommost layer. Every channel behind a firewall would use a proxy JRouter (outside the firewall), behaving like a regular channel. The JRouter would listen on the group's multicast address and port for incoming IP multicast traffic, and forward it to the channel behind the firewall via the TCP connection established by the latter. The channel behind the firewall would use the TUNNEL protocol as its bottommost layer.


next up previous contents
Next: Merging JRouter and gossip Up: Firewalls Previous: Using TUNNEL, JRouter and

1999-08-19