Protocol for Peer-to-Peer Networking in Mobile ... - Semantic Scholar

2 downloads 0 Views 193KB Size Report
Freenet [8] and Gnutella [6] allow file sharing between distant participants ... Besides the well known file sharing applications, new ..... Winnipeg, Canada. 2002.
Protocol for Peer-to-Peer Networking in Mobile Environments Rüdiger Schollmeier, Ingo Gruber

Florian Niethammer

Lehrstuhl für Kommunikationsnetze Technische Universität München Munich, Germany {Schollmeier, Gruber}@ei.tum.de

Definion GmbH

Abstract— Peer-to-Peer (P2P) as well as mobile ad hoc networks (MANETs) follow the same idea of creating a network without the help of central entities. However P2P and MANETs operate on different network layers. A combination of both, creates new services and possibilities, but also faces several problems. Introducing P2P computing in ad-hoc networks without considering the particular requirements of ad hoc networks has a poor performance. This paper addresses these problems and introduces the Mobile Peer-to-Peer Protocol (MPP) suite as novel approach. It spans from the network layer to the application layer, and tries to reuse existing protocols as far as possible. MPP allows a realistic operation of Peer-to-Peer services over ad hoc networks. The Peer-to-Peer layer must be well aware about the wireless network to minimize the traffic and to cope with frequent route breaks. Additionally the network layer needs knowledge about the Peer-to-Peer application, in order to establish routes only to appropriate communication partners. MPP thus forms the necessary framework to allow the creation of a vast variety of different services over ad hoc networks. Keywords- Peer-to-Peer, Mobile ad hoc networks, Service Discovery, Routing, Interlayer Communication

I.

INTRODUCTION

Mobile ad hoc networks first appeared as DARPA packet radio networks in the early 1970’s. They became an important area of research within communication networks and remain a hot topic. To reach their communication partner, they create connections over several intermediate hops. Simulations [1][2] show, that especially reactive routing algorithm [3] are able to cope with permanently changing network topologies and almost arbitrary network sizes. Since wireless access technologies like WLAN 802.11 [4] and Bluetooth [5] are broadly available, ad hoc networks turn from academic considerations into real applications. Both standards are able to create and maintain networks without central entities, and therewith fit into the ad hoc network paradigm of infrastructure free communication. Peer-to-Peer networks realize a comparable approach within fixed network infrastructures. Their main characteristic is, that P2P networks act independent from the underlying network infrastructure. The utilized TCP/IP only provides a communication platform protocol and does not supply

Munich, Germany [email protected] information about the location of requested content or participants. As P2P-nodes independently maintain P2P networks, these overlays show characteristics of an infrastructure free and decentralized network. As an example, Freenet [8] and Gnutella [6] allow file sharing between distant participants in completely self organizing networks. For signaling, P2P nodes flood search requests and keep alive messages through the network, or distribute them with more sophisticated algorithms to other participants of the network [7]. Both network architectures are very promising concepts. Although they use different layers for operation, we think that the idea to combine both architectures shows a high potential. As described in [9], both architectures have several similarities, but also many differences. To allow a reasonable combination of both, a new inter-layer communication is necessary. P2P protocols are not aware of the underlying MANET and assume a fixed network infrastructure, causing additional and unnecessary network traffic. Thus a simple utilization of ad hoc networks for common Peer-to-Peer applications is not feasible, as we prove in this work. Common P2P applications have optimized algorithms to find information within their overlay network, but for information exchange they generally rely on TCP and assume stable connections. Whenever connections break, P2P nodes suppose, that their distant communication partners have left the network and switch to other, randomly chosen nodes, which also provide the requested content, or which offer further connectivity to the network to initiate new search requests. In MANETs, link breaks are common, as all nodes are in motion. Whenever two adjacent nodes move out of each others radio range, the link between both nodes breaks. A MANET protocol not aware of the P2P application, tries to reestablish a new route to the same destination, independent from the necessary effort. Instead of trying to create a new route to the same source of information, other sources could provide the information at less costs after the network topology changed. Therefore the MANET nodes have to report route breaks to the upper P2P node which then decides whether the old source is still utilizable or other connection partners are more appropriate.

