BitTorrent (протокол)

Поделись знанием:
Перейти к: навигация, поиск

BitTórrent (букв. англ. «битовый поток») — пиринговый (P2P) сетевой протокол для кооперативного обмена файлами через Интернет.

Файлы передаются частями, каждый torrent-клиент, получая (скачивая) эти части, в то же время отдаёт (закачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.

Протокол был создан Брэмом Коэном, написавшим первый torrent-клиент «BitTorrent» на языке Python 4 апреля 2001 года. Запуск первой версии состоялся 2 июля 2001 года.

Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.





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

Файл метаданных является словарём в bencode формате с расширением .torrent — содержит информацию о раздаче (файлах, трекерах и др.)

Принцип работы протокола

Перед началом скачивания клиент подсоединяется к трекеру по адресу, указанному в торрент-файле, сообщает ему свой адрес и хеш-сумму торрент-файла, на что в ответ клиент получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о ходе процесса и получает обновлённый список адресов. Этот процесс называется объявлением (англ. announce).

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

При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент (личер), посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента. Если она совпала с той, что записана в торрент-файле, то сегмент считается успешно скачанным, и клиент оповещает всех присоединённых пиров о наличии у него этого сегмента. Если же контрольные суммы различаются, то сегмент начинает скачиваться заново. Некоторые клиенты банят тех пиров, которые слишком часто отдают некорректные сегменты.

Таким образом, объём служебной информации (размер торрент-файла и размер сообщений со списком сегментов) напрямую зависит от количества, а значит, и размера сегментов. Поэтому при выборе сегмента необходимо соблюдать баланс: с одной стороны, при большом размере сегмента объём служебной информации будет меньше, но в случае ошибки проверки контрольной суммы придётся заново скачивать больше информации. С другой стороны, при малом размере ошибки не так критичны, так как необходимо заново скачать меньший объём, но зато размер торрент-файла и сообщений об имеющихся сегментах становится больше.

Алгоритм обмена данными

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

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

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

Сегменты делятся на блоки размером 16-4096 килобайт, и каждый клиент запрашивает именно эти блоки. Одновременно могут запрашиваться блоки из разных сегментов. Более того, некоторые клиенты поддерживают скачивание блоков одного сегмента у разных пиров. В этом случае описанные выше алгоритмы и механизмы обмена применимы и к уровню блоков.

Режим End game

Когда скачивание почти завершено, клиент входит в особый режим, называемый end game. В этом режиме он запрашивает все оставшиеся сегменты у всех подключенных пиров, что позволяет избежать замедления или полного «зависания» почти завершенной закачки из-за нескольких медленных клиентов.

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

Сидирование

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

Общие особенности

  • Отсутствие очередей на скачивание.
  • Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
  • Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
  • Скачанные фрагменты становятся немедленно доступны другим клиентам.
  • Контролируется целостность каждого фрагмента.
  • На фрагменты разбиваются не отдельные файлы, а вся раздача целиком, поэтому у «личера», пожелавшего скачать лишь некоторые файлы из раздачи, для поддержания целостности фрагментов нередко будет храниться также небольшой объём избыточной (для него) информации.
  • В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).

Протоколы и порты

Клиенты соединяются с трекером по протоколу TCP. Наиболее часто используемый входящий порт трекера: 6969. Наиболее часто используемый диапазон входящих портов клиентов: 6881—6889.

Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. В данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт. Более того, некоторые трекеры не допускают использование портов клиентов из стандартного диапазона 6881—6889, так как некоторые провайдеры запрещают использование этого диапазона портов.

DHT-сеть в BitTorrent-клиентах использует протокол UDP.

Кроме того, протокол UDP используется UDP-трекерами (поддерживается не всеми клиентами и не является официальной частью протокола) и для соединения клиентов друг с другом через UDP NAT Traversal (используется только в клиенте BitComet и не является официальной частью протокола).

Трекер

Трекер (англ. tracker; /ˈtrækə (r)/) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хеш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хеш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключённых пиров и пр.

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

В новых версиях протокола были разработаны бестрекерные (англ. trackerless) системы, которые решают некоторые из предыдущих проблем. Отказ трекера в таких системах не приводит к автоматическому отказу всей сети.

Начиная с версии 4.2.0 официального клиента, в нём реализована функция бестрекерной работы, базирующаяся на DHT Kademlia. В таких системах трекер доступен децентрализовано, на клиентах, в форме распределённой хеш-таблицы.

