3 research outputs found

    NAT Traversal und verlässliche Datenverteilung in geschichteten Peer-to-Peer Systemen

    Get PDF
    Peer-to-Peer basierte Systeme haben in den letzten Jahren insbesondere im Bereich des Dateiaustasuches zunehmend an Verbreitung gewonnen. Peer-to-Peer Systeme sind dezentrale Netzwerke, in denen jeder Teilnehmer bzw. jeder Peer gleichberechtigt ist. Jeder Peer kann Dienste in Anspruch nehmen und stellt gelichzeitig anderen Teilnehmern Dienste zur Verfügung. Im Rahmen des Peers@play Projektes wird untersucht, ob auch komplexere Anwendungen, wie beispielsweise virtuelle Welten, auf Basis von Peer-to-Peer Systemen entwickelt werden können. In dieser Arbeit werden verschiedene Ansätze vorgestellt, die für die Entwicklung einer Peer-to-Peer-basierten virtuellen Welt verwendet werden können. Die vorliegende Arbeit betrachtet hierbei drei Aspekte aus unterschiedlichen Forschungsgebieten. Der erste Aspekt, der im Rahmen dieser Arbeit betrachtet wird, betrifft die Kommunikation zwischen Peers. Diese Kommunikation wird durch die Verbreitung von Network Address Translation (NAT) Routern erschwert. NAT Router reduzieren die Konnektivität der Rechner, die sich hinter den NAT Routern befinden. Die Herausforderung besteht darin, den Nachrichtenaustausch zwischen Peers, die sich hinter NAT Routern befinden, zu gewährleisten. Verfahren, die dies ermöglichen, werden als NAT Traversal Verfahren bezeichnet. In dieser Arbeit wird ein neues NAT Traversal Verfahren für das Transportprotokoll TCP vorgestellt. Da die Erfolgswahrscheinlichkeit eines NAT Traversal Verfahrens stark von den verwendeten NAT Routern abhängig ist, wird in dieser Arbeit zusätzlich ein Protokoll vorgestellt, das es ermöglicht das NAT Traversal Verfahren auszuwählen, das in einer bestimmten Situation die höchste Erfolgswahrscheinlichkeit bietet. Eine weitere Herausforderung betrifft die Umsetzung und konkrete Entwicklung einer Peer-to-Peer-basierten Anwendung. Hier existiert oft eine Vielzahl unterschiedlicher Ansätze für unterschiedliche Problemstellungen. Dabei ist es nicht immer im Vorfeld ersichtlich, welche Kombination von diesen Ansätzen die Beste in Bezug auf Performanz oder Stabilität ist. Um dies zu evaluieren, werden häufig Ansätze zuerst für existierende Simulationsumgebungen implementiert und anschließend für die eigentliche Anwendung. Im zweiten Teil dieser Arbeit wird eine geschichtete Softwarearchitektur vorgestellt, die eine Peer-to-Peer-basierte Anwendung in Schichten und Komponenten unterteilt. Hierdurch können verschiedene Ansätze einfach ausgetauscht werden. Zusätzlich ermöglicht es die Architektur denselben Quelltext für die eigentliche Anwendung als auch für Simulationen zu verwenden. Der dritte Aspekt dieser Arbeit betrifft die Datenspeicherung. In einem Server-basierten System wird der Zustand einer virtuellen Welt auf einem zentralen Server gespeichert. In einem Peer-to-Peer System hingegen muss der Zustand der virtuellen Welt auf den Peers des Peer-to-Peer Netzwerks gespeichert werden. Hierbei müssen eine Reihe von Anforderungen bezüglich der Verlässlichkeit und Sicherheit der gespeicherten Daten erfüllt werden. Zusätzlich müssen Daten effizient abgefragt werden können. Daher werden im letzten Teil dieser Arbeit ein Peer-to-Peer Netzwerk sowie ein Replikationsverfahren vorgestellt, die die Grundlage für einen sicheren und verlässlichen Peer-to-Peer-basierten Datenspeicher bilden

    Addressing Smartphones Located Behind Firewalls

    Get PDF
    Nutitelefonid on tänapäeval kogumas järjest enam populaarsust, kuna nende tehniliste parameetrite arengu tõttu on nad hakanud asendama süle- ja lauaarvuteid. Traditsioonilised nutitelefonide rakendused enamasti ainult tarbivad internetis leiduvat informatsiooni. Kuna aga tarkade seadmete arvutusvõimsus on juba võrreldav kodukasutaja sülearvutitega, saab neid kasutada ka hoopis serveritena. See loob omakorda aga eeltingimused uut tüüpi rakenduste arenguks. Paraku on tõsine probleem nii nutitelefonide kui ka teiste seadmete adresseerimisega üle interneti, mis asuvad tavalistes kohtvõrkudes nagu näiteks kodudes. Antud probleem on enamasti tingitud tõsiasjast, et kõikide võrgus leiduvate seadmete identifitseerimiseks ei jätku unikaalseid aadresse. Seetõttu on kasutusele võetud võrguaadresside tõlkimine (network address translation), mis aga omakorda raskendab suvaliste seadmete adresseerimist. Antud töös on välja pakutud üks võimalikest lahendustest, kuidas luua ühendus nutitelefonidega, mis asuvad võrguaadresse tõlkivate ruuterite taga. Selleks on kasutatud nutitelefonidele teatiste saatmise võimalust ning manuaalselt internetiprotokolli (IP) pakettide koostamist, et tekitada ajutised tunnelid ruuterites. Tarkvara, mis selle töö raames kirjutati, testiti olukorras, kus mõnda teenust pakkuv nutitelefon oli võrguaadresse tõlkiva ruuteri taga. Ühenduse loomine oli edukas, kuid antud lahendus nõuab mõningate eeltingumuste täitmist. Näiteks peab nutitelefonis olema võimalik jooksutada koodi administraatori õigustes, ruuterid peavad võrguaadresside tõlkimisel kasutama kasvavaid pordinumbreid ning võrk ei tohi olla liialt koormatud. Kuna valminud lahendus on alles esmane prototüüp, saab seda tulevikus edasi arendada, et see oleks kasutatav ka reaalsetes rakendustes. Töös on välja toodud soovitused lisada ruuterite ja tulemüüride omaduste avastamise funktsionaalsus ning muude tunnelite tekitamise meetodeid, mis töötaksid ka teistsuguste omadustega võrkude ja seadmete korral.In recent years, smartphones have become considerably popular. They are inseparable companions for their owners while offering both entertainment and assistance in daily routines. Such popularity has different reasons - with the development of technologies like touchscreens and microprocessors, smartphones are becoming more and more powerful in terms of computational power. This sets preconditions for the development of rather sophisticated software as well. Today it is already possible to play 3D games or record high-definition videos with mobiles. Moreover, smartphones and tablets are replacing laptops and desktops since they offer almost the same functionality and user experience while fitting into pockets and weighing only couple of hundred grams. Most of the applications currently available for smartphones usually consume different kind of resources from the Internet, thus acting as clients. But given the fact that handheld devices have already roughly the same computational power as low-end laptops and netbooks, it is possible to offer services from the smartphones as well which could lead to new types of mobile applications and use cases. Unfortunately, it is not trivial to access smartphones or any other host from the Internet due to widespread usage of some networking processes, for example, network address translation (NAT). To overcome such difficulties problems, an application suite is proposed in this thesis, which helps smartphones to become accessible service provides not only within local network but also across the Internet by mitigating some common addressing problems. Proposed solution was implemented and tested in scenarios where the smartphone whose services were accessed, was located behind a router which performed network address translation. Even though the connection establishment was successful, some limitations were identified, which included executing code with root privileges in the smartphone, incremental NAT mapping by the routers and relatively idle local network of both connecting peers. As the current implementation is only an initial prototype, it is not yet mature enough to be used in real applications. Nonetheless, given solution could be improved in different ways, e.g. adding more NAT hole punching techniques which have different prerequisites making it more stable in other network environments. Also the functionality to discover the network and NAT properties could be added

    Cheating Prevention in Peer-to-Peer-based Massively Multiuser Virtual Environments

    Get PDF
    Massively multiuser virtual environments (MMVEs) have become an increasingly popular Internet application in recent years. Until now, they are all based on client/server technology. Due to its inherent lack of scalability, realizing MMVEs based on peer-to-peer technology has received a lot of interest. From the perspective of the operator, using peer-to-peer technology raises additional challenges: the lack of trust in peers and their unreliability. The simulation of the virtual environment is governed by certain rules specified by the operator. These rules state what actions can be taken by users in the virtual environment and how the state of the environment changes based on these actions. Since MMVEs are very often competitive environments, some people will cheat and try to break the rules to get an unfair advantage over others. Using a central server performing the simulation of the virtual environment, the operator can ensure only allowed actions can be performed and the state of the environment evolves according to the rules. In a peer-to-peer setting, the operator has no control over the peers so they might not behave as implemented by the operator. Furthermore, a central server is inherently more reliable than a peer which could fail at any time so data might be lost. This thesis presents the design of a storage performing a distributed simulation of a virtual environment. It uses a deterministic event-based simulation to calculate the state of the virtual environment only based on the actions of its users. There are multiple replicated simulations using a voting mechanism to overcome the influence of malicious peers trying to tamper with the state of the environment as long as the number of malicious peers does not reach a critical threshold. Replication of data also ensures data is not lost when peers fail. The storage is based on a peer-to-peer overlay allowing peers to exchange messages to store and retrieve data. It creates a Delaunay graph structure matching the way the data in the virtual environment is distributed among the peers. A self-stabilizing algorithm keeps the structure intact as peers join and leave the network. Additional routing tables allow peers to retrieve stored replicas independently on short, disjoint paths reducing the influence of malicious peers on the retrieval of data. A redundant filling algorithm prevents malicious peers from tampering with these routing tables to get more messages routed their way
    corecore