Usuário(a):Jessicavazsouza/Arquivo torrent

Origem: Wikipédia, a enciclopédia livre.
Arquivo torrent
Extensão do arquivo .torrent
MIME application/x-bittorrent

Um arquivo torrent é um arquivo contendo metadados usados para Bittorrent. Está definido na especificação do protocolo Bittorrent[1], criado por Bram Cohen. Um torrent simplesmente é uma informação acerca do arquivo de destino, embora não contenha nenhuma informação sobre o conteúdo do ficheiro. A única informação que contém no arquivo torrent é a localização das partes do arquivo de destino. Os torrents funcionam dividindo o arquivo ou arquivos em partes menores localizadas em diferentes hosts de maneira ilimitada. Com esse método os arquivos grandes são baixados de maneira mais eficiente, ou seja, mais rapidamente. Quando um cliente (o receptor do arquivo) inicia o download por torrent, as pequenas partes requisitadas são encontradas mais rapidamente devido a informação do arquivo torrent.

NOTA: O arquivo de destino só funciona quando todas as partes são completadas.

Um arquivo torrent pode conter muitas URLs de trackers e a integridade de todos os metadados de todas as partes. Também pode conter metadados adicionais para a extensão das especificações Bittorrent.[2]

Estrutura do arquivo[editar | editar código-fonte]

Um arquivo torrent é um dicionário de Bencode com as seguintes chaves:

  • announce - a URL do tracker.
  • info - isto cria um dicionário cujas chaves são dependentes se um ou mais arquivos estão sendo compartilhados.
  • name - diretório sugerido onde os arquivos serão guardados.
  • piece length - número de bytes por parte. É comumente 218 = 256 KiB = 262,144 B.
  • pieces - uma lista de hash. Esta é a concatenação de cada hash SHA-1 das partes. Como SHA-1 retorna um hash de 160 bits cada parte será uma sequência cujo comprimento é um múltiplo de 160-bits.
  • length - tamanho do arquivo em bytes (somente quando o arquivo está sendo compartilhado).
  • files - uma lista de dicionários cada uma correspondendo a um arquivo (somente quando vários arquivos estão sendo compartilhados). Cada dicionário tem as seguintes chaves:
  • path - uma lista de seqüências correspondentes aos nomes de subdiretório, a última delas é o nome do arquivo real.
  • length - o tamanho do arquivo em bytes.

Todas as sequências devem ser codificadas em UTF-8.

Extensões[editar | editar código-fonte]

Extensões dos projetos[editar | editar código-fonte]

Estas extensões estão sendo consideradas para a normalização. Arquivos torrent usam a extensão ".torrent".

Tabelas de Hash distribuídas[editar | editar código-fonte]

BEP-0005[3] expande o BitTorrent para suportar tabelas de hash distribuídas.

Um dicionário torrent sem tracker não tem uma chave de anunciar. Em vez disso, um torrent sem tracker tem uma chave de nós:

{
...
'nodes': [["<host>", <port>], ["<host>", <port>], ...]
...
}

Por exemplo,

'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]]

A especificação recomenda que nós "devem ser definidos para os nós mais próximos de K na tabela de roteamento do cliente de torrent. Alternativamente, a chave pode ser definida como um nó conhecido o bem como um operado pela pessoa geradora do torrent."

Múltiplos trackers[editar | editar código-fonte]

BEP-0012[4] expande o Bittorrent para suportar múltiplos trackers.

Uma nova chave,announce-list, é adicionada no topo da lista.

...
}

Seeds HTTP[editar | editar código-fonte]

BEP-0017[5] expande o Bittorrent para suportar seeds HTTP}}.

Uma nova chave, httpseeds, é adicionada no topo da lista. O valor da chave é uma lista de endereços da web onde os arquivos podem ser recuperados:

{
...
'httpseeds': ['http://gen.lib.rus.ec/'[ligação inativa], 'http://www.site2.com/source2.php'[ligação inativa]]
...
}

Torrents privados[editar | editar código-fonte]

BEP-0027[6] expande o Bittorrent para suportar torrents privados.

Uma nova chave, private, é adicionada no topo da lista. Se o valor for 1 o torrent é privado.

{
...
'private': 1
...
}

Merkle trees[editar | editar código-fonte]

BEP-0030[7] expande o BitTorrent para suportar Merkle trees.

{
...
'info': {
...
'root hash': e6bdebcc5d55da0a77f4bb1b57d88de794838577
...
}
...
}

Exemplos[editar | editar código-fonte]

Arquivo único[editar | editar código-fonte]

Aqui está um arquivo torrent de-bencode (com partes de tamanho 256 KB = 262144 bytes) para o arquivo debian-503-amd64-CD-1.iso (cujo tamanho e 647 MB = 678301696 bytes):

{
    'announce': 'http://bttracker.debian.org:6969/announce'[ligação inativa],
    'info':
    {
        'name': 'debian-503-amd64-CD-1.iso',
        'piece length': 262144,
        'length': 678301696,
        'pieces': '841ae846bc5b6d7bd6e9aa3dd9e551559c82abc1...d14f1631d776008f83772ee170c42411618190a4'
    }
}

Múltiplos arquivos[editar | editar código-fonte]

Aqui está um arquivo torrent de-bencode (com partes de tamanho 256 KiB = 262144 B) para 2 arquivos, 111.txt e 222.txt:

{
    'announce': 'http://tracker.site1.com/announce'[ligação inativa],
    'info:
    {
        'name': 'directoryName',
        'piece length': 262144,
        'files':
        [
            {'path': '111.txt', 'length': 111},
            {'path': '222.txt', 'length': 222}
        ],
        'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb...8a43d9d965a47f75488d3fb47d2c586337a20b9f'
    }
}

Termos comuns[editar | editar código-fonte]

  • Seed: é o usuário que possui o arquivo completo no seu computador. Sua função é semeá-lo, ou seja, apenas disponibilizar tal arquivo para upload, visto que o download já não é mais necessário.
  • Peer: é o usuário que está baixando o arquivo de um semeador, porém não tem o arquivo completo.
  • Leech: é o usuário que possui parcialmente o arquivo. Podemos dizer que um usuário é um leech se ele tem entre 0,1% e 99,9% do arquivo em seu computador. Um leech faz duas coisas ao mesmo tempo: continua baixando o arquivo e semeia o que já possui.
  • Cliente: é um programa ou site usado por um arquivo torrent ou um magnet link para reconhecer como baixar ou fazer upload dos arquivos.

Veja também[editar | editar código-fonte]

Referências

Categoria:Formatos digitais Categoria:BitTorrent