As common P2P networks operate on top of fixed network infrastructures, P2P nodes mostly do not distinguish between communication partners in close proximity and network participants far away. P2P networks use multi-hop connections only for search requests. Subsequent information downloads use direct TCP connections between source and destination. The distance between nodes generally does not affect the stability and error free operation of connections. Therefore P2P nodes might create connections to distant nodes, although the searched information might be available more closely as well. The distances between communication partners in MANETs are counted in number of intermediate hops. It is the most important parameter for route lifetimes [10]. Numerous unnecessary lengthened routes induce additional routing overhead, delay data packet transmissions and therewith greatly reduce the overall network performance. Therefore the application client must classify incoming search replies according to their hop distance to the destination. As a consequence, a combined P2P-MANET approach must be well aware on the one hand of the underlying network infrastructure and on the other hand of the overlaying application. To minimize the effort to create a new protocol and to benefit from former developments, the MPP protocol stack reuses existing network protocols as far as possible. For nodeto-node communication, the protocol utilizes an enhanced version of the Dynamic Source Routing (DSR) [11] protocol. For the user data transportation it uses HTTP over TCP. Thus the Enhanced Dynamic Source Routing (EDSR) requires only a new application layer protocol and minor changes within the DSR protocol. A combination of both network approaches offers new characteristics and allows completely new applications. As both networks do not expect reliable nodes, a combination will perform well within unpredictable environments. Nodes are able to instantly reestablish connections or can, if necessary, use other sources for information access. P2P-MANET networks are completely independent from any kind of infrastructure and allow an uninterrupted operation, even if some nodes turn off or move out of the network. Besides the well known file sharing applications, new wireless applications are feasible. In case a user visits an unknown city and searches for a cash dispenser, the user could ask its wireless device for the closest one, and the node creates a search request for this special service. All participating nodes would forward the request, until a cash dispenser receives the request and sends an appropriate response message to the requesting node. This would allow the utilization of location based services (LBS) without the help of cellular networks or centralized servers. The underlying MANET guarantees the localization of the search request and the adaptability of P2P nodes allow the creation of arbitrary search requests. Further possible requests categories could include taxis, bars and restaurants or closest bus stops. MPP thus offers a wide variety of new services in mobile ad hoc environments. In addition the ability to find static and mobile devices by certain criteria will generate new technologies and applications e.g. for car-to-car communication and information services.

This paper is structured as follows. Section II discusses in detail the related work and Section III explains the overall system architecture of the MPP protocol. Section IV shows the network and application layer protocols, as well as the interlayer communication protocol before we present performance evaluations in Section V. In Section VI we give an overview about future work issues concerning MPP and wrap up this paper with a general conclusion. II.

RELATED WORK

The literature already describes several P2P protocols and architectures for fixed network infrastructures. Gnutella 0.4 [6] is certainly one of the most popular networks. For signaling it employs mostly simple broadcast mechanisms, without any adaptation to the underlying physical network. As enough resources are available, an adoption is not essential in fixed network infrastructures. Although recent approaches, like Gnutella 0.6 [13] CAN [18], Chord [19], or Tapestry [17] decreased the signaling overhead significantly, the major application area is still a fixed network. These approaches do not aim to match the virtual overlay network to the physical network and thus are not utilizable within MANET scenarios. A first approach trying to make P2P networking in a mobile environment feasible is JXME [23]. This approach intends to keep the objectives of JXTA [25], and to adapt JXTA such that the requirements of a mobile network can be met. However, this approach regards only cellular networks, and does not address the problem of adapting the virtual overlay network to the physical network. JXME is therefore not feasible in a MANET scenario. Lawrence [24] proposes an approach to use JADE-LEAP in an ad hoc environment. The author proposes the removal of some mandatory components and adds a Discovery Agent to support ad hoc networks. Unfortunately this does not address the question of routing, which we think is one of the most critical questions in a MANET scenario. 7DS [20] is a P2P data sharing system, which intends to provide an infrastructure to enable online Web-browsing without a direct connection to the Internet. 7DS tries to exploit the peer mobility to avoid traffic intensive routing. Opposed to this approach MPP also aims to provide the user with location aware services, based on a P2P network. PROEM [22] aspires to provide a platform to develop P2P applications for MANETs. Its messages are based on TCP, UDP or HTTP and employ XML for the representation of the messages. However it also does not provide any mechanism to adapt its virtual to the physical topology. Thus we would doubt its feasibility in larger MANET scenarios. ORION [21] provides full P2P functionalities in a MANET environment. In contrast to MPP, which also intends to provide location aware services, ORION concentrates only on file sharing applications. The basis of ORION is AODV [26] and the Simple Multicast and Broadcast Protocol for MANET [27]. ORION provides an application layer routing protocol causing

