Magnet URI 방식

Magnet URI scheme
해적만에서 사용되는 둥근 자석 아이콘

MagnetURI 스킴으로, 파일(URN)의 내용에 따라 파일(URN)을 식별하기 위한 사실상의 표준인 자석 링크의 형식을 위치가 아닌 암호화 해시 값으로 정의합니다.

마그넷 링크는 여러 컨텍스트에서 사용할 수 있지만 지속적으로 사용 가능한 호스트를 필요로 하지 않고 리소스를 참조할 수 있으며 파일을 이미 가지고 있는 모든 사용자가 생성할 수 있기 때문에 피어 피어 파일 공유 네트워크에서 특히 유용합니다.이를 통해 파일 공유 커뮤니티 내에서 "보증된" 검색어로 사용할 수 있습니다.이 경우 링크에 의해 검색된 리소스가 검색 방법에 관계없이 의도된 것임을 누구나 확인할 수 있습니다.

역사

Magnet URI의 표준은 2002년에 Bitzi에 의해 개발되었으며, 부분적으로 "벤더 및 프로젝트 중립적인 일반화"로서ed2k:그리고.freenet: 각각 eDonkey2000Freenet에서 사용되는 URI 스킴과 가능한 한 공식 IETFURI 표준을 준수하려고 합니다.BitTorrent는btmh:BitTorrent v2 [1]변경의 일환으로 2020년에 프로토콜을 도입할 예정입니다.

포맷

마그넷 URI는 1개 이상의 파라미터로 구성되어 있습니다.이 파라미터의 순서는 중요하지 않습니다.이 파라미터는 보통 HTTP URL을 종단하는 쿼리 문자열과 같은 형식입니다.

다음 파라미터가 지원됩니다.[2][3]

파라미터 이름. 묘사
xt 정확한 토픽 파일 해시를 포함하는 URN.이것은 마그넷 링크에서 가장 중요한 부분으로 지정된 파일을 찾고 확인하는 데 사용됩니다.URN은 프로토콜에 고유하므로 btih(BitTorrent) 아래의 파일 해시 URN은 ed2k의 파일 해시 URN과는 완전히 다릅니다.
xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
dn 표시명 편의를 위해 사용자에게 표시하는 파일 이름.
tr 주소 추적기 트래커 URL. DHT 지원 [3]없이 BitTorrent 다운로드를 위한 리소스를 얻기 위해 사용됩니다.값은 URL 인코딩이어야 합니다.
tr=http%3A%2F%2Fexample.org%2Fannounce
ws 웹 시드 HTTP(S)를 통해 제공되는 페이로드 데이터
~하듯이[필요한 건] 허용 가능한 소스 웹 서버에서 직접 다운로드하는 것을 나타냅니다.클라이언트가 지원되는 P2P 네트워크에서 링크된 파일을 찾거나 다운로드할 수 없는 경우의 폴백 소스로만 간주됩니다.
as=[web link to file(URL encoded)]
xs[필요한 건] eXact 소스 Magnet 링크가 가리키는 파일의 HTTP(또는 HTTPS, FTP, FTPS 등) 다운로드 소스, 파일의 P2P 소스 주소 또는 허브 주소(DC+의 경우) 중 하나.이것에 의해, 클라이언트는 파일 및/또는 그 소스를 직접 접속하려고 합니다.이 필드는 일반적으로 P2P 클라이언트가 소스를 저장하기 위해 사용하며 파일 해시를 포함할 수 있습니다.
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
kt[필요한 건] 키워드 토픽 특정 파일이 아닌 P2P 네트워크에서 검색할 검색 키워드 문자열을 지정합니다.
kt=martin+luther+king+mp3
할 수 있다[필요한 건] 매니페스트 토픽 Magneto 목록을 포함하는 메타파일에 대한 링크(MAGMA – MAGnet MANifest). 즉, 링크 목록에 대한 링크입니다.
mt=http://example.org/all-my-favorites.rss
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ

또한 이 표준은 "x"[citation needed]로 시작해야 하는 애플리케이션별 실험 매개변수를 허용합니다.

정확한 토픽(xt)

xt 파라미터는 특정 p2p 프로토콜의 URN을 지정합니다.그 목적은 토렌트에 대한 메타데이터를 찾기 위한 검색 매개 변수를 제공하는 것입니다.이는 실질적으로 토렌트 메타데이터를 포함하는 .torrent 파일을 대체하는 역할을 하며 대신 (URN을 사용하여) p2p 네트워크에서 해당 메타데이터를 검색합니다.각 프로토콜은 URN을 고유하게 처리합니다. 예를 들어 다음과 같습니다.xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8는 btih(BitTorrent v1 프로토콜)를 사용하기 때문에 BitTorrent 클라이언트는 해시를 가져와 BitTorrent DHT에서 [4]토렌트의 메타데이터를 검색할 수 있습니다.DHT의 경우 클라이언트는 미리 알려진 노드 세트를 검색하여 메타데이터에 infohash를 요구합니다.이러한 노드는 최종적으로 무리가 발견되어 반환될 때까지 다른 알려진 노드에 동일한 요청을 합니다.

xt에서는 그룹 설정도 가능합니다.각 링크 [citation needed]파라미터에 도트("") 앞에 카운트 번호를 추가하면 여러 파일을 포함할 수 있습니다.

magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
타이거 트리 해시(TTH)
이러한 해시는 Direct Connect 및 G2(Gnutella2) 등에서 사용됩니다.
xt=urn:tree:tiger:[ TTH Hash (Base32) ]
Secure Hash Algorithm 1(SHA-1)
이러한 해시 합계는 gnutellaG2(Gnutella2)에서 사용됩니다.
xt=urn:sha1:[ SHA-1 Hash (Base32) ]
비트 프린트
이러한 해시합은 SHA-1 해시, 그 다음에 포인트로 구분된TH 해시로 구성됩니다.이 해시합은 gnutellaG2(Gnutella2)에서 사용됩니다.
xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]
ED2K(eDonkey2000) 해시
이러한 해시합계는 eDonkey2000에서 사용됩니다.
xt=urn:ed2k:[ ED2K Hash (Hex) ]
AICH(Advanced Intelligent Corruption Handler)
Magnet 링크의 정식 URN이 아닌 이러한 해시합계는 다운로드 및 이미 다운로드된 파일의 무결성을 복원 및 제어하기 위해 eDonkey2000에서 사용됩니다.
xt=urn:aich:[ aich Hash (Base32) ]
카자 해시
FastTrack에서 사용되는 이러한 해시 합계는 해시 충돌 공격에 취약합니다.
xt=urn:kzhash:[ Kazaa Hash (Hex) ]
BitTorrent 정보 해시(BTIH)
이는 BitTorrent 메타파일의 "info" 섹션의 16진 부호화된 SHA-1 해시 합계로, BitTorrent가 다운로드 가능한 파일 또는 파일 세트를 식별하기 위해 사용합니다.기존 링크와의 하위 호환성을 위해 클라이언트는 Base32 인코딩 버전의 [3]해시도 지원해야 합니다.
xt=urn:btih:[ BitTorrent Info Hash (Hex) ]

일부 클라이언트는 info_hash의 Base32(Vuze 등)를 필요로 합니다.

Message Digest 5(MD5)
G2(Gnutella2)에서 지원되는 이러한 해시는 해시 충돌 공격에 취약합니다.
xt=urn:md5:[ MD5 Hash (Hex) ]

파일에 대한 웹 링크

Magnet 링크에는 직접 소스 또는 백업 소스로 포함할 수 있는 두 가지 다운로드 링크가 있습니다.

"as" ("허용 가능한 소스")
대부분의 클라이언트는 우선순위에 관한 한 "as"를 "xs" 토큰과 동일하게 취급하며 사양에 따라 "as" 소스에 문의하기 전에 타임아웃을 무시합니다.
콘텐츠 주소 지정 가능 웹 URL
이런 타입의 RFC2168 기반의 링크는 G2 [5]어플리케이션뿐만 아니라 gnutella 어플리케이션에서도 사용됩니다.
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
DirectConnect 허브에 링크하여 파일 소스 검색
이 유형의 링크는 DirectConnect 클라이언트를 문제의 허브에 즉시 연결합니다.
xs=dchub://[hub address]:[hub port]
Gnutella2의 파일에 대한 웹 기반 소스 캐시 참조
이 경우 포함된 링크 포인트는 클라이언트 IP 또는 직접 소스가 아니라 동일한 파일을 다운로드하기 위해 접속하는 다른 클라이언트의 IP를 저장하는 소스 캐시입니다.클라이언트가 캐시에 접속하면, 그 클라이언트는 대체 송신원용의 IP 를 제공받으면서, 자신의 IP 는 캐시에 보존되어 캐시에 접속하고 있는 다음의 IP 에 전송 됩니다.이 시스템은 BitTorrent Tracker와 유사하게 작동합니다.
xs=http://cache.freebase.be/[ SHA-1 hash ]
eD2k 소스 참조
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

보충 형식(x)

실험적이고 자기 만족적인 비공식 옵션의 경우 접두사는 다음과 같습니다.x.이어서 선택한 접미사 문자를 사용할 수 있습니다.이러한 이름은 결코 표준화되지 않을 것을 보증합니다.

x.[name of the new parameter]=[data of the new parameter (URL encoded)][필요한 건]

클라이언트

고객 dn xl xt tr xs ~하듯이 kt 할 수 있다 ws
AMULE 네. 네. urn:ed2k: 아니요. 불명 불명 불명 불명 불명
Apex DC++ 네. 네. urn:bitprint:
urn:tree:tiger:
아니요. dchub:[Note 1] dchub:[Note 1] 아니요. 아니요. 불명
비트코메트 네. 네. urn:btih: 네. 네.1.76 아니요. 아니요. 아니요. 네.1.74[6]
비트플루 네. 아니요. urn:btih: 네. 아니요. 아니요. 아니요. 아니요. 불명
홍수 네. 아니요. urn:btih: 네. 아니요. 아니요. 아니요. 아니요. 불명
Eiskalt DC++ 네. 네. urn:tree:tiger:
urn:bitprint:
urn:btih:[주2]
urn:btmh:[주2]
아니요. dchub:[Note 1]
adc:[Note 3]
adcs:[Note 4]
dchub:[Note 1] 네. 아니요. 불명
Flylink DC++ 네. 네. urn:tree:tiger:
urn:bitprint:
urn:btih:
아니요. dchub:[Note 1]
adc:[Note 3]
adcs:[Note 4]
dchub:[Note 1] 네. 아니요. 불명
gtk-gnutella 네. 네. urn:sha1: 아니요. http:
푸시:
네. 네. 아니요. 불명
KTorent 네. 아니요. urn:btih: 네. 아니요. 아니요. 아니요. 아니요. 불명
라임와이어 네. 네. urn:sha1: 아니요. http:
urn: 삭제:
불명 아니요. 아니요. 불명
모노토렌트 네. 네. urn:btih: 네. 아니요. 네. 아니요. 아니요. 불명
μ토렌트 네. 아니요. urn:btih: 네. 아니요. 아니요. 아니요. 아니요. 불명
비트렌트 네. 아니요. urn:btih: 네. 불명 불명 아니요. 아니요. 불명
샤레아자 네. 네. urn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
네, 그렇습니다[Note 5]. http:
ftp:
http:
ftp:
(xs와 같은 우선순위)
네. 아니요. 불명
틱사티 네. 네. urn:btih: 네. 네. 네. 불명 불명 네.
전송[2][7] 네. 아니요. urn:btih: 네. 아니요. 아니요. 아니요. 아니요. 네, 그렇습니다[8].
부제 네. 네. urn:btih:
urn:sha1:
네. 네.5.7.5.0 네.5.7.5.0 아니요. 아니요. 네.

「 」를 참조해 주세요.

설명 메모

  1. ^ a b c d e f dchub://[filename address]:[filenameport]
  2. ^ a b 외부 소프트웨어에 링크를 전달합니다.
  3. ^ a b adc://[address]:[address]
  4. ^ a b adcs://[filename address]:[filenameport]
  5. ^ v2.5.1.0 이후

레퍼런스

  1. ^ "BitTorrent v2". BitTorrent. Archived from the original on 30 October 2020. Retrieved 7 September 2020.
  2. ^ a b "magnet-test.c in trunk/libtransmission; Revision 9531". Transmission. Archived from the original on 2012-02-17. Retrieved 2012-02-04.
  3. ^ a b c "bep_0009.rst_post". bittorrent.org. Archived from the original on 2016-05-10. Retrieved 2012-02-13.
  4. ^ "bep_0005.rst_post". bittorrent.org. Retrieved 2022-05-12.
  5. ^ Chapweske, Justin (November 29, 2001). "HTTP Extensions for a Content-Addressable Web". www-talk. W3C. Archived from the original on July 28, 2011. Retrieved November 7, 2010.
  6. ^ "v1.74 Core Improve: support ws parameter in Magnet URI, to add web seed". bitcomet. bitcomet. Archived from the original on 2021-04-10. Retrieved 2021-04-07.
  7. ^ "magnet.c in trunk/libtransmission; Revision 9979". Transmission. Archived from the original on 2012-02-17. Retrieved 2012-02-04.
  8. ^ "magnet.c in libtransmission: Commit 5c3fd1b5ccc3a8c4ab68e2c56861df31dd1c720a". Transmission. Archived from the original on 2021-09-04. Retrieved 2021-09-04.

외부 링크

  • 포맷의 초기 정의인 SourceForge의 Magnet-URI 프로젝트(최종 업데이트 2002)
  • CHK Freeware 체크섬 유틸리티(SHA1-Base32 및 ED2K 지원)
  • 자석 링크를 계산할 수 있는 오픈 소스 명령줄 도구인 SourceForgeRHash