-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Created by @CMCDragonkai
The following discussion from 'Refactoring Network Module' MR should be addressed:
-
@Zachaccino: (+2 comments)
Nat Type and Strategy
Full Cone NAT
Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.
Any external host can send packets to iAddr:iPort by sending packets to eAddr:ePort.
Single sided hole punching would be sufficient.
Address Restricted Cone NAT
Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.
An external host (hAddr:any) can send packets to iAddr:iPort by sending packets to eAddr:ePort only if iAddr:iPort has previously sent a packet to hAddr:any. "Any" means the port number doesn't matter.
Require coordinated 2 sided hole punching.
Port Restricted Cone NAT
Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort are sent through eAddr:ePort.
An external host (hAddr:hPort) can send packets to iAddr:iPort by sending packets to eAddr:ePort only if iAddr:iPort has previously sent a packet to hAddr:hPort.
Require coordinated 2 sided hole punching.
Symmetric NAT
Each request from the same internal IP address and port to a specific destination IP address and port is mapped to a unique external source IP address and port; if the same internal host sends a packet even with the same source address and port but to a different destination, a different mapping is used.
Only an external host that receives a packet from an internal host can send a packet back.
Not Punchable, Relay is needed.