補足: 「NAT越えの技術」のコメントとQ&A
井上のコメント:
NAT越え技術の原稿の中の「マッピングテーブル」の用語は、「変換テーブル(translation table)」の方が一般的かもしれません。
文書の中の説明用語だと思えばどちらでも良いので、書き換えの判断はお任せします。
Q1.
NAT越えの原稿で、コネクションリバーサルの話がありましたが、これはUDPでは利用できないものでしょうか?
A1.
コネクションリバーサルの解釈に依存しないことは無いですが、「できない」という回答をします。
(NATルータの実装依存とも言えますが)NATルータのマッピングテーブルの寿命が違うので、TCPのように一度セッションを確立してしまえば終わり、というわけにはいかないと思います。
FYI:
http://www.tomax7.com/mcse/cisco_ipcommands.htm
を見ると、udp-timeoutは5分で、tcp-timeoutは24時間という差があります。
(24時間は長い方かもしれません)
TCPの場合、セッションを確立すると(このセッションの状態を知っているのは両端のPC-aとPC-bのみで、NATルータは知らない)、長いidle後、PC-bからPC-aに突然TCPパケットが飛んで来ても通ります。
ただ、微妙なのは、NATルータがこうでなければいけない、という決まりがあるわけでは無い点です。
HTTPに限定すれば、Webサーバが突然TCPパケットを投げてくることはないので、短いタイムアウトでも困りません。
UDPのタイムアウトが短いのは、短くて困るアプリが普通は無いからです。