토렌트 파일
Torrent file![]() |
그 비트 토렌트 파일 유통 체계에서 파일과 폴더에 대한 메타 데이터 분포 되는 것 같고, 시스템에서 참가국 서로를 찾을 수 있고 형태 효율적인 유통망 그룹 무리라고 불리는데 도움을 주는 컴퓨터 추적 장치의 네트워크 위치의 또한 대개 목록을 포함하는 토렌트 파일 또는meta-info 파일은 컴퓨터 파일입니다.[1]Torrent 파일에는 배포할 컨텐츠가 포함되어 있지 않습니다.파일 무결성을 확인하기 위해 암호화 해시 값을 통해 얻은 이름, 폴더 구조 및 크기 등의 파일에 대한 정보만 포함되어 있습니다.토렌트라는 용어는 컨텍스트에 따라 메타데이터 파일 또는 다운로드된 파일을 가리킬 수 있습니다.
토렌트 파일은 컴퓨터가 Bittorrent 클라이언트를 사용하여 정보를 찾을 수 있는 목차(색인)와 같은 역할을 합니다.토렌트 파일을 사용하면 이미 파일을 다운로드한 컴퓨터에서 원본 파일의 작은 부분을 다운로드할 수 있습니다.이러한 「피어」에 의해서, 프라이머리 서버 이외의, 또는 프라이머리 서버 대신에 파일을 다운로드할 수 있습니다.
Torrent 파일 이름은 보통 확장자 ".torrent"로 지정됩니다.
Torrent 파일 자체 및 Torrent 파일 사용 방법은 중앙 서버 상의 로드를 완화하기 위해 작성되었습니다.이것은 파일 전송에 필요한 대역폭을 크라우드 소싱하여 대용량 파일 다운로드에 필요한 시간을 단축할 수 있기 때문입니다.다양한 Linux 디스트리뷰션 등 많은 프리/프리웨어 프로그램 및 운영체제는 앞서 말한 이점을 원하는 사용자에게 토렌트 다운로드 옵션을 제공합니다.미디어 파일과 같은 다른 대용량 다운로드도 자주 발생합니다.
파일 이름 확장자 | .토렌트 |
---|---|
인터넷 미디어 유형 | 응용 프로그램/x 비트렌트 |
표준. | BEP-0003[1] |
배경
일반적으로 인터넷 액세스는 비대칭이며 업로드 속도보다 빠른 다운로드 속도를 지원하며 각 다운로드의 대역폭을 제한하며 경우에 따라서는 시스템에 액세스할 수 없는 대역폭 상한 및 기간을 적용합니다.이로 인해 많은 사용자가 단일 소스에서 동일한 파일 세트를 가져오려고 할 때 비효율성이 발생합니다. 소스는 항상 온라인 상태여야 하며 대량의 아웃바운드 대역폭을 가져야 합니다.BitTorrent 프로토콜은 배포의 분산화를 통해 이를 해결하며, 사람들이 서로 "피어 투 피어" 네트워크를 구축할 수 있는 능력을 활용합니다.
배포되는 각 파일은 조각이라고 하는 작은 정보 청크로 분할됩니다.다운로드 피어(peer)는 다른 컴퓨터에서 동시에 여러 조각을 요청하여 빠른 다운로드 속도를 달성합니다.일단 얻어진 이 조각들은 보통 떼의 다른 사람들이 즉시 다운로드 할 수 있게 됩니다.이와 같이 네트워크에 대한 부담이 중앙 유통 허브나 클러스터에 집중되는 것이 아니라 다운로더 간에 분산됩니다.모든 부품을 사용할 수 있는 한 피어(다운로더 및 업로더)는 출입할 수 있습니다.또, 다른 피어간에 전달을 계속하기 위해서, 1개의 피어(peer)가 모든 청크를 가지고 있을 필요는 없습니다.또, 스몰에 접속하고 있을 필요도 없습니다.
공유할 파일 또는 폴더를 나타내기 위해 작은 토렌트 파일이 생성됩니다.Torrent 파일은 실제 콘텐츠 다운로드를 시작하는 키 역할을 합니다.공유 파일 또는 폴더 수신에 관심이 있는 사용자는 먼저 해당 토렌트 파일을 직접 다운로드하거나 마그넷 링크를 사용하여 가져옵니다.그런 다음 사용자는 나머지 프로세스를 자동화하는 BitTorrent 클라이언트에서 해당 파일을 엽니다.클라이언트는 조각을 공유할 수 있는 피어(peer)의 인터넷 위치를 학습하기 위해 토렌트 파일에 명명된 트래커에 접속하거나 분산 해시 테이블을 사용하여 같은 결과를 얻는다.다음으로 클라이언트는 피어에 직접 접속하여 피어를 요청하고, 그렇지 않으면 무리 지어 참여합니다.또한 고객은 추적기에 진행 상황을 보고하여 추적기의 동료 권장 사항을 지원할 수 있습니다.
클라이언트가 모든 조각을 가지고 있으면 BitTorrent 클라이언트는 그것들을 사용 가능한 형태로 조립합니다.그들은 또한 조각을 계속 공유하여 일반 동료가 아닌 종자(種者)의 지위가 높아집니다.
파일 구조
Torrent 파일에는 모든 조각에 대한 파일 및 무결성 메타데이터 목록이 포함되어 있으며, 선택적으로 많은 추적기 목록이 포함되어 있습니다.
Torrent 파일은 다음 키를 가진 Bencoded 딕셔너리입니다(Bencoded 딕셔너리의 키는 사전순으로 정렬됩니다).
- announce: 트래커의 URL
- info: 이것은 키가 1개 이상의 파일이 공유되고 있는지 여부에 따라 달라지는 딕셔너리에 매핑됩니다.
- files: 1개의 파일에 각각 대응하는 사전의 리스트(복수의 파일이 공유되고 있는 경우만).각 사전에는 다음 키가 있습니다.
- length : 파일사이즈(바이트 단위).
- path: 서브디렉토리 이름에 대응하는 문자열 목록(마지막이 실제 파일 이름)
- length : 파일사이즈(바이트 단위)(1개의 파일이 공유되고 있는 경우에만)
- name: 파일이 저장되는 파일 이름(1개의 파일인 경우) 또는 파일이 저장되는 디렉토리 이름(1개의 파일인 경우)을 지정합니다.
- piece length : 1개당 바이트 수이것은 보통 2KiB8 = 256KiB = 262,196B입니다.
- pieces: 해시 리스트, 즉 각 피스의 SHA-1 해시의 연결입니다.SHA-1은 160비트의 해시를 반환하므로 길이가 20바이트의 배수인 문자열이 됩니다.Torrent에 여러 파일이 포함되어 있는 경우 filesdictionary에 표시되는 순서대로 파일을 연결하여 조각을 형성합니다(즉, Torrent의 모든 조각은 마지막 조각을 제외한 전체 조각 길이이며, 더 짧을 수 있습니다).
- files: 1개의 파일에 각각 대응하는 사전의 리스트(복수의 파일이 공유되고 있는 경우만).각 사전에는 다음 키가 있습니다.
이진 데이터를 포함하는 조각을 제외한 모든 문자열은 UTF-8로 인코딩되어야 합니다.
토렌트는 정보 사전의 내용을 벤코드 형식으로 계산한 SHA-1 해시인 infohash에 의해 고유하게 식별됩니다.토렌트의 다른 부분에 대한 변경은 해시에 영향을 주지 않습니다.이 해시는 DHT 및 트래커를 통해 다른 피어에 대한 토렌트를 식별하기 위해 사용됩니다.자석 링크에도 사용됩니다.
내선번호
Torrent 파일에는 BitTorrent [2]사양의 확장자로 정의된 추가 메타데이터가 포함될 수도 있습니다.이들은 '비트토렌트 확장 제안'으로 알려져 있습니다.이러한 제안의 예로는 누가 언제 토렌트를 작성했는지 기술하기 위한 메타데이터가 있습니다.
드래프트 확장자
이러한 확장은 표준화를 검토하고 있습니다.대부분은 이미 사실상의 표준으로 널리 채택되고 있다.
분산 해시 테이블
BEP-0005는[3] 분산 해시 테이블을 지원하도록 BitTorrent를 확장합니다.
추적기 없는 토렌트 사전에는 알림 키가 없습니다.대신 트래커리스 토렌트에는 노드 키가 있습니다.
{ # ... '실패': [["<호스트>", <포트>], ["<호스트>", <포트>], ...], # ... }
예를들면,
'실패': [["127.0.0.1", 6881], ["your.vp.node", 4804]],
사양에서는 노드를 Torrent 생성 클라이언트의 라우팅 테이블에서 가장 가까운 K노드로 설정할 것을 권장합니다.또는 키를 토렌트를 생성하는 사람이 조작하는 것과 같은 알려진 양호한 노드로 설정할 수 있습니다."
멀티 트래커
BEP-0012는[4] BitTorrent를 확장하여 여러 트래커를 지원합니다.
새로운 키인 announce-list가 최상위 딕셔너리에 배치됩니다(즉, announce와 info 포함).
{ # ... '목록': [['<param1-url>']['<param2-url>']], # ... }
HTTP 시드
BEP-0017은[5] BitTorrent를 확장하여 HTTP 시드(나중에 HTTPS를 포함한 「Web 시드」라고 불립니다)를 서포트합니다.
새로운 키 httpseeds가 최상위 목록(예: 방송 및 정보 포함)에 배치됩니다.이 키의 값은 토렌트 데이터를 검색할 수 있는 웹 주소 목록입니다.
{ # ... '시드': [http://www.site1.com/source1.php', http://www.site2.com/source2.php'], # ... }
이 기능은 소프트웨어 다운로드를 제공하는 오픈소스 프로젝트에서 매우 일반적으로 사용됩니다.웹 시드를 사용하면 클라이언트에 의해 미러 사이트(P2P 또는 HTTP(S))를 스마트하게 선택하고 동시에 사용할 수 있습니다.이를 통해 다운로드 속도를 최대화하면서 프로젝트 서버의 부하를 줄일 수 있습니다.MirrorBrain [de 는 웹 시드를 사용하여 자동으로 토렌트를 생성합니다.
사설 급류
BEP-0027은[6] BitTorrent를 확장하여 프라이빗 토렌트를 지원합니다.
새로운 키(개인 키)가 정보 사전에 배치됩니다.토렌트가 개인일 경우 이 키의 값은 1입니다.
{ # ... 'info: { # ... '프라이빗': 1, # ... }, # ... }
사설 토크는 사설 트래커와 함께 사용해야 합니다.이러한 트래커는 피어 IP를 확인하여 추적하는 토렌트에 대한 액세스를 제한하고 IP를 알 수 없는 경우 피어 목록 제공을 거부합니다.피어 자체는 보통 게이트된 온라인 커뮤니티를 통해 트래커에 등록됩니다.프라이빗 트래커는 일반적으로 커뮤니티에서 사용하기 위해 데이터 전송 통계도 보관합니다.
집중형 제어를 유지하기 위해 DHT, PeX 등의 분산형 메서드는 비활성화됩니다.개인 토렌트는 수동으로 편집하여 개인 플래그를 제거할 수 있지만 이렇게 하면 정보 해시가 변경되어 별도의 피어 "swarm"이 형성됩니다.한편, 트래커 리스트를 변경해도 해시는 변경되지 않습니다.그 깃발은 진정한 사생활을 제공하지 않고, 대신 신사협정으로 작동한다.
머클나무
BEP-0030은[7] BitTorrent를 확장하여 Merkle 트리를 지원합니다.목적은 Torrent 파일의 파일 크기를 줄여 Torrent 파일을 제공하는 파일의 부담을 줄이는 것입니다.
Merkle 트리를 사용하는 Torrent 파일에는 정보 목록에 조각 키가 없습니다.대신 이러한 토렌트 파일에는 정보 목록에 root_hash 키가 있습니다.이 키의 값은 Merkle 해시의 루트 해시입니다.
{ # ... 'info: { # ... '루트 해시': <바이너리 SHA1 해시>, # ... }, # ... }
예
단일 파일
파일 debian-503-amd64-CD-1.iso(표준 크기는 678 301 696바이트)에 대한 디벤코드된 토렌트 파일(조각 길이 256KiB = 262,196바이트)은 다음과 같습니다.
{ '실패': http://bttracker.debian.org:6969/announce', 'info: { '길이: 678301696, 이름: 'debian-503-amd64-CD-1.iso', '피스 길이': 262144, '조각': <바이너리 SHA1 해시> } }
: 이 부분은 51KiB 값입니다( ( e e h t {} \{ { \ {} { \ \ 160 ) 。
다중 파일
111.txt 및 222.txt 두 파일에 대해 디벤코드된 토렌트 파일('piece length' 256KiB = 262144 B)은 다음과 같습니다.
{ '실패': http://tracker.site1.com/announce', 'info: { '파일': [ {'길이: 111, '경로: ['1902.txt']}, {'길이: 222, '경로: ['222.txt']} ], 이름: 'directoryName', '피스 길이': 262144, '조각': <바이너리 SHA1 해시> } }
「 」를 참조해 주세요.
레퍼런스
- ^ a b "BEP-0003: The BitTorrent Protocol Specification". Bittorrent.org. Archived from the original on 2019-07-26. Retrieved 2009-10-22.
- ^ "BEP-0000: Index of BitTorrent Enhancement Proposals". Bittorrent.org. Archived from the original on 2010-02-11. Retrieved 2009-10-22.
- ^ "BEP-0005: DHT Protocol". Bittorrent.org. Archived from the original on 2010-02-13. Retrieved 2009-10-22.
- ^ "BEP-0012: Multitracker Metadata Extension". Bittorrent.org. Archived from the original on 2012-12-27. Retrieved 2009-10-22.
- ^ "BEP-0017: HTTP Seeding". Bittorrent.org. Archived from the original on 2013-12-13. Retrieved 2009-10-22.
- ^ "BEP-0027: Private Torrents". Bittorrent.org. Archived from the original on 2013-03-24. Retrieved 2009-10-22.
- ^ "BEP-0030: Merkle hash torrent extension". Bittorrent.org. Archived from the original on 2009-09-14. Retrieved 2009-10-22.