Kademlia. Kad. Como Funciona !, Explicaciones y comentarios

I – Introducción : P2P.
Abreviatura de Peer to Peer (o también : Pair to Pair, Person to Person, Point to Point…) Peer => viene de la mala pronunciación y de la déformación del francés « Pair » que inicialmente venía del adjetivo latino « par » = igual, similar.
Este anglicismo describe un tipo de arquitectura de red de conexión directa entre dos o varios ordenadores, donde cada uno desempeña un papel « cliente » y « servidor » (red de igual a igual). Es lo contrario de una arquitectura centralizada.
En las versiones pasadas de la mula no se lograba este objetivo. Un servidor central de eMule/eDonkey era necesario para establecer una conexión entre los ordenadores de la red. Sólo la transmisión de los datos se hacía a continuación directamente entre dos clientes. Esta arquitectura quedaba más centralizada que otra cosa.

II – Kad = Kademlia
El objetivo de Kad es llegar a esta arquitectura de red de conexión directa en la cual cada PC es a la vez « cliente » y « servidor ». Para esto, cada PC se transforma en un « nodo » (« node ») de la red y comunica con sus « vecinos » para tener acceso a todas las informaciones de la red.
Para su funcionamiento, Kad necesita :
• Aprender la topología de la red sobre la cual se conecta el cliente (quién utiliza ya Kad ?),
• Buscar la información sobre todos los nodos (quién tiene el fichero que quiero ?),
• Recibir una respuesta de un nodo que responde a los criterios (por fín encontré una fuente).
La realidad es un poco más compleja. Si quieren más detalles, bastará con pedírmelos.

III – Archivos utilizados por Kad
a… Los contactos establecidos por su nodo Kad se conservan en el fichero nodes.dat Este fichero evoluciona regularmente cuando Kad efectúa nuevas búsquedas, integra los nuevos nodos y elimina de los nodos inactivos (PC desconectados de la red, IP cambiados etc.).
Cuidado … En las versiones actuales, mientras funciona Kad, este fichero se actualiza en la memoria del PC. Solo se actualiza en el disco cuando se cierra Kad. Es muy importante entonces cerrar correctamente Kad ; el fichero no está actualizado si se traba Windows.

El fichero nodes.dat tiene así las identificaciones de unos nodos activos. Si deja Kad de actualizarlo (largas desconexiones etc.), los nodos guardados se desactivan poco a poco y el fichero se vuelve inútil.
b… Kad utiliza también dos tablas de índices para las identificaciones de los nodos contactados y los archivos disponibles en dichos nodos. Estas tablas se gestionan en la memoria y solo se guardan en disco al pararse correctamente la mula en dos archivos : s_index.dat y k_index.dat.
El archivo known.met recibe los « hashID » (códigos de identificación) de los archivos compartidos.

IV – Los puertos utilizados por Kad
a… Para sus transacciones, la mula utiliza un puerto TCP y un puerto UDP. El puerto TCP sirve para las conexiones de otros clientes y al intercambio de fuentes entre clientes. Es la prueba sobre este puerto que permite la atribución de ID. Por el puerto UDP pasan otras transacciones como la gestión de las colas de espera, los controles de “ ping " y las búsquedas de fuentes. Los puertos generados automaticamente al iniciarse la mula (puertos por defecto) deben controlarse y generalmente cambiarse.
b… El puerto suplementario
En su descriptivo del fichero -> Preferences.ini, el célebre Monk del « board » oficial, nos informa que eMule utiliza otro puerto para las comunicaciones con los servidores de la lista : « ServerUDPPort ».. En las versiones actuales, este puerto no aparece en "Preferencias" – > "Conexión" y por defecto, eMule le asigna un valor aleatorio. Por no poderse transitar por este puerto, sólo la comunicación con el servidor de conexión podrá funcionar ; las comunicaciones con los otros servidores de la lista no podrán establecerse. El desconocimiento del número destinado a este puerto puede impedir un análisis fino y un parametrage conveniente del filtro contenido en el firewall, el enrutador o el proxy. Lea -> Low-id y otros disturbios, principales razones párafo I. b.

Cuidado, lea -> TCP / UDP /ServerUDPport… Cambiar los puertos y efectúe las modificaciones necesarias. Controlen tambien que su “ firewall “ (o su routeur) deja el paso libre a las transacciones de la mula por el puerto TCP -> prueba de conexión

V – Instalación de Kad.
Lea -> Instalar eMule detalladamente
Según el método empleado para hacer esta instalación, se tendrá o no que hacer una salvaguardia previa de los archivos más importantes (Ver -> Userash … Cryptkey.dat, Encriptación de seguridad … Créditos ) y volverlos a poner en el nuevo …emuleconfig

