Peer exchange o PEX es un protocolo de comunicaciones que aumenta el protocolo de intercambio de archivos BitTorrent . Permite que un grupo de usuarios (o pares ) que están colaborando compartan un archivo determinado para hacerlo de manera más rápida y eficiente.
En el diseño original del protocolo de intercambio de archivos BitTorrent, los pares (usuarios) en un grupo de intercambio de archivos (conocido como "enjambre") confiaban en un servidor de computadora central llamado rastreador para encontrarse y mantener el enjambre. PEX reduce en gran medida la dependencia de los pares en un rastreador al permitir que cada uno actualice directamente a otros en el enjambre sobre qué pares están actualmente en el enjambre. Al reducir la dependencia de un rastreador centralizado, PEX aumenta la velocidad, la eficiencia y la solidez del protocolo BitTorrent.
Descripción
Los usuarios que desean obtener una copia de un archivo normalmente descargan primero un archivo torrent que describe los archivos que se van a compartir, así como las URL de una o más computadoras centrales llamadas rastreadores que mantienen una lista de pares que actualmente comparten el archivo ( s) descrito en el archivo .torrent. En el diseño original de BitTorrent, los pares dependían de este rastreador central para encontrarse y mantener el enjambre. El desarrollo posterior de tablas hash distribuidas (DHT) significó que otras computadoras en el enjambre podrían mantener listas parciales de pares y reducir la carga en la computadora central de seguimiento. PEX permite a los compañeros en un enjambre intercambiar información sobre el enjambre directamente sin preguntar ( sondear ) una computadora rastreadora o un DHT. Al hacerlo, PEX aprovecha el conocimiento de los pares a los que está conectado un usuario al pedirles las direcciones de los pares a los que está conectado. Esto es más rápido y más eficiente que depender únicamente de un rastreador y reduce la carga de procesamiento en el rastreador. También mantiene a los enjambres juntos cuando el rastreador está inactivo. [1]
El intercambio de pares no se puede utilizar por sí solo para introducir un nuevo compañero a un enjambre. Para hacer el contacto inicial con un enjambre, cada par debe conectarse a un rastreador usando un archivo ".torrent", o bien usar una computadora enrutador llamada nodo de arranque para encontrar una tabla hash distribuida (DHT) que describe la lista de pares de un enjambre . Para la mayoría de los usuarios de BitTorrent, DHT y PEX comenzarán a funcionar automáticamente después de que el usuario inicie un cliente BitTorrent y abra un archivo .torrent. Una excepción notable son los "torrents privados" que no están disponibles gratuitamente; estos suelen desactivar DHT.
Convenciones de intercambio entre pares
Las extensiones de BitTorrent como PEX se implementan típicamente usando uno de los dos protocolos de extensión comunes, AZMP [2] o LTEP. [3] Ambos tipos de intercambio de pares envían mensajes que contienen un grupo de pares que se agregarán al enjambre y un grupo de pares que se eliminarán.
Se acordó entre los desarrolladores de Azureus y μTorrent que cualquier cliente que implemente cualquiera de los mecanismos anteriores intentará obedecer los siguientes límites al enviar mensajes PEX: [4]
- No debe haber más de 50 pares agregados y 50 pares eliminados enviados en cualquier mensaje PEX dado.
- Un mensaje de intercambio entre pares no debe enviarse con más frecuencia que una vez por minuto.
Algunos clientes pueden optar por hacer cumplir estos límites y desconectar las conexiones de los clientes que los ignoran. [4]
DHT
Para crear un protocolo PEX que proporcione una selección de pares distribuida uniformemente, se podría formar una pequeña tabla hash distribuida (DHT) local a un torrent. Para cada nuevo par deseado, uno buscaría una clave aleatoria (uniformemente) y usaría el nodo responsable de la clave como un nuevo par. Esto es conceptualmente simple, pero requeriría algunos gastos generales. [ cita requerida ]
Para los torrents "sin seguimiento", no está claro si PEX proporciona algún valor [ cita requerida ] ya que la línea principal DHT puede distribuir la carga según sea necesario. Cada nodo DHT que actúa como rastreador puede almacenar solo un subconjunto de los pares, pero estos son subconjuntos máximos restringidos solo por la carga del nodo DHT en lugar de la vista de un solo par. Los torrents privados comúnmente desactivan el DHT, y para este caso, PEX podría ser útil siempre que el par obtenga suficientes pares del rastreador.
Versiones
Hay tres implementaciones PEX incompatibles (haciendo "redes" distintas en enjambre) [ cita requerida ]
- Vuze - introducido en Azureus
- BitComet - propietario - introducido en BitComet, desde la versión 1.19 es compatible con BEP11, [5] compatible con MainLine [6]
- MainLine - introducido en μTorrent
Clientes que apoyan el intercambio entre pares
La mayoría de los clientes de BitTorrent usan PEX para reunir pares además de rastreadores y DHT. Con la versión 3.0.5.0 de Vuze, todos los principales clientes de BitTorrent ahora tienen intercambio de pares compatible.
Cada uno de estos clientes implementa alguna versión de intercambio entre pares:
- Ares Galaxy [ cita requerida ]
- Soporte para aria2 , μTorrent PEX [7]
- Vuze , anteriormente Azureus, y clientes basados en él (Vuze PEX solo es compatible con el cliente Transmission. PEX con otros clientes se ha implementado en Vuze y en Azureus desde 3.0.4.3 en adelante) [8]
- BitComet admite PEX utilizando un protocolo propietario en sus versiones anteriores. [9] A partir de la v.1.19, también agregó soporte para la implementación μTorrent / Mainline de PEX, basada en el Protocolo de extensión. [10]
- Bitflu [11]
- BitTorrent [12]
- KTorrent ha implementado soporte completo para μTorrent PEX a partir de 2.1 RC1 [13]
- libtorrent y clientes basados en él ( Deluge , [14] qBittorrent , [15] MooPolice [16] ) compatible con μTorrent
- Tixati
- μTorrent [17]
- Opera 9.5, compatibilidad con μTorrent PEX [18]
- qBittorrent , soporte μTorrent PEX [19]
- rTorrent [20]
- Transmisión (compatible con las implementaciones μTorrent y Vuze) [21]
- XTorrent, que se basa en el código fuente de Transmission, es igualmente compatible con las implementaciones de Vuze y μTorrent a partir de la versión 1.0 (v40) [22]
Referencias
- ^ http://wiki.vuze.com/w/Peer_Exchange
- ^ "Protocolo de mensajería Azureus - VuzeWiki" . wiki.vuze.com . Consultado el 20 de noviembre de 2019 .
- ^ "extension_protocol.rst" . www.rasterbar.com . Consultado el 20 de noviembre de 2019 .
- ^ a b "BitTorrentPeerExchangeConventions - Theory.org Wiki" . wiki.theory.org . Consultado el 20 de noviembre de 2019 .
- ^
, The 8472. @infinite-source.de>"bep_0011.rst_post" . www.bittorrent.org . Consultado el 23 de mayo de 2021 . - ^ "Bitcomet - Registro de cambios" .
- ^ "Copia archivada" . Archivado desde el original el 2 de abril de 2015 . Consultado el 29 de marzo de 2015 .CS1 maint: copia archivada como título ( enlace )
- ^ "utorrent PEX en Vuze" . Sitio web de Vuze Wiki . Consultado el 15 de agosto de 2010 .
- ^ "PEX en BitComet" . Sitio web de BitComet Wiki . Consultado el 23 de febrero de 2010 .
- ^ "Notas de la versión de BitComet" . Sitio web oficial de BitComet . Consultado el 23 de febrero de 2010 .
- ^ "Ejemplo de configuración de Bitflu" . Consultado el 30 de marzo de 2007 .
- ^ Manual de usuario de BitTorrent - Apéndice A: La interfaz de BitTorrent - Varios - Propiedades de Torrent - General - Otras configuraciones - Intercambio de pares Archivado 2014-07-06 en Wayback Machine
- ^ "¿Qué hay de nuevo en 2.1?" . Sitio web oficial de KTorrent. Archivado desde el original el 2 de abril de 2006 . Consultado el 30 de marzo de 2007 .
- ^ "Cambios de Diluvio 0.5.1 Beta 1" . Archivado desde el original el 25 de diciembre de 2008 . Consultado el 11 de septiembre de 2007 .
- ^ "Sitio web oficial de qBittorrent" . Consultado el 14 de mayo de 2007 .
- ^ "Sitio web oficial de MooPolice" . Consultado el 30 de marzo de 2007 .
- ^ "Cambios en μTorrent 1.4.1 beta y 1.4.2 beta" . Archivado desde el original el 25 de noviembre de 2006 . Consultado el 11 de septiembre de 2007 .
- ^ "Soporte Opera 9.5 BitTorrent" . Consultado el 4 de septiembre de 2007 .
- ^ "Detalles del paquete qBittorrent" . Paquetes Debian . Consultado el 15 de abril de 2011 .
Intercambio de pares compatible con μTorrent (PeX)
- ^ "LibTorrent 0.11.8 y rTorrent 0.7.8 Registro de cambios" . Archivado desde el original el 3 de noviembre de 2007 . Consultado el 11 de septiembre de 2007 .
- ^ "NOTICIAS (rev. 1579)" . Transmisión SVN. Archivado desde el original el 24 de agosto de 2007 . Consultado el 30 de marzo de 2007 .
- ^ Xtorrent P2P (para Mac OS X)
enlaces externos
- Descripción en la wiki oficial de Azureus