На данный момент не все клиенты используют совместимый друг с другом протокол. Совместимы между собой BitComet, µTorrent, Deluge, KTorrent, Transmission и официальный клиент BitTorrent. Vuze (Azureus) также имеет режим бестрекерной работы, но его реализация отличается от официальной, вследствие чего он не может работать через DHT с вышеперечисленными клиентами[3]. Однако, для Vuze существует поддержка стандартного DHT через плагин Mainline DHT.

Работа без трекера также возможна при использовании мультипротокольных клиентов, поддерживающих BitTorrent. Shareaza через сеть Gnutella2 обменивается хешами и адресами пиров других поддерживаемых сетей, в том числе BitTorrent. В GreyLink 6.0 планируется поддержка BitTorrent, при этом сеть Direct Connect может использоваться не только для преобразования в TTH, но и для поиска пиров.

Работа без торрент-клиента

Для того чтобы брать и раздавать файлы в торрент-сетях, не обязательно пользоваться специальными программами. Существуют несколько сервисов, которые позволяют скачивать файлы, используя только браузер[4].

Наличие в файлах метаданных дополнительной информации, такой, как дополнительные источники и опциональные хеши, позволяет использовать файл метаданных .torrent аналогично форматам Metalink, MAGMA, Список файлов (Direct Connect). Клиент Shareaza использует опциональные хеши для поиска альтернативных источников в других сетях.

Web-сиды

Одним из вариантов использования является так называемое web-сидирование. Иногда на сервере по разным причинам нельзя запустить полноценный торрент-клиент. В этом случае в качестве источника раздачи выступает сервер, работающий по протоколу HTTP. Как правило, клиенты отдают предпочтение другим BitTorrent клиентам и обращаются к web-сиду только по необходимости. Следует знать, что реализован этот вариант использования как минимум тремя способами: [www.bittorrent.org/beps/bep_0017.html BEP0017 BitTornado style webseeding], [www.bittorrent.org/beps/bep_0019.html BEP0019 GetRight style webseeding] и [wiki.depthstrike.com/index.php/P2P:Protocol:Specifications:BitTorrent:External_Sourcing External Sourcing], каждый из которых отличается в деталях реализации.

Впервые был создан Джоном «TheSHAD0W» Хоффманом, который создал BitTornado[5]. Начиная с версии 5.0 клиент BitTorrent поддерживает веб-сиды и загрузки с веб-сайтов, был создан простой инструмент, который создает публикации веб сидов торрентов. В μTorrent добавлена поддержка для получения веб-сидов в версии 1.7. В BitComet добавлена поддержка для получения веб-сидов в версии 1.14.

BTIH (BitTorrent Info Hash)

Это SHA-1 хеш поля Info из файла метаданных. Данный хеш используется в магнет-ссылках, а также для идентификации на трекере и между клиентами. При загрузке на трекер файла метаданных его Info Hash может измениться, так как трекер может изменить поле info, установив флаг закрытой раздачи private или изменив/добавив поля внутри info. Поэтому необходимо снова скачать файл метаданных (файл .torrent) с трекера и добавить его в клиент[6].

BTC-ссылка

Указывается в виде:

btc://[Адрес]: [Порт]/[Peer ID]/[ BTIH ]

Ссылка такого вида ссылается на раздачу и на её источник. Поддерживается в Shareaza.

Недостатки и ограничения

Недоступность раздачи

В случае, если раздача непопулярна, то может возникнуть ситуация, когда нет ни одного сида, а данных у присутствующих пиров не хватает, чтобы завершить скачивание. В таком случае необходимо ждать появления либо сида, либо пира, имеющего сегменты, отсутствующие у остальных. Можно также использовать копии файлов, полученные другим путём. Раздача, которая не имеет ни одного сида долгое время, называется «мёртвой».

Отсутствие анонимности и персонализации

Принцип работы BitTorrent-протокола подразумевает, что каждому клиенту известны IP-адреса как минимум других клиентов, полученные от сервера. Использование разнообразных расширений протокола в некоторых случаях позволяет узнать также и адреса других пиров из роя. Поэтому:

  • Пользователи незащищённых систем и клиентов с известными уязвимостями могут быть подвергнуты атаке.
  • Возможно узнать адреса пользователей, передающих или принимающих определённый файл.

Проблема с анонимностью может быть решена при помощи использования Tor[7]. BitTorrent-клиент Vuze имеет встроенную программную поддержку этой анонимной сети. Но данный метод не является стопроцентно эффективным[8].

С другой стороны, протокол не предполагает использование ников. Отсутствует чат между пирами. Невозможно просмотреть список файлов пира (в поисках других файлов, которые могли бы заинтересовать). Большинство этих функций реализовано в других протоколах (например, /DirectConnect).

