When two computers are on a local area network (the same subnet) they have a direct connection to one another. This means that they can send data directly to one another. However, if the two computers are on different subnets then they no longer have a direct connection. Something must forward the data between these subnets and this something is called a router (it can be hardware or software). This is the case whenever your computer is attempting to connect to another computer on the Internet (e.g. to view a web page).
General Purpose Internet Sharing uses a low-level NAT approach to sharing an Internet connection. NAT stands for Network Address Translation. This works in a very similar fashion to a software router, whose job it is to forward packets between different subnets in a larger network (you can think of the Internet as a single very large network of multi-subnets). Routers know enough about the other subnets around them to enable them to forward packets (hopefully) to the right one, so that they will eventually reach their destinations. A NAT does this forwarding but with an important difference.
A NAT is used to share a single real ('Public') IP between multiple client computers, each with their own different private IP addresses. To do this, the NAT service, when forwarding packets onto the Internet, substitutes the original private IP in the packet sent from the client with it's own. That way computers across the internet can connect and send packets back to the NAT computer because it thinks the WinGate computer was the source of the data sent. Because the WinGate NAT service keeps note of which computers sent packets on which ports, it is able to pass the incoming packets back to the correct computer.
In summary, the WinGate NAT service performs the following tasks:
What all this means is that using NAT is simple. Normally the only requirement is that the client computers (those accessing the Internet through NAT) pass any packets with destinations beyond the local subnet to the default gateway (where they can be dealt with by NAT). This configuration can be done automatically if you use WinGate's DHCP server.
NAT is fast because NAT does so little. It rewrites a few fields in each packet of data, and remembers a table of port mappings. By comparison the WGIC and Proxies have to do much more work.
The NAT is designed to read the information in IP packets only. This means that it supports the IP related protocols such as TCP, UDP and ICMP.