最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Peer ID Conventions 節(jié)點(diǎn)標(biāo)識協(xié)議

2023-06-19 11:07 作者:IMFile  | 我要投稿

概述

傳統(tǒng)上,在 BitTorrent 網(wǎng)絡(luò)中,20 字節(jié)的 Peer ID 字段用于標(biāo)識客戶端,并且通常包含了客戶端實現(xiàn)和版本號等信息。這個字段會在 tracker 請求和 peer 握手中發(fā)送,用來告訴其他節(jié)點(diǎn)和 Tracker 自己是哪個客戶端、版本號是多少。

在一個點(diǎn)對點(diǎn)網(wǎng)絡(luò)中,主線客戶端會將 peer-id 的第一個字符設(shè)置為 M,后面緊跟著使用 ascii 數(shù)字來表示版本號,其中 major 、 minor 和 tiny 版本以破折號分隔。例如,版本號為 4.3.6 和 4.20.8 的 peer-id 可能分別為?M4-3-6–?和?M4-20-8-?。 peer-id 其余的字節(jié)是隨機(jī)的。這個列表最初來源于?BitTorrentSpecification?。

Peer id 是一個唯一的標(biāo)識符,用于標(biāo)識特定的 BitTorrent 客戶端實現(xiàn)和版本。在這種情況下,peer id 以連字符 “-” 開頭,后跟兩個字符來標(biāo)識客戶端實現(xiàn),接著是四個 ascii 數(shù)字來表示版本號,然后再有一個連字符 “-” 。與主線(Mainline)類似,剩余的字節(jié)是隨機(jī)的。 例如,”-AZ2060-“ 就是這樣一個 peer id 的例子。

已知采用此類編碼風(fēng)格的客戶端有:

'AG' - Ares 'A~' - Ares 'AR' - Arctic 'AV' - Avicora 'AX' - BitPump 'AZ' - Azureus 'BB' - BitBuddy 'BC' - BitComet 'BF' - Bitflu 'BG' - BTG (uses Rasterbar libtorrent) 'BR' - BitRocket 'BS' - BTSlave 'BX' - ~Bittorrent X 'CD' - Enhanced CTorrent 'CT' - CTorrent 'DE' - DelugeTorrent 'DP' - Propagate Data Client 'EB' - EBit 'ES' - electric sheep 'FT' - FoxTorrent 'FW' - FrostWire 'FX' - Freebox BitTorrent 'GS' - GSTorrent 'HL' - Halite 'HN' - Hydranode 'KG' - KGet 'KT' - KTorrent 'LH' - LH-ABC 'LP' - Lphant 'LT' - libtorrent 'lt' - libTorrent 'LW' - LimeWire 'MO' - MonoTorrent 'MP' - MooPolice 'MR' - Miro 'MT' - MoonlightTorrent 'NX' - Net Transport 'PD' - Pando 'qB' - qBittorrent 'QD' - QQDownload 'QT' - Qt 4 Torrent example 'RT' - Retriever 'S~' - Shareaza alpha/beta 'SB' - ~Swiftbit 'SS' - SwarmScope 'ST' - SymTorrent 'st' - sharktorrent 'SZ' - Shareaza 'TN' - TorrentDotNET 'TR' - Transmission 'TS' - Torrentstorm 'TT' - TuoTu 'UL' - uLeecher! 'UT' - μTorrent 'UW' - μTorrent Web 'VG' - Vagaa 'WD' - WebTorrent Desktop 'WT' - BitLet 'WW' - WebTorrent 'WY' - FireTorrent 'XL' - Xunlei 'XT' - XanTorrent 'XX' - Xtorrent 'ZT' - ZipTorrent

在使用 BitTornado 和其實驗性 BitTorrent 實現(xiàn)時,引入了以一個字符開頭的節(jié)點(diǎn) ID,該字符在 BitTornado 中為 “T”,然后是最多五個 ASCII 字符的版本號,如果不足五個字符,則用破折號填充,最后是三個連字符(—)。

版本號中表示版本的 ASCII 字符僅限于以下字符:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-

例如 ‘S58B—–‘… 指代 5.8.11

