UDP Hole Punching

10月 28th, 2006

やっぱり初心者にはNATとかチンプンカンプンやし、ポートマッピングって何?って感じですよね。
NAT越えの技術としてよく耳にするのがUDP Hole Punching。
これをやってるソフトといえばSkypeが有名。

で、どうやってるのかちょっとバイト中に調べてみたんですが(おぃ
どうやら想像してたのとは違い、UDPパケットを投げ合って空いてるポートを探すのではなく、UDPパケットを投げ合ってNATのルーティングテーブルってやつにエントリを作って、それがある間に通信するというものらしい。
確かに、どのポートが空いてるのかを探しても、それが空いてるとは限らないんだから意味ない。

ということで、UDPで通信することになるので、TCPで接続を確立してから通信という手順ではなくなる。
で、UDPはストリーミングとかに向いてるプロトコルで、パケ落ちチェックをしないのが特徴。その代わり速度は速い。
amemboはSkypeみたく音声を通信するソフトではなく、主にファイルや写真などをやりとりするので、パケ落ちは許されない。
そこで自分でパケ落ちをチェックして再送させる仕組みを作ればいいんだが・・
面倒。激しく面倒。絶対不安定になりそうやし、オーバーヘッドが高くなりそう。

やはりIPv6が早く浸透してくれるのを待つしかないのか。
NTTの光やとIPv6に対応してて(自分はこれなんですが)サンプル作ってみたりしてるけど。
今どのくらいの人がIPv6の環境にいるのかが知りたい。
そしたらポートマッピングなんて代物要らなくなるのに。

とりあえず、保留で。

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>