May 12, 2013 リアルタイム処理について色々考えていたら、端末同士が直接データをやり取りすることに興味を持ち始めたので、最近はUDPやらNAT越え関連で遊んでいます。 UDPを使って端末同士が直接通信する時にほぼ必ず問題となるのがNAT越えです。端末がNAT配下にいる場合、NATのアドレスとポートを通信相手に伝えられなければ直接通信をおこなうことができません。P2PやVoIPによる通信も同じようにNATが問題になるわけですが、それをなんとかしようと出てきたのがNAT traversalです。 NAT traversalにも色々なテクニックがあるようですが、代表的なものとしてUDPホールパンチングというものがあります。これはグローバルIPアドレスを持つサーバーに対してUDPパケットを送信することで、NATからアドレスとポート割り当ててもらい、そのアドレスとポートのペアをサーバーから
![Node.jsとSTUN](https://cdn-ak-scissors.b.st-hatena.com/image/square/e7302cdb65efef398835257e4978833fbf431354/height=288;version=1;width=512/https%3A%2F%2Fblog.summerwind.jp%2Fimages%2Flogo.png)