El núcleo de Kad está basado en la versión oficial de la mula 0.30e. La gran mayoría de la instalación corresponde pues a una instalación normal de la mula oficial.
Como particularidad, tengo que señalar la opción "Choose witch network(s) you want to use" que corresponde a la posibilidad de activar las dos redes : clásica ed2k (que pasa por un servidor central) y Kad.

Las versiones actuales de Kad son voluntariamente limitadas en sus búsquedas de nodos para no saturar el web.
De momento está aconsejado utilizar las dos redes (ed2k + Kad).
La opción existe también en "Preferencias" -> "Conexión" -> "Red". Controle que “Kad” está activado √.
Los usuarios que tienen conexiones a Internet de baja velocidad (modem 56k, ISDN 64/64 etc.) deben usar una sola red y en este caso, ed2k es preferible.

VI Lanzamiento de Kad
a… Primero, hay que arrancar eMule en la red ed2k de manera clásica, seleccionando un servidor. Basta entonces hacer « clic » ” en la opción " Kad " -> " Bootstrap " (Autoarranque) -> " a partir de los clientes conocidos " -> [Autoarranque]. eMule puede entonces arrancar con los contactos del fichero nodes.dat si contiene nodos activos o utilizar uno de los clientes Kad con ID alta encontrados en la red ed2k para entrar en la red Kad. Esta última solución puede revelarse más lenta.
b… Las otras soluciones.

  • . Para estar seguro de tener un fichero nodes.dat de inicio con nodos activos. Se puede descargar un archivo nodes.dat reciente de -> Emule-Inside , de -> Overnet 2000 o -> aquí
    El archivo telecargado debe venir en la carpeta …emuleconfig
    Se puede entonces arrancar utilizando la función "Kad" -> "Autoarranque" -> "de clientes conocidos".
  • . Sistema utilizado en los principios de la mula Kad -> Entrar en « Tráfico », hacer un doble « clic » sobre uno de los ficheros en télécargamiento, buscar un cliente que tenga una versión de Kad 0.41xxx o posterior, hacer un « clic » derecho sobre este cliente y un « clic » más en « Autoarranque » de « Kad ».
  • . Otro sistema -> También se puede intentar con la función "IP o dirección" -> "Autoarranque" -> utilizando el IP estandar 195.236.75.57 e indicando el puerto UDP 5674.

Comprobar cortafuegos : opción para comprobar el firewall en caso de estar “firewalled” (ver -> Low-id …, principales razones).

Contactos, nodos con los cuales tenemos establecido una relación (número de contactos).

a… ID Kad del contacto (nodo)
b… Type & Contacts : Tipo y Contacto : Cantidad de intentos de contacto falllados

  • . verde (0) ningún contacto intentado con este nodo ha fracasado, la relación sigue vigente que en este nodo haya fuentes buscadas por su cliente o no (y vice-versa),
  • . amarillo (0) habrá un intento de conexión para saber si este contacto está todavía presente o no, para actualizar los datos indexados (identificación, nombre de los archivos etc.)
  • . amarillo (1) ‘si’ la conexión se intentó con éxito (la actualización se puede hacer),
  • . amarillo (1) ‘no’ el contról se intentó y hubo un fracaso en el intento de conexión,
  • . rojo (2) hubo un segundo intento de conexión a este nodo y también fracasó … después de un tiempito este nodo está borrado de su lista de contactos.

c… Distance: Distancia : Distancia aproximada, expresada en bits, que separa su Kad del contacto (nodo).

VIII – Búsquedas actuales (de nodos, archivos, fuentes …)

a… Número : número asignado a la búsqueda (para uso interno del programa).
b… Clave : ID Kad del contacto (nodo)
c… Tipo de búsqueda

  • Buscando nuevos contactos (número de clientes que devuelven una lista de contactos)
  • Guardar palabra clave : indexando un archivo compartido para que pueda ser encontrado por los demás con la opción de búsqueda (clave del archivo que se está almacenando : clientes que han localizado ese archivo),
  • Guardar archivo, indexando un archivo compartido para que su node pueda ser localizado como fuente del mismo (clientes que han localizado ese archivo),
  • Buscando palabra clave para descargar.(resultados de la búsqueda),
  • Buscando fuentes para archivos que tiene en descarga. (resultados de la búsqueda).

d… El nombre del archivo al que se refiere la búsqueda.
número de clientes que devuelven una lista de contactos

IX – Si se traba Kad.
Le pongo aquí tal como lo copié en un foro español (foro de eMuleitor – Dr.Slump). Si hay faltas de ortografía o de gramática o expresiones incorrectas, no será ya mi culpa … Je..je..je…

