NAT란, 로컬 네트워크 상의 모든 디바이스들이 외부 네트워크와 통신할 때 하나의 IPv4 주소를 공유하는 것이다.

위를 보면 로컬 네트워크 내에서는 서로 다른 주소를 가지고 있지만, 이 로컬 네트워크 안에 속하는 호스트들이 다른 외부의 네트워크의 호스트와 통신할 때는 하나의 IPv4 주소를 사용한다.
위 그림을 보면 10.0.0.1, 10.0.0.2, 10.0.0.3의 서로 다른 주소를 가지고 있음에 불구하고, 10.0.0/24의 동일한 주소를 이용한다.
NAT 방식을 사용하는 라우터는 3가지 기능적 오구사항이 존재한다.

위를 보고 예시를 확인해보면,
먼저 로컬 네트워크에서 10.0.0.1 IP, 3345 포트를 사용하는 호스트가 128.119.40.186 으로 데이터그램을 보낸다. 이는 NAT 라우터로 전달된다.
NAT 라우터는 이 데이터그램에서 source IP address 부분을 NAT IP인 138.76.29.7 로 변경하고, 새 포트 번호인 5001 번으로 변경한다. 그리고 NAT translation table에 10.0.0.1 IP, 3345 포트를 사용하는 호스트가 5001번 포트를 사용하고 있다는 사실을 기록한다.
외부에서 destination이 138.76.29.7 IP (NAT IP에 해당), 5001번 포트번호가 기록된 데이터그램이 들어오면 포트 번호를 table에서 찾은 후 10.0.0.1 IP, 3345 포트를 사용하는 호스트가 목적지임을 알게 된다.
데이터그램의 destination 정보를 10.0.0.1 IP, 3345 포트로 변경하여 올바른 호스트에게 전달한다.