・NAPT(Network Address and Port Translation)のしくみ
  NAPTはNATの弱点を改良したものです。NATではLAN側から同時に同じWANの
  アドレスにアクセスすることが出来ません。なぜなら戻ってきたパケットを渡す相手PCが
  わからなくなってしまうからです。たとえば2台同時にwww.2ch.netにアクセスすると
  先に繋がった方しかアクセスできません。これでは不便です。
  そこでNAPTではさらに送信元ポートも変換しどのパケットを誰に返すのかを判断します

       192.168.0.10  172.16.1.10   2333   80(HTTP)
┏━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳━━━┓
┃TCP.....┃元アドレス ┃先アドレス ┃元ポート. ┃先ポート .┃データ..┃
┗━━━┻━━━━━┻━━━━━┻━━━━┻━━━━┻━━━┛
.          ↓NATを通す
          A ←192.168.0.1 いわゆるルータのLAN側アドレス
    ┏━━━┻━━━┓
    ┃ NAPT(・∀・)......┃
    ┗━━━┳━━━┛
          B ←172.16.0.1 いわゆるルータのWAN側アドレス
.          ↓NATから出てきたパケット    (↑例ではプライベートアドレスになってます)
┏━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳━━━┓
┃TCP.....┃元アドレス ┃先アドレス ┃元ポート. ┃先ポート .┃データ..┃
┗━━━┻━━━━━┻━━━━━┻━━━━┻━━━━┻━━━┛
        172.16.0.1  172.16.1.10   10001    80(HTTP)

  動作説明
  1.PC(IPアドレス192.168.0.10)が172.16.1.10のポート80(HTTP)にアクセス
  2.(・∀・) Aに192.168.0.10から外に出るパケットが来た
   送信元を俺のアドレスに変換して、送信元のポートは10001にしておくか。で、Bから配送っと
   172.16.1.10から戻って来たパケットでポート10001宛てのは192.168.0.10のポート2333に
   戻すっとφ(・∀・)メモ
  3.アクセス先からパケットが戻ってきた。
   (・∀・) Bに172.16.1.10からパケット届いたーよ。
   (・∀・) ポート10001宛てだな、メモに172.16.1.10からポート10001戻ったら192.168.0.10の
   ポート2333に戻すって書いてあるから、戻ってきたパケットの送信先を192.168.0.10に、
   送信先ポートを2333に書き換えてポートAから配信
  4.PC(192.168.0.10のポート2333)に無事返事が届く。
   この後しばらくは172.16.1.10から届くパケットを192.168.0.10に送りつづける。

 《余談》
  IP MasqueradeのMasqueradeは「仮面・仮装」と言う意味があります。
  LAN側のIPアドレス・ポートをあたかも仮装したようなパケットに変更することからこの名前が
  付いたらしいです。
  またNAT・NAPTをまとめて「NAT」と呼ぶことも有ります。