Hybrid solutions, relying on base stations and further centralized elements, are from our point of view not suitable. Central elements cause higher costs and additionally can in most cases not be administered by the user itself. However decentralized management and control is of great importance for fleet and facility management. The great value of enabling location based services at low cost without any central elements would be given up. All in all it must finally be stated, that to our knowledge no further P2P on MANET solutions exist, besides the ones mentioned above. III.

ARCHITETCURE

Peer-to-Peer and mobile ad-hoc networks have two challenges in common: peer detection and packet routing. To meet these challenges, synergies between P2P networks and MANET can be used to reduce the administrational effort and to increase the performance and reliability of MPP. The MPP protocol suite consists of the MPP protocol as the application layer protocol, the Mobile Peer Control Protocol (MPCP) as the interlayer communication protocol and EDSR as the network routing protocol. A. Structure Since MANETs already provide routing algorithms, allowing to find network participants by their IP addresses, an additional P2P implementation of this functionality is unnecessary or even decreases the overall performance. Instead EDSR implements supplementary P2P functionality in the underlying MANET layer. This approach provides valuable advantages compared to a separated treatment of both networks: •

The MANET controls the organization of the network. Thus changes in the topology of the mobile network automatically are taken into account by the P2P network.



The network layer performs routing and not the application layer.



Security features provided by the MANET also improve the P2P network.



The integration of both networks avoids redundant information and reduces the packet overhead.



The treatment of routing functionalities within the MANET layer minimizes the overall effort for an implementation.

To achieve these advantages, the implementation of P2P functionality in the network layer requires a communication channel, the MPCP, between the application (MPP) and the network layer (EDSR). Figure 1. shows the layer model of the mobile P2P network.

Application (MPP) Presentation MPCP

unnecessary overhead. MPP avoids this by employing the routing capabilities already provided in the network layer.

Session Transport (TCP) Network (IP)

EDSR

Link Physical Figure 1. Network layers and protocols

As mentioned above three protocols provide the basic functionality of the system. MPP allows peers to directly exchange data. Therefore MPP is responsible for file transfers within the P2P network and resides in the P2P client application. MPP utilizes HTTP and thus is able to perform data uploads and downloads. In the case of aborted transmissions due to broken links, the HTTP content range header is able to resume the file transfer. We choose HTTP for its rich set of features and the numerous standard implementations available in different computer languages. The EDSR protocol adds new request and reply types to the DSR protocol and thus provides means to find peers by other criteria than an IP address. Nevertheless, EDSR does not change the basic behavior of DSR, so EDSR nodes can be an integral part of a DSR network. MPCP links the EDSR Protocol in the network layer with the P2P application in the application layer. Using MPCP the application can register itself in the EDSR layer to initialize search requests and to process incoming search requests from other nodes within the network. MPCP is the interlayer communication channel between the application and the network layer. It communicates all incoming and outgoing requests and responses to the corresponding protocol, except the file exchange itself. B. Behavior On startup, the P2P application on the mobile device announces itself to the EDSR layer with the MPCP. Figure 2. shows the process of searching and transferring files within the mobile Peer-to-Peer network as a message sequence chart. If a user initializes a data search, MPCP forwards the request to EDSR which transforms it into a search request (SREQ). As with DSR route requests (RREQ), EDSR floods SREQs through the MANET. EDSR nodes receiving the request, forward the request to the registered P2P application over MPCP. Thus the P2P application can determine data satisfying the request’s criteria. If the request matches a file on the node, the application initializes an EDSR file reply to be sent back to the source node containing all necessary information for the file transfer. Similar to DSR route replies (RREP), a file reply (FREP) includes the complete path between source and destination.

MPP MPCP P2P Application (A)

EDSR (A)

EDSR

EDSR (B)

MPCP

P2P Application (B)

Register Acknowledge Search Data Acknowledge

Search Request Search Request Acknowledge

File Reply

File Reply Acknowledge

File Reply Acknowledge MPP Request Data

Figure 2. Message sequence chart for data search and download process in the mobile P2P network

