BitTorrent (протокол)

«БітТо́рент» (BitTorrent) — відкритий протокол обміну інформацією у мережах типу peer-to-peer. Автором проєкту є Брем Коен, який створив першу версію у квітні 2001 разом із першим клієнтом з тією ж назвою.

Принципи роботи протоколу

Анімація використання протоколу: кольорові точки під кожним комп'ютером в анімації відповідають різним частинам файлу, який роздається. Трекер (сервер) надає тільки одну копію файлу, і всі користувачі клонують його частини один від одного. Показано, наскільки швидше файл буде завантажено, якщо використовується протокол BitTorrent.

Протокол розробляли таким чином, аби обмін файлами великих розмірів у мережі був полегшений для її учасників. Один із принципів роботи протоколу BitTorrent такий: навантаження на учасника, який розповсюджує певний файл, зменшується завдяки тому, що клієнти, які його скачують, починають обмінюватися даними між собою одразу, навіть поки файл повністю не скачано. Таким чином, клієнти, які скачали певну частину великого файлу, одразу можуть бути джерелами його розповсюдження.

Така ідея організації протоколу має переваги порівняно з протоколами peer-to-peer-мереж першого покоління, де файл скачується з одного розповсюджувача чи з декількох розповсюджувачів частинами.

Для отримання інформації про розповсюджувачів певного файлу клієнт може звернутися до так званих трекерів.

Трекер (англ. tracker) — спеціалізований сервер, який працює по протоколу HTTP. Трекер використовується для того, щоб клієнти могли знайти один одного. На трекері зберігаються IP-адреси клієнтів, вхідні порти клієнтів та хеш-суми, які унікальним чином ідентифікують об'єкти, що беруть участь у скачуваннях. За стандартом, імена файлів на трекері не зберігаються, та дізнатися їх за хеш-сумами не можна. Проте на практиці часто трекер, окрім своєї основної функції, виконує також функцію невеличкого вебсерверу. Такий сервер зберігає файли метаданих, що містять значення хеш-функції, та разом з ними опис файлів, які розповсюджуються, кількість розповсюджувачів, статистику завантажень тощо.

Перед початком завантаження файлу клієнт з'єднується з трекером, повідомляє йому свою IP-адресу та хеш-суму файла, що завантажується. У відповідь клієнт отримує адреси інших учасників мережі, які розповсюджують або закачують той самий файл. Далі клієнт періодично інформує трекер про хід процесу завантаження та отримує оновлений перелік адрес.

Клієнти з'єднуються один з одним та обмін даними відбувається без безпосередньої участі трекера. Учасники закачування обмінюються інформацією про наявність сегментів файлу. Клієнт, який бажає закачати певний фрагмент, надсилає запит, і, якщо інший клієнт готовий його надати, відбувається процес закачування. Після цього клієнт перевіряє контрольну суму сегменту та сповіщає всіх приєднаних учасників закачування про його наявність.

Для ефективної роботи мережі BitTorrent необхідно, щоб якомога більше клієнтів були здатні приймати вхідні з'єднання. Неправильна настройка NAT чи файрволу можуть цьому заважати.

Алгоритм обміну даними

Кожен клієнт має можливість тимчасово блокувати віддачу іншому клієнтові (англ. choke). Це робиться для ефективнішого використання каналу віддачі. Крім того, при виборі — кого розблокувати, перевага віддається пірам, які самі передали цьому клієнтові багато сегментів. Таким чином, піри з хорошими швидкостями віддачі заохочують один одного за принципом «ти — мені, я — тобі».

Обмін сегментами ведеться за принципом «ти — мені, я — тобі» симетрично в двох напрямках. Клієнти повідомляють один одному про наявні у них сегменти при підключенні та потім при отриманні нових сегментів, і тому кожен клієнт може зберігати інформацію про те, які сегменти є у інших підключених пірів. Порядок обміну обирається таким чином, щоб спочатку клієнти обмінювалися найрідкіснішими сегментами: таким чином підвищується доступність файлів в роздачі. Водночас вибір сегмента серед найрідкісніших випадковий, і тому можна уникнути ситуації, коли всі клієнти починають завантажувати один і той же самий рідкісний сегмент, що мало б негативний вплив на продуктивність.

