shinGETsuプロトコル 0.8について議論するスレ

188d64e7 :Anonymous 2015-11-15 13:42
テキトーな新月nat traversal案

自ノードS:self.com:8000/server.cgi

・まずはuPnPでポート開放(デフォルトON)
・通常のjoin
・join数0なら、
   ・init_nodeから数回リカーシブに/node実行後、ランダムなノードR(relay.com:8000)取得
   ・ノードRに
http://relay.com:8000/server.cgi/relay/self.com:8000+server.cgi
で自ノードリレー要求
   ・NGなら戻る
・再度join、以降通常動作。ただし自ノードは
    relay.com:8000/server.cgi/relay/self.com:8000/server.cgi (自ノードリレー名)
 とする。
 以降、他ノードからノードSは(自ノードリレー名)に見える。
・relay.comは例えば10分間10個以内、APIコールを保存
・self.comは例えば1分ごとにself.comに確認


ex)
self.comへのping API:
http://relay.com:8000/server.cgi/relay/self.com:8000/server.cgi/ping

self.comからanother.com:8000へのjoin
http://another.com:8000/server.cgi/join/relay.com:8000+server.cgi+relay+self.com:8000+server.cgi
リレー機能のない朔が受け取れば、相手ノードは(自ノードリレー名)に見えて、
http://relay.com:8000/server.cgi/relay/self.com:8000/server.cgi/pingにpingするはず(要確認)。

欠点:
リレーノードの負荷
リレー機能のない朔が多い状況で、無駄にリレー要求必要
Powered by shinGETsu.