IV.

PROTOCOLS

To meet the requirements of a mobile P2P network, EDSR extends DSR, as described in Section III. The general structure of EDSR follows DSR closely, to guarantee a seamless integration into the existing DSR protocol. With these extensions, EDSR offers the possibility to find mobile participants and content, with means of other criteria, than simply the IP address. Thus EDSR provides the basis for the realization of P2P applications in MANETs. To search for data EDSR offers a similar message like the Gnutella query-message, namely the SREQ (see Figure 2. ). It is the initial option for data searches, and is based on the DSR RREQ. Beside the standard IP-fields, SREQ offers seven additional fields, like an identification field, to uniquely identify the message, or a service type field to define the requested service (audio, video, taxi, cash dispenser). Each keyword field of a SREQ holds a 32 Bit hash value of the search string, which gives a search criterion within the predefined service area. At the end of each message the current node stores its own IP address. Thus the route of the reply message is predetermined. Depending on the number k of keywords added to the SREQ, and the number n of hops the network forwards the message, the size of a SREQ can vary from 16 byte to 256 byte. The hash request (HREQ) message is a special variant of the SREQ (see Figure 2. ). However HREQ uses only the file size and the fingerprint of the requested data as search criteria. This fingerprint is an 128 bit MD5 hash value [15]. With this specific attribute, HREQ is able to find alternative data sources in case of route breaks. Like SREQ, HREQ is also based on the DSR-option RREQ. The size of a HREQ depends only on the number of hops, the message is forwarded, and thus varies from 32 bytes up to 256 byte. A SREQ expects as an answer an option of the type REPLY (XREP) (see Figure 2. ). What kind of reply is expected by the EDSR, depends on the service and the datatype originally requested. EDSR distinguishes between a file

reply (FREP), a push reply (PREP) and a declaration reply (DREP). On a received SREQ or HREQ, peers answer with a FREP, which matches the metadata of the object shared by the peer. A FREP implies that the requested data is a file, and therefore includes all necessary information about that shared file. With this information, the requesting peer can initialize a transmission of the file, with the help of MPP. As in the case of search requests, the structure of a FREP is based on the structure of a ROUTE REPLY (RREP) of DSR. Additionally a FREP holds the fields file size, the TCP port offered to reach the providing peer, the fingerprint of the file, a bitwise sum of all keywords as a match code of the request and the response and the file name. FREP offers also two additional flags. The L-Flag states whether the last hop is out of the EDSR network, to enable interaction with other networks. The U-Flag specifies whether the providing peer also allows uploads. The size of a FREP can vary from 40 byte to 256 byte. The DREP option is the answer of a peer upon receiving a SREQ or a HREQ (see Figure 2. ). DREP is a general option of EDSR and offers application developers the possibility to implement protocols on top of MPP to satisfy the requirements of their specific application. DREP therefore does not transmit specific information about the offered service, but it holds information about the profile of the service. MPP can thus transmit the profile, which holds all necessary information to establish a communication channel between two peers. DREP is a special mode of FREP and does not differ in its field or bit structure from FREP. MPP utilizes HTTP/1.1 [14] for data transfers between peers. The implementation of the required HTTP clients and HTTP servers must be RFC compliant. Additionally MPP specifies the behavior pattern of servers and clients as far as it is not covered by HTTP, e.g. the case of connection breaks. Since an HTTP-request requires the absolute path of a requested file, but EDSR only transmits the filename to save bandwidth, MPP specifies a certain directory structure as illustrated in Figure 3. . This structure is only important during file transfers. A temporary directory structure contains the data, which is initialized by request messages of the MPCP protocol (we explain details of the MPCP further down). Every service has its own directory, and the hash value of the service gives the name of the directory. Within this directory, MPP assigns every file a name, consisting of the hash value and the file size of the shared file. If a service offers the possibility to receive data, MPP has to create a separate upload directory. MPP has to announce user defined services in the directory Profiles. As connection breaks are probable in MANETs, especially during long uploads, MPP employs the content range header of HTTP. Thus it is possible to continue the transfer from the last received byte on. Further on MPP uses the content range header to transfer a file in several parts and from several sources to stabilize and speed up the transfer.

Document Root





-



-



-



-



-



Upload Profiles

Figure 3. Directory structure of a MPP server offering two services

To enable uploads of files, MPP implements the HTTP PUT request method. PUT is compliant to the HTTP RFC, but not mandatory for HTTP servers. In MPP PUT is mandatory, which any application has to implement to guarantee full upload functionality. As illustrated in Figure 1. and Figure 2. , MPCP as interlayer communication protocol, connects MPP and EDSR. It is a synchronous protocol to provide a communication channel between the service layer and the network layer. The necessity of MPCP results from the functions offered by a service. Besides offering data, services also have to decide whether to answer a search request positively or not, i.e. whether the service shares a requested file. In case of a positive answer the service has to communicate the necessary information to the EDSR, which in turn generates the appropriate FREP for the requesting peer. MPCP therefore has to fulfill the following tasks: •

Registration: As one peer possibly offers several services, every service has to register at the network layer. This enables EDSR to notify the appropriate service about the according incoming search requests. When a user removes the service, the service has to deregister at the network layer.



Search: If a service offers its user the possibility to search for data in the network, MPCP transmits the search parameters to EDSR.



Requests: MPCP transmits incoming requests to the services. MPCP also transmits the according responses to EDSR.



Responses: MPCP informs the services about incoming responses and initiates according actions at EDSR.

Our simulation specifies a network consisting of five nodes, which allows us to simulate several scenarios. Therefore we also implemented a configuration manager in SDL, which offers a central interface to each node. Thus we are able to switch a node on and off, to simulate connections breaks and node terminations. It is also possible to change the IP-address during run time, to simulate leaving and joining nodes. Additionally we can change the shared file information during run time. As a result we can show that the MPP-protocol stack is working correctly and can cope with node failures and link breaks. Simulations including also the transport and the network layer are currently implemented. The tool we use in this case is the network simulator ns-2 [29]. However with analytical considerations of several protocols we can already prove that MPP has a very good performance compared to other P2P protocols. In MANETs the occurrence of zigzag routes [9], i.e. the phenomenon, that one message crosses one link several times instead of only one time, is of great importance. Common P2P networks, like JXTA or Gnutella perform not well, as their virtual topology is set up of random links, which are not matched to the physical topology. The probability p, that one message crosses one link at least twice depends on the number of nodes in the network N, the number of connections in the physical layer nc, and the number of hops h a message is allowed to be transferred in the physical layer. A lower bound for this probability is given in (1). Due to the limited space we can only state the final result and can not provide a detailed derivation of this equation.

( N − n ( n −1) ) ⋅ h −1

p=

c

c

nc

( nc − 2 ) N

(( n

c

)

− 1) − 1 h

2

For these tasks we define several messages with their specific parameters, like confirmation messages, registration messages, request messages and response messages. Due to the limited space of this paper we omit further details. V.

RESULTS

As a proof of concept we implemented the MPP Protocol stack in the System Definition Language (SDL) [16]. Thus we can to demonstrate the basic functions of the system and can verify the integrity of the developed protocols. Additionally we use the SDL implementation as a detailed specification.

Figure 4. Probability of zigzag routes per virtual link

(1)

As illustrated in Figure 4. , in all cases, i.e. for N=100..500 and nc=4, the average probability, that a message crosses one physical link at least twice is approximately 0.15. That means, that in the case of a random establishment of the virtual connections in the P2P layer, like in Gnutella or JXTA, 15% of all exchanged messages in the P2P layer, have to be transferred at least twice about the physical links. Based on our measurements, an average Gnutella node has an average lifetime of 10 minutes. As a keep alive mechanism, each peer therefore has to broadcast one Ping message every 10 minutes. If we further on assume a network size of 300 nodes, this would thus result in 300 incoming Ping messages. From our measurements of a Gnutella network we also know, that Ping messages make up 16%, Pong messages 40%, Querymessages 22% and Query_Hit-messages also 22%. Combined with the message sizes, given in [1], the size of TCP-Headers and the probability p, we can calculate thus the background noise imposed on each node to 2.43 kbit/s. In a P2P network most shared objects are available several times from different peers. Thus we speak of objects distributed in the network with a certain replication rate. A replication rate for a certain object of 0.5 means, that 50% of all nodes share this object. A mean replication rate of 0.15 means thus, that any object is shared by one peer with the probability of 15%. For a file exchange, we assume a replication rate of 0.05. This results in 15 Query_Hit messages per Query message, if we assume the same network size of 300 nodes. Taking also the overhead of the HTTP-transmission into account, the total overhead results in 4850 bytes per file search and successful file exchange. In contrast to Gnutella or JXTA, MPP is able to match the logical P2P-network on the physical network, and thus avoids zigzag routes completely. As the messages are much smaller and no additional keep alive mechanism has to be implemented, and no TCP-Header has to be added, we can reduce the overall background noise to 0.029kbit/s. Due to the same reasons, we can also reduce the overall overhead per file search and successful exchange to 1966 bytes, taking the same assumptions as above into account. Concluding we can state, that because of its interlayer communication and its small message sizes, in a MANET scenario MPP has a much better performance, than common P2P approaches, which abstract the logical layer completely from the physical layer. VI.