a… Trabado a la conexión
Primero, si tu cliente se traba cuando intentas conectar a la red Kad, intenta eliminar el archivo index.dat en el directorio emule/config antes de iniciar el cliente.
Segundo, la obtención de varias IPs estables para la gente pueda volver a meterse dentro de la red si ocurre que están desconectados, o cuando es la primera vez que se inicia el cliente, tomará algún tiempo.

b… Si estás trabado en modo ‘connecting’ a la red Kad, hay tres cosas que puedes hacer para intentar conectar.
Primera, asegurarte de que tu estado en la red Kad está en ‘disconnected’. Copiar el archivo node.dat desde archivo zip al directorio emule/config. Pulsar ‘connect’.
Segunda, intentar encontrar alguien que haya ‘posteado’ una ip de ‘bootstrap’ (reencalce) y puerto. Asegúrate de que Kad está en estado ‘connecting’ y teclea el ‘bootstrap’ en la ventana de Kad y pulsa el botón de bootstrap.
Tercera, asegurarte que Kad está en estado ‘connecting’. Intenta encontrar alguien en una de tus listas de clientes que use la v40c o superior. Clic derecho en ese cliente y verás una opción de boot. Puedes entonces intentar encalzarte dentro de la red a través de ese cliente.

X – Notas adicionales :
a… Las versiones actuales de Kad no son definitivas. Sin embargo, como están basadas en la excelente versión 0.30e, la mula Kad es ya muy estable y tiene resultados de alto nivél.

b… En sus versiones actuale, Kad limita sus búsquedas de nodos. Si no fuera así las búsquedas de nuevos nodos sería permanente y ocuparía todos los recursos de de la mula.
Cuando el número de fuentes encontradas por ambas redes ed2k y Kad es suficiente, la busca de nuevas fuentes en la red Kad está suspendida para que el tráfico excedente no ateste la red. Prosigue normalmente más tarde. Actualmente, se debe encontrar unos 700 nodos.

c… Kad, como muchas versiones de la mula, no se lleva bién con ciertos softwares como el firewall « Zone Alarm » y particularmente con otros programas del P2P como, por ejemplo, Shareaza.
Los disturbios son de distintos tipos : saturación del procesador (uso al 100%), cierre automático de la mula, imposibilidad de hacer búsquedas de « links » ed2K etc. En estos casos habrá que elegir entre la mula y el otro software.
Antes de reinstalar Kad (u otra versión de la mula) hay que desinstalar totalmente la mula, incluso de la base de registros, sea manualmente (regedit), sea con un programita especializado (RegCleaner u otro) …Ejemplo : : HKEY_CLASSES_ROOTed2k se tiene que borrar.
… Y siempre guardar previamente todos los ficheros importantes de …emuleconfig …

d… Al lanzamiento, Kad controla el archivo ipfilter.dat para eliminar las redundancias , las superposiciones de rangos de IP y los rangos adyacentes. La tabla en memoria es así menos voluminosa y el ipfilter resulta más eficaz.

e… En “Compartidos” está ahora una columna de informaciones “Si/No”.

  • Si/Si quiere decir que el archivo está compartido a través de las dos redes (ed2k y Kad),
  • Si/No quiere decir que este archivo solo está compartido por una de las dos redes (generalmente por la red ed2k cuando la red Kad no tuvo tiempo de actualizarse al lanzamiento).

f… La gestión de las tablas de índices y del fichero nodes.dat se hace en la memoria del PC. Con Windows, si el PC tiene poca memoria disponible, puede ser que la mula arranque. Si a continuación requiere demasiada memoria, y como Windows no la gestiona correctamente, la mula se para o a veces, Windows se traba.
Windows XP SP2 requiere más recursos de CPU y más memoria que SP1. Cuidado.

g… Sensor de velocidad de Subida (“Upload Speed Sense" = U.S.S).
USS es una función para controlar los tiempos de "ping" de la conexión y ajustar automáticamente las subidas de eMule según este valor de "ping" ("Packet Internet Groper").
Evita la saturación de la conexión e intenta fluidificar la navegación en internet y los juegos en línea.

h… El PeerCache es una tecnología desarollada por « Joltid » que permite al ISP almacenar datos que transitan por la red. EMule puede subir datos o descargar desde el PeerCache disminuyendo así en tráfico de la red global Internet.
Los ISP que tienen un PeerCache no son muy numerosos. De momento la gestión del PeerCache requiere unos recursos poco útiles. Ciertos usuarios ven en el PeerCache una posibilidad de espionage del tráfico P2P.
 

Manual extraido de:
http://forum.emule-project.net