スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TCPホールパンチングとRubyのテストコード

P2P using TCP & Ruby | Lead Thinking

TCPのホールパンチング方法の紹介とRubyによるテストコードが掲載されている。
技術はCharacterization and Measurement of TCP Traversal through NATs and Firewallsを使ったらしい。
Synパケットだけおくって穴あける方式ってどっかでみたけどこれか?
とあるブロードバンドルーターに対して netcat 使ってTCPでUDPホールパンチングと同じことしてみたら普通に穴があいたので家庭向けのルーターとかだと結構簡単にポート開けられるかもしれないしそうじゃないかもしれない。会社のルーターでポート開け試してみたけどUDPもTCPも開けられなかった。企業用のルーターは結構厳しい...。


Related:

::memolet | TCP Hole Punching?

スポンサーサイト

UPnP IGD の通信内容

UPnPの利用(1)-概要編-

通信内容とC#のコード。
特にDevice DescriptionのXMLは全文掲載されている。テストに使えそう。


UPnP issue solved in Overlayweaver - 驟雨のカーネル探検隊(只今遭難中w

何のかはわからないけどJavaのコード。そして、通信内容。
こちらも、Device Description の XML 全文掲載なのでテストに使えるかも。


わんこ日記(2009-06-17)

perl によるサンプルコード。
シンプルで参考になる ssdp_discover.pl の紹介がある。


SOAP童貞を卒業する - Yet Another Ranha

ここは、ruby の実装例なんかあったりする。


Related:

::memolet | WindowsでのUPnP™によるポートマッピング
::memolet | WindowsのNATポートマッピングが怪しい

MiniUPnP

MiniUPnP Project HomePage

NAT-PMPって何だよ?って調べてて見つけた。UPnPやBonjourによる ポート開放ライブラリ。KTorrentでも使われてるみたい。


最近の NAT Traversal ラウンドアップ

UDP Hole Punching の実験

netcat で実験して成功しているのが目からウロコだし、わかりやすい!


モペログ: UDP Hole Punching

実際に実装された方の記事。とりわけ、複数のネットワークインターフェ ースを持っている場合には、bindするアドレスなどを注意しようという のは良い教訓。


Behavior Engineering for Hindrance Avoidance (behave) Charter

新しい?STUNのインターネットドラフトのリストが下部にある。


Mmusic Status Pages

ICE に関する。ペーパー。


IPv6style:Advanced Networking Pack for Windows XP大解剖  第1回 IPv6接続をさらに透過的にするTeredo

Cone NAT とか Symmetric NAT とかの用語説明では一番わかりやすかっ たので。
最近のインターネットドラフトだと違った用語と定義を用いているEndpoint Independant Mapping NAT (EIM-NAT) とかって。


「情報共有(P2P)研究会」感想 - P2Pとかプログラミング全般とか

コメントで紹介されているNAT越えの資料が良い。確かに現時点で一番 まとまった資料かも。


WindowsでのUPnP™によるポートマッピング

Windows XP のユニバーサル プラグ アンド プレイ (UPnP)

Windows というよりか UPnP 一般の概要が説明されている感じ。かなり わかりやすい。だが、Windows では ユーザーが簡単に UPnP の無効化 できてしまうので UPnP の API がいつも使えるとは限らないところが 罠。


Universal Plug and Play in Windows XP

上記の英語版サイト。用語の英語が知りたいときに使える。


荒野の喫茶店 - Cafe of the Wilderness UPnP

ルーターに対して UPnP でアクセスしてみた経過が綴られている。実際 の通信内容も公開されているので、わざわざ WireShark とかで通信内 容をのぞきたくない自分にとっては参考になる。


[C#]UPnP NAT Traversal:Piece

::memolet | WindowsのNATポートマッピングが怪しい::memolet | WindowsでのUPnP™によるポートマッピング でメモしたサイトと同様のことをしている C# 実装。


::Hikaru's blog | UPnPを利用してグローバルIPを取得する - 2

UPnP で デバイスを制御する一連の通信フローをメッセージ内容から説 明されている。


WindowsのNATポートマッピングが怪しい

UPnPでポートマッピング制御

PerlとかVBScriptでポートマッピングする実装。


UPnPNAT get_StaticPortMappingCollection - function will return S_OK but the IStaticPortMappingCollection pointer that is passed will be set to NULL, why? : C++, IE

WindowsにUPnPでポートマッピングできるAPIがあるのはいいんだけれど も記事によると、ポートマッピングができたりできなかったりするみた い。
実際にvbsでのポートマッピング実装デ試してみたところ、そもそも IStaticPortMappingCollectionのインスタンスが取得できない。何故?
参考:::memolet | WindowsでのUPnP^(TM)によるポートマッピング


WindowsでのUPnP™によるポートマッピング

Network Address Translation Traversal Interfaces (Windows)

UPnP™でブロードバンドルータ等のポートを空けるための API が WindowsXP®、WindowsVSITA®では使えるようだ。
ざっと見た感じでは非同期に動作するようではなさそう。


About Network Address Translation Traversal (Windows)

この API を使う上でポート 1900 と 2869 を使用するようで Windows ファイアウォール で許可されていなければならないらしい。そのため の API が別途あるようだが、設定後 3秒は待てとのこと。だが、グルー プポリシーで無効になってると使えないらしい。さらに Windows ファ イアウォールでシールドモードだと使えないらしい。
自分で評価したりする分にはいいんだけど、一般に配布するようなソフ トに組み込む場合のことを考えると大変な気がする。インストール時に グループポリシーを変更しておくとか、Windows ファイアウォールのシー ルドモードを解除って自動的に出来るのか、出来たとしてもそれをして いいのか?


UPnPサンプル

βえんどるふぃん -UPnP対応ルーターをいじくる-

UPnPのポート空け実装と解説、実装サンプル付。これでどれくらいの UPnP実装に対応できるんだろ。実際に動かしてないけど、動いているの を見れば仕様書と見比べて理解し易くなる。


TCP Hole Punching?

Peer-to-Peer Communication Across Network Address Translators

NATトラバーサルの記事、"TCP Hole Punching"なる見出しが気になる。
後で読む。

NATトラバーサル

NATトラバーサルも色々あるぅ。
NAT-PMP - osdev-j (MMA)


NAT越え - osdev-j (MMA)


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。