In our ongoing work, we plan several verifications and enhancements of the MPP protocol stack. To verify the feasibility and outstanding performance of MPP, we are currently implementing the protocols for simulations in the ns2. Preliminary simulations with ns-2 proof the consistence of the protocol and shows that it works as described. Further, more detailed, investigations are necessary, but simulations already indicate promising results. They will give further information about the performance of the system and values describing the Quality of Service (QoS). Mobile ad-hoc networks are very vulnerable to denial of service attacks. Neither DSR nor EDSR currently provide solutions which secure the network from those attacks. Therefore the Techniques for Intrusion-Resistant Ad-Hoc Routing Algorithms (TIARA) ([28]) will be taken into account for the next version of the protocols. The implementation of TIARA allows to build an intruder-resistant network based on EDSR, IPSEC and the existence of preconfigured trusted relationships between nodes. As EDSR is fully compliant to DSR, it can easily be integrated in DSR networks. Since new options have been added to EDSR, a node running the DSR protocol will currently drop special options as the SREQ of the new protocol. Therefore workarounds are being developed to make DSR upward compatible with EDSR so that e.g. search requests are routed transparently also by DSR nodes. Using JXTA’s mobile edition with EDSR offers the best out of both worlds to enable Peer-to-Peer networking in mobile environments. Since JXTA produces a large overhead for the peer detection, the potential number of nodes in the network is reduced dramatically. Using EDSR as low-level module for peer detection will increase the performance of JXTA and save bandwidth as well as battery power. On the other hand EDSR will benefit from the platform independent framework provided by JXTA. Using JXTA also allows a simple creation of gateway functionalities at border nodes between mobile and fixed networks. It allows an Internet wide P2P-search starting from an ad hoc node. REFERENCES [1]

[2]

CONCLUSION

The MPP protocol stack provides significant fundamentals to realize P2P applications in a mobile ad-hoc network. Compared to other approaches it allows to build powerful P2P applications with minimum data overhead. Therefore MPP performs well and can provide Internet-like applications. Furthermore, by integrating routing of both networks, the system can easily deal with link failures and fast moving peers.

[3] [4]

[5] [6] [7]

J. Broch, D. Maltz, D. Johnson, Y.-C. Hu, J. Jetcheva, „A Performace Comparison of Multi-Hop Wireless Ad Hoc Network Routing Protocols“, Proc. of ACM MobiCom 1998, Dallas, USA, October 1998. P. Johansson, T. Larsson, N. Nedman, B. Mielczarek, M. Degermark, “Scenario-based Performance Analysis of Routing Protocols for Mobile Ad-hoc Networks“, Proc. of ACM MobiCom 1999, Seattle, USA, August 1999 C. E. Perkins editor, “Ad Hoc Networking”, Addison-Wesley, 2000. B. Crow, I. Widjaja, J. Kim, P. Sakai, “IEEE 802.11: Wireless Loacal Area Networks”, IEEE Communications Magazine, pp 116-126, September 1997. The Bluetooth Specification, see http://www.bluetooth.com/dev/specifications.asp Gnutella Protocol Specification, version 0.4; available at http://www.clip2.com/GnutellaProtocol04.pdf, 20.03.2002. M T. Prinkey. “An Efficient Scheme for Query Processing on Peer-toPeer networks”. Draft, Aeolus Research Inc., 2001

[8]

[9]

[10]

[11]

[12]

[13] [14]

[15] [16]

[17]

[18]

[19]

[20]

[21]

[22]

[23] [24]

