Changes between Version 1 and Version 2 of NatNodes

Changes between Version 1 and Version 2 of NatNodes

Please note that these Trac pages are no longer being updated. Wiki contents/documentation have moved to GitHub.

Changes between Version 1 and Version 2 of NatNodes

Please note that these Trac pages are no longer being updated. Wiki contents/documentation have moved to GitHub.

Changes between Version 1 and Version 2 of NatNodes

Show
Ignore:
Timestamp:
01/06/10 17:35:53 (10 years ago)
Author:
kimbrl
Comment:

filled in remaining sections, still have to add diagram

Legend:

Unmodified
Added
Removed
Modified
  • NatNodes

    v1 v2  
    3636== Intermittent connectivity / IP address changes == 
    3737 
     38Some node managers may experience intermittent connectivity and may change their IP address over time.  Since The NAT forwarding library on the server advertises a unique key (and not the current IP address) clients looking to connect to the server will always be able to find the server using the servers key.  This solution won't help if a connection is lost during communications, but client / server programs should already be able to deal with connection loss and need only reconnect to continue operating.   
     39 
    3840---- 
    3941 
    40 == Forwarders == 
     42== Forwarder Deployment == 
    4143 
    42 discuss that forwarders are a deployed service 
    43 discuss reconnection 
     44Many Forwarders are deployed and managed as a service on the Seattle testbed.  Each forwarder advertises its location under a common identifier in a DHT.  When servers need to connect to a forwarder the NAT forwarding library uses the DHT to get a list of all active forwarders and chooses one to connect to.  The forwards themselves are written in repy and run inside of vessels on testbed nodes. 
     45 
    4446---- 
    4547 
    4648 
    4749== Performance == 
    48 explain why forwarding is good enough  
     50 
     51Passing all traffic through an intermediate node does have an impact on performance.  The NAT forwarding solution described here is only used in the testbed to exchange control messages with the node manager, so the performance penalty is far less important than reliable communication.  Additionally only nodes that can not be contacted directly will use the forwarding service (see section below).  Programs running inside of a vessel will not be affected as the NAT forwarding layer does not automatically impose itself on vessel communications.  Those who want thier programs running in a vessel behind a NAT or firewall to have bi-directional connectivity can make use of the NAT forwarding service / library, or write their own solution if better performance is required. 
     52 
     53---- 
     54 
     55== Deciding == 
     56 
     57Only nodes that can not be contacted directly will use the forwarding service.  Before the node manager starts listening for a connection a test is performed to determine if outside parties are able to connect in to the node.  If bi-directional connectivity is available the NAT forwarding library is not used. 
    4958---- 
    5059 
    5160== Using the Vessels on NAT Nodes == 
    52 explain that communications between vessels are not automatically forwarded 
    53 ---- 
     61 
     62Vessels on Nat Nodes can be used exactly like any other vessel in the testbed, but traffic too and from vessel may not get through due to the middle box.  This is actually an important part of the testbed as we want vessels that truly model the behavior of Internet nodes.  So vessels behind NATs will act just like computers on the Internet behind NATs.  NAT nodes are easily identifiable in the testbed so if you don't want to use them, or if you want to use the forwarding library in your vessel, thats easy to do.