BitTorrent
(л?тар.
англ.
:
≪б?тавая плынь≫) ? п?рынгавы (
P2P
)
сеткавы пратакол
для кааператы?нага абмену
файлам?
праз
сец?ва
.
Файлы перадаюцца часткам?, кожны torrent-
кл?ент
, як? атрымл?вае (спампо?вае) гэтыя частк?, адначасова аддае (запампо?вае) ?х ?ншым кл?ентам, што зн?жае нагрузку ? залежнасць ад кожнага кл?ента-крын?цы ? забяспечвае надмер ?нфармацы?.
Пратакол бы? створаны Брэмам Коэнам, як? нап?са? першы torrent-кл?ент ≪
BitTorrent
≫ на мове
Python
4 красав?ка
2001
года. Запуск першай верс?? адбы?ся
2 л?пеня
2001
года.
?снуе шмат ?ншых
BitTorrent кл?ента?
для абмену файлам? па пратаколе BitTorrent.
Файл метаданых з’я?ляецца сло?н?кам у фармаце bencode з пашырэннем .torrent. Змяшчае наступную ?нфармацыю:
- URL
трэкера;
- агульную ?нфармацыю пра файлы (назва, памер ? ?нш.) у гэтай раздачы;
- кантрольныя сумы (SHA1) кавалка? файла? у раздачы;
- Passkey карыстальн?ка, кал? ён зарэг?страваны на гэтым трэкеры. Да?жыня ключа вызначаецца трэкерам;
- (неабавязкова) кантрольныя сумы цэлых файла?;
- (неабавязкова) альтэрнаты?ныя крын?цы, што працуюць не па пратаколе BitTorrent. Найбольшы распа?сюд маюць так званыя web-с?ды (пратакол HTTP), але таксама могуць быць ftp, ed2k, magnet URI.
Перад пачаткам спампо?вання кл?ент падключаецца да трэкера па адрасе, пазначаным ? торэнт-файле, паведамляе яму свой адрас ? хэш-суму торэнт-файла, на што ? адказ кл?ент атрымл?вае адрасы ?ншых кл?ента?, што спампо?ваюць або раздаюць гэты ж файл. Далей кл?ент перыядычна ?нфармуе трэкер аб ходзе працэсу ? атрымл?вае абно?лены сп?с адрасо?. Гэты працэс завецца абвяшчэннем (анг. announce).
Кл?енты злучаюцца адз?н з адным ? абменьваюцца кавалкам? файла? без непасрэднага ?дзелу трэкера, як? тольк? захо?вае ?нфармацыю, атрыманую ад падключаных да абмену кл?ента?, сп?с сам?х кл?ента? ? ?ншую статыстычную ?нфармацыю. Для эфекты?най працы сетк? BitTorrent неабходна, каб як мага больш кл?ента? был? здольныя прымаць уваходныя злучэнн?. Няправ?льна наладжаны
NAT
або брандма?эр могуць гэтаму перашкодз?ць.
Пры падключэнн? кл?енты адразу абменьваюцца ?нфармацыяй пра ная?ныя ? ?х кавалк?. Кл?ент, як? хоча спампаваць кавалак (л?ч), дасылае запыт ?, кал? друг? кл?ент гатовы аддаваць, атрымл?вае гэты кавалак. Пасля гэтага кл?ент правярае кантрольную суму кавалка. Кал? яна супала з той, што зап?сана ? торэнт-файле, то кавалак л?чыцца паспяхова спампаваным, ? кл?ент паведамляе ?с?м падключаным п?рам пра ная?насць ? яго гэтага кавалка. Кал? ж кантрольныя сумы адрозн?ваюцца, то кавалак пачынае спампо?вацца ?зно?. Некаторыя кл?енты блак?руюць п?ры, як?я дужа часта аддаюць некарэктныя кавалк?.
Так?м чынам, аб'ём службовай ?нфармацы? (памер торэнт-файла ? памер паведамлення? са сп?сам кавалка?) непасрэдна залежыць ад колькасц?, а значыць, ? памеру кавалка?. Таму пры выбары кавалка неабходна вытрымл?ваць баланс: з аднаго боку, пры вял?к?м памеры кавалка аб'ём службовай ?нфармацы? будзе менш, але ? выпадку памылк? праверк? кантрольнай сумы кл?ент мус?ць спампо?ваць нанава больш ?нфармацы?. З ?ншага боку, пры малым памеры памылк? не вельм? важныя, бо неабходна зно? спампо?ваць меншы аб'ём, але затое памер торэнт-файла ? паведамлення? пра ная?ныя кавалк? роб?цца большым.
Пасля атрымання по?нага файла кл?ент пераходз?ць у ?ншы рэжым працы, у як?м ён тольк? аддае змесц?ва раздачы (роб?цца с?дам). Далей с?д перыядычна ?нфармуе трэкер пра змены стану торэнта? (спамповак) ? абна?ляе сп?сы IP-адрасо?.
- Адсутнасць чэрга? на спампо?ванне.
- Файлы спампо?ваюцца невял?к?м? кавалкам?; чым меней даступны кавалак, тым часцей ён будзе перадавацца. Так?м чынам, прысутнасць у сетцы с?да з по?ным файлам для спампо?вання неабавязкова ? с?стэма размяркуе кавалк? пам?ж п?рам?, каб далей яны магл? абменьвацца адсутным? кавалкам?.
- Кл?енты-п?ры абменьваюцца кавалкам? непасрэдна пам?ж сабой.
- Спампаваныя кавалк? адразу становяцца даступным? ?ншым кл?ентам.
- Кантралюецца цэльнасць кожнага кавалка.
- На кавалк? разб?ваюцца не асобныя файлы, а ?ся раздача цалкам, таму ? л?ча, як? пажада? спампаваць тольк? некаторыя файлы з раздачы, для падтрымк? суцэльнасц? кавалка? нярэдка будзе захо?вацца таксама невял?к? аб'ём надмернай для яго ?нфармацы?.
- У якасц? аб’екту раздачы могуць быць некальк? файла? (напрыклад, змесц?ва
каталога
).
Трэкер
(
англ.
:
tracker
;
/?træk?(r)/
) ? спецыял?заваны
сервер
, як? працуе па пратаколе
HTTP
. Трэкер патрэбны каб кл?енты магл? знайсц? адз?н аднаго. Фактычна, на трэкеры захо?ваюцца
IP-адрасы
, уваходныя порты кл?ента? ?
хэш-сумы
, як?я ун?кальным чынам ?дэнтыф?куюць аб’екты, што ?дзельн?чаюць у спампо?ках. Па стандарце, назвы файла? на трэкеры не захо?ваюцца, ? даведацца пра ?х па хэш-сумах нельга. Аднак на практыцы трэкер часта апрача сваёй асно?най функцы? выконвае ? функцыю невял?кага
вэб-сервера
. Так? сервер захо?вае файлы метаданых ? ап?санн? файла?, падае статыстыку спамповак па розных файлах, паказвае бягучую колькасць падключаных п?ра? ? ?нш.
Адным з варыянта? раздачы з’я?ляецца гэтак званая web-раздача. Часам на серверы з розных прычын нельга запусц?ць па?навартасны торэнт-кл?ент. У гэтым выпадку ? якасц? крын?цы раздачы выступае сервер, як? працуе па пратаколе HTTP. Звычайна, кл?енты аддаюць перавагу ?ншым BitTorrent кл?ентам ? звяртаюцца да web-с?да тольк? пры неабходнасц?.
- Недаступнасць раздачы. Гэта станов?шча, кал? няма н?воднага с?да, а прысутныя п?ры яшчэ не скончыл? спампо?ванне.
- Адсутнасць анан?мнасц?. Кожны кл?ент атрымл?вае ад сервера IP-адрасы ?ншых кл?ента?. Можна даведацца, хто раздае або спампо?вае нейк? файл.
- Адсутнасць персанал?зацы?. Карыстальн?к? не маюць мянушак, няма чату пам?ж п?рам?.
- Праблема л?ча?. Некаторыя карыстальн?к? не падтрымл?ваюць раздачу пасля завяршэння спампо?к?, што вядзе да зн?жэння агульнай прадукцыйнасц?.
- Адсутнасць дакладнага ?л?ку траф?ку. Арх?тэктура пратаколу не прадугледжвае дакладнага механ?зму ?л?ку ? кантролю траф?ка пам?ж пунктам? сетк?. Усё, што ёсць ? пал? downloaded ? uploaded, у як?х кл?енты перадаюць пры абвяшчэнн? трэкеру колькасць байт, ?л?чаных пры спампо?ванн?/раздачы змесц?ва з моманту папярэдняга абвяшчэння. Аднак не кантралюючыся н?к?м, апроч як кл?ентам, яны могуць быць лёгка падменены. Для гэтага карыстальн?к? статычна прап?сваюць значэнн? гэтых палё? у
URI
трэкера, карыстаюцца змененым? ц? асобным? праграмам?-кл?ентам? (RatioMaster, GiveMeTorrent, GreedyTorrent ? г.д.), альбо папросту выдаляюць з кл?ента зап?с аб трэкеры адразу ж пасля атрымання ад яго сп?су пункта? сетк?. Усё гэта дазваляе абыходз?ць штучныя абмежаванн?, як?я ствараюцца адм?н?страцыяй шматл?к?х прыватных ? публ?чных трэкера?.
- Абвяшчэнне
(
англ.
:
announce
) ? звяртанне кл?ента да трэкера праз
HTTP-GET
-запыт. Пры кожным абвяшчэнн? кл?ент перадае на трэкер ?нфармацыю пра аб'ёмы спампаванага ? аддадзенага ?м траф?ка, a трэкер перадае кл?енту сп?с адрасо? ?ншых кл?ента?. Зварот кл?ента да трэкера адбываецца праз пэ?ныя ?нтэрвалы часу, як?я вызначаюцца наладам? кл?ента ? трэкера.
- Вэб-с?д
?
HTTP
- або
FTP
-сервер, як? выкарысто?ваецца як крын?ца змесц?ва раздач, наро?н? са звычайным? с?дам?.
- Грэбл?вы
(
англ.
:
snubbed
) ? кл?ент, як? злучы?ся з атрымальн?кам, але не дасылае яму звестк? ?жо больш за 60 секунд.
- Гурт
(
англ.
:
swarm
) ? усе п?ры, што бяруць удзел у раздачы, разам.
- Даступнасць
(
англ.
:
availability
) ? колькасць по?ных коп?й файла, даступных кл?енту. Кожны с?д дадае 1,00 да гэтага л?ку; л?чы павял?чваюць даступнасць у залежнасц? ад колькасц? спампаванага, якога няма ? ?ншых л?ча?. Напрыклад, кал? на раздачы ёсць адз?н с?д ? два л?чы, як?я спампавал? па 50% файла (спампаваныя частк? ро?ныя пам?ж сабой), то даступнасць складзе 1,50.
- Заглухшы
(
англ.
:
choked
? заглухшы, здушаны) ? кл?ент, абмен звесткам? з як?м заглух. Або ягоны канал на выхад цалкам заб?ты ? ён не можа н?чога перадаць (дасягну? max_uploads), альбо ён
с?д
? яму н?чога не трэба атрымл?ваць.
- Зац?ка?лены
(
англ.
:
interested
) ? удзельн?к, як? жадае атрымаць кавалк? файла, ная?ныя ? ?ншага ?дзельн?ка. Напрыклад, кал? ? кл?ента А няма нейк?х частак, як?я ёсць у кл?ента Б, л?чыцца, што кл?ент А зац?ка?лены ? абмене з кл?ентам Б.
- ?ндэкс
(
англ.
:
index
) ? гэта сп?с файла? .torrent (ён звычайна ?ключае ап?санне ? ?ншую ?нфармацыю), як?м к?руе вэб-сайт (
?ндэксатар
), ? як? даступны для пошуку. Сайт, што ?ндэксуе, часта памылкова завуць трэкерам.
- Кавалак
(
англ.
:
piece
) ? усе файлы для перадачы дзеляцца на невял?к?я кавалк?, як?я затым перадаюцца па сетцы ? адвольнай паслядо?насц? для аптым?зацы? абмену.
- Кл?ент
(
англ.
:
client
) ? праграма, якая дазваляе раб?ць файлы агульным? праз пратакол BitTorrent. Прыкладам:
qBittorrent
,
Transmission
,
Vuze
.
- Л?ч
(
англ.
:
leech
? п’я?ка) ? п?р, як? не мае пакуль ?с?х кавалка?, то бок як? працягвае спампо?ку. Тэрм?н часта ?жываецца ? ? негаты?ным сэнсе, як? ён мае ? ?ншых файлаабменных сетках: карыстальн?к, як? аддае значна менш, як спампо?вае.
- Паскрэбц?ся
(
англ.
:
scrape
? скрэбц?ся) ? дзеянне, аналаг?чнае
абвяшчэнню
, але кл?ент запытвае тольк? статыстыку торэнта, ?нфармацыю пра падключаныя кл?енты ? магчымасць з ?м? звязацца для абмену.
- П?р
(
англ.
:
peer
? са?дзельн?к) ? кл?ент, як? ?дзельн?чае ? раздачы.
- Раздача
(
англ.
:
seeding
) ? працэс распа?сюджвання файла па пратаколе BitTorrent.
- С?д
(
англ.
:
seed
? сеяць) ? п?р, што мае ?се кавалк? файла з раздачы, то бок ён або пачатковы распа?сюдн?к файла, або ?жо спампава? увесь файл ? заста?ся на раздачы.
- Стасунак
(
англ.
:
share ratio
) ? стасунак аддадзенага ? спампаванага.
- Супер-раздача
(
англ.
:
super-seeding
) ? спецыяльны рэжым раздачы ? некаторых BitTorrent-кл?ентах. Спрабуе м?н?м?заваць колькасць звестак, як?я аддасць с?д перад з’я?леннем першага спампава?шага. Суперс?д прапануе кожнаму п?ру спампаваць тольк? адз?н кавалак файла, якога яшчэ няма ? ?ншых п?ра?. Затым с?д не дае гэтаму п?ру наступных кавалка?, пакуль не атрымае ад ?ншых п?ра? пацверджанне, што яны таксама атрымал? гэты кавалак. Так?м чынам, суперс?д ?мкнецца пазбегнуць па?торнага аддавання адных ? тых жа кавалка? ? аддаваць кавалк? тольк? тым п?рам, як?я акты?на перадаюць ?х ?ншым.
- Торэнт
(
англ.
:
torrent
) ? у залежнасц? ад кантэксту можа азначаць як .torrent-файл з метаданым?, так ? змесц?ва (файлы ? каталог?), якое ап?сваецца ? .torrent-файле.
- Трэкер
(
англ.
:
tracker
) ? сервер, як? каардынуе працу кл?ента? BitTorrent.
- Хэш
(
англ.
:
hash
) ?
SHA1
асобных кавалка? арыг?нальных файла?, перал?чаных ? сло?н?ку ≪info≫ .torrent-файла. Кожная частка пасля атрымання спачатку правяраецца на супадзенне хэшу. Кал? праверка не выйшла, ?нфармацыя адк?даецца ? запытваецца ?зно?. Таксама ? пратаколе выкарысто?ваецца хэш самога сло?н?ка ≪info≫ (≪?нфахэш≫), як? выступае ? рол? ?дэнтыф?катара канкрэтнай раздачы.
- URL трэкера
(
англ.
:
tracker URL
) ? адрас трэкера, якому кл?ент роб?ць абвяшчэнне.
- P2P, peer-to-peer
? азначае ≪ро?ны-ро?наму≫. Гэта тэхналог?я абмену файлам? праз сетку, пры якой кожны вузел (
камп’ютар
) дзейн?чае ? як кл?ент, ? як сервер. Так?м чынам атрымл?ваецца сетка без адз?нага цэнтра (так званая дэцэнтрал?заваная сетка).
- Passkey
? а?тэнтыф?катар карыстальн?ка на неанан?мных трэкерах. Змяшчаецца ? спампаваным torrent-файле. Так?м чынам, кал? хтосьц? атрымае доступ да torrent-файла, ён зможа працаваць з трэкерам ад ?мя гэтага карыстальн?ка.