Обмін даними починається, коли обидві сторони в ньому зацікавлені, тобто, кожна зі сторін має сегменти, яких немає в іншої. Кількість переданих сегментів підраховується, і якщо одна із сторін виявляє, що передає в середньому більше, ніж приймає, вона блокує (англ. choke) на деякий час віддачу іншій стороні. Таким чином, в протокол закладено захист від лічерів.

Сегменти діляться на блоки розміром 16—4096 кілобайт, і кожен клієнт запитує саме ці блоки. Одночасно можуть запитуватися блоки з різних сегментів. Більш того, деякі клієнти підтримують скачування блоків одного сегмента у різних пірів. У цьому випадку описані вище алгоритми і механізми обміну застосовуються і до рівня блоків.

Режим End game

Коли скачування майже завершено, клієнт входить в особливий режим, так званий end game. У цьому режимі він запитує всі сегменти, що залишилися у всіх підключених пірів, що дозволяє уникнути уповільнення або повного «Зависання» майже завершеного закачування через кілька повільних клієнтів.

Специфікація протоколу не визначає, коли саме клієнт повинен увійти в режим «end game», однак існує набір загальноприйнятих практик. Деякі клієнти входять в цей режим, коли не залишилося незапитаних блоків, інші — поки кількість блоків, що залишилися, менше кількості тих що передаються і не більше 20. Існує думка, що краще підтримувати кількість очікуваних блоків низьким (1 або 2) для мінімізації надлишковості, і що при випадковому запиту менший шанс отримати дублікати одного і того ж блоку[1][2].

Сідерування

При отриманні повного файлу клієнт переходить в спеціальний режим роботи, в якому він тільки віддає дані (стає сідом). Далі сід періодично інформує трекер про зміни в стані закачувань і оновлює списки IP-адрес.

Загальні особливості

  • Відсутність черг на скачування.
  • Файли закачуються невеликими фрагментами; чим менше доступний фрагмент, тим частіше він передаватиметься. Таким чином, присутність в мережі «сідера» з повним файлом для завантаження необов'язково — система розподіляє сегменти між «пірами», щоб в подальшому вони могли обмінюватися відсутніми сегментами.
  • Клієнти (піри) обмінюються сегментами безпосередньо між собою, за принципом «ти — мені, я — тобі».
  • Завантажені фрагменти стають негайно доступні іншим клієнтам.
  • Контролюється цілісність кожного фрагмента.
  • На фрагменти розбиваються не окремі файли, а вся роздача, тому у «лічера», який побажав завантажити лише деякі файли з роздачі, для підтримки цілісності фрагментів часто зберігатиметься також невеликий обсяг надлишкової (для нього) інформації.
  • Як об'єкт роздачі можуть виступати декілька файлів (наприклад, вміст каталогу).

Файл метаданих

