21 марта 2009

Не совсем стандартное использование BitTorrent.

Приспичило мне передать довольно большой образ по локалке другому человеку. Возиться с добавлением папки на ftp-сервер совсем не хотелось, потому что операция эта на один раз, да и скорость передачи по ftp не такая высокая, как хотелось бы. Тогда я подумал: "А если для этого дела использовать BitTorrent?"

Идея заключалась в том, что маленький torrent-файл вполне можно передать через аську или любой другой мессенджер, а в самом клиенте (я и тот человек, которому передавал файл, пользуемся uTorrent) можно добавлять пиров вручную.

Для сего эксперимента понадобится:

  • uTorrent (www.utorrent.com) или BitTorrent (www.bittorrent.com). Принципиального различия нет.
  • Мессенджер для передачи torrent-файла.
  • Сами файлы для передачи.
Для начала создаем torrent-файл.
Командуем File>Create New Torrent... и наблюдаем следующее окошко:


Как обычно указываем файл или папку, которую хотим передать, список трекеров оставляем пустым, взводим галки "Start seeding" и "Private torrent", чтобы сразу начать и сидирование и не использовать DHT для поиска пирова для этого торрента. Потом нажимаем кнопку "Create and save as...", ждем, пока программа создаст torrent-файл, потом сохраняем его передаем получателю.
На целевой машине открываем torrent-файл, указываем папку, в которую должна производиться загрузка. Теперь сообщаем получателю свой ip-адрес и порт, который можно узнать в настройках клиента:



На приемной стороне выделяем тот самый торрент в клиенте, переходим на вкладку "Peers", щелкаем правой кнопкой мыши и выбираем пункт "Add peer...", получаем окошко:


Вписываем сюда IP-адрес и порт передающей стороны ("IP:port") и нажимаем "OK". Теперь клиент принимающей стороны будет пытаться соединиться с клиентом передающей стороны, и, если всё хорошо, то начнется передача.

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

-->