Como hace un nodo de una red P2P para descubrir nuevos nodos sin usar un server?

Iniciado por harry_the_blogger, 5 Septiembre 2014, 03:39 AM

0 Miembros y 1 Visitante están viendo este tema.

harry_the_blogger

Hola, sé que ya pregunté antes, pero esta vez lo hago por una pregunta más especifica: ¿Como hace un peer (nodo) de una red P2P para descubrir otros nodos en la red?? (Sin usar un servidor central que asigne nodos de bootstrap).

Para que no digan que yo no investigo, estuve indagando con ayuda del buscador de la gran G, y basicamente me dice que necesito al menos un servidor que sea capaz de ofrecer informacion basica de la red hacia un nodo que apenas esta tomando contacto con la red.

¿Será que habrá alguna forma de lograr enganchar a la red P2P sin usar servidores centrales? Alguien puede decirme algun programa (preferiblemente open source), que sea capaz de hacer lo que deseo?

Por favor, si pueden explicarmelo estar{ia muy agradecido. Estoy desarrollando una red P2P como proyecto de hobby. Podría usarlo en la Universidad si me lo aceptan.
Vista mi blog es enriquemesa.blogspot.com

engel lex

es muy difícil hacer esto, ya que tienes que ir a una GRAN pregunta...

si una pc instala el programa, como sabe quien más tiene el programa?

o puedes verlo de esta manera... si vas a una gran ciudad donde no conoces a nadie y nadie habla tu idioma, como sabes donde conseguir a una persona amable que hable tu idioma?

aunque si es para la universidad (intranet) hay solucion a este problema...

te recomiendo que sigas haciéndote preguntas y buscando casos de aplicación tal vez logres ver algo que yo no :P pero te puedo responder a lo que preguntes al respecto (no con links de codigo listo, pero si con respuestas con referente a lo que es el protocolo tcp/ip y programacion
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.


engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ivancea96

Una idea sería pedir una IP (sin pedir una IP, y sin ningún tipo de servidor lo veo casi imposible), y que ese cliente al que te conectas te pase las IP de los otros clientes de su red.

harry_the_blogger

Gracias para todos, por su ayuda.

Bueno, al parecer tendré que usar al menos un servidor central... Ya me imaginaba que sería dificil, pero no hay otra opcion que seguir trabajando en el proyecto.

¿Si después de un tiempo tengo otra pregunta, me imagino que podré volver, verdad? XD.
Vista mi blog es enriquemesa.blogspot.com

engel lex

creo que podrías seguir usando el otro hilo...

por cierto, si lo vas a usar en intranet, puedes hacerlo sin el servidor y usar multicast o broadcast
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

kub0x

Hace meses que investigue acerca de ello y di con una posible solución, lo malo que dejé de investigar y me metí con AVs y anti-rootkits. Existen varios tipos de redes p2p: la centralizada y descentralizada. Como bien sabras la centralizada depende de un servidor o servidores centrales cuya tarea es poner en contacto a los nodos o peers de la misma red entre ellos mismos. Al solicitar un archivo, el servidor central devuelve una respuesta con los nodos disponibles para el intercambio.

Por otra parte, la descentralizada carece de una centralidad por lo que se utilizan varias técnicas: hardcoding de IPs de los peers, algoritmos de generación de DNS para descargar la list de los nodes y al momento cambiar a otro nombre de dominio, apoderarse de servidores para almacenar las node list. Según lo que estés desarrollando te valdrá una u otra, si es un cliente p2p no malicioso te da igual cual usar, pero si es malware, no te vale con dejar rastro hardcoded ni algoritmos engorrosos facilmente reversibles... aunque con una buena programación + virtualización del code...

Ten en cuenta que la TakeDown, que es el proceso que define la desmantelación de la red p2p, es siempre efectiva si se llega a entender el proceso de bootstraping empleado, ya que si no alcanzas los nodos vecinos no podras realizar un intercambio efectivo. A eso añadirle que también pueden tumbar los nodes que hacen de commanders, aquellos que mandan las ordenes al resto de peers (relación pull-push), todo esto destripando y entendiendo el protocolo de comunicación empleado, así que una contramedida muy buena sería la criptografía para anular el análisis de tráfico de red, y desviarlo al análisis del software.

Hasta ahora solo hay una botnet p2p que ha resistido en pie durante 4 años, aunque su volumen de infecciones no es tan alarmante, los analistas exponen que el proceso empleado en el bootstrap se realiza mediante la red Kad (eMule), donde están almacenadas las node list, cifradas. Nadie va a tumbar la red kad, y si a esto le añades un buen proceso para localizar dichas node-list, gualá, grano en el culo que te llevas :D

Saludos!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate