- The purpose of NAT protocol is to reduce usage of public IPs
- A host needs a public IP to connect to Internet
- If the host is part of a LAN with a gateway router, a host can use private IP to make requests to public Internet.
- The public Internet would see that all the requests are originating from a LAN (i.e. the gateway router)
- A router has a local LAN IP and a public IP.
- The request flows as following:
- A local host in the LAN can make a request to a web server on Internet.
- The host request goes frpm local host IP and port to the local gateway.
- The gateway maintains a NAT table.
- An entry in the NAT table will have the source and destination mapping
-------------------------------------------------------------------- Local Host IP | Local Host port | Gateway public IP | Gateway port | --------------------------------------------------------------------
- The gateway creates a port that maps request to and from the local host to the public Internet web server.
- Hence the public server would always see the gateway IP and port and LAN host would be anonymous.
- NAT is essentially a kind of multiplexing local hosts requests over gateways single IP and multiple ports, assigned to each local host.
- An entry in the NAT table will have the source and destination mapping
Reference
Written with StackEdit.
Nice! This is extensively used in applications involving video calls, I think WebRTC also uses NAT traversal.
LikeLike