Changes between Version 4 and Version 5 of NatNodes

Changes between Version 4 and Version 5 of NatNodes

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

Changes between Version 4 and Version 5 of NatNodes

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

Changes between Version 4 and Version 5 of NatNodes

Show
Ignore:
Timestamp:
01/06/10 19:33:32 (10 years ago)
Author:
evan
Comment:

Minor capitalization and wording fixes.

Legend:

Unmodified
Added
Removed
Modified
  • NatNodes

    v4 v5  
    1313== NAT Forwarding in the Seattle Testbed == 
    1414 
    15 NAT Forwarding is a method used to gain bi-directional connectivity in the presence of a middle box.  NAT nodes can open outgoing connections, but may experience troubles when listening for incoming connections. THe process takes place in BLANK steps. 
     15NAT Forwarding is a method used to gain bi-directional connectivity in the presence of a middle box.  NAT nodes can open outgoing connections, but may experience troubles when listening for incoming connections. The process takes place in 6 steps. 
    1616 
    17 1. Using the NAT forwarding library a node that would normally listen for an incoming TCP connection (a server) will instead actively open a connection to an intermediate node (a forwarder).  This TCP connection persists for as long as the server needs to listen for connections. 
     171. Using the NAT forwarding library, a node that would normally listen for an incoming TCP connection (a server) will instead actively open a connection to an intermediate node (a forwarder).  This TCP connection persists for as long as the server needs to listen for connections. 
    1818 
    19192.  The NAT forwarding library on the server application advertises a key (unique identifier for the node) and the connection information (an IP and port) for the forwarder. 
     
    3333== Intermittent connectivity / IP address changes == 
    3434 
    35 Some 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.   
     35Some 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 server's 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.   
    3636 
    3737---- 
     
    4646== Performance == 
    4747 
    48 Passing 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. 
     48Passing 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 their 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. 
    4949 
    5050---- 
     
    5252== Deciding == 
    5353 
    54 Only 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. 
     54Only 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 to the node.  If bi-directional connectivity is available the NAT forwarding library is not used. 
    5555---- 
    5656 
    5757== Using the Vessels on NAT Nodes == 
    5858 
    59 Vessels 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. 
     59Vessels on Nat Nodes can be used exactly like any other vessel in the testbed, but traffic to 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, that's easy to do.