和其他節(jié)點(diǎn)標(biāo)識格式一樣,剩余的字節(jié)是隨機(jī)的。已知采用此類編碼風(fēng)格的客戶端有:

'A' - ABC 'O' - Osprey Permaseed 'Q' - BTQueue 'R' - Tribler 'S' - Shadow's client 'T' - BitTornado 'U' - UPnP NAT Bit Torrent

BitComet 和 BitLord 生成節(jié)點(diǎn) ID 的方法。節(jié)點(diǎn) ID 是用于標(biāo)識一個 BitTorrent 客戶端的唯一 ID 。在 BitComet 中,節(jié)點(diǎn) ID 由四個 ASCII 字符 “exbc” 、兩個字節(jié) “x” 和 “y” 以及隨機(jī)字符組成。版本號是小數(shù)點(diǎn)前的 “x”,小數(shù)點(diǎn)后的數(shù)字是 “y” 。 BitLord 使用相同的方案,并在版本字節(jié)后添加 “LORD” 。不過,BitComet 的一個非官方補(bǔ)丁曾經(jīng)用 “FUTB” 代替了 “exbc” 。從 BitComet 版本 0.59 開始,節(jié)點(diǎn) ID 的編碼方式改為 Azureus 風(fēng)格。

XBT Client 的特定格式,其 peer_id 由三個大寫字符 XBT 和三個 ASCII 數(shù)字表示的版本號組成。如果客戶端是調(diào)試構(gòu)建,則第七個字節(jié)是小寫字符 d;否則是一個橫杠 -。之后是一個橫杠 -,然后是隨機(jī)數(shù)字、大寫字母和小寫字母。例如,XBT054d- 開頭表示的是版本為 0.5.4 的調(diào)試構(gòu)建。

Opera 8 預(yù)覽版和 Opera 9.x 發(fā)行版所使用的 peer_id 方案命名規(guī)則是:前兩個字符是 OP,接下來的四個數(shù)字等于構(gòu)建版本號。所有后續(xù)字符都是隨機(jī)的小寫十六進(jìn)制數(shù)字。因此,一個典型的 peer_id 看起來可能是類似于 “OP1234abcdefg” 的字符串,其中 “1234” 代表構(gòu)建版本號,而 “abcdefg” 則代表隨機(jī)的小寫十六進(jìn)制數(shù)字。簡單來說,peer_id 是 Opera 瀏覽器用于標(biāo)識自己的一種命名方式,其中包括了構(gòu)建版本號和隨機(jī)生成的十六進(jìn)制數(shù)字。

MLdonkey 使用的 peer_id 方案的命名規(guī)則是:以 “-ML” 開頭,后面跟著一個帶有小數(shù)點(diǎn)的版本號,然后是一個短橫線 “-“,最后是一些隨機(jī)字符。例如,”-ML2.7.2-kgjjfkd” 中,”2.7.2″ 是版本號,”kgjjfkd” 是隨機(jī)字符。

Bits on Wheels 使用的 peer_id 方案的命名規(guī)則是:以 “-BOW” 開頭,后面跟著三個字符 xxx 表示版本號相關(guān)信息,然后是一個短橫線 “-“,最后是一些隨機(jī)的大寫字母 y 組成的字符串。而對于版本號為 1.0.6 的 Bits on Wheels 客戶端,其 xxx 值為 A0C 。

Queen Bee 使用的 peer_id 方案的命名規(guī)則是:以 “Q1-” 開頭,后面跟著兩個數(shù)字表示版本號,然后是一個或兩個短橫線 “-“,最后是一些隨機(jī)字符。對于 Queen Bee 客戶端來說,可能會有兩種版本號:Q1-0-0– 和 Q1-10-0-,隨后是隨機(jī)生成的字節(jié)。

BitTyrant 在其 1.1 版本中所使用的 peer_id 方案。實際上,BitTyrant 是 Azureus 的一個分支,并且它的 peer_id 命名基本上是 Azureus 的命名方式加上一些額外的隨機(jī)字符。具體來說,BitTyrant 在其 1.1 版本中使用 “AZ2500BT” 作為前綴,后面緊跟一些隨機(jī)生成的字節(jié),而與其他的幾種命名方案不同的是,BitTyrant 的命名中沒有橫線。