Проблема личеров

Некоторые пользователи, особенно на трекерах, не требующих регистрации, не поддерживают раздачу после завершения скачивания, что ведёт к уменьшению общей производительности, поэтому некоторые торрент-трекеры учитывают и количество скачанного/отданного, и выдают разрешение на скачивание в зависимости от размера отданных клиентом данных.

Отсутствие точного учёта трафика

В отличие от многих коммерческих протоколов дистрибуции медиаконтента, архитектура протокола не предусматривает точного механизма учёта и контроля трафика между точками сети. Всё, что есть — поля downloaded и uploaded, в которых клиенты передают при анонсе трекеру количество байт учтенных при скачивании/загрузке данных с момента предыдущего анонса. Однако не контролируясь никем, кроме как клиентом, они могут быть легко подменены. Для этого пользователи статично прописывают значения этих полей в URI трекера, пользуются патчами для клиентов или же отдельными программами (RatioMaster, GiveMeTorrent, GreedyTorrent и т. д.), либо просто удаляют из клиента запись о трекере сразу-же после получения с трекера списка точек сети. Всё это позволяет обходить искусственные ограничения, создаваемые администрацией многих частных и публичных трекеров.

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

  • Анонс (англ. 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 — сеятель) — пир, имеющий все сегменты распространяемого файла, то есть либо начальный распространитель файла, либо уже скачавший весь файл и оставшийся на раздаче.
  • Scrape-запрос — дополнительный протокол запроса клиента к трекеру, при котором трекер сообщает клиенту общее количество сидов и пиров на раздаче. В отличие от анонсирования, запрос scrape не имеет прямого отношения к скачиванию раздачи, является необязательным и отнимает меньше ресурсов у клиента и трекера. Он может запрашиваться и для остановленных в клиенте заданий, а также позволяет одним запросом получить информацию сразу по нескольким торрентам (multi-scrape). Клиент с помощью scrape-запроса может получить точное количество сидов и пиров на каждом задании, включая остановленные. Некоторые клиенты, например Azureus, также могут с помощью scrape-запроса раньше узнать о том, что на раздаче появились дополнительные участники, и сделать внеочередной announce для получения их адресов, и автоматически останавливать и запускать сидирование заданий в зависимости от числа сидов и пиров, в результате сидируя там, где это нужнее.
  • Супер-сидирование — специальный режим раздачи в некоторых BitTorrent-клиентах, пытающийся минимизировать количество данных, которое отдаст раздающий до появления первого скачавшего. Суперсид предлагает каждому пиру скачать только один сегмент файла, которого ещё нет у других пиров. Затем сид не даёт этому пиру следующих сегментов, пока не получит от других пиров подтверждения, что они тоже получили этот сегмент. Таким образом, суперсид пытается избежать повторной отдачи одних и тех же сегментов, и старается отдавать сегменты только тем пирам, которые активно передают их другим.
  • Хеш (англ. hash) — SHA1 отдельных сегментов оригинальных файлов, перечисленных в словаре «info» .torrent-файла. Каждая часть после получения сначала проверяется на совпадение хеша. Если проверка не удалась, данные отбрасываются и запрашиваются ещё раз. Также в протоколе используется хеш самого словаря «info»(«инфохеш»), выступающий в роли идентификатора конкретной раздачи при обращении к трекеру, к другим точкам сети, и при составлении magnet-ссылок (он содержат Base32-представление инфохеша).
  • Passkey — аутентификатор пользователя на неанонимных трекерах. Содержится в скачиваемом torrent-файле. Таким образом, если кто-то получит доступ к torrent-файлу (например, пользователь по неосторожности расшарил его), он сможет работать с трекером от имени этого пользователя. Трекер может изменить passkey по запросу пользователя, но при этом необходимо будет перескачать все прошлые torrent-файлы (или вручную отредактировать их), чтобы иметь возможность и дальше раздавать скачанные файлы.
  • URL анонса (англ. announce URL) — адрес трекера, к которому клиент делает анонс. Во многих клиентах называется «Tracker URL». Может включать «passkey» — уникальный код, назначаемый трекером для аккаунта пользователя, помогающий идентифицировать его на трекере (добавляется к URL анонса в самом *.torrent-файле при скачивании).

См. также

Напишите отзыв о статье "BitTorrent (протокол)"

