Title: P2P?subversion?????%20???????????%20(??????:AirFolder)
1P2P?subversion????????????????(??????AirFolder)
2??
- ????(???????)
- AirFolder???????a
- ??
- ???????
- ??????
3????(???????)
- P2P??
- ?????????subversion??
4P2P??
- ?????????(??)???????????????????????????????????
- ????????????PC?????PC?????????????????
- ??
- ???????? to ????????????????????etc.
- ?????? to PC on/off?????????????????????etc.
- ????????? to PC???????????etc.
5?????????subversion??
- ??????????????????????????????????????????????????
???????? - Subversion
- CVS????????????????????????????????????(better
CVS) - ????(??????)???????(copymerge??)
6AirFolder???????a
- Commit????????
- ????????commit???????
- ??
- ???????????????
- ????????
7Commit????????
subversion???
update(download)
BUSY
sourceforge???(?????) gt ??????????????(????)
H???????????commit??? gt ??????????????????????
8????????commit???????
subversion???
commit
???????????
commit????
9??????????????(a)
commit
update(download)
??????????????????commit??????????????? ???????
???????????????????????????
10????????(a)
- ????????????????????(????????)
???
???
???????????????????????????? ?????????????????????
???????????????? ????????????PC???????????????? ?
????????????????
11??
12???????
- ?????????
- ??????
- ??????
- ???????
13?????????(1/4)
- flooding small world QRP overlay
- ???????????????????????????????
- ??????????????????????
- ??????????????????????
14?????????(2/4)
??? (???????????????)
netid-a(128bit)
UDP????????(???????)?????TCP???
netid-b(128bit)
????????(on netid-b)
15?????????(3/4)
- QRP(Query Routing Protocol)
Lookup
Lookup
Lookup
Bloom filter ????????????????? ???????????
x
TCP(unicast)?? overlay??????
Lookup
Lookup
???????????? ?????ID??? _at_see ???????????
Hit
Hit
TCP?????
Advt
Advt
?????
16?????????(4/4)
NAT box
get
data
lookup
lookup
UPnP NAT traversal
hit
hit
gwreq
gwreq
lookup
?????
Hit
pushreq
data
data
get
get
get
data
17??????(1/4)
- 3 types, 2 classes,????????
?????????
??????
file-id,last-rev file-id,last-rev file-id,las
t-rev
!/bin/sh
??????????? (lookup????)
Size Comment-1 Comment-2 Comment-n
??????
?????????? (advt????)
???????? ????(useridtimeus)
18??????(2/4)
- Conflict (almost) free merge
?????????
?? ???????(?????????????) ?????????ID???
??????????????? ??????0???????
file-id,last-rev file-id,last-rev file-id,las
t-rev
id-a,rev1 id-b,rev1
id-a,rev2 id-c,rev1
???
A??
A??
id-a,rev2 id-b,rev1 id-c,rev1
id-a??????????rev1 ????A?????
19??????(3/4)
B??
A??
lookup (B???????????)
hit
id-a,rev-x id-b,rev-y id-c,rev-z
id-a,rev-x id-b,rev-y id-c,rev-z
id-a meta
id-b meta
Semantic filter
id-c meta
id-a file
id-c file
20??????(4/4)
?????
A???????
id-a,rev2,u-A,u-B id-b,rev2,u-A id-c,rev2,u-A
id-e,rev1,u-B id-f,rev3,u-B
UI
id-a,rev1 id-b,rev2 id-c,rev2
???? ????????
??????
?????????
????????
B???????
id-a,meta id-b,meta id-c,meta id-e,meta i
d-f,meta
id-a,rev2 id-e,rev1 id-f,rev3
????
??? ?????
???????????
21??????(1/3)
CA
X.509 DNuidinoue_at_ariel-networks.com,dcariel-net
works,dccom (_at_see rfc2377)
RSA?????
??????
cert????????(????) CA?????????(CRL?????)
X.509??????(AC)??? ???(???)???????????P2P??advt
22??????(2/3)
???(???????)
???
user-A,???room key user-B,???room
key user-C,???room key
???
???
??????
!/bin/sh
??? ?????
23??????(3/3)
cert(pub-key)
Encrypted by fixed-key
session-key
Encrypted by pub-key
Encrypted by session key
session key d
session key a
session key c
session key b
24??????
AirFolder
wxWidgets(UI)
Ariel Framework(P2P)
Libapr(portability)
Expat(XML parser)
Openssl(security)
Windows
GNU/Linux
25??????
- adhoc??????????????????
- ASP(sourceforge??)????????????????????????????????
?? - ????????????
- ???subversion??????????????????(??)
- ???????????????????PC????????
- Subversion????????????????????
- ??????subversion???????????
- ???????????????P2P????????????(???????)