org.javagroups.protocols
Class TUNNEL

java.lang.Object
  extended byorg.javagroups.stack.Protocol
      extended byorg.javagroups.protocols.TUNNEL
All Implemented Interfaces:
java.lang.Runnable

public class TUNNEL
extends Protocol
implements java.lang.Runnable

Replacement for UDP. Instead of sending packets via UDP, a TCP connection is opened to a Router (using the RouterStub client-side stub), the IP address/port of which was given using channel properties router_host and router_port. All outgoing traffic is sent via this TCP socket to the Router which distributes it to all connected TUNNELs in this group. Incoming traffic received from Router will simply be passed up the stack.

A TUNNEL layer can be used to penetrate a firewall, most firewalls allow creating TCP connections to the outside world, however, they do not permit outside hosts to initiate a TCP connection to a host inside the firewall. Therefore, the connection created by the inside host is reused by Router to send traffic from an outside host to a host inside the firewall.

Author:
Bela Ban

Field Summary
 
Fields inherited from class org.javagroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, observer, props, stack, up_handler, up_prot, up_queue, up_thread
 
Constructor Summary
TUNNEL()
           
 
Method Summary
 void down(Event evt)
          Caller by the layer above this layer.
 java.lang.String getName()
           
 void handleIncomingMessage(Message msg)
           
 void run()
           
 boolean setProperties(java.util.Properties props)
          Setup the Protocol instance acording to the configuration string
 void start()
          This method is called on a Channel.connect(String).
 void stop()
          This method is called on a Channel.disconnect().
 java.lang.String toString()
           
 
Methods inherited from class org.javagroups.stack.Protocol
destroy, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, init, passDown, passUp, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setUpProtocol, startDownHandler, startUpHandler, stopInternal, up
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TUNNEL

public TUNNEL()
Method Detail

toString

public java.lang.String toString()

getName

public java.lang.String getName()
Specified by:
getName in class Protocol

start

public void start()
           throws java.lang.Exception
Description copied from class: Protocol
This method is called on a Channel.connect(String). Starts work. Protocols are connected and queues are ready to receive events. Will be called from bottom to top. This call will replace the START and START_OK events.

Overrides:
start in class Protocol
Throws:
java.lang.Exception - Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, so Channel.connect(String) will throw an exception

stop

public void stop()
Description copied from class: Protocol
This method is called on a Channel.disconnect(). Stops work (e.g. by closing multicast socket). Will be called from top to bottom. This means that at the time of the method invocation the neighbor protocol below is still working. This method will replace the STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that when this method is called all messages in the down queue will have been flushed

Overrides:
stop in class Protocol

setProperties

public boolean setProperties(java.util.Properties props)
Setup the Protocol instance acording to the configuration string

Overrides:
setProperties in class Protocol

down

public void down(Event evt)
Caller by the layer above this layer. We just pass it on to the router.

Overrides:
down in class Protocol

run

public void run()
Specified by:
run in interface java.lang.Runnable

handleIncomingMessage

public void handleIncomingMessage(Message msg)


Copyright © 2001,2002 www.javagroups.com . All Rights Reserved.