Для кожного файлу, що розповсюджується, створюється файл метаданих з розширенням .torrent, який містить наступну інформацію: URL трекеру, загальну інформацію про файл (ім'я, розмір та ін.), контрольні суми сегментів файлу.

Файли метаданих можуть розповсюджуватися через будь-які канали зв'язку: вони, чи посилання на них, можуть розміщатися на вебсерверах, пересилатися електронною поштою, публікуватися у блогах та ін. Клієнт може розпочинати завантаження, отримавши будь-яким чином файл з метаданими, у якому є посилання на трекер.

Робота без трекера

У нових версіях протоколу розроблено безтрекерні (англ. trackerless) механізми обміну інформацією. Таким чином працездатність всієї мережі не залежатиме від роботи трекера.

Починаючи з версії 4.2.0 офіційного BitTorrent-клієнта, в ньому реалізована функція безтрекерної роботи, яка базується на протоколі Kademlia. У таких системах трекер доступний децентралізовано, на клієнтах-учасниках мережі, у формі розподіленої хеш-таблиці (Distributed hash-table, DHT).

У цей час не всі BitTorrent-клієнти використовують сумісні протоколи. Між собою сумісні BitComet[en], µTorrent, KTorrent та офіційний клієнт BitTorrent. Azureus[en] також має режим безтрекерної роботи, але його реалізація відрізняється від офіційної, через що він не може працювати через DHT з наведеними вище клієнтами.

Термінологія

Лічер та його рій.
  • Анонс (англ. announce) — звернення клієнта до трекера за допомогою HTTP-GET-запиту. При кожному анонсі клієнт передає на трекер інформацію про об'єми завантаженого і відданого, a трекер передає клієнтові список адрес інших клієнтів. Звертання клієнта до трекера відбувається через певні проміжки часу, які визначаються налаштуваннями клієнта і трекера.
  • Вебсід — HTTP- або FTP-сервер, що використовується як джерело даних, нарівні зі звичайними сідами
  • Доступність (англ. availability, англ. distributed copies — розповсюджені копії) — кількість повних копій файлу, доступних клієнтові. Кожен сид додає 1,0 до цього числа; лічери збільшують доступність залежно від кількості завантаженого, якого немає в інших пірів. Наприклад, якщо на роздачі є один сід і два лічера, що викачали по 50 % файлу (викачані частини рівні між собою), то доступність дорівнюватиме 1,50.
  • Заглухлий (англ. choked — заглухлий, придушений) — клієнт, обмін даними з яким зупинився. Або його канал на вихід забитий повністю і він не може нічого передати (досяг max_uploads), або він є сідом і йому нічого не потрібно отримувати.
  • Зацікавлений (англ. interested) — учасник, що бажає отримати частини файлу, наявні в іншого учасника. Наприклад, якщо у клієнта А немає якихось частин, які є у клієнта Б, вважається, що клієнт А зацікавлений в обміні з клієнтом Б.
  • Надлишки — дані, які були послані піром або сідом, та одержувач їхх не потребує. До надлишків також відносяться помилки хешу.
  • Індекс (англ. index) — це список .torrent-файлів (зазвичай включає описи та іншу інформацію), керовані вебсайтом ( індексатором) і доступні для пошуку. Сайт, що індексує часто помилково називають трекером.
  • Ліч, іноді лічер (англ. leech — п'явка) — пір, який не має всіх сегментів, тобто той, що продовжує скачування. Термін часто вживається і в негативному сенсі, який він має в інших файлообмінних мережах: користувач, який віддає значно менше, ніж викачує.
  • Отруєний торент — ситуація, коли частина пірів роздає пошкоджені, або навмисно сфальсифіковані сегменти.
  • Пір (англ. peer — співучасник) — клієнт, що бере участь в роздачі.
  • Пошкребти (англ. scrape — шкребти, дряпати) — процес, аналогічний анонсу, але клієнт запитує тільки статистику торента, інформацію про підключених клієнтів і можливості з ними зв'язатися для обміну.
  • Той, що нехтує (англ. snubbed) — клієнт, що є підключеним до одержувача, але не надсилав йому дані вже більше 60 секунд.
  • Роздача (англ. seeding) — процес поширення файлу за протоколом BitTorrent.
  • Рейтинг (англ. share ratio) — відношення відданого до завантаженого.
  • Рій (англ. swarm) — сукупність всіх пірів, що беруть участь в роздачі.
  • Сегмент (англ. part — частина) — всі файли для передачі діляться на невеликі частини — сегменти, які, передаються мережею в довільному порядку для оптимізації обміну.
  • Сід, іноді сідер (англ. seeder — сіяч) — пір, що має всі сегменти файлу, що поширюється тобто, або початковий розповсюджувач файлу, або той хто вже викачав весь файл і залишився на роздачі.
  • Супер-сідерування — спеціальний режим роздачі в деяких BitTorrent-клієнтів, намагається мінімізувати кількість даних, яке віддасть той, хто роздає до появи першого завантажившого. Суперсід пропонує кожному піру завантажити тільки один сегмент файлу, якого ще немає в інших пірів. Потім сід не віддає цьому піру наступні сегменти, поки не отримає від інших пірів підтвердження, що вони теж отримали цей сегмент. Таким чином, суперсід намагається уникнути повторної віддачі одних і тих же сегментів, і намагається віддавати сегменти тільки тим пірам, які активно передають їх іншим.
  • Хеш (англ. hash) — SHA1 окремих сегментів оригінальних файлів, перерахованих в словнику «info» .torrent-файлу. Кожна частина після отримання спочатку перевіряється на збіг хешу. Якщо перевірка не вдалася, дані відкидаються і запитуються ще раз. Також в протоколі використовується хеш самого словника «info»(«інфохеш»), що виступає в ролі ідентифікатора конкретної роздачі при звертанні до трекера, до інших точок мережі, і при складанні magnet-посилань (він містять Base32-подання інфохешу).
  • Passkey — аутентифікатор користувача на не анонімних трекерах. Міститься в torrent-файлах. Таким чином, якщо хтось отримає доступ до torrent-файлу (наприклад, користувач по необережності розшарив його), він зможе працювати з трекером від імені цього користувача. Трекер може змінити passkey по запиту користувача, але при цьому необхідно буде перезавантажити всі старі torrent-файли (або вручну відредагувати їх), щоб мати можливість і далі роздавати викачані файли.
  • URL анонсу (англ. announce URL) — адреса трекера, до якого клієнт робить анонс. У багатьох клієнтів називається «Tracker URL». Може включати «passkey» — унікальний код, призначається трекером для облікового запису користувача, допомагає ідентифікувати його на трекері(додається до URL анонсу в самому *.torrent-файлі при завантаженні).

Примітки

  1. BitTorrent Specification: End Game. Архів оригіналу за 14 грудня 2006. Процитовано 16 лютого 2012.
  2. [[https://web.archive.org/web/20120217170319/http://hal.inria.fr/inria-00000156/en Архівовано 17 лютого 2012 у Wayback Machine.] HAL — INRIA :: [inria-00000156, version 3] Understanding BitTorrent: An Experimental Perspective]

Посилання

Read other articles:

Seaside town in the Western Cape, South Africa This article is about town in the Western Cape. For the naval base located in the town, see Naval Base Simon's Town. Place in Western Cape, South AfricaSimon's Town SimonstadAerial ViewHistorical buildings in St Georges StreetVictoria fountain at Jubilee SquareSimon's Town WaterfrontSimon's Town Welcome SignSimon's TownShow map of Western CapeSimon's TownShow map of South AfricaCoordinates: 34°11′36″S 18°26′00″E / 34.19333

 

Sporting event delegationLithuania at theOlympicsIOC codeLTUNOCNational Olympic Committee of LithuaniaWebsitewww.ltok.lt (in Lithuanian and English)MedalsRanked 66th Gold 6 Silver 7 Bronze 13 Total 26 Summer appearances192419281932–1988199219962000200420082012201620202024Winter appearances19281932–1988199219941998200220062010201420182022Other related appearances Russian Empire (1908–1912) Soviet Union (1952–1988) Lithuania, after declaring restoration of independence in...

 

The history of the Baháʼí Faith in Africa dates back to the lifetimes of the three individual heads of the religion, Baháʼu'lláh, ʻAbdu'l-Bahá, and Shoghi Effendi, each of who was in Africa at least once. The Association of Religion Data Archives (relying on World Christian Encyclopedia) lists many larger and smaller populations in Africa[1] with Kenya, the Democratic Republic of the Congo, South Africa and Zambia among the top ten numerical populations of Baháʼís in the wo...

For his work with The Who, see The Who discography. Pete Townshend discographyPete Townshend with The Who at Manchester Arena in 2014Studio albums6Live albums9Compilation albums4Singles18 The following is the solo discography of British rock musician and recording artist Pete Townshend. Townshend's career as a published musician and songwriter began in 1964 as a member of rock band the Who, before branching out as a solo artist in the 1970s. Studio albums Year Album details Peak chart positio...

 

Billie Holiday: 78er Schallplatte mit „Strange Fruit“ und „Fine and Mellow“ von Commodore Records 1939 Fine and Mellow ist ein Jazzsong, den Billie Holiday im Jahr 1939 schrieb und aufnahm.[1] Inhaltsverzeichnis 1 Der Song 2 Aufnahme- und Wirkungsgeschichte 3 Billie Holidays Versionen 4 Literatur 5 Weblinks/Quellen 6 Anmerkungen Der Song „Fine and Mellow“ ist ein Blues in der 12 taktigen AAB-Form. Im Text beklagt Holiday die Behandlung einer Frau durch die Hände ihres Lie...

 

Martínez Localidad MartínezLocalización de Martínez en Región Metropolitana de Buenos AiresCoordenadas 34°29′32″S 58°30′32″O / -34.492222222222, -58.508888888889Idioma oficial españolEntidad Localidad • País  Argentina • Provincia  Buenos Aires • Partido San IsidroIntendente Franco Odiz (UCR-JxC)Altitud   • Media 18 m s. n. m.Población (2001)   • Total 65 859 hab.Gentilicio epelbaumHuso hor...

Untuk album, lihat The Silent Generation (album). Bagian dari seri tentangGenerasi besar di dunia Barat Generasi Hilang Generasi Terbesar Generasi Bisu Baby boomers Generasi X Milenial Generasi Z Generasi Alpha lbs Generasi Bisu adalah kelompok demografi menyusul Generasi Terbesar dan mendahului Baby Boomers. Generasi Bisu umumnya diartikan sebagai orang-orang yang lahir dari 1928 sampai 1945.[1] Menurut definisi tersebut dan data sensus Amerika Serikat, terdapat 23 juta orang dari Ge...

 

Peta koordinat semua menggunakan: OpenStreetMap  Unduh koordinat sebagai: KML Peta bandara di Belarus Berikut ini adalah daftar bandar udara di Belarus, dan dikelompokan berdasarkan lokasi. Kota Provinsi ICAO IATA Nama bandara Koordinat ÿ Bandar udara publik ÿ ÿ ÿ ÿ ÿ Brest Provinsi Brest UMBB BQT Bandar Udara Brest 52°06′30″N 023°53′53″E / 52.10833°N 23.89806°E / 52.10833; 23.89806 (Brest Airport) Homyel (Homiel) Provinsi Homyel UMGG GME...

 

2015 book by anthropologist Anna Tsing The Mushroom at the End of the World AuthorAnna TsingCountryUnited StatesLanguageEnglishSubjectCapitalism, Commodity chain, Matsutake, AnthropoceneGenreAnthropologyPublished2015PublisherPrinceton University PressMedia typePrintPages352ISBN9781400873548 The Mushroom at the End of the World: On the Possibility of Life in Capitalist Ruins is a 2015 book by the Chinese American anthropologist Anna Lowenhaupt Tsing. The book describes and analyzes the gl...

State highway in Livingston County, New York, US New York State Route 256Map of Livingston County in the Finger Lakes Region of New York with NY 256 highlighted in redRoute informationMaintained by NYSDOTLength21.08 mi[1] (33.92 km)Existed1930[2]–presentMajor junctionsSouth end NY 63 in DansvilleMajor intersections US 20A on Geneseo–Livonia town lineNorth end NY 15 on Geneseo–Livonia town line LocationCountryUnited StatesState...

 

زوربا اليونانيZorba the Greek (بالإنجليزية)Αλέξης Ζορμπάς (باليونانية) معلومات عامةالصنف الفني دراماتاريخ الصدور 1964مدة العرض 142 دقيقةاللغة الأصلية الإنجليزية واليونانيةالعرض أبيض وأسود مأخوذ عن زوربا اليوناني البلد الولايات المتحدة واليونانموقع التصوير اليونان الجوائز  ج...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Denver Health Medical Center – news · newspapers · books · scholar · JSTOR (June 2017) (Learn how and when to remove this template message) Hospital in Colorado, United StatesDenver Health Medical CenterDenver Health and Hospital AuthorityGeographyLocation777 B...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Nuruddin Zanki – berita · surat kabar · buku · cendekiawan · JSTOR Al-Malik Al-Adil Nuruddin Abul Qasim Mahmud bin 'Imaduddin Zanki (Februari 1118 – 15 Mei 1174), juga diketahui dengan nama Nur ad-Din, Nur ...

 

Canadian politician For those of a similar name, see Alexander Paterson (disambiguation). Alexander Bell PattersonLeader of the Social Credit Party of CanadaActingIn officeMarch 1967 – June 1968Preceded byRobert N. ThompsonSucceeded byRéal Caouette (1971)Member of Parliamentfor Fraser Valley EastIn officeOctober 30, 1972 – September 4, 1984Preceded byErvin PringleSucceeded byRoss BelsherMember of Parliamentfor Fraser ValleyIn officeJune 18, 1962 – June 24, 19...

 

Dulcinea redirects here. For other uses, see Dulcinea (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Dulcinea del Toboso – news · newspapers · books · scholar · JSTOR (June 2008) (Learn how and when to remove this template message) Fictional character Dulcinea del TobosoDon Quixote charact...

This article is about the football player and 'original' pro wrestler named Jumping Joe Savoldi. For the pro wrestler of the 1980s and '90s with the same ring name, see Joseph Savoldi. Italian-American athlete and spy Joe SavoldiSavoldi in 1936BornGiuseppe Antonio Savoldi(1908-03-05)March 5, 1908Castano Primo, Province of Milan, ItalyDiedJanuary 25, 1974(1974-01-25) (aged 65)Henderson, Kentucky, USAlma materUniversity of Notre DameProfessional wrestling careerRing name(s)Jumping Joe...

 

Uni Eropa Artikel ini adalah bagian dari seri: Politik dan pemerintahanUni Eropa Parlemen Presiden Jerzy Buzek Kelompok terbesar; Joseph Daul: EPP Martin Schulz: S&D Sesi ke-7 AP (736) Periode 2009-14 Biro Wakil Presiden Quaestor Konferensi Prosedur legislatif Dewan Menteri Kepresidenan Polandia Konfigurasi Umum Luar Negeri Ekonomi Euro Prosedur legislatif Pemungutan suara Sekretariat Sekretaris Jenderal Uwe Corsepius COREPER Dewan Eropa Presiden Herman Van Rompuy Partai Daftar rapat Komi...

 

Lancelot Henry Elphinstone22nd Attorney General of CeylonIn office6 October 1924 – 1929Preceded byHenry GollanSucceeded byEdward St. John Jackson Personal detailsBorn(1879-09-02)2 September 1879[1]Died11 October 1965(1965-10-11) (aged 86)[1] Sir Lancelot Henry Elphinstone (2 September 1879 – 11 October 1965) was the 22nd Attorney General of Ceylon. The son of Sir Howard Elphinstone, 3rd Baronet and Husband of Jane E Jamieson. Elphinstone was educated at E...

For other uses, see In Between Days (disambiguation).2006 American filmIn Between DaysUS theatrical posterHangul방황의 날들Hanja彷徨의 날들Revised RomanizationBanghwangui naldeulMcCune–ReischauerPanghwangŭi naltŭl Directed bySo Yong KimWritten byBradley Rust GraySo Yong KimProduced byBradley Rust GrayJennifer WeissStarringTaegu Andy KangBokja KimJiseon KimMike ParkCinematographySarah LevyEdited bySo Yong KimMusic byAsobi SeksuDistributed byKino InternationalWith CinemaRelease da...

 

Football match2003 UEFA Super CupMatch programme coverEventUEFA Super Cup Milan Porto 1 0 Date29 August 2003VenueStade Louis II, MonacoMan of the MatchAndriy Shevchenko (Milan)[1]RefereeGraham Barber (England)[2]Attendance16,885[3]← 2002 2004 → The 2003 UEFA Super Cup was played on 29 August 2003 between Milan of Italy and Porto of Portugal. Milan qualified by defeating Juventus in the 2003 UEFA Champions League Final, while Porto qualified by beating Celti...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!