una redes pura nodo internet distribuido descentralizado descentralizadas descentralizada comunicacion centralizado centralizadas centralizada caracteristicas p2p

p2p - pura - redes centralizadas caracteristicas



¿Cómo se crea una conexión de igual a igual sin un reenvío de puertos o un servidor centralizado? (2)

Recuerdo haber leído un artículo sobre una forma propuesta para hacer esto. Si recuerdo correctamente, los investigadores crearon una conexión con un cliente en otra red sin reenvío de puertos enviándose paquetes HTTP entre sí (Alice simula que Bob es un servidor web HTTP, mientras que Bob pretende que Alice es un servidor web).

No estoy seguro de si eso tiene sentido, pero ¿alguien sabe dónde puedo encontrar el artículo o alguien tiene alguna otra idea de cómo conectar a dos clientes sin un servidor central o un reenvío de puertos?

¿Es incluso posible?

Edición: sabría las direcciones IP de ambas computadoras y el puerto en el que escucha el programa.


Como se respondió, una conexión de igual a igual requiere el establecimiento de una conexión entre dos computadoras residenciales (presumiblemente), lo que requerirá perforaciones a través de sus dos firewalls. Para ver un ejemplo concreto de perforación de orificios, vea pwnat: "La única herramienta para perforar orificios a través de firewalls / NAT sin un tercero" . El proceso, en pocas palabras, es el siguiente:

  1. El "servidor" (quien no conoce la dirección IP del cliente, pero el cliente conoce la del servidor) hace sonar un paquete de ICMP Echo Request muy específico a 1.2.3.4 cada 30 segundos. El NAT, durante la traducción, toma nota de este paquete en caso de que reciba una respuesta.
  2. El cliente envía un paquete de ICMP Time Exceeded al servidor, que es un tipo de paquete que generalmente contiene el paquete que no se entregó. El cliente, sabiendo de antemano el paquete exacto que el servidor ha estado enviando a 1.2.3.4 , incrusta todo el paquete en el campo de Datos.
  3. El NAT reconoce el paquete de solicitud de eco y transmite felizmente todo el paquete de tiempo excedido, la IP de origen y todo, al usuario correcto, es decir, al servidor. Voila, ahora el servidor conoce la IP y el número de puerto del cliente.
  4. Ahora que el servidor conoce la dirección, comienza a enviar continuamente paquetes UDP al cliente, a pesar del hecho de que el NAT del cliente no los esperaba y, por lo tanto, los ignorará a todos.
  5. El cliente comienza a enviar paquetes UDP al servidor, que el NAT del servidor reconocerá como una respuesta a los paquetes del servidor y los enrutará de manera adecuada.
  6. Ahora que el cliente está enviando paquetes UDP al servidor, la secuencia de paquetes UDP del servidor comienza a ser enrutada correctamente por la NAT del cliente.

Y, en 6 sencillos pasos, ha establecido una conexión UDP entre un cliente y un servidor que penetra en dos firewalls residenciales. ¡Toma eso, ISP!


Es posible. Veo al menos 2 partes de su pregunta. (No va a ser un paquete HTTP. Es mucho más complejo que eso.)

En primer lugar , creo que podría estar hablando de un concepto llamado red P2P descentralizada. La idea principal detrás de una red descentralizada de igual a igual es el hecho de que los nodos unidos en dicha red no requerirán un servidor central o grupo de servidores.

Como ya sabrá, la mayoría de las redes centralizadas de igual a igual requieren un sistema centralizado para intercambiar y mantener la interconectividad entre los nodos. El concepto básico es tal: un nuevo nodo se conectará a uno de los servidores principales para recuperar información sobre otros nodos en la red para mantener su conectividad y disponibilidad. El sistema central se mantiene a través de servidores que sincronizan constantemente el estado de la red, la información relevante y la coordinación central entre ellos.

La red descentralizada, por otro lado, no tiene ninguna estructura o núcleo predeterminado. Este modelo de igual a igual también se denomina redes P2P no estructuradas. Cualquier nodo nuevo copiará o heredará los enlaces originales del nodo "padre" y formará su propia lista a lo largo del tiempo. Existen varias categorías de descentralización de tales redes no estructuradas.

Curiosamente, la ausencia de un sistema central de comando y control hace que sea la solución preferida para las redes de robots modernas. Un gran ejemplo podría ser Storm botnet, que emplea el denominado Monitor P2P Pasivo (PPM). PPM pudo localizar los hosts infectados y crear una lista de pares independientemente de si los hosts infectados están o no detrás de un firewall o NAT. El artículo de Wikipedia Storm botnet es una lectura interesante. También hay un gran estudio colaborativo llamado Enumeración de nodos completa en una red de punto a punto , que proporciona un excelente análisis conceptual y técnicas empleadas por la red de redes de tormenta Storm.

En segundo lugar , podría estar hablando de perforaciones UDP. Esta es una técnica o algoritmo utilizado para mantener la conectividad entre 2 hosts detrás del enrutador / puerta de enlace NATed utilizando el host de tercer comentario por medio de un tercer servidor de encuentro.

Hay un gran artículo de Bryan Ford, Pyda Srisuresh y Dan Kegel llamado Comunicación de igual a igual a través de los traductores de direcciones de red .