TorrenTopia 1.90 版本通過在網(wǎng)上與其他客戶端進(jìn)行通信時自稱為 “Mainline 3.4.6”,并使用以 “346——” 開頭的節(jié)點(diǎn) ID 。

BitSpirit 使用幾種不同的模式來生成節(jié)點(diǎn) ID 。在其中一種模式中,它會讀取對方的 ID,并以對方 ID 的前 8 個字節(jié)為基礎(chǔ)重新連接。它的真實 ID 似乎在版本 3.x 中使用?\0\3BS(C 表示法)作為前 4 個字節(jié),在版本 2.x 中使用?\0\2BS?。在所有模式下,ID 可能以 UDP0 結(jié)尾。

Rufus 使用其版本號作為前兩個字節(jié)的十進(jìn)制 ASCII 值。第三個和第四個字節(jié)是 RS 。隨后是用戶的昵稱和一些隨機(jī)字節(jié)。

G3 Torrent 的用戶 ID 以?-G3?開始,并添加用戶昵稱的最多 9 個字符。

FlashGet 使用 Azureus 的風(fēng)格,但沒有尾隨的橫線。版本 1.82.1002 仍然使用版本數(shù)字 0180 。

AllPeers 采用了一種基于用戶相關(guān)字符串的 sha1 哈希值的方式來生成用戶 ID 。然后將哈希值的前幾個字符替換為 “AP” + 版本字符串 + “-“ 。

總結(jié)

BitTorrent Peer ID Conventions 是一個用于標(biāo)準(zhǔn)化 BitTorrent 客戶端生成和解析節(jié)點(diǎn) ID 的規(guī)范。在 BitTorrent 網(wǎng)絡(luò)中,每個客戶端都需要根據(jù)這個約定生成其自己的節(jié)點(diǎn) ID,并且能夠解析來自其他客戶端的節(jié)點(diǎn) ID 。通過遵循這個約定,可以確保不同的客戶端之間可以彼此識別,從而使它們能夠進(jìn)行有效的文件共享。

根據(jù)這個約定,一個標(biāo)準(zhǔn)的 BitTorrent 節(jié)點(diǎn) ID 應(yīng)該包括軟件名稱、版本號、隨機(jī)字符串和可選的擴(kuò)展信息等部分,具體格式如下:

  • 軟件名稱:2 個字節(jié) ASCII 字符表示的字符串,用于指示所使用的 BitTorrent 客戶端軟件名稱。

  • 版本號:4 個字節(jié) ASCII 字符表示的字符串,用于指示客戶端軟件的版本號。

  • 隨機(jī)字符串:20 個字節(jié)隨機(jī)生成的字符串,用于使每個節(jié)點(diǎn) ID 都是唯一的。

  • 擴(kuò)展信息:可選的 8 個字節(jié)長度的字符串,用于包含額外的元數(shù)據(jù)或標(biāo)識。

由于 BitTorrent Peer ID Conventions 是一個公認(rèn)的標(biāo)準(zhǔn),因此大多數(shù) BitTorrent 客戶端都遵循這個規(guī)范來生成和解析節(jié)點(diǎn) ID 。這有助于確保 BitTorrent 網(wǎng)絡(luò)中的互操作性和兼容性。

參考鏈接

  • http://www.bittorrent.org/beps/bep_0020.html

  • https://wiki.theory.org/BitTorrentSpecification


Peer ID Conventions 節(jié)點(diǎn)標(biāo)識協(xié)議的評論 (共 條)

分享到微博請遵守國家法律
高邑县| 虞城县| 海伦市| 会泽县| 扶风县| 绍兴县| 岢岚县| 南阳市| 扶沟县| 胶州市| 潍坊市| 原阳县| 丰县| 邢台县| 辛集市| 霍邱县| 长葛市| 灌云县| 房产| 泊头市| 五大连池市| 海盐县| 扎赉特旗| 菏泽市| 图们市| 揭东县| 铜鼓县| 朝阳县| 柳河县| 娄烦县| 无极县| 连江县| 五家渠市| 永顺县| 玉田县| 柳林县| 隆德县| 商南县| 岑巩县| 濮阳县| 金乡县|