Примечания

  1. [wiki.theory.org/BitTorrentSpecification#End_Game BitTorrent Specification: End Game]
  2. [hal.inria.fr/inria-00000156/en HAL — INRIA:: [inria-00000156, version 3] Understanding BitTorrent: An Experimental Perspective]
  3. [www.utorrent.com/faq.php#What_is_DHT.3F What is DHT?//Torrent FAQ]
  4. [internetno.net/2009/12/10/torrents-without-client/ Интернетные штучки " Качаем торренты без клиента: Bitlet, Torrent2exe, httpTorrents]
  5. [bittornado.com/docs/webseed-spec.txt HTTP-Based Seeding Specification] (TXT). Проверено 9 мая 2006. [www.webcitation.org/6184q7Pjn Архивировано из первоисточника 22 августа 2011].
  6. [rutracker.org/forum/viewtopic.php?t=215520 Как начать раздачу (на примере клиента µTorrent 1.8.3.)]
  7. [grepular.com/Making_BitTorrent_Safe_to_Use_Over_Tor Making BitTorrent Safe to Use Over Tor]
  8. [blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea Bittorrent over Tor isn't a good idea]

Ссылки

  • [www.bittorrent.com/ Официальный сайт BitTorrent]
  • [wiki.theory.org/BitTorrentSpecification Текущая спецификация протокола BitTorrent]
  • BitTorrent в каталоге ссылок Open Directory Project (dmoz).


Отрывок, характеризующий BitTorrent (протокол)

Московское общество всё, начиная от старух до детей, как своего давно жданного гостя, которого место всегда было готово и не занято, – приняло Пьера. Для московского света, Пьер был самым милым, добрым, умным веселым, великодушным чудаком, рассеянным и душевным, русским, старого покроя, барином. Кошелек его всегда был пуст, потому что открыт для всех.
Бенефисы, дурные картины, статуи, благотворительные общества, цыгане, школы, подписные обеды, кутежи, масоны, церкви, книги – никто и ничто не получало отказа, и ежели бы не два его друга, занявшие у него много денег и взявшие его под свою опеку, он бы всё роздал. В клубе не было ни обеда, ни вечера без него. Как только он приваливался на свое место на диване после двух бутылок Марго, его окружали, и завязывались толки, споры, шутки. Где ссорились, он – одной своей доброй улыбкой и кстати сказанной шуткой, мирил. Масонские столовые ложи были скучны и вялы, ежели его не было.
Когда после холостого ужина он, с доброй и сладкой улыбкой, сдаваясь на просьбы веселой компании, поднимался, чтобы ехать с ними, между молодежью раздавались радостные, торжественные крики. На балах он танцовал, если не доставало кавалера. Молодые дамы и барышни любили его за то, что он, не ухаживая ни за кем, был со всеми одинаково любезен, особенно после ужина. «Il est charmant, il n'a pas de seхе», [Он очень мил, но не имеет пола,] говорили про него.
Пьер был тем отставным добродушно доживающим свой век в Москве камергером, каких были сотни.
Как бы он ужаснулся, ежели бы семь лет тому назад, когда он только приехал из за границы, кто нибудь сказал бы ему, что ему ничего не нужно искать и выдумывать, что его колея давно пробита, определена предвечно, и что, как он ни вертись, он будет тем, чем были все в его положении. Он не мог бы поверить этому! Разве не он всей душой желал, то произвести республику в России, то самому быть Наполеоном, то философом, то тактиком, победителем Наполеона? Разве не он видел возможность и страстно желал переродить порочный род человеческий и самого себя довести до высшей степени совершенства? Разве не он учреждал и школы и больницы и отпускал своих крестьян на волю?
А вместо всего этого, вот он, богатый муж неверной жены, камергер в отставке, любящий покушать, выпить и расстегнувшись побранить легко правительство, член Московского Английского клуба и всеми любимый член московского общества. Он долго не мог помириться с той мыслью, что он есть тот самый отставной московский камергер, тип которого он так глубоко презирал семь лет тому назад.
Иногда он утешал себя мыслями, что это только так, покамест, он ведет эту жизнь; но потом его ужасала другая мысль, что так, покамест, уже сколько людей входили, как он, со всеми зубами и волосами в эту жизнь и в этот клуб и выходили оттуда без одного зуба и волоса.
В минуты гордости, когда он думал о своем положении, ему казалось, что он совсем другой, особенный от тех отставных камергеров, которых он презирал прежде, что те были пошлые и глупые, довольные и успокоенные своим положением, «а я и теперь всё недоволен, всё мне хочется сделать что то для человечества», – говорил он себе в минуты гордости. «А может быть и все те мои товарищи, точно так же, как и я, бились, искали какой то новой, своей дороги в жизни, и так же как и я силой обстановки, общества, породы, той стихийной силой, против которой не властен человек, были приведены туда же, куда и я», говорил он себе в минуты скромности, и поживши в Москве несколько времени, он не презирал уже, а начинал любить, уважать и жалеть, так же как и себя, своих по судьбе товарищей.
На Пьера не находили, как прежде, минуты отчаяния, хандры и отвращения к жизни; но та же болезнь, выражавшаяся прежде резкими припадками, была вогнана внутрь и ни на мгновенье не покидала его. «К чему? Зачем? Что такое творится на свете?» спрашивал он себя с недоумением по нескольку раз в день, невольно начиная вдумываться в смысл явлений жизни; но опытом зная, что на вопросы эти не было ответов, он поспешно старался отвернуться от них, брался за книгу, или спешил в клуб, или к Аполлону Николаевичу болтать о городских сплетнях.
«Елена Васильевна, никогда ничего не любившая кроме своего тела и одна из самых глупых женщин в мире, – думал Пьер – представляется людям верхом ума и утонченности, и перед ней преклоняются. Наполеон Бонапарт был презираем всеми до тех пор, пока он был велик, и с тех пор как он стал жалким комедиантом – император Франц добивается предложить ему свою дочь в незаконные супруги. Испанцы воссылают мольбы Богу через католическое духовенство в благодарность за то, что они победили 14 го июня французов, а французы воссылают мольбы через то же католическое духовенство о том, что они 14 го июня победили испанцев. Братья мои масоны клянутся кровью в том, что они всем готовы жертвовать для ближнего, а не платят по одному рублю на сборы бедных и интригуют Астрея против Ищущих манны, и хлопочут о настоящем Шотландском ковре и об акте, смысла которого не знает и тот, кто писал его, и которого никому не нужно. Все мы исповедуем христианский закон прощения обид и любви к ближнему – закон, вследствие которого мы воздвигли в Москве сорок сороков церквей, а вчера засекли кнутом бежавшего человека, и служитель того же самого закона любви и прощения, священник, давал целовать солдату крест перед казнью». Так думал Пьер, и эта вся, общая, всеми признаваемая ложь, как он ни привык к ней, как будто что то новое, всякий раз изумляла его. – «Я понимаю эту ложь и путаницу, думал он, – но как мне рассказать им всё, что я понимаю? Я пробовал и всегда находил, что и они в глубине души понимают то же, что и я, но стараются только не видеть ее . Стало быть так надо! Но мне то, мне куда деваться?» думал Пьер. Он испытывал несчастную способность многих, особенно русских людей, – способность видеть и верить в возможность добра и правды, и слишком ясно видеть зло и ложь жизни, для того чтобы быть в силах принимать в ней серьезное участие. Всякая область труда в глазах его соединялась со злом и обманом. Чем он ни пробовал быть, за что он ни брался – зло и ложь отталкивали его и загораживали ему все пути деятельности. А между тем надо было жить, надо было быть заняту. Слишком страшно было быть под гнетом этих неразрешимых вопросов жизни, и он отдавался первым увлечениям, чтобы только забыть их. Он ездил во всевозможные общества, много пил, покупал картины и строил, а главное читал.
Он читал и читал всё, что попадалось под руку, и читал так что, приехав домой, когда лакеи еще раздевали его, он, уже взяв книгу, читал – и от чтения переходил ко сну, и от сна к болтовне в гостиных и клубе, от болтовни к кутежу и женщинам, от кутежа опять к болтовне, чтению и вину. Пить вино для него становилось всё больше и больше физической и вместе нравственной потребностью. Несмотря на то, что доктора говорили ему, что с его корпуленцией, вино для него опасно, он очень много пил. Ему становилось вполне хорошо только тогда, когда он, сам не замечая как, опрокинув в свой большой рот несколько стаканов вина, испытывал приятную теплоту в теле, нежность ко всем своим ближним и готовность ума поверхностно отзываться на всякую мысль, не углубляясь в сущность ее. Только выпив бутылку и две вина, он смутно сознавал, что тот запутанный, страшный узел жизни, который ужасал его прежде, не так страшен, как ему казалось. С шумом в голове, болтая, слушая разговоры или читая после обеда и ужина, он беспрестанно видел этот узел, какой нибудь стороной его. Но только под влиянием вина он говорил себе: «Это ничего. Это я распутаю – вот у меня и готово объяснение. Но теперь некогда, – я после обдумаю всё это!» Но это после никогда не приходило.
Натощак, поутру, все прежние вопросы представлялись столь же неразрешимыми и страшными, и Пьер торопливо хватался за книгу и радовался, когда кто нибудь приходил к нему.
Иногда Пьер вспоминал о слышанном им рассказе о том, как на войне солдаты, находясь под выстрелами в прикрытии, когда им делать нечего, старательно изыскивают себе занятие, для того чтобы легче переносить опасность. И Пьеру все люди представлялись такими солдатами, спасающимися от жизни: кто честолюбием, кто картами, кто писанием законов, кто женщинами, кто игрушками, кто лошадьми, кто политикой, кто охотой, кто вином, кто государственными делами. «Нет ни ничтожного, ни важного, всё равно: только бы спастись от нее как умею»! думал Пьер. – «Только бы не видать ее , эту страшную ее ».


В начале зимы, князь Николай Андреич Болконский с дочерью приехали в Москву. По своему прошедшему, по своему уму и оригинальности, в особенности по ослаблению на ту пору восторга к царствованию императора Александра, и по тому анти французскому и патриотическому направлению, которое царствовало в то время в Москве, князь Николай Андреич сделался тотчас же предметом особенной почтительности москвичей и центром московской оппозиции правительству.
Князь очень постарел в этот год. В нем появились резкие признаки старости: неожиданные засыпанья, забывчивость ближайших по времени событий и памятливость к давнишним, и детское тщеславие, с которым он принимал роль главы московской оппозиции. Несмотря на то, когда старик, особенно по вечерам, выходил к чаю в своей шубке и пудренном парике, и начинал, затронутый кем нибудь, свои отрывистые рассказы о прошедшем, или еще более отрывистые и резкие суждения о настоящем, он возбуждал во всех своих гостях одинаковое чувство почтительного уважения. Для посетителей весь этот старинный дом с огромными трюмо, дореволюционной мебелью, этими лакеями в пудре, и сам прошлого века крутой и умный старик с его кроткою дочерью и хорошенькой француженкой, которые благоговели перед ним, – представлял величественно приятное зрелище. Но посетители не думали о том, что кроме этих двух трех часов, во время которых они видели хозяев, было еще 22 часа в сутки, во время которых шла тайная внутренняя жизнь дома.
В последнее время в Москве эта внутренняя жизнь сделалась очень тяжела для княжны Марьи. Она была лишена в Москве тех своих лучших радостей – бесед с божьими людьми и уединения, – которые освежали ее в Лысых Горах, и не имела никаких выгод и радостей столичной жизни. В свет она не ездила; все знали, что отец не пускает ее без себя, а сам он по нездоровью не мог ездить, и ее уже не приглашали на обеды и вечера. Надежду на замужество княжна Марья совсем оставила. Она видела ту холодность и озлобление, с которыми князь Николай Андреич принимал и спроваживал от себя молодых людей, могущих быть женихами, иногда являвшихся в их дом. Друзей у княжны Марьи не было: в этот приезд в Москву она разочаровалась в своих двух самых близких людях. М lle Bourienne, с которой она и прежде не могла быть вполне откровенна, теперь стала ей неприятна и она по некоторым причинам стала отдаляться от нее. Жюли, которая была в Москве и к которой княжна Марья писала пять лет сряду, оказалась совершенно чужою ей, когда княжна Марья вновь сошлась с нею лично. Жюли в это время, по случаю смерти братьев сделавшись одной из самых богатых невест в Москве, находилась во всем разгаре светских удовольствий. Она была окружена молодыми людьми, которые, как она думала, вдруг оценили ее достоинства. Жюли находилась в том периоде стареющейся светской барышни, которая чувствует, что наступил последний шанс замужества, и теперь или никогда должна решиться ее участь. Княжна Марья с грустной улыбкой вспоминала по четвергам, что ей теперь писать не к кому, так как Жюли, Жюли, от присутствия которой ей не было никакой радости, была здесь и виделась с нею каждую неделю. Она, как старый эмигрант, отказавшийся жениться на даме, у которой он проводил несколько лет свои вечера, жалела о том, что Жюли была здесь и ей некому писать. Княжне Марье в Москве не с кем было поговорить, некому поверить своего горя, а горя много прибавилось нового за это время. Срок возвращения князя Андрея и его женитьбы приближался, а его поручение приготовить к тому отца не только не было исполнено, но дело напротив казалось совсем испорчено, и напоминание о графине Ростовой выводило из себя старого князя, и так уже большую часть времени бывшего не в духе. Новое горе, прибавившееся в последнее время для княжны Марьи, были уроки, которые она давала шестилетнему племяннику. В своих отношениях с Николушкой она с ужасом узнавала в себе свойство раздражительности своего отца. Сколько раз она ни говорила себе, что не надо позволять себе горячиться уча племянника, почти всякий раз, как она садилась с указкой за французскую азбуку, ей так хотелось поскорее, полегче перелить из себя свое знание в ребенка, уже боявшегося, что вот вот тетя рассердится, что она при малейшем невнимании со стороны мальчика вздрагивала, торопилась, горячилась, возвышала голос, иногда дергала его за руку и ставила в угол. Поставив его в угол, она сама начинала плакать над своей злой, дурной натурой, и Николушка, подражая ей рыданьями, без позволенья выходил из угла, подходил к ней и отдергивал от лица ее мокрые руки, и утешал ее. Но более, более всего горя доставляла княжне раздражительность ее отца, всегда направленная против дочери и дошедшая в последнее время до жестокости. Ежели бы он заставлял ее все ночи класть поклоны, ежели бы он бил ее, заставлял таскать дрова и воду, – ей бы и в голову не пришло, что ее положение трудно; но этот любящий мучитель, самый жестокий от того, что он любил и за то мучил себя и ее, – умышленно умел не только оскорбить, унизить ее, но и доказать ей, что она всегда и во всем была виновата. В последнее время в нем появилась новая черта, более всего мучившая княжну Марью – это было его большее сближение с m lle Bourienne. Пришедшая ему, в первую минуту по получении известия о намерении своего сына, мысль шутка о том, что ежели Андрей женится, то и он сам женится на Bourienne, – видимо понравилась ему, и он с упорством последнее время (как казалось княжне Марье) только для того, чтобы ее оскорбить, выказывал особенную ласку к m lle Bоurienne и выказывал свое недовольство к дочери выказываньем любви к Bourienne.
Однажды в Москве, в присутствии княжны Марьи (ей казалось, что отец нарочно при ней это сделал), старый князь поцеловал у m lle Bourienne руку и, притянув ее к себе, обнял лаская. Княжна Марья вспыхнула и выбежала из комнаты. Через несколько минут m lle Bourienne вошла к княжне Марье, улыбаясь и что то весело рассказывая своим приятным голосом. Княжна Марья поспешно отерла слезы, решительными шагами подошла к Bourienne и, видимо сама того не зная, с гневной поспешностью и взрывами голоса, начала кричать на француженку: «Это гадко, низко, бесчеловечно пользоваться слабостью…» Она не договорила. «Уйдите вон из моей комнаты», прокричала она и зарыдала.
На другой день князь ни слова не сказал своей дочери; но она заметила, что за обедом он приказал подавать кушанье, начиная с m lle Bourienne. В конце обеда, когда буфетчик, по прежней привычке, опять подал кофе, начиная с княжны, князь вдруг пришел в бешенство, бросил костылем в Филиппа и тотчас же сделал распоряжение об отдаче его в солдаты. «Не слышат… два раза сказал!… не слышат!»
«Она – первый человек в этом доме; она – мой лучший друг, – кричал князь. – И ежели ты позволишь себе, – закричал он в гневе, в первый раз обращаясь к княжне Марье, – еще раз, как вчера ты осмелилась… забыться перед ней, то я тебе покажу, кто хозяин в доме. Вон! чтоб я не видал тебя; проси у ней прощенья!»
Княжна Марья просила прощенья у Амальи Евгеньевны и у отца за себя и за Филиппа буфетчика, который просил заступы.
В такие минуты в душе княжны Марьи собиралось чувство, похожее на гордость жертвы. И вдруг в такие то минуты, при ней, этот отец, которого она осуждала, или искал очки, ощупывая подле них и не видя, или забывал то, что сейчас было, или делал слабевшими ногами неверный шаг и оглядывался, не видал ли кто его слабости, или, что было хуже всего, он за обедом, когда не было гостей, возбуждавших его, вдруг задремывал, выпуская салфетку, и склонялся над тарелкой, трясущейся головой. «Он стар и слаб, а я смею осуждать его!» думала она с отвращением к самой себе в такие минуты.


В 1811 м году в Москве жил быстро вошедший в моду французский доктор, огромный ростом, красавец, любезный, как француз и, как говорили все в Москве, врач необыкновенного искусства – Метивье. Он был принят в домах высшего общества не как доктор, а как равный.
Князь Николай Андреич, смеявшийся над медициной, последнее время, по совету m lle Bourienne, допустил к себе этого доктора и привык к нему. Метивье раза два в неделю бывал у князя.
В Николин день, в именины князя, вся Москва была у подъезда его дома, но он никого не велел принимать; а только немногих, список которых он передал княжне Марье, велел звать к обеду.
Метивье, приехавший утром с поздравлением, в качестве доктора, нашел приличным de forcer la consigne [нарушить запрет], как он сказал княжне Марье, и вошел к князю. Случилось так, что в это именинное утро старый князь был в одном из своих самых дурных расположений духа. Он целое утро ходил по дому, придираясь ко всем и делая вид, что он не понимает того, что ему говорят, и что его не понимают. Княжна Марья твердо знала это состояние духа тихой и озабоченной ворчливости, которая обыкновенно разрешалась взрывом бешенства, и как перед заряженным, с взведенными курками, ружьем, ходила всё это утро, ожидая неизбежного выстрела. Утро до приезда доктора прошло благополучно. Пропустив доктора, княжна Марья села с книгой в гостиной у двери, от которой она могла слышать всё то, что происходило в кабинете.
Сначала она слышала один голос Метивье, потом голос отца, потом оба голоса заговорили вместе, дверь распахнулась и на пороге показалась испуганная, красивая фигура Метивье с его черным хохлом, и фигура князя в колпаке и халате с изуродованным бешенством лицом и опущенными зрачками глаз.
– Не понимаешь? – кричал князь, – а я понимаю! Французский шпион, Бонапартов раб, шпион, вон из моего дома – вон, я говорю, – и он захлопнул дверь.
Метивье пожимая плечами подошел к mademoiselle Bourienne, прибежавшей на крик из соседней комнаты.
– Князь не совсем здоров, – la bile et le transport au cerveau. Tranquillisez vous, je repasserai demain, [желчь и прилив к мозгу. Успокойтесь, я завтра зайду,] – сказал Метивье и, приложив палец к губам, поспешно вышел.
За дверью слышались шаги в туфлях и крики: «Шпионы, изменники, везде изменники! В своем доме нет минуты покоя!»
После отъезда Метивье старый князь позвал к себе дочь и вся сила его гнева обрушилась на нее. Она была виновата в том, что к нему пустили шпиона. .Ведь он сказал, ей сказал, чтобы она составила список, и тех, кого не было в списке, чтобы не пускали. Зачем же пустили этого мерзавца! Она была причиной всего. С ней он не мог иметь ни минуты покоя, не мог умереть спокойно, говорил он.
– Нет, матушка, разойтись, разойтись, это вы знайте, знайте! Я теперь больше не могу, – сказал он и вышел из комнаты. И как будто боясь, чтобы она не сумела как нибудь утешиться, он вернулся к ней и, стараясь принять спокойный вид, прибавил: – И не думайте, чтобы я это сказал вам в минуту сердца, а я спокоен, и я обдумал это; и это будет – разойтись, поищите себе места!… – Но он не выдержал и с тем озлоблением, которое может быть только у человека, который любит, он, видимо сам страдая, затряс кулаками и прокричал ей:
– И хоть бы какой нибудь дурак взял ее замуж! – Он хлопнул дверью, позвал к себе m lle Bourienne и затих в кабинете.
В два часа съехались избранные шесть персон к обеду. Гости – известный граф Ростопчин, князь Лопухин с своим племянником, генерал Чатров, старый, боевой товарищ князя, и из молодых Пьер и Борис Друбецкой – ждали его в гостиной.
На днях приехавший в Москву в отпуск Борис пожелал быть представленным князю Николаю Андреевичу и сумел до такой степени снискать его расположение, что князь для него сделал исключение из всех холостых молодых людей, которых он не принимал к себе.
Дом князя был не то, что называется «свет», но это был такой маленький кружок, о котором хотя и не слышно было в городе, но в котором лестнее всего было быть принятым. Это понял Борис неделю тому назад, когда при нем Ростопчин сказал главнокомандующему, звавшему графа обедать в Николин день, что он не может быть:
– В этот день уж я всегда езжу прикладываться к мощам князя Николая Андреича.
– Ах да, да, – отвечал главнокомандующий. – Что он?..
Небольшое общество, собравшееся в старомодной, высокой, с старой мебелью, гостиной перед обедом, было похоже на собравшийся, торжественный совет судилища. Все молчали и ежели говорили, то говорили тихо. Князь Николай Андреич вышел серьезен и молчалив. Княжна Марья еще более казалась тихою и робкою, чем обыкновенно. Гости неохотно обращались к ней, потому что видели, что ей было не до их разговоров. Граф Ростопчин один держал нить разговора, рассказывая о последних то городских, то политических новостях.