[25] [26] [27]

[28]

[29]

A. Langley. “Freenet”. Appeared in “Peer-to-Peer Harnessing the Power of Disruptive Computing”. Editor: A. Oram. Publisher: O'Reilly & Associates, Incorporated. 2001. R. Schollmeier, I. Gruber, M. Finkenzeller, “Routing in Mobile Ad Hoc and Peer-to-Peer Networks. A Comparison”, In Networking 2002, International Workshop on Peer-to-Peer Computing, Pisa, Italy, May 1924, 2002. I. Gruber, H. Li, “Link Expiration Times in Mobile Ad Hoc Networks”, In Proceedings of the IEEE Workshop on Wireless Local Networks (WLN'02), Tampa, USA, November 6, 2002. D. Johnson, D. Maltz, D. “Dynamic source routing in ad hoc wireless networks”, in Mobile Computing (ed. T. Imielinski and H. Korth), Kluwer Academic Publishers, pp 153-181, The Netherlands, 1996. R. Schollmeier, G. Kunzmann. “GnuViz – Mapping the Gnutella Network to its Geographical Locations”. Special Issue on P2P networking of the PIK Journal to appear in Spring 2003. T. Klingberg, R. Manfredi. “Gnutella 0.6 RFC”. June 2002, rfcgnutella.sourceforge.net/draft.txt. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. “Hypertext Transfer Protocol – HTTP/1.1”. RFC 2616, 1999. R. Rivest. “The MD5 Message-Digest Algorithm”. RFC 1321, 1992. J. Ellsberger, H. Dieter, A. Sarma. “SDL - Formal Object-oriented Language for Communication Systems”. Prentice Hall PTR, first edition, 1997. K. Hildrum, J. Kubiatowicz, S. Rao, B. Zhao. “Distributed Object Location in a Dynamic Network”. Proceedings of the 14th ACM Symposium on Parallel Algorithms and Architectures (SPAA2002), Winnipeg, Canada. 2002. S. Ratnasamy, P. Francis, M. Handley, R. Karp. S. Shenker. “A Scalable Content-Addressable Network”. Proceedings of the ACM SIGCOMM Conference 2001. San Diego, CA. 2001. I. Stoica, R. Morris, D. Karger, M. Kaashoek,H. Balakrishnan. “ Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications”. Proceedings of the ACM SIGCOMM Conference 2001. San Diego, CA. 2001. M. Papadopouli, H. Schulzrinne. “Effects of Power Conservation, Wireless Coverage and Cooperation on Data Dissemination among Mobile Devices”. Proceedings of the ACM Symposium on Mobile Ad Hoc networking (MOBIHOC 2001). Long beach, CA. 2001. A. Klemm, C. Lindemann, O. P. Waldhorst. “A Special-Purpose Peerto-Peer File Sharing System for Mobile Ad Hoc Networks”. Proceedings of the Workshop on Mobile Ad Hoc Networking and Computing (MADNET 2003). Sophia-Antipolis, France. 2003. G. Kortuem, J. Schneider. “An Application Platform for Mobile Ad-hoc Networks”. Proceedings of the Workshop on Application Models and Programming Tools for Ubiquitous Computing (UBICOMP 2001). Atlanta, Georgia. 2001 A. Arora. “JXTA for J2METM – Extending the Reach of Wireless With JXTA Technology”. White Paper. 2002 J. Lawrence. “LEAP into Ad-Hoc Networks”. Proceedings of the Workshop on Ubiquitous Agents on Embedded, Wearable, and Mobile Devices. Bologna, Italy. 2002. M. Duigou. “JXTA v2.0 Protocols Specification”. IETF Internet Draft. 2003 C. Perkins, E. Royer, S. Das. “Ad Hoc On-Demand Distance Vector (AODV) Routing”. IETF Internet Draft. 2002. J. Jetcheva, Y. Hu, D. Maltz, D. Johnson. “ A Simple Protocol for Multicast and Broadcast in Mobile Ad Hoc Networks”. IETF Internet Draft. 2001. R. Ramanujan, S. Kudige, S. Takkella, T. Nguyen, F. Adelstein. “Intrusion-Resistant Ad-hoc Wireless Networks”. Proceedings of the MILCOM 2002. 2002. K. Fall, K. Varadhan. “The ns-2 manual”. Technical report. 2002.