BitTorrent
{{Ficha de software}}
'''BitTorrent''' ye un [[Protocolu (informática)|protocolu]] diseñáu pal intercambiu d'[[Archivu (informática)|archivos]] puntu a puntu ([[peer-to-peer]]) n'[[Internet]]. Ye unu de los protocolos más comunes pa la tresferencia d'archivos grandes.

El programador [[Bram Cohen]] diseñó'l protocolu n'abril de 2001 y publicó la so primer versión el 2 de xunetu de 2001.<ref name="BC">{{cita web |url=http://finance.groups.yahoo.com/group/decentralization/message/3160 |fecha=2 de xunetu de 2001 |títulu=BitTorrent&nbsp;— a new P2P app |nome=Bram |apellíu=Cohen |editorial=Yahoo eGroups |fechaaccesu=15 d'abril de 2007}}</ref> Anguaño ye propiedá de Justin Sun, fundador de Tron Foundation, que adquirió [[BitTorrent, Inc.]] por 140 millones de dólares, el 18 de xunu de 2018. Esisten numberosos [[Veceru (informática)|veceres]] BitTorrent disponibles pa dellos [[Sistema operativu|sistemes operativos]].

En xineru de 2012, BitTorrent tenía 150 millones d'usuarios activos acordies con BitTorrent, Inc., basándose nesto, envaloraben que'l númberu total d'usuarios mensuales de BitTorrent yera mayor de 250 millones. Segun datos amosaos na so propia pagina web, los datos actuales envaloren que más de 170 millones de persones usen el so productu cada mes. El protocolu bittorrent mueve hasta'l 40% del tráficu mundial d'Internet diariamente.<ref>[https://web.archive.org/web/20120822065533/http://www.bittorrent.com/intl/es/company/about/ces_2012_150m_users BitTorrent and µTorrent Software Surpass 150 Million User Milestone]</ref> En cualquier intre de tiempu BitTorrent tien, en permediu, más usuarios activos que [[YouTube]] y [[Facebook]] xuntos (nun intre de tiempu, non en númberu total d'usuarios únicos específicamente de BitTorrent).<ref>[http://www.fastcompany.com/1714001/bittorrent-swells-to-100-million-users BitTorrent Has More Users Than Netflix and Hulu Combined--and Doubled ]</ref> Per otru llau, tres el zarru de la web [[Megaupload]], l'usu d'esti protocolu amontóse considerablemente.

== Descripción ==
El protocolu BitTorrent pue ser usáu p'amenorgar l'impautu que tien la [[distribución d'archivos]] grandes nos [[Servidor|servidores]]. En llugar de descargar l'[[Archivu (informática)|archivu]] dende un únicu servidor, el protocolu BitTorrent dexa a los usuarios xunise ente ellos nun "ensame" (''swarm'') pa descargar y xubir l'archivu de forma simultánea. El protocolu ye una alternativa al sistema basáu en servidores, que consiste en disponer de dellos [[Espeyu (Internet)|servidores espeyu]] (''mirror'') dende onde l'usuariu descarga l'archivu completu, y puede funcionar en redes con pocu [[anchu de banda]], d'esta forma, dispositivos pequeños como los [[smartphone]], son capaces de distribuyir archivos grandes o videu en ''[[streaming]]'' a munchos receptores.

Un usuariu que quier xubir un archivu, primero crea un archivu ''torrent'' y distribuyir de forma convencional ([[páxina web]], [[corréu electrónicu]], etc). Dempués fai que l'archivu tea disponible na [[Rede de computadores|rede]] al traviés d'un [[Nodo (informática)|nodo]] BitTorrent qu'actúa como grana (''seed''). Los usuarios que quieren descargar l'archivu, llogren l'archivu ''torrent'' y crean otru nodo BitTorrent qu'actúa como veceru o "sangrixuela" (''leecher''), intercambiando partes del archivu cola grana y con otros veceros.

L'archivu que ta siendo distribuyíu estremar en partes pequeñes (''pieces''). Cada vez qu'un usuariu recibe una parte nueva del archivu, puede de la mesma compartila con otros usuarios, lliberando a la grana orixinal de tener qu'unviar una copia d'esa parte a tolos usuarios que quieren l'archivu. En BitTorrent, la xera de distribuyir un archivu ye compartida por toos aquellos que deseyen tener l'archivu. Ye perfectamente posible que la grana solo unvie una copia del archivu y l'archivu seya distribuyíu a un númberu ilimitáu d'usuarios.

Cada parte del archivu ta protexida por un [[Función Hash|hash criptográficu]] conteníu dientro del archivu ''torrent''.<ref>{{cita web |url=http://www.bittorrent.org/beps/bep_0003.html |títulu=The BitTorrent Protocol Specification |autor=Bram Cohen |fecha=10 de xineru de 2008 |obra=BitTorrent.org |fechaaccesu=20 de payares de 2010}}</ref> Esto asegura que cualquier cambéu que se produza nuna parte puede ser detectada, y polo tanto evita que tanto los cambeos accidentales como les malicioses sían recibíes n'otros nodos. Si un nodo tien l'archivu ''torrent'' auténticu, puede verificar l'autenticidá del archivu completu que recibió.

Les partes típicamente nun se descarguen de forma secuencial, estes son reordenaes pol veceru BitTorrent, que comprueba les partes que tien y les que falten de recibir. Toles partes del archivu son del mesmu tamañu y son tresmitíes d'una sola vegada (por casu un archivu de 10 [[MiB|MB]] pue ser tresmitíu en diez partes de 1 MiB o en cuarenta partes de 256 [[KiB]]). Por cuenta de esto, puede detenese la descarga d'un archivu en cualquier momentu y volver# a entamar darréu ensin perder la información descargada enantes. Esto fai que BitTorrent seya especialmente útil na tresferencia d'archivos grandes. Esto tamién dexa al veceru buscar les partes disponibles pa descargar fácilmente, en llugar de tener que pausar la descarga y esperar que la siguiente parte tea disponible, lo qu'amenorga'l tiempu de descarga.

Cuando un veceru descarga l'archivu dafechu conviértese nuna grana. Esti cambéu eventual de veceros en granes determina la salú (''health'') o disponibilidad del archivu (determináu pol númberu d'usuarios que tienen l'archivu completu).

La naturaleza [[Rede distribuyida|distribuyida]] de BitTorrent conduz a que l'archivu distribúyase al traviés de munchos nodos. Cuantos más usuarios xunir al "ensame", mayor ye la [[probabilidá]] de qu'un nodo pueda descargar l'archivu completu. En rellación colos esquemes de distribución tradicionales, esto dexa al distribuidor orixinal amenorgar los costos de [[hardware]] y d'anchu de banda. Esto tamién apurre [[redundancia]] ante posible problemes del sistema, amenorga les dependencies col distribuidor orixinal<ref>[https://web.archive.org/web/http://arxiv4.library.cornell.edu/abs/1004.0395v2 Estimating Self-Sustainability in Peer-to-Peer Swarming Systems] by D. Menasche, A. Rocha, Y. de Souza y Silva, R. M. Leao, D. Towsley, A. Venkataramani</ref> y apurre fontes de descarga transitories (nun son siempres los mesmos usuarios los que comparten l'archivu), polo tanto ye más malo de rastrexar d'onde procede l'archivu polos qu'intenten bloquiar la so distribución en comparanza con un archivu agospiáu nun servidor esternu.

== BitTorrent en comparanza con otres redes P2P ==
[[Ficheru:Deluge 0.9.02.png|thumb|250px|Captura de pantalla del veceru BitTorrent [[Deluge]].]]
El métodu utilizáu por BitTorrent pa distribuyir archivos ye similar en munchos aspeutos al utilizáu pola rede [[eDonkey|eDonkey 2000]], pero xeneralmente los nodos nesta rede comparten y baxen mayores cantidaes de ficheros, amenorgando l'anchu de banda disponible pa cada tresferencia. Les tresferencies en BitTorrent son de normal bien rápides yá que tolos nodos nun grupu concentrar en tresferir un solu ficheru o una coleición de los mesmos. Amás el protocolu eDonkey2000 nun premia a aquellos usuarios que comparten un mayor anchu de banda. Sicasí, hai qu'esclariar que'l veceru más estendíu pa la rede eDonkey, l'[[emule]], sí incorpora un sistema de creitos pa compensar a los que más comparten.

Al contrariu qu'otres redes d'intercambiu, BitTorrent nun inclúi nengún mecanismu de busca d'archivos. Los usuarios de BitTorrent tendrán d'alcontrar pelos sos propios medios los archivos torrent que precisa'l protocolu. De normal, estos archivos pueden descargase dende les páxines web que publiquen grandes archivos (como les distribuciones [[GNU/Linux]]) o dende índice web de busca (como [[The Pirate Bay]]).

BitTorrent foi programáu orixinalmente en [[Python]] anque anguaño pueden atopase veceros escritos en [[Llinguaxe de programación C|C]] o en [[Llinguaxe de programación Java|Java]] por casu.

Según [[CacheLogic]],<ref>[https://web.archive.org/web/20070314110902/http://www.cachelogic.com/home/pages/news/pr290805.php CacheLogic Announces eDonkey Has Become World's Largest P2P File Trading Network, Surpassing BitTorrent]</ref> mientres l'añu 2005 BitTorrent utilizábase especialmente n'[[Asia]], ente que [[eDonkey2000]] preferir n'[[Europa]] y [[América]].

== Programes veceru ==
{{CP|Veceros BitTorrent}}
Los veceros de BitTorrent pueden atopase de dos tipos distintos:
* De múltiples descargues simultánees como [[Vuze]], [[BitComet]], [[KTorrent]], [[uTorrent|μTorrent]] o [[Transmission]].
* De descarga única (solo descarga un archivu .torrent, pero pueden tenese dellos abiertos simultáneamente), como [[BitTornado]] o'l [[Opera (navegador)|navegador Opera]].

== Estructura d'una rede ''BitTorrent'' ==
[[Ficheru:red bittorrent.jpg|thumb|250px|Funcionamientu d'una rede BitTorrent.]]
Una rede en Bittorrent ta formada por:
* '''''[[Peer-to-peer|Peers]]''''' (''puntos''): Denominar asina a tolos usuarios que tán na rede.
* '''''[[Leecher]]s''''' (''sangrixueles''): Denominar asina a tolos usuarios que tán na rede descargando l'archivu pero qu'inda nun tienen l'archivu completu. Tamién se llama despectivamente a quien descarguen archivo pero nun los comparten.
* '''''[[Seeder]]s''''' (''granes''): Son los usuarios de la rede que tienen l'archivu completu.
* '''''[[Tracker (BitTorrent)|Trackers]]''''' (''rastreadores''): Un ''tracker'' de BitTorrent ye un servidor especial que contién la información necesaria por que los ''peers'' conéctense unos con otros. Primeramente ye la única forma d'alcontrar qué usuarios contienen l'archivu que quier descargase.
* '''Ensame''': L'ensame son los usuarios polo xeneral que'l ''tracker'' encargar de buscar. El nome ye por cuenta de la semeyanza coles abeyes y el so comportamientu; nesta analoxía, el ''tracker'' ye'l setu d'abeyes, l'ensame d'abeyes son los usuarios y el miel ye'l ''torrent'' col conteníu.

Mecánica del funcionamientu de BitTorrent:
# Un usuariu baxa d'un servidor web un archivu ''.torrent'' que contién la información del ficheru que queremos descargar. Ente otra muncha información contién la direición del ''tracker'' al que nos tenemos que coneutar pa xuninos al ensame de ''peers'' (el ''.torrent'' xeneralmente ye un archivu bien pequeñu, d'unos pocos ''[[kilobyte]]s'').
# Esti archivu ''.torrent'' abrir con dalgún "programa veceru", que sabe interpretar dicha información. Esisten ensame de veceros gratuitos que pueden utilizase. Ente los más populares tán ''[[uTorrent|μtorrent]]'', ''[[Bitcomet]]'', ''[[Vuze]]'' (enantes ''Azureus''). Toos tán basaos nel protocolu ''BitTorrent'' orixinal pero dalgunos d'ellos inclúin meyores al protocolu.
# El ''tracker'' y el ''peer'' comuníquense al traviés d'una 'conexón HTTP'. El ''tracker'' informa de la llista de tolos ''peers'' y ''seeds'' que contienen partes del archivu que queremos descargar. El ''tracker'' actualizar cola información del nuevu ''peer'' qu'acaba d'ingresar.
# Una vegada que'l ''peer'' sabe ónde tien que buscar les partes necesaries, esti ''peer'' comunicar con otros por aciu 'sockets TCP' o 'UDP' y l'archivu empieza a descargase nel ordenador del usuariu. Cada parte descargada compartir automáticamente con otros ''peers''.

== Archivos .torrent y la so codificación interna ==
Los archivos .torrent contienen información avera del archivu que queremos baxar. Esta información ta codificada por aciu ''Bencoding''. La siguiente tabla amuesa los distintos tipos de datos que podemos usar pa representar la metainformación contenida nel archivu .torrent.

Strings Cadenes de Calteres <llargor de la cadena>:<cadena>
3:rede Representa la cadena “rede”

Integers Enteros i<enteru>y i3y Representa
3.

Lists Llista de tipos [strings, integers, lists, dictionaries] l<bencoded type>y l3:rede4:wifie
representa la llista de 2 cadenes: ["rede", "wifi"]

Dictionaries Son asociaciones de clave→ valor d<bencoded string><bencoded element>y d3:ana4:blas5:muyer6:hombree
representa'l diccionariu { "ana"→ "muyer", "blas"→ "home" }
d4:spaml1:a1:bee representa'l diccionariu { "spam"→ [ "a", "b" ] }

Si abrimos con un editor de testu un archivu .torrent atopamos con un diccionariu que contién les siguientes claves:
* '''info''': Un diccionariu que describe los archivos del torrent. Puede tener una o otra estructura dependiendo de si'l torrent ye pa baxar un archivu o dellos archivos con una xerarquía de direutorios.
* '''announce''': cadena que representa la URL del tracker
* '''announce-list''': (llista de cadenes opcional). Usar pa representar llistes de trackers alternativos. Ye una estensión a la especificación orixinal.
* '''creation date''': (enteru opcional) La fecha de creación del torrent en formatu de dómina UNIX.
* '''comment''': (cadena opcional) Campu llibre pal creador del torrent.
* '''created by''': (cadena opcional) Nome y versión del programa usáu pa crear l'archivu torrent.

El diccionariu info qu'acabamos de citar contién de la mesma les siguientes claves:
* '''name''': (cadena) El nome del archivu o direutoriu onde se van almacenar los archivos.
* '''piece length''': Como diximos na introducción, l'archivu que queremos compartir ye estremáu en pieces. Esti parámetru ye un enteru que representa'l númberu de bytes de cada pieza. Pieces demasiao grandes causen ineficiencia y pieces demasiáu pequeñes formen un archivu .torrent más pesáu. Anguaño aconséyase afitar el tamañu de cada pieza en 512 KB o menos p'archivos de dellos GBs.
* '''pieces''': Cadena que representa la concatenación de la llista de claves hash de cada parte del ficheru compartíu. Les claves hash son xeneraes utilizando SHA-1 con un resume de 160 bits y un tamañu máximu per parte de 2^64 bits. Esti conxuntu de claves utilízase como mecanismu p'asegurar la integridá y consistencia d'una parte, una vegada foi completada la descarga de dicha parte.
* '''private''': (opcional). Ye un enteru que puede tener valores 0 ó 1 y qu'indica si pueden buscase peers fuera de los trackers explícitamente descritos na metainformación o non.
* '''length''': (enteru) Llargor del archivu en bytes.
* '''md5sum''': (cadena opcional). Ye una cadena hexadecimal de 32 calteres correspondiente a la suma MD5 del archivu.
* '''files''': Namái va apaecer nel casu de que seya un torrent multi archivu. Ye una llista de diccionarios (unu pa cada archivu, pero con una estructura distinta a info). Cada unu d'estos diccionarios va contener de la mesma información sobre'l llargor del archivu, la suma MD5 y una ruta (path) onde tien d'allugase l'archivu na xerarquía de direutorios.

== Algoritmos: seleición de pieces y seleición de pares ==
Nesta seición van esplicase refechamente les regles según les cualos escuéyese a unu o otru usuariu pa compartir partes del archivu y qué partes son les que se tresmiten.

En primer llugar vamos describir unos cuántos términos importantes:
* '''Pieces y bloques'''. Los archivos tresmitíos usando Bittorrent estremar en pieces y éstes de la mesma estrémense en bloques. Los bloques son la unidá de tresmisión na rede, pero les pieces parcialmente recibíes nun pueden ser sirvíes por un peer hasta que tean completes, ye dicir que se tengan tolos sos bloques.
* '''Interested'''. Dizse qu'un peer A ta interesáu nel peer B (A ta nel estáu Interested) cuando'l peer B tien pieces que'l peer A nun tien. Otra manera, el peer A nun ta interesáu nel peer B cuando'l peer B solo tien un subconxuntu de les pieces del peer A.
* '''Choked'''. Dizse que'l peer A bloquia al peer B (B ta nel estáu Choked) cuando'l peer A decide nun unviar pieces al peer B. Otra manera, dizse que'l peer A desbloquia al peer B cuando'l peer A decide unviar pieces al peer B.
* '''Conxuntu de peers'''. Cada peer caltién una llista de los peers que conoz.
* '''Peers locales y remotos'''. Llámase peer llocal de la que ta executando'l veceru bittorrent y peers remotos a los pares que tán nel conxuntu de peers del peer local.
* '''Conxuntu de peers activos'''. El peer A namái puede unviar datos a un subconxuntu del so conxuntu de peers. A esti conxuntu llámase-y conxuntu de peers activos. L'algoritmu de bloquéu, que vamos ver más palantre, determina los peers que van formar parte del conxuntu de peers activos. Solamente los peers que tán desbloquiaos pol peer local y comenenciudos nél son parte del conxuntu de peers activos.
* '''Pieces más rares''' y '''conxuntu de les pieces más rares'''. Les pieces más rares son les que tienen menos númberu de copies nel conxuntu de peers. Nel casu de que la pieza menos retrucada nel conxuntu de peers tenga m copies, entós toles pieces con m copies formen el conxuntu de les pieces más rares.

=== Algoritmu de “les pieces más rares primeru” (''rarest first algorithm'') ===
Esti algoritmu define la estratexa usada pol protocolu Bittorrent pa escoyer la siguiente pieza a descargar.
Cada par caltién una llista del númberu de copies de cada pieza nel so conxuntu de pares y usa esta información pa definir el so conxuntu de les pieces más rares. Sía m el númberu de copies de la pieza más rara, entós la posición de cada pieza con m copies nel conxuntu de peers ye añadida al conxuntu de les pieces más rares. Cada peer escueye aleatoriamente la siguiente pieza pa baxar del so conxuntu de les pieces más rares.

El comportamientu d'esti algoritmu puede ser modificáu por 3 causes:
# Si un peer baxó menos de 4 pieces, ésti escueye aleatoriamente la próxima pieza pa baxar. Una vegada que se descargaron estes 4 pieces, l'algoritmu funciona de la manera descrita enantes. La razón d'esti comportamientu inicial ye dexar qu'un peer baxe les sos primeres pieces bien rápido, yá que ye importante tener delles pieces de mano a intercambiar nel Algoritmu de Bloquéu. Ello ye que una pieza escoyida aleatoriamente tien munches más copies que les pieces más rares, asina que probablemente'l tiempu de baxada va ser menor escoyéndola aleatoriamente.
# La segunda causa ye que cuando unu de los bloques d'una pieza pidióse, los otros bloques de la mesma pieza pidir cola prioridá más alta. La razón d'esti comportamientu ye completar la descarga d'una pieza completa lo antes posible, yá que namái les pieces completes pueden ser unviaes.
# La última causa ye la manera de fin de xuegu (End Game Mode). Esta manera empieza bien a la fin de la descarga, cuando'l peer pide tolos bloques qu'inda nun fueron recibíos a tolos peers del so conxuntu de peers que tienen esos bloques. Cada vez que se recibe un bloque, el peer ataya'l pidimientu pal bloque recibíu a tolos peers nel so conxuntu de peers que tienen el pidimientu activu.

=== Algoritmu de bloquéu (''choke algorithm'') ===
Esti algoritmu define la estratexa usada pol protocolu BitTorrent pa escoyer el siguiente peer col que va interactuar. Usar pa garantizar una bona rellación xubida/baxada ente los peers. Por casu los “free riders”, pares que nunca xuben, tienen de penalizase. L'algoritmu describir dende'l puntu de vista del peer local, asina que “comenenciudu” significa comenenciudu nel peer local y “bloquiáu” significa bloquiáu pol peer local. L'algoritmu funciona asina:
# A lo más 4 peers remotos pueden tar desbloquiaos y comenenciudos al empar.
# Cada 10 segundos, los peers remotos comenenciudos ordenar d'alcuerdu a la so velocidá de baxada escontra'l peer local y los 3 más rápidos son desbloquiaos.
# Cada 30 segundos, un peer comenenciudu adicional desblóquiase aleatoriamente. Esto llámase Desbloquéu Optimista” (Optimistic Unchoke), que tien dos oxetivos: dexa evaluar la capacidá de baxada de nuevos peers nel conxuntu de peers y tamién fai posible que los peers que nun tienen nenguna pieza que compartir puedan llograr la so primer pieza.

== Llimitaciones y ataques ==
Considérase que lo cabal ye xubir la mesma cantidá de datos que se baxó, ye dicir que la tasa de descarga xubida seya de 1, pero esti comportamientu nun ye común nin ta garantizáu en BitTorrent. De normal los usuarios desconéctense rápido una vegada que llograron la copia completa del so archivu. Esto denominar ''leeching''.

Esta forma d'actuar provoca qu'anque tol conteníu nuevo compartir de primeres bien rápido, col pasu de los díes el torrent caduque porque nun queden granes, yá que BitTorrent namái ufierta incentivos a los ''leechers'' pero non a los ''seeds'' que nun llogren nenguna ventaya por permanecer xubiendo a la rede.

Pa evitar esto apaecieron los denominaos trackers privaos. De normal pa usar un tracker priváu hai qu'identificase primeramente. Pa cada usuariu rexistráu guarden les estadístiques de tráficu y utilicen un sistema de porcentaxes que dexa saber si l'usuariu comparte o non los datos que descargara o tea descargando. Munchos d'estos trackers suelen espulsar a los usuarios que tienen un porcentaxe baxu, yá que al nun compartir nun collaboren cola rede.

Otru puntu flacu ye que'l tracker ye un pescuezu de botella yá que consume'l 1 per mil del tráficu total de la rede. Teniendo en cuenta la cantidá de datos que circulen nuna rede d'esti tipu, ye un porcentaxe a tener en cuenta. Amás, la cayida del tracker implica que nuevos peers non puedan conectase y que aquellos que yá tán coneutaos nun puedan afayar otros. Conceptualmente fórmense pequeñes islles desorganizadas, onde en realidá toes los nodos tán coneutaos ente sigo al traviés de vecinos pero nun hai comunicación ente eses islles (la comunicación ente elles xestionar el tracker) y por tanto inflúi bien negativamente na descarga.

Una debilidá más de BitTorrent ye que ye pocu eficiente en tresferencies d'archivos pequeños (unos cuantos kb) una y bones l'anchu de banda usáu en mensaxes del protocolu ye comparativamente altu.

Al contrariu qu'otros famosos programes P2P como Kazaa o Emule, los veceros Bittorrent escarecen de dalguna utilidá de busca de conteníos. Los archivos .torrent suélense baxar de páxina web onde se suelen indexar les novedaes o bien esisten buscadores de torrents como mininova.org o The Pirate Bay, esti métodu garantiza que se tea descargando'l ficheru correutu. Apocayá la xusticia sueca condergó a los webmasters de The Pirate Bay a multes y penes de cárcel per collaboración na distribución d'archivos con copyright, a pesar de que los conteníos en sí nun tán allugaos nos sos servidores.

Per otra parte, BitTorrent tien un protocolu consideráu de los de modelu económicu. Ye inocente, nun ta preparáu pa veceros maliciosos, y por tanto'l protocolu nun presenta soluciones pa posibles ataques al traviés d'esti tipu de veceros.

De siguío vamos ver dellos exemplos d'estos ataques:
* Denegación de serviciu al traviés d'un ataque Sybil

Cada peer xenera un únicu identificador al empiezu por aciu un hash de la so direición IP y la hora. Si un peer xenerara múltiples identificadores podría asoceder que'l conxuntu de peers activos de los otros peers de la rede namái tuviera formáu por ensame d'identificadores falsos del mesmu peer atacante, y de esta manera namái se sirviríen datos a él.
* Ataque de “Namái a granes”

Un peer tien que xubir a los otros peers si quier formar parte del so conxuntu de peers activos. Si un peer namái se coneuta a seeds, podría baxase l'archivu enteru ensin necesidá de compartir nin una sola pieza.
* Ataque de Xubida corrupta”

Bittorrent verifica la integridá de la pieza una vegada descargada comparando'l so códigu hash col qu'apaecía na metainformación del torrent. Cuando un peer pide un bloque a un peer maliciosu, ésti puede dicir que lo tien anque en realidá nun seya asina. Lo que lu unvia ye basura, anque l'otru peer nun se da cuenta hasta que-y llegó la pieza entera y vuelve pidir el bloque. Anque se-y tán unviando datos corruptos, la tases de xubida sí son actualizaes y el peer maliciosu puede caltenese na llista de peers preferíos.

Los veceros BitTorrent actuales cuando reciben dellos bloques corruptos d'un mesmu veceru añaden el so [[direición IP]] a una llista d'usuarios bloquiaos y de esta forma solucionen esti problema.

== Meyores al protocolu ==
El protocolu Bittorrent ye susceptible de ser ameyoráu, polo que dellos veceros incorporaron diversos cambeos como DHT, Web Seeding y Super Seeding:

=== DHT ===
Si'l tracker cai, dependemos de los pares a los que teamos coneutaos pa poder rematar una descarga. Non siempres se consigue yá que ye necesariu que nun se desconecten y que ente toos tengan l'archivu completu.

El DHT (Distritbuted Hash Table) ye una estensión oficial al protocolu de Bittorrent. Consiste en que cada nodo de la rede caltién información de los nodos vecinos. D'esta forma evita'l pescuezu de botella del tracker del que falemos antes, yá que si'l tracker cai la totalidá de la información de los peers ta inda disponible nos mesmos peers.

Puede considerase como una descentralización del protocolu, anque inda nun ye completa porque inda se depende del tracker pa baxase'l .torrent y empezar a conocer los primeres nodos.

L'usu del DHT y la comunicación ente nodos ensin el pasu pol tracker porta una independencia del nodo que dacuando puede nun interesar, como nel casu de los trackers privaos, onde se suelen aplicar ciertes restricciones al usuariu según les sos estadístiques y onde ye requisitu común el tar rexistráu (a lo menos) pa poder entrar na rede.

Por cuenta de esto, y p'evitar que los alministradores de los trackers privaos banearan a los usuarios de veceros con DHT activáu, añadióse la posibilidá d'establecer un nuevu parámetru nel archivu .torrent llamáu “Private Flag”. Cuando'l veceru llee esta opción automáticamente desactiva'l DHT pa esa descarga. Esti tipu de parámetru ye compatible con tolos veceros. Asina si unu nun implementa DHT va omitir ensin más.

=== Web Seeding ===
En munches ocasiones nuna mesma páxina web apaecen enllaces HTTP o FTP amás del archivu .torrent como posibles alternatives pa baxar un archivu. La idea de Web seeding ye combinar la potencia de la descarga direuta del servidor cola del P2P. D'esta manera siempres habría a lo menos una grana completa de la que descargar primeramente. El primer veceru n'incluyir esta meyora foi BitTornado.

=== Super Seeding ===
[[Ficheru:The Pirate Bay logo.svg|thumb|150px|[[The Pirate Bay]] ye unu de los direutorios de ''torrents'' más populares.]]
La supercompartición — n'inglés superseeding (Vuze) o initial seeding (µtorrent) — sirvi por que'l primera seed que xube un nuevu archivu pueda amenorgar el númberu de pieces que tien que xubir pa crear les primeres granes y por que los peers que lo tán baxando puedan facer más rápido.

Cuando un seed “A” entra a un ensame en manera super seeding, nun apaez nel ensame como una grana normal col 100% del archivu sinón que se despinta como un leecher normal que nun tien nengún datu. A midida que otros peers entren nel ensame, el superseeder (el peer amarutáu) mánda-yos un mensaxe de que tien una nueva pieza — una pieza qu'en realidá nunca foi unviada. Esto va faer que'l peer “B” del ensame pida solamente esi cachu.

Cuando'l peer “B” termina de descargar aquella pieza, el seed "A" nun lu comunicará que tien otres pieces pa unviar hasta que vea que la primer pieza que lu unvió a "B" fuera compartida con siquier otru peer “C”. Mientres eso non pase, el peer “B” nun va tener accesu a nenguna de les demás pieces de la grana “A”, y asina “A” non desperdiciará el so anchu de banda de xubida teniendo que volver unviar pieces que yá unvió.

== Buscadores d'archivos torrent ==
Por cuenta de la gran proliferación d'esti tipu de descargues P2P, apaecieron na rede motores de busca personalizaos y especializaos n'atopar archivos [https://mejortorrent1.com torrent] agospiaos en servidores como [[The Pirate Bay]] o otros.

== Vocabulariu BitTorrent ==
La siguiente llista contién los principales términos usaos na [[xíriga]] del protocolu BitTorrent.

; Disponibilidad (''availability'')
Ye'l númberu de copies completes d'un archivu que tán disponibles pa la descarga. Cada grana añade 1,0 a esti númberu, porque tienen l'archivu completu. Un usuariu col archivu incompletu añade una fracción a la disponibilidad, si nengún usuariu más tien esa parte.
: Por casu, un usuariu que tien descargáu'l 65.3% del archivu aumenta la disponibilidad en 0,653. Sicasí, si dos usuarios tienen descargada la mesma parte del archivu, 50% por casu, y solo hai una grana, la disponibilidad ye 1,5.

; Veceru (''client'')
Ye'l [[programa informáticu]] que dexa l'intercambiu d'archivos [[peer-to-peer]] usando'l protocolu BitTorrent. Dellos exemplos de veceros son [[Transmission]], [[µTorrent]] y [[Vuze]].

; Salú (''health'')
La salú d'un archivu ''torrent'' ta rellacionada cola disponibilidad. Nos direutorios d'archivos ''torrent'' de normal amuésase como un porcentaxe ya indica el tantu per cientu del archivu que ta disponible. Un archivu con una salú del 50% significa que solo ta disponible la metá del archivu, polo que nun ye posible descargalo enteru.

; Direutoriu (''index'')
Un direutoriu o índiz BitTorrent ye una [[páxina web]] que contién una llista d'archivos ''torrent'' (de normal tamién inclúin una descripción y otra información) y un [[Motor de busca buscador]]. Dellos direutorios tamién disponen d'un [[Tracker (BitTorrent)|tracker]] propiu.

== Ver tamién ==
* [[Comparancia de veceros BitTorrent]]
* ''[[Peer-to-peer]]''
* [[Historia de les aplicaciones P2P]]

== Referencies ==
{{llistaref}}

== Enllaces esternos ==
* [http://www.bittorrent.com Sitiu web oficial de BitTorrent] (n'inglés)
* [http://mg8.org/processing/bt.html Visualizador del funcionamientu d'una rede BitTorrent] {{Webarchive|url=https://web.archive.org/web/20181014044222/http://mg8.org/processing/bt.html |date=2018-10-14 }}

{{Tradubot|BitTorrent}}

{{control d'autoridaes}}
[[Categoría:BitTorrent| ]]
[[Categoría:Redes de compartición d'archivos]]
BitTorrent ye un protocolu diseñáu pal intercambiu d'archivos puntu a puntu (peer-to-peer) n'Internet. Ye unu de los protocolos más comunes pa la tresferencia d'archivos grandes.

El programador Bram Cohen diseñó'l protocolu n'abril de 2001 y publicó la so primer versión el 2 de xunetu de 2001. Anguaño ye propiedá de Justin Sun, fundador de Tron Foundation, que adquirió BitTorrent, Inc. por 140 millones de dólares, el 18 de xunu de 2018. Esisten numberosos veceres BitTorrent disponibles pa dellos sistemes operativos.

En xineru de 2012, BitTorrent tenía 150 millones d'usuarios activos acordies con BitTorrent, Inc., basándose nesto, envaloraben que'l númberu total d'usuarios mensuales de BitTorrent yera mayor de 250 millones. Segun datos amosaos na so propia pagina web, los datos actuales envaloren que más de 170 millones de persones usen el so productu cada mes. El protocolu bittorrent mueve hasta'l 40% del tráficu mundial d'Internet diariamente.BitTorrent and µTorrent Software Surpass 150 Million User Milestone En cualquier intre de tiempu BitTorrent tien, en permediu, más usuarios activos que YouTube y Facebook xuntos (nun intre de tiempu, non en númberu total d'usuarios únicos específicamente de BitTorrent).BitTorrent Has More Users Than Netflix and Hulu Combined--and Doubled  Per otru llau, tres el zarru de la web Megaupload, l'usu d'esti protocolu amontóse considerablemente.

 Descripción 
El protocolu BitTorrent pue ser usáu p'amenorgar l'impautu que tien la distribución d'archivos grandes nos servidores. En llugar de descargar l'archivu dende un únicu servidor, el protocolu BitTorrent dexa a los usuarios xunise ente ellos nun "ensame" (swarm) pa descargar y xubir l'archivu de forma simultánea. El protocolu ye una alternativa al sistema basáu en servidores, que consiste en disponer de dellos servidores espeyu (mirror) dende onde l'usuariu descarga l'archivu completu, y puede funcionar en redes con pocu anchu de banda, d'esta forma, dispositivos pequeños como los smartphone, son capaces de distribuyir archivos grandes o videu en streaming a munchos receptores.

Un usuariu que quier xubir un archivu, primero crea un archivu torrent y distribuyir de forma convencional (páxina web, corréu electrónicu, etc). Dempués fai que l'archivu tea disponible na rede al traviés d'un nodo BitTorrent qu'actúa como grana (seed). Los usuarios que quieren descargar l'archivu, llogren l'archivu torrent y crean otru nodo BitTorrent qu'actúa como veceru o "sangrixuela" (leecher), intercambiando partes del archivu cola grana y con otros veceros.

L'archivu que ta siendo distribuyíu estremar en partes pequeñes (pieces). Cada vez qu'un usuariu recibe una parte nueva del archivu, puede de la mesma compartila con otros usuarios, lliberando a la grana orixinal de tener qu'unviar una copia d'esa parte a tolos usuarios que quieren l'archivu. En BitTorrent, la xera de distribuyir un archivu ye compartida por toos aquellos que deseyen tener l'archivu. Ye perfectamente posible que la grana solo unvie una copia del archivu y l'archivu seya distribuyíu a un númberu ilimitáu d'usuarios.

Cada parte del archivu ta protexida por un hash criptográficu conteníu dientro del archivu torrent. Esto asegura que cualquier cambéu que se produza nuna parte puede ser detectada, y polo tanto evita que tanto los cambeos accidentales como les malicioses sían recibíes n'otros nodos. Si un nodo tien l'archivu torrent auténticu, puede verificar l'autenticidá del archivu completu que recibió.

Les partes típicamente nun se descarguen de forma secuencial, estes son reordenaes pol veceru BitTorrent, que comprueba les partes que tien y les que falten de recibir. Toles partes del archivu son del mesmu tamañu y son tresmitíes d'una sola vegada (por casu un archivu de 10 MB pue ser tresmitíu en diez partes de 1 MiB o en cuarenta partes de 256 KiB). Por cuenta de esto, puede detenese la descarga d'un archivu en cualquier momentu y volver# a entamar darréu ensin perder la información descargada enantes. Esto fai que BitTorrent seya especialmente útil na tresferencia d'archivos grandes. Esto tamién dexa al veceru buscar les partes disponibles pa descargar fácilmente, en llugar de tener que pausar la descarga y esperar que la siguiente parte tea disponible, lo qu'amenorga'l tiempu de descarga.

Cuando un veceru descarga l'archivu dafechu conviértese nuna grana. Esti cambéu eventual de veceros en granes determina la salú (health) o disponibilidad del archivu (determináu pol númberu d'usuarios que tienen l'archivu completu).

La naturaleza distribuyida de BitTorrent conduz a que l'archivu distribúyase al traviés de munchos nodos. Cuantos más usuarios xunir al "ensame", mayor ye la probabilidá de qu'un nodo pueda descargar l'archivu completu. En rellación colos esquemes de distribución tradicionales, esto dexa al distribuidor orixinal amenorgar los costos de hardware y d'anchu de banda. Esto tamién apurre redundancia ante posible problemes del sistema, amenorga les dependencies col distribuidor orixinalEstimating Self-Sustainability in Peer-to-Peer Swarming Systems by D. Menasche, A. Rocha, Y. de Souza y Silva, R. M. Leao, D. Towsley, A. Venkataramani y apurre fontes de descarga transitories (nun son siempres los mesmos usuarios los que comparten l'archivu), polo tanto ye más malo de rastrexar d'onde procede l'archivu polos qu'intenten bloquiar la so distribución en comparanza con un archivu agospiáu nun servidor esternu.

 BitTorrent en comparanza con otres redes P2P 
thumb|250px|Captura de pantalla del veceru BitTorrent Deluge.
El métodu utilizáu por BitTorrent pa distribuyir archivos ye similar en munchos aspeutos al utilizáu pola rede eDonkey 2000, pero xeneralmente los nodos nesta rede comparten y baxen mayores cantidaes de ficheros, amenorgando l'anchu de banda disponible pa cada tresferencia. Les tresferencies en BitTorrent son de normal bien rápides yá que tolos nodos nun grupu concentrar en tresferir un solu ficheru o una coleición de los mesmos. Amás el protocolu eDonkey2000 nun premia a aquellos usuarios que comparten un mayor anchu de banda. Sicasí, hai qu'esclariar que'l veceru más estendíu pa la rede eDonkey, l'emule, sí incorpora un sistema de creitos pa compensar a los que más comparten.

Al contrariu qu'otres redes d'intercambiu, BitTorrent nun inclúi nengún mecanismu de busca d'archivos. Los usuarios de BitTorrent tendrán d'alcontrar pelos sos propios medios los archivos torrent que precisa'l protocolu. De normal, estos archivos pueden descargase dende les páxines web que publiquen grandes archivos (como les distribuciones GNU/Linux) o dende índice web de busca (como The Pirate Bay).

BitTorrent foi programáu orixinalmente en Python anque anguaño pueden atopase veceros escritos en C o en Java por casu.

Según CacheLogic,CacheLogic Announces eDonkey Has Become World's Largest P2P File Trading Network, Surpassing BitTorrent mientres l'añu 2005 BitTorrent utilizábase especialmente n'Asia, ente que eDonkey2000 preferir n'Europa y América.

 Programes veceru 

Los veceros de BitTorrent pueden atopase de dos tipos distintos:
 De múltiples descargues simultánees como Vuze, BitComet, KTorrent, μTorrent o Transmission.
 De descarga única (solo descarga un archivu .torrent, pero pueden tenese dellos abiertos simultáneamente), como BitTornado o'l navegador Opera.

 Estructura d'una rede BitTorrent 
thumb|250px|Funcionamientu d'una rede BitTorrent.
Una rede en Bittorrent ta formada por:
 Peers (puntos): Denominar asina a tolos usuarios que tán na rede.
 Leechers (sangrixueles): Denominar asina a tolos usuarios que tán na rede descargando l'archivu pero qu'inda nun tienen l'archivu completu. Tamién se llama despectivamente a quien descarguen archivo pero nun los comparten.
 Seeders (granes): Son los usuarios de la rede que tienen l'archivu completu.
 Trackers (rastreadores): Un tracker de BitTorrent ye un servidor especial que contién la información necesaria por que los peers conéctense unos con otros. Primeramente ye la única forma d'alcontrar qué usuarios contienen l'archivu que quier descargase.
 Ensame: L'ensame son los usuarios polo xeneral que'l tracker encargar de buscar. El nome ye por cuenta de la semeyanza coles abeyes y el so comportamientu; nesta analoxía, el tracker ye'l setu d'abeyes, l'ensame d'abeyes son los usuarios y el miel ye'l torrent col conteníu.

Mecánica del funcionamientu de BitTorrent:
 Un usuariu baxa d'un servidor web un archivu .torrent que contién la información del ficheru que queremos descargar. Ente otra muncha información contién la direición del tracker al que nos tenemos que coneutar pa xuninos al ensame de peers (el .torrent xeneralmente ye un archivu bien pequeñu, d'unos pocos kilobytes).
 Esti archivu .torrent abrir con dalgún "programa veceru", que sabe interpretar dicha información. Esisten ensame de veceros gratuitos que pueden utilizase. Ente los más populares tán μtorrent, Bitcomet, Vuze (enantes Azureus). Toos tán basaos nel protocolu BitTorrent orixinal pero dalgunos d'ellos inclúin meyores al protocolu.
 El tracker y el peer comuníquense al traviés d'una 'conexón HTTP'. El tracker informa de la llista de tolos peers y seeds que contienen partes del archivu que queremos descargar. El tracker actualizar cola información del nuevu peer qu'acaba d'ingresar.
 Una vegada que'l peer sabe ónde tien que buscar les partes necesaries, esti peer comunicar con otros por aciu 'sockets TCP' o 'UDP' y l'archivu empieza a descargase nel ordenador del usuariu. Cada parte descargada compartir automáticamente con otros peers.

 Archivos .torrent y la so codificación interna 
Los archivos .torrent contienen información avera del archivu que queremos baxar. Esta información ta codificada por aciu Bencoding. La siguiente tabla amuesa los distintos tipos de datos que podemos usar pa representar la metainformación contenida nel archivu .torrent.

Strings Cadenes de Calteres <llargor de la cadena>:<cadena>
3:rede Representa la cadena “rede”

Integers Enteros i<enteru>y i3y Representa
3.

Lists Llista de tipos [strings, integers, lists, dictionaries] l<bencoded type>y l3:rede4:wifie
representa la llista de 2 cadenes: ["rede", "wifi"]

Dictionaries Son asociaciones de clave→ valor d<bencoded string><bencoded element>y d3:ana4:blas5:muyer6:hombree
representa'l diccionariu { "ana"→ "muyer", "blas"→ "home" }
d4:spaml1:a1:bee representa'l diccionariu { "spam"→ [ "a", "b" ] }

Si abrimos con un editor de testu un archivu .torrent atopamos con un diccionariu que contién les siguientes claves:
 info: Un diccionariu que describe los archivos del torrent. Puede tener una o otra estructura dependiendo de si'l torrent ye pa baxar un archivu o dellos archivos con una xerarquía de direutorios.
 announce: cadena que representa la URL del tracker
 announce-list: (llista de cadenes opcional). Usar pa representar llistes de trackers alternativos. Ye una estensión a la especificación orixinal.
 creation date: (enteru opcional) La fecha de creación del torrent en formatu de dómina UNIX.
 comment: (cadena opcional) Campu llibre pal creador del torrent.
 created by: (cadena opcional) Nome y versión del programa usáu pa crear l'archivu torrent.

El diccionariu info qu'acabamos de citar contién de la mesma les siguientes claves:
 name: (cadena) El nome del archivu o direutoriu onde se van almacenar los archivos.
 piece length: Como diximos na introducción, l'archivu que queremos compartir ye estremáu en pieces. Esti parámetru ye un enteru que representa'l númberu de bytes de cada pieza. Pieces demasiao grandes causen ineficiencia y pieces demasiáu pequeñes formen un archivu .torrent más pesáu. Anguaño aconséyase afitar el tamañu de cada pieza en 512 KB o menos p'archivos de dellos GBs.
 pieces: Cadena que representa la concatenación de la llista de claves hash de cada parte del ficheru compartíu. Les claves hash son xeneraes utilizando SHA-1 con un resume de 160 bits y un tamañu máximu per parte de 2^64 bits. Esti conxuntu de claves utilízase como mecanismu p'asegurar la integridá y consistencia d'una parte, una vegada foi completada la descarga de dicha parte.
 private: (opcional). Ye un enteru que puede tener valores 0 ó 1 y qu'indica si pueden buscase peers fuera de los trackers explícitamente descritos na metainformación o non.
 length: (enteru) Llargor del archivu en bytes.
 md5sum: (cadena opcional). Ye una cadena hexadecimal de 32 calteres correspondiente a la suma MD5 del archivu.
 files: Namái va apaecer nel casu de que seya un torrent multi archivu. Ye una llista de diccionarios (unu pa cada archivu, pero con una estructura distinta a info). Cada unu d'estos diccionarios va contener de la mesma información sobre'l llargor del archivu, la suma MD5 y una ruta (path) onde tien d'allugase l'archivu na xerarquía de direutorios.

 Algoritmos: seleición de pieces y seleición de pares 
Nesta seición van esplicase refechamente les regles según les cualos escuéyese a unu o otru usuariu pa compartir partes del archivu y qué partes son les que se tresmiten.

En primer llugar vamos describir unos cuántos términos importantes:
 Pieces y bloques. Los archivos tresmitíos usando Bittorrent estremar en pieces y éstes de la mesma estrémense en bloques. Los bloques son la unidá de tresmisión na rede, pero les pieces parcialmente recibíes nun pueden ser sirvíes por un peer hasta que tean completes, ye dicir que se tengan tolos sos bloques.
 Interested. Dizse qu'un peer A ta interesáu nel peer B (A ta nel estáu Interested) cuando'l peer B tien pieces que'l peer A nun tien. Otra manera, el peer A nun ta interesáu nel peer B cuando'l peer B solo tien un subconxuntu de les pieces del peer A.
 Choked. Dizse que'l peer A bloquia al peer B (B ta nel estáu Choked) cuando'l peer A decide nun unviar pieces al peer B. Otra manera, dizse que'l peer A desbloquia al peer B cuando'l peer A decide unviar pieces al peer B.
 Conxuntu de peers. Cada peer caltién una llista de los peers que conoz.
 Peers locales y remotos. Llámase peer llocal de la que ta executando'l veceru bittorrent y peers remotos a los pares que tán nel conxuntu de peers del peer local.
 Conxuntu de peers activos. El peer A namái puede unviar datos a un subconxuntu del so conxuntu de peers. A esti conxuntu llámase-y conxuntu de peers activos. L'algoritmu de bloquéu, que vamos ver más palantre, determina los peers que van formar parte del conxuntu de peers activos. Solamente los peers que tán desbloquiaos pol peer local y comenenciudos nél son parte del conxuntu de peers activos.
 Pieces más rares y conxuntu de les pieces más rares. Les pieces más rares son les que tienen menos númberu de copies nel conxuntu de peers. Nel casu de que la pieza menos retrucada nel conxuntu de peers tenga m copies, entós toles pieces con m copies formen el conxuntu de les pieces más rares.

 Algoritmu de “les pieces más rares primeru” (rarest first algorithm) 
Esti algoritmu define la estratexa usada pol protocolu Bittorrent pa escoyer la siguiente pieza a descargar.
Cada par caltién una llista del númberu de copies de cada pieza nel so conxuntu de pares y usa esta información pa definir el so conxuntu de les pieces más rares. Sía m el númberu de copies de la pieza más rara, entós la posición de cada pieza con m copies nel conxuntu de peers ye añadida al conxuntu de les pieces más rares. Cada peer escueye aleatoriamente la siguiente pieza pa baxar del so conxuntu de les pieces más rares.

El comportamientu d'esti algoritmu puede ser modificáu por 3 causes:
 Si un peer baxó menos de 4 pieces, ésti escueye aleatoriamente la próxima pieza pa baxar. Una vegada que se descargaron estes 4 pieces, l'algoritmu funciona de la manera descrita enantes. La razón d'esti comportamientu inicial ye dexar qu'un peer baxe les sos primeres pieces bien rápido, yá que ye importante tener delles pieces de mano a intercambiar nel Algoritmu de Bloquéu. Ello ye que una pieza escoyida aleatoriamente tien munches más copies que les pieces más rares, asina que probablemente'l tiempu de baxada va ser menor escoyéndola aleatoriamente.
 La segunda causa ye que cuando unu de los bloques d'una pieza pidióse, los otros bloques de la mesma pieza pidir cola prioridá más alta. La razón d'esti comportamientu ye completar la descarga d'una pieza completa lo antes posible, yá que namái les pieces completes pueden ser unviaes.
 La última causa ye la manera de fin de xuegu (End Game Mode). Esta manera empieza bien a la fin de la descarga, cuando'l peer pide tolos bloques qu'inda nun fueron recibíos a tolos peers del so conxuntu de peers que tienen esos bloques. Cada vez que se recibe un bloque, el peer ataya'l pidimientu pal bloque recibíu a tolos peers nel so conxuntu de peers que tienen el pidimientu activu.

 Algoritmu de bloquéu (choke algorithm) 
Esti algoritmu define la estratexa usada pol protocolu BitTorrent pa escoyer el siguiente peer col que va interactuar. Usar pa garantizar una bona rellación xubida/baxada ente los peers. Por casu los “free riders”, pares que nunca xuben, tienen de penalizase. L'algoritmu describir dende'l puntu de vista del peer local, asina que “comenenciudu” significa comenenciudu nel peer local y “bloquiáu” significa bloquiáu pol peer local. L'algoritmu funciona asina:
 A lo más 4 peers remotos pueden tar desbloquiaos y comenenciudos al empar.
 Cada 10 segundos, los peers remotos comenenciudos ordenar d'alcuerdu a la so velocidá de baxada escontra'l peer local y los 3 más rápidos son desbloquiaos.
 Cada 30 segundos, un peer comenenciudu adicional desblóquiase aleatoriamente. Esto llámase Desbloquéu Optimista” (Optimistic Unchoke), que tien dos oxetivos: dexa evaluar la capacidá de baxada de nuevos peers nel conxuntu de peers y tamién fai posible que los peers que nun tienen nenguna pieza que compartir puedan llograr la so primer pieza.

 Llimitaciones y ataques 
Considérase que lo cabal ye xubir la mesma cantidá de datos que se baxó, ye dicir que la tasa de descarga xubida seya de 1, pero esti comportamientu nun ye común nin ta garantizáu en BitTorrent. De normal los usuarios desconéctense rápido una vegada que llograron la copia completa del so archivu. Esto denominar leeching.

Esta forma d'actuar provoca qu'anque tol conteníu nuevo compartir de primeres bien rápido, col pasu de los díes el torrent caduque porque nun queden granes, yá que BitTorrent namái ufierta incentivos a los leechers pero non a los seeds que nun llogren nenguna ventaya por permanecer xubiendo a la rede.

Pa evitar esto apaecieron los denominaos trackers privaos. De normal pa usar un tracker priváu hai qu'identificase primeramente. Pa cada usuariu rexistráu guarden les estadístiques de tráficu y utilicen un sistema de porcentaxes que dexa saber si l'usuariu comparte o non los datos que descargara o tea descargando. Munchos d'estos trackers suelen espulsar a los usuarios que tienen un porcentaxe baxu, yá que al nun compartir nun collaboren cola rede.

Otru puntu flacu ye que'l tracker ye un pescuezu de botella yá que consume'l 1 per mil del tráficu total de la rede. Teniendo en cuenta la cantidá de datos que circulen nuna rede d'esti tipu, ye un porcentaxe a tener en cuenta. Amás, la cayida del tracker implica que nuevos peers non puedan conectase y que aquellos que yá tán coneutaos nun puedan afayar otros. Conceptualmente fórmense pequeñes islles desorganizadas, onde en realidá toes los nodos tán coneutaos ente sigo al traviés de vecinos pero nun hai comunicación ente eses islles (la comunicación ente elles xestionar el tracker) y por tanto inflúi bien negativamente na descarga.

Una debilidá más de BitTorrent ye que ye pocu eficiente en tresferencies d'archivos pequeños (unos cuantos kb) una y bones l'anchu de banda usáu en mensaxes del protocolu ye comparativamente altu.

Al contrariu qu'otros famosos programes P2P como Kazaa o Emule, los veceros Bittorrent escarecen de dalguna utilidá de busca de conteníos. Los archivos .torrent suélense baxar de páxina web onde se suelen indexar les novedaes o bien esisten buscadores de torrents como mininova.org o The Pirate Bay, esti métodu garantiza que se tea descargando'l ficheru correutu. Apocayá la xusticia sueca condergó a los webmasters de The Pirate Bay a multes y penes de cárcel per collaboración na distribución d'archivos con copyright, a pesar de que los conteníos en sí nun tán allugaos nos sos servidores.

Per otra parte, BitTorrent tien un protocolu consideráu de los de modelu económicu. Ye inocente, nun ta preparáu pa veceros maliciosos, y por tanto'l protocolu nun presenta soluciones pa posibles ataques al traviés d'esti tipu de veceros.

De siguío vamos ver dellos exemplos d'estos ataques:
 Denegación de serviciu al traviés d'un ataque Sybil

Cada peer xenera un únicu identificador al empiezu por aciu un hash de la so direición IP y la hora. Si un peer xenerara múltiples identificadores podría asoceder que'l conxuntu de peers activos de los otros peers de la rede namái tuviera formáu por ensame d'identificadores falsos del mesmu peer atacante, y de esta manera namái se sirviríen datos a él.
 Ataque de “Namái a granes”

Un peer tien que xubir a los otros peers si quier formar parte del so conxuntu de peers activos. Si un peer namái se coneuta a seeds, podría baxase l'archivu enteru ensin necesidá de compartir nin una sola pieza.
 Ataque de Xubida corrupta”

Bittorrent verifica la integridá de la pieza una vegada descargada comparando'l so códigu hash col qu'apaecía na metainformación del torrent. Cuando un peer pide un bloque a un peer maliciosu, ésti puede dicir que lo tien anque en realidá nun seya asina. Lo que lu unvia ye basura, anque l'otru peer nun se da cuenta hasta que-y llegó la pieza entera y vuelve pidir el bloque. Anque se-y tán unviando datos corruptos, la tases de xubida sí son actualizaes y el peer maliciosu puede caltenese na llista de peers preferíos.

Los veceros BitTorrent actuales cuando reciben dellos bloques corruptos d'un mesmu veceru añaden el so direición IP a una llista d'usuarios bloquiaos y de esta forma solucionen esti problema.

 Meyores al protocolu 
El protocolu Bittorrent ye susceptible de ser ameyoráu, polo que dellos veceros incorporaron diversos cambeos como DHT, Web Seeding y Super Seeding:

 DHT 
Si'l tracker cai, dependemos de los pares a los que teamos coneutaos pa poder rematar una descarga. Non siempres se consigue yá que ye necesariu que nun se desconecten y que ente toos tengan l'archivu completu.

El DHT (Distritbuted Hash Table) ye una estensión oficial al protocolu de Bittorrent. Consiste en que cada nodo de la rede caltién información de los nodos vecinos. D'esta forma evita'l pescuezu de botella del tracker del que falemos antes, yá que si'l tracker cai la totalidá de la información de los peers ta inda disponible nos mesmos peers.

Puede considerase como una descentralización del protocolu, anque inda nun ye completa porque inda se depende del tracker pa baxase'l .torrent y empezar a conocer los primeres nodos.

L'usu del DHT y la comunicación ente nodos ensin el pasu pol tracker porta una independencia del nodo que dacuando puede nun interesar, como nel casu de los trackers privaos, onde se suelen aplicar ciertes restricciones al usuariu según les sos estadístiques y onde ye requisitu común el tar rexistráu (a lo menos) pa poder entrar na rede.

Por cuenta de esto, y p'evitar que los alministradores de los trackers privaos banearan a los usuarios de veceros con DHT activáu, añadióse la posibilidá d'establecer un nuevu parámetru nel archivu .torrent llamáu “Private Flag”. Cuando'l veceru llee esta opción automáticamente desactiva'l DHT pa esa descarga. Esti tipu de parámetru ye compatible con tolos veceros. Asina si unu nun implementa DHT va omitir ensin más.

 Web Seeding 
En munches ocasiones nuna mesma páxina web apaecen enllaces HTTP o FTP amás del archivu .torrent como posibles alternatives pa baxar un archivu. La idea de Web seeding ye combinar la potencia de la descarga direuta del servidor cola del P2P. D'esta manera siempres habría a lo menos una grana completa de la que descargar primeramente. El primer veceru n'incluyir esta meyora foi BitTornado.

 Super Seeding 
thumb|150px|The Pirate Bay ye unu de los direutorios de torrents más populares.
La supercompartición — n'inglés superseeding (Vuze) o initial seeding (µtorrent) — sirvi por que'l primera seed que xube un nuevu archivu pueda amenorgar el númberu de pieces que tien que xubir pa crear les primeres granes y por que los peers que lo tán baxando puedan facer más rápido.

Cuando un seed “A” entra a un ensame en manera super seeding, nun apaez nel ensame como una grana normal col 100% del archivu sinón que se despinta como un leecher normal que nun tien nengún datu. A midida que otros peers entren nel ensame, el superseeder (el peer amarutáu) mánda-yos un mensaxe de que tien una nueva pieza — una pieza qu'en realidá nunca foi unviada. Esto va faer que'l peer “B” del ensame pida solamente esi cachu.

Cuando'l peer “B” termina de descargar aquella pieza, el seed "A" nun lu comunicará que tien otres pieces pa unviar hasta que vea que la primer pieza que lu unvió a "B" fuera compartida con siquier otru peer “C”. Mientres eso non pase, el peer “B” nun va tener accesu a nenguna de les demás pieces de la grana “A”, y asina “A” non desperdiciará el so anchu de banda de xubida teniendo que volver unviar pieces que yá unvió.

 Buscadores d'archivos torrent 
Por cuenta de la gran proliferación d'esti tipu de descargues P2P, apaecieron na rede motores de busca personalizaos y especializaos n'atopar archivos torrent agospiaos en servidores como The Pirate Bay o otros.

 Vocabulariu BitTorrent 
La siguiente llista contién los principales términos usaos na xíriga del protocolu BitTorrent.

 Disponibilidad (availability)
Ye'l númberu de copies completes d'un archivu que tán disponibles pa la descarga. Cada grana añade 1,0 a esti númberu, porque tienen l'archivu completu. Un usuariu col archivu incompletu añade una fracción a la disponibilidad, si nengún usuariu más tien esa parte.
 Por casu, un usuariu que tien descargáu'l 65.3% del archivu aumenta la disponibilidad en 0,653. Sicasí, si dos usuarios tienen descargada la mesma parte del archivu, 50% por casu, y solo hai una grana, la disponibilidad ye 1,5.

 Veceru (client)
Ye'l programa informáticu que dexa l'intercambiu d'archivos peer-to-peer usando'l protocolu BitTorrent. Dellos exemplos de veceros son Transmission, µTorrent y Vuze.

 Salú (health)
La salú d'un archivu torrent ta rellacionada cola disponibilidad. Nos direutorios d'archivos torrent de normal amuésase como un porcentaxe ya indica el tantu per cientu del archivu que ta disponible. Un archivu con una salú del 50% significa que solo ta disponible la metá del archivu, polo que nun ye posible descargalo enteru.

 Direutoriu (index)
Un direutoriu o índiz BitTorrent ye una páxina web que contién una llista d'archivos torrent (de normal tamién inclúin una descripción y otra información) y un Motor de busca buscador. Dellos direutorios tamién disponen d'un tracker propiu.

 Ver tamién 
 Comparancia de veceros BitTorrent
 Peer-to-peer
 Historia de les aplicaciones P2P

 Referencies 

 Enllaces esternos 
 Sitiu web oficial de BitTorrent (n'inglés)
 Visualizador del funcionamientu d'una rede BitTorrent 

 
Categoría:Redes de compartición d'archivos