p2pソフトを作りたいです

08ddca5a [名無し]さん(bin+cue).rar 2006-01-20 17:46
p2pソフトを作りたいと思います。
何からはじめればいいですか?
http://p2p.k-server.org/ 
776b97bd anonymous 2006-01-20 18:35
まかせろ。
f99950f1 anonymous 2006-01-20 23:37
2chにもたってないか、このスレw
854de688 anonymous 2006-01-21 01:29
よくは知らんがP2Pのライブラリがあるらしいぞ。
http://overlayweaver.sourceforge.net/
d4fa2213 anonymous 2006-01-21 18:49
>>08ddca5a
 人に相談することをやめる。それが、プログラマへの道の第一歩。
156a2dfa anonymous 2006-01-21 19:09
>>d4fa2213
車輪の再発明をするくらいなら人に訊いた方が健全だと思うけど(自戒を込めて)。
bdbd5d9e anonymous 2006-01-22 03:04
>>854de688
それ、tomoさんの記事で知ったよ。
わけわからん図とかあったけど結局、”Javaなのね”ということがわかった。
そのフレームワーク上で新月の仮想ファイルを共有できるかなあ、と。
シミュレーション図を見てちょっとだけワクワクしたけど、それだけでオワタ
01a5d240 anonymous TWbZZls6Vmx 2006-02-07 08:12
>>08ddca5a

Hello, World!
1bb07b91 anonymous 2007-12-16 23:07
P2Pといっても、そう難しいもんじゃない。
要はトランシーバーだと思えばいい。
トランスミッタ(送信機)とレシーバ(受信機)を両方くっつけて、
1台で送信も受信もできるようにしたのがトランシーバーなのだが、

これをコンピュータ同士が通信する場合の用語で語るなら、それは
クライアント/サーバという名前に置き換えるとだいたいあてはまる。
クライアントは情報を要求し、サーバは情報を提供するのが仕事。
通信において送信者と受信者の関係があり、情報が流れるところは同じだ。

# 昔はホスト/ターミナルだったが、この形態は最近あまり使われない。
# パソコン通信やってた頃はこっちが主流だったのだけどね。

つまり、クライアントにもサーバにもなれるソフトを作って、
相互通信できるのがP2Pというわけだ。そんなに難しいもんじゃない。

トランシーバが送受信に周波数と変調方式を合わせて通信する必要があるように、
コンピュータの場合は電波ではなくて、TCP/IPプロトコルを使って通信する。

周波数を合わせるのは、TCP/IPで言えばIPアドレスとポート番号を指定するようなものだ。
変調方式は、いわばHTTPやFTP、SMTPやPOPといったTCP/IP上に実装された
個別アプリケーションの詳細なプロトコルということになるだろう。
3fa2cd59 anonymous 2008-03-10 23:13
>>d4fa2213
実は気軽に相談できる人を確保するのが一番大事なんだぞっと。
一人で何でもやろうとするのは良くない。小物なら別にいいけどさ。
5288d9f4 anonymous 2008-10-18 17:34
現状、PDぐらいしかマトモなファイル交換用匿名P2Pってないんだよな。
9888a0e3 anonymous 2008-10-18 18:38
>>5288d9f4
海外ならもういくつかあるんだけどねー。
[[雑談/a3c7646b]]
0c3fac3e anonymous 2008-10-19 23:19
p2pのニコ動が欲しい。
150f64c9 anonymous 2008-10-21 12:51
P2P型動画共有システム CREA 開発中

・本スレ
P2P動画ソフト「CREA」(ソフトの名称)に関するスレッド ぴずあんどゆみな P2P 動画 ニコニコ アニメ DVD perfect dark アプリ @開発期待=96jESCZ9Dr4yB6R6vSG8KNk3Nle (54) ede4a77c400750eb13af7269ea35dac2d2734d8b7b8ec732620be031c14af220
・テスター募集中

@ぴずあんどゆみな=hW6og61lXBNztM6yoFbeVpf6PEf

8971e03b anonymous 2008-11-03 11:42
クローラ対策に有効な手立てはないでしょうか。
2422cef3 anonymous 2008-11-03 18:53
>>8971e03b
PG2でも入れてみたら
PeerGurdian2にブロックしたいIPアドレスを追加。
d44cb8de 白帽子 2009-10-07 15:33
参考になれば。
[[P2Pファイル共有ソフト]]

