Johan Pouwelse, onderzoeker aan de TU Delft en oprichter van de p2p-client Tribler, heeft met zijn team een app ontwikkeld die het mogelijk maakt een wereldwijd netwerk van smartphones te creëren. Daarvoor is geen server vereist, waardoor het beter bestand is tegen aanvallen.
De app heeft de naam 'app-to-app communicator' en er is een bètaversie beschikbaar op GitHub en in de Play Store. Het doel van de app is het faciliteren van een decentraal netwerk dat alleen uit smartphones bestaat en geen infrastructuur nodig heeft, los van een basisstation. Een van de redenen voor de ontwikkeling van de software is de verplaatsing van internetgebruik van de pc naar de smartphone. Pouwelse vertelt aan Tweakers dat de app het mogelijk maakt om echte peer-to-peer-apps te bouwen: "Deze app legt daar de basis voor; de peer-to-peer-apps komen eraan!" Hij schrijft de implementatie van de app toe aan het werk van een van zijn studenten, Jaap Heijligers.
Een hindernis bij het opzetten van een dergelijk netwerk is het feit dat smartphones niet direct met elkaar kunnen communiceren, vanwege firewalls van isp's en CGN. Ook is het eigen ipv4-adres niet bekend bij het toestel zelf. De app lost dit probleem op door een techniek die bekendstaat als 'NAT puncturing' of 'udp hole punching'.
Dit werkt doordat, zodra de app is gestart, de eigen telefoon, oftewel peer A, een verbinding maakt met peer B. Dat is op dit moment nog een enkele bootstrap-telefoon die in handen is van Pouwelse, maar dat moeten er op den duur veel meer worden. Het adres van deze telefoon is aanwezig in de app. Het bootstrap-toestel stuurt een antwoord naar A en neemt daarin het adres van een willekeurige derde partij, peer C, mee. Ook bevat het antwoord een lijst met andere verbonden peers. Vervolgens stuurt B een verzoek naar C om een verbinding te maken met A, waardoor deze laatste op zijn beurt weer verbinding kan maken met C en op die manier een 'gat' geslagen heeft in zijn eigen NAT.
Deze methode stamt uit 2010 en is beschreven door TU Delft-onderzoeker Gertjan Halkes. De app identificeert verschillende peers aan de hand van een id, die bij de eerste start van de app wordt aangemaakt. Bij een conflict tussen ipv4-adressen maakt de app gebruik van voting om aan de hand van de meerderheid van 'stemmen' van de verschillende apps te bepalen welk adres bij welk toestel hoort. Het app-to-app-netwerk moet uiteindelijk bestand zijn tegen aanvallen, doordat er geen centrale server is die uitgeschakeld kan worden, bijvoorbeeld door een dos-aanval of door een 'killswitch' van een overheid.
Pouwelse stelt tegenover Tweakers: "Dit is een de zuiverste vorm van peer-to-peer, omdat iedereen gelijk is. Het is jammer dat wij zo weinig concurrentie hebben, dit project is een van de weinige dat zich hiermee bezighoudt." Het team van de onderzoeker heeft eerder andere functionaliteiten ontwikkeld, waaronder een app die zichzelf kan compileren en die door gebruikers via nfc en bluetooth verspreid kan worden. De app-to-app-functionaliteit werkt volgens Pouwelse goed samen met die eerdere ontwikkeling.