2002 ( 14 ) 15 1 22
2002 ( 14 ) 1 2 P2P 3
Abstract of Bachelor s Thesis Optimization of overlay network using the state of a network and a node Academic Year 2002 This thesis presents a designe and implementation of the system which increase the efficiency of an overlay network by changing topology based on the state of a network or a node. In the application and research using the conventional overlay network so far, it optimize it by using the information of a node or a network. This research realizes more efficient overlay network than the thing before by using both of them. In the past research, realization of an anonymity communication way is not performed becouse of not using the information on both a node or a network. This research realized the efficient overlay network by using band width, processing performance and the number of hops as informaiton of network. This system proposed by this research, get the information of the node from node advertising message transmitted on an overlay network, and the number of hop by survey of a network. The efficiency increases by changing the connection of the link between nodes which constitutes an overlay network based on it in quest of the priority of a node. In this thesis, the new technique of this research are proposed and implemented. By the technique proposed in this paper, optimization is performed by comparing the application and the research using the conventional overlay network. By using the technique proposed in this paper, the anonymity communication way using relay transmission in an overlay network can be made small. Keywords : 1 overlay network 2 P2P model 3 distributed system Keio University, Faculty of Environmental Information Masahiro NAKAYAMA
1 7 1.1..................................... 7 1.1.1..................... 7 1.1.2............................ 7 1.1.3............ 8 1.2..................... 8 1.2.1................. 8 1.2.2................... 8 1.3..................................... 9 1.4................................. 9 1.5................................ 9 2 11 2.1...................... 11 2.1.1 Gnutella............................... 11 2.1.2 Winny................................ 12 2.1.3 Peer-to-Peer.................... 14 2.2.................................... 14 3 16 3.1.................... 16 3.2........................... 16 3.2.1............................ 18 3.2.2........................ 18 3.2.3................... 19 4 20 4.1................................ 20 4.2................................ 20 4.2.1...................... 21 4.2.2............................ 21 4.3.................... 22 4.4............................... 22 3
4.4.1........................... 23 4.4.2.............. 25 4.5..................................... 26 4.5.1...................... 26 4.6................................ 26 5 27 5.1................................... 27 5.2................................ 27 5.2.1.......................... 27 5.2.2...................... 27 5.2.3........................... 29 5.2.4........................... 29 5.3 API..................................... 29 5.3.1................................ 29 5.3.2................................. 29 5.3.3..................... 29 5.3.4.......................... 29 6 30 7 32 7.1............................... 32 7.2................................. 32 7.2.1........................ 32 7.2.2............. 32 4
2.1 Ultrapeers......... 12 2.2 Winny..................... 13 3.1 IP........................ 16 3.2................. 17 3.3................. 17 4.1............................ 20 4.2.......................... 21 4.3................................... 23 4.4 ( )............ 23 4.5 ( )............ 24 4.6............................... 24 4.7........................... 25 5.1................................ 28 5
1.1................. 8 2.1...................... 15 3.1............................... 19 6.1...................... 30 6
1 1.1 1.1.1 BBS( ) IM( ) ADSL 1.1.2 7
1.1: 1.1.3 IP IP ISP IP 1.1 1.2 1.1.3 1.2.1 IP[1] 1.2.2 8
1.3 1.4 IP gnutella[2] [3] PeerCast[4] Freenet[5] Winny[6] TCP IP IP IP 1.5 2 3 4 5 6 3 9
7 10
2 2.1 2.1.1 Gnutella Gnutella[2] Justin Frankel Tom Pepper TTL(Time To Live: ) HTTP[7] Gnutella 0.4 Ultrapeers[8] Gnutella 0.4 Gnutella Ultrapeers 1 Ultrapeers Leaf Ultrapeers Leaf Leaf Gnutella 2.1 Ultrapeers [9] Gnutella IP 11
2.1: Ultrapeers 2.1.2 Winny Winny[6] Winny Gnutella IP 2.2 12
Winny 2.2: Winny 13
2.1.3 Peer-to-Peer Peer-to-Peer Peer-to-Peer [3] PeerCast[4] PeerCast Gnutella 2.2 2.1 14
2.1: Gnutella Protocol 0.6 (HTTP) (HTTP) (Ultrapeers) - (Ultrapeers) Winny - P2P - - 15
3 3.1 3.1 IP 3.2 3.3 3.1: IP 3.2 16
3.2: 3.3: 17
3.2.1 CPU 3.2.2 SNMP[10] MIB IP TTL TTL IP IP RTT PPPoE[11] RTT RTT(round trip time) RTT 18
3.1: x x x RTT pathchar[12] 3.2.3 3.1 19
4 4.1 IP 4.1 4.1: API 4.2 20
U U U > > > L U > 4.2.1 4.2 "!$#&% A"B DC 3 E"F$GIHJ /K )*+ '"(,-.$/0 '"( '(1$2!34576 / 98;:< = >@? ""8 MON"P A"B DCRQ$S %$T 4.2: 4.2.2 21
4.3 1. 2. 3. 4. 4.6 5. 6. 4.3 4.4 4.5 4.4 4.5 4.4 TCP 22
4.3: 4.4.1 TCP 4.6 1. TCP TCP TCP 2. TCP 4.4: ( ) 23
4.5: ( ) 4.6: 24
TCP Prits/1.0 3. 4.4.2 4.7 4.7: 1 IPv4 32 IPv6[13] 128 1 2 25
4.5 4.5.1 1. UDP[14] IP TTL 255 2. IP TTL 255 3. TTL 255 UDP 4. IP 4.6 4.1 = A + B log( ) + C (4.1) 26
5 Prits(PRogramming Interface for Tokumei System) 5.1 FreeBSD[15] 4.7-STABLE(2002/12/16) gcc[16] 2.95.4 FreeBSD NetBSD[17] 5.2 5.1 4 5.2.1 5.2.2 27
5.1: 28
5.2.3 5.2.4?? 5.3 API 5.3.1 initialize 5.3.2 connect disconnect 5.3.3 addhandler 5.3.4 sendmessage 29
6 2 6.1 6.1: Gnutella Protocol 0.6 (HTTP) (HTTP) Winny P2P ( ) Ultrapeer Gnutella Winny IP Gnutella 30
31
7 7.1 IP 7.2 7.2.1 7.2.2 32
33 neco kg
[1] J. Postel. RFC791 Internet Protocol, September 1981. [2] Clip2. The gnutella protocol specification v0.4. http://www.clip2.com/gnutellaprotocol04.pdf. [3] Inc. Bitmedia Inc. & ANCL. http://www.scast.tv/. [4] peercast.org. peercast.org http://www.peercast.org/. [5] Freenetproject.org http://www.freenetproject.org. [6] 47@Download.2ch. Winny web site http://www.geocities.co.jp/siliconvalley/2949/. [7] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners- Lee. RFC2616 Hypertext Transfer Protocol HTTP/1.1, June 1999. [8] Anurag Singla, Christopher Rohrs, and Lime Wire LLC. Ultrapeers: Another step towards gnutella scalability working draft http://rfc-gnutella.sourceforge.net/proposals/ultrapeer/ultrapeers.htm, 2001. [9] Yoshihiro Gotou, Shingo Ata, and Masayuki Murata. Methods on logical network construction in peer-to-peer services based on tra.c measurements. [10] J. Case and M.Fedor and M. Schoffstall and J. Davin. RFC1157 A Simple Network Management Protocol (SNMP), May 1990. [11] L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, R. Wheeler. RFC2516 A Method for Transmitting PPP Over Ethernet (PPPoE), February 1999. [12] Lbnl s network research group http://www-nrg.ee.lbl.gov/. 34
[13] S. Deering and R. Hinden. RFC2360 Internet Protocol, Version6 (IPv6) Specification, December 1998. [14] J. Postel. RFC768 User Datagram Protocol. http://www.ietf.org/rfc/rfc0768.txt, pages 1 3, August 1980. [15] The FreeBSD Project. The freebsd project http://www.freebsd.org/. [16] The GCC team. Gcc home page - gnu project - free software foundation (fsf) http://gcc.gnu.org/. [17] Inc The NetBSD Foundation. The netbsd project http://www.netbsd.org/. 35