Una aplicación punto a punto (P2P) permite que un dispositivo funcione como cliente y como servidor dentro de la misma comunicación, como se muestra en la ilustración. En este modelo, cada cliente es un servidor y cada servidor es un cliente. Ambos pueden iniciar una comunicación y se consideran iguales en el proceso de comunicación. Sin embargo, las aplicaciones P2P requieren que cada dispositivo final proporcione una interfaz de usuario y ejecute un servicio en segundo plano. Cuando inicia una aplicación P2P específica, se cargan los servicios en segundo plano y la interfaz de usuario requeridos; a continuación, los dispositivos se pueden comunicar directamente.
Algunas aplicaciones P2P utilizan un sistema híbrido donde se descentraliza el intercambio de recursos, pero los índices que apuntan a las ubicaciones de los recursos están almacenados en un directorio centralizado. En un sistema híbrido, cada punto accede a un servidor de índice para alcanzar la ubicación de un recurso almacenado en otro punto. El servidor de índice también puede ayudar a conectar dos puntos, pero una vez conectados, la comunicación se lleva a cabo entre los dos puntos sin comunicación adicional con el servidor de índice.
Las aplicaciones P2P se pueden utilizar en redes P2P, en redes cliente/servidor y a través de Internet.