スーパーノード型ハイブリッドP2P(例としてKaZaAとかSkype)
がはやらないかな。
日本製のはピュアP2Pばかりだから、ちょっとおもしろくない。

ただし常にネットワーク上に、一定の条件をクリアした
スーパーノードが何個か必要。
そんな条件のいいユーザーがいればいいけど・・・。
618bac33 白帽子 2009-10-07 15:46
まあウィキペディアでも眺めながら考えよう。
http://ja.wikipedia.org/wiki/Peer_to_Peer
45acedd4 白帽子 2009-10-07 16:06
Gnutella/Gnutella2みたいなものから始めてみれば?
匿名性とかは気にせず基本的な通信ができるようにする。
オープンソースのP2Pプログラムのソースコードを参考にするのもアリ。
9657c2c0 白帽子 2009-10-07 16:55
P2Pは二つの接続を使い分ける。
1、基本ネットワーク
  検索やメッセージの送受信などに使う、常時張る接続。
2、ダイナミックP2Pアクセス
  必要なときにデータのあるノード/ピアへ接続する。

ダイナミックP2Pアクセスのときなんかに使う
NAT/ファイアーウォール越えの技術についても知っておくほうが良いかと。
あればどこでも接続できる可能性が高くなりますから。
LimeWireやCabosはファイアーウォール設置ノード間の通信ができるようになっていますのでいい例かもしれません。
1、逆向き接続
  要求側→受付側ではなく、受付側→要求側へTCP接続を張る。
  これはTCPのどちらから通信を開始しても双方向にデータを流せる
  性質を使っています。基本ネットワークをつかって受付側に
  メッセージをおくり、接続してもらえばいいのです。
2、UPnP
  わざわざ手動でルーター/NATの設定をしなくても、
  命令を送って自動的にポート開放させる技術。
  バージョンが複数あるそうなので注意。
3、UDP Hole Punching
  NAT越え技術。
  まず、NAT内部のノードAから外のノードBに対しUDPパケットを送る。
  するとNATはしばらくの間、BからきたUDPパケットをAに転送してくれる。
  これにより「NATに穴を開けて」通信を開始すればいい。
4、STUN
  UDP Hole Punchingをもう少し進めて、NAT設置ノード間
  でも通信できるようにする技術。
  STUNサーバが必要。(個人的にはP2Pサーバントにこの機能をつければ、
  初期ノードリストの中のひとつを選んでそこに担当させることができる
  のではないかと思っている。あくまでも提案ですよ。)
  STUNサーバはNAT内部のノードからUDPパケットがきたときに
  そのNATのインターネット側(WAN側)のIPアドレスとポート番号を
  教えるサーバだ。まずは、
  STUNサーバと通信しその情報を接続したいノードBに伝える。
  (スーパーノードなどに情報を登録するとか、
  基本ネットワークで伝えるとか、プログラムによってやり方は違う。)
  すると接続したいノードBが自分AのNATに対しUDPパケットを送信してくる。
  BのNATのWAN側のIPアドレスとポート番号の情報を調べ、
  そこに自分からUDPパケットを送信。
  これをおこなうとP2P通信ができるようになる。
  詳しいことは自分で調べてください。
5、HTTPカプセル化
  P2PのパケットをHTTPでラップする。
  するとHTTP用にファイアーウォールにあけてある80番ポートを安心して通過できるようになる。
  ファイアーウォールの中にはプロトコルをチェックする機能があるので
  このようにしないとはじかれる。
  このHTTPカプセル化の機能および技術は、HTTPゲートウェイ、
  HTTPブリッジとも呼ばれる。
6、中継
  NAT/ファイアーウォール設置ノードA-B間で第三者ノードを介して通信する。
  ここでは第三者ノードをリレーノードと呼ぶことにする。
  NATがあると内向き接続が使えない。そこで、
  ノードAとノードBがリレーノードに接続し、間接的に接続してもらえれば
  いいのである。
ecae7791 anonymous 2009-10-26 23:37
IPv4の割り当て構造がもう数年で新規割り当てできなくなるそうだね。
v6でP2Pする準備が必要なんだろうか。
322d1195 白帽子 2009-10-27 07:47
P2Pのオーバレイネットワークに
IP両バージョンをブリッジする機能を
つければよし。
IPv4 <--> P2P-ORN <--> IPv6
ができるはず。
de2c6dee anonymous 2009-10-27 07:57
IPv6オンリーでおk
4と6の混合環境とかもう・・・
23e3b754 anonymous 2009-10-29 16:54
Parallel C#
http://www.parallelcsharp.com/
のmovable methodが面白そうだ。これを使うと、余力のあるノードにスーパーノード役を適宜に割り振るP2Pソフトが作れるかもしれない。
e25ed1d6 anonymous 2009-11-22 10:42
http://www.parallelcsharp.com/

` We're planning that simple Visual Studio IDE integration is to be available Autumn 2009.

Autumn 2009はもうすぐ終わってしまうぞ……
82577759 anonymous 2009-11-22 15:59
DHTのChordにあるような円状スキップリストを自律的につくる(つまりChordと同じ動作)にはどうすればいいんだろう?
TomoさんのあいうえおDHTと同じ考え方でいいのかな?
d88cf862 anonymous 2009-11-22 23:25
>>ecae7791
IPv6だと逆にIPアドレスから使用端末を特定されやすくて危ない。
ネットワークカードの固有番号「MACアドレス」から生成するから。
41f12fd4 anonymous 2009-11-22 23:28
>>d88cf862
Hint:Privacy Extensions for Stateless Address Autoconfiguration in IPv6
http://www.ietf.org/rfc/rfc3041.txt
1e9d18e2 白帽子 2009-11-25 07:28
>>d88cf862
可逆だから?
ああ、対応表か計算で一生懸命チェックすれば、
時間かかるけど割り出せるな。
5e7e2a87 anonymous 2009-11-27 21:30
>>1e9d18e2
IPv6の仕様をよく読むこった。一生懸命チェックすることなぞ不要。
パケット1発撃てばどのLANポートから送信されたデータか特定される。
ccf84199 白帽子 2009-11-27 21:56
>>5e7e2a87
すいません。
専門高校の情報学科で学んでいる身分でして、
まだまだ未熟なのです。
LANポートはデータリンク層での話ですか?
それともトランスポート層での話ですか?
c07c7a25 anonymous 2009-11-28 13:18
>>ccf84199
ああっ、そんな専門用語もう忘れたっ!
154963c7 白帽子 2009-11-28 17:40
>>c07c7a25
OSI基本参照モデルですよ。
MACアドレスはデータリンク層での話で
トランスポート層はTCPやUDPの話だったはずです。
わかる方もおられると思いますがIPはネットワーク層の話です。
5e33c172 白帽子 2009-11-28 17:46
[[IPv6]]スレに移動
c6029f3d 白帽子 2009-11-28 17:48
>>82577759
どういうこと?
40207000 anonymous 2009-11-28 20:47
>>c6029f3d
DHTを机上シミュレーションしてみたくて。
DHTの利点は数万ノードでも正常に機能することだけど、そんな膨大な数にあってどうやって円状にノードを配置できるのかなと。
だれか日本語でおせーてってことです。

ちなみにTomoさんのあいうえおDHTではSkypeみたいにスーパーノードを設定してる。全ノードの25%、ってこの数値はどうとでもいじれるから関係ないか。
7ffaa0d8 白帽子 2009-11-29 19:53
スーパーノード型ハイブリッドP2Pでも
DHTって必要なの?

スーパーノードのクラスタには
必要かもしれないけどいらないのでは?
ea7a1e6f 白帽子 2009-12-25 18:40
TinyP2Pを研究してみないか?
http://ittousai.org/tinyp2p.ja.html

一応コピペ。
# tinyp2p.py 1.0 (documentation at http://freedom-to-tinker.com/tinyp2p.html)
import sys, os, SimpleXMLRPCServer, xmlrpclib, re, hmac # (C) 2004, E.W. Felten
ar,pw,res = (sys.argv,lambda u:hmac.new(sys.argv[1],u).hexdigest(),re.search)
pxy,xs = (xmlrpclib.ServerProxy,SimpleXMLRPCServer.SimpleXMLRPCServer)
def ls(p=""):return filter(lambda n:(p=="")or res(p,n),os.listdir(os.getcwd()))
if ar[2]!="client": # license: http://creativecommons.org/licenses/by-nc-sa/2.0
  myU,prs,srv = ("http://"+ar[3]+":"+ar[4], ar[5:],lambda x:x.serve_forever())
  def pr(x=[]): return ([(y in prs) or prs.append(y) for y in x] or 1) and prs
  def c(n): return ((lambda f: (f.read(), f.close()))(file(n)))[0]
  f=lambda p,n,a:(p==pw(myU))and(((n==0)and pr(a))or((n==1)and [ls(a)])or c(a))
  def aug(u): return ((u==myU) and pr()) or pr(pxy(u).f(pw(u),0,pr([myU])))
  pr() and [aug(s) for s in aug(pr()[0])]
  (lambda sv:sv.register_function(f,"f") or srv(sv))(xs((ar[3],int(ar[4]))))
for url in pxy(ar[3]).f(pw(ar[3]),0,[]):
  for fn in filter(lambda n:not n in ls(), (pxy(url).f(pw(url),1,ar[4]))[0]):
    (lambda fi:fi.write(pxy(url).f(pw(url),2,fn)) or fi.close())(file(fn,"wc"))
0ee149e2 anonymous 2009-12-25 18:57
わはっ
3909aea1 anonymous 2009-12-25 21:21
>>ea7a1e6f
Pythonって凄い言語だよな。
スクリプト系では最も設計がすっきりしてて習得もしやすい。
rubyも悪くはないのだろうが、ユーザ数で言うとこっちが圧倒的。

よく使われてるスクリプト系の中で最悪なのは
ダメなプログラマを量産しているPHPだと思う。

perlはよく分からないけど、歴史はあるし、それなりに使えるみたいだね。
いろいろ拡張されているせいで、新たに学ぶのは大変そうだけど。
e68128e5 anonymous 2009-12-25 21:31
>>3909aea1
Cでゴリゴリ書こうぜ
9f238807 anonymous 2009-12-26 21:26
>>e68128e5
ソフトが完成した頃にはジジイになってるぜ
ebe4fc3d anonymous 2009-12-27 16:51
>>ea7a1e6f
ノードリストの共有部分が知りたいな。
tinyp2p.py password server hostname portnum [otherurl]
だから他ノードはsys.argv[5]=ar[5]=prsか。
def pr(x=[]): return ([(y in prs) or prs.append(y) for y in x] or 1) and prs
んん、よくわからん。xは多分ノードのリストだろう。それがprsにあるか、prsにappendできかたか、or 1ってなんだ?
def aug(u) からprが呼ばれているな。ああ、わかんねー。こっち見ようぜ。
http://lowlife.jp/yasusii/weblog/2004/12/19.html

コードはよくわんなかったけど、ともかく、ノードリストをダウンロードしてきて記載されているノードに順次自ノードを登録していくのか。
ノード数が増えるとそれだけでヤバそうな。死んでるノードを排除する仕組みも欲しいな。
cca7175a anonymous 2010-01-03 11:11
わたくしphuketの作者ですが、新月のプロトコル興味有りまする。
P2P掲示板は、作りたいと思っていましたが、面倒でほっといていまする。
2chの運営にはホトホト呆れていますする。
12b70a74 anonymous 2010-01-03 11:15
>>cca7175a
これは神降臨の予感
確か新月ってオープンソースでしょ
93e9bdf4 anonymous 2010-01-03 11:26
数日前のスパム爆撃で新月プロトコルの問題が・・・
69d967be anonymous 2010-01-03 15:28
>>12b70a74
そう。だからがっつりやってもらって何も問題ないというか有難いレベル
5c982e74 anonymous 2010-01-03 15:52
おらワクワクしてきたぞ
f94d353d 白帽子 2010-01-05 17:00
TinyP2Pについてもう一つ発見。
Annotated TinyP2P
http://www.exonsoft.com/~kochin/TinyP2P/tinyp2p.html

もっとわかりやすい(?)よ。
2e1029a7 anonymous 2010-01-06 21:38
俺もP2Pソフト作りたいです
6d05f326 白帽子 2010-01-07 18:46
P2P設計スレ誰か立ててくれ。
da2919f1 anonymous 2010-01-07 20:37
>>6d05f326
ここでいいじゃない。存分にやってくれ。楽しみにしてる。
b31ca355 anonymous 2010-01-07 21:23
既存のP2Pネットワーク上に作ればいいのではないか?

Shareにはプラグインシステムがあるのだし。
12669c13 白帽子 2010-01-09 12:58
Freenet、Skypeなどみたいにオーバレイネットワークの上にオーバレイネットワークを構築すんの?

Top of this page. | <<last <<new 0 1 2

limit: 15360KB

(p2pソフトを作りたいです/254/0.0MB)


Powered by shinGETsu.