Эта функция была первоначально реализована BitComet (на мой взгляд, с довольно низким качеством реализации) как способ упростить отмену выбора определенных файлов при загрузке. Поскольку битторрент скачивает куски, а куски могут охватывать несколько файлов. В противном случае, когда вы отмените выбор некоторых файлов, вы все равно можете получить первый и последний его бит (потому что он перекрывает части, которые вам нужны для других файлов).
Внедрение pad-файлов гарантирует, что файлы будут выровнены по частям, и устранит эту проблему.
Примечательно, что вместо этого uTorrent будет помещать эти оставшиеся фрагменты в отдельный файл, называемый файлом части.
В более современные времена, пару лет спустя, libtorrent и uTorrent получили некоторую поддержку файлов pad по другой причине. В первую очередь эти два:
В uTorrent реализована поддержка «изменяемых торрентов», возможность заменить торрент новой версией и эффективно перенести/дублировать весь общий контент в новый торрент. Чтобы эффективно использовать эту функцию в масштабе, вы должны выравнивать большие файлы по частям, чтобы избежать повторного хэширования всего содержимого (т. е. вы хотите хэшировать только новое содержимое, а не содержимое, которое осталось прежним). По этой причине файлы pad были полезны.
Доступ к файловой системе с выровненными по кластеру смещениями внутри файлов потенциально намного дешевле, чем доступ без выравнивания. Это также позволяет использовать некоторые более сложные API, которые могут ограничивать смещения файлов (асинхронный ввод-вывод). Это также верно для файлов с отображением памяти.
Основная критика файлов pad (насколько я могу судить) исходила от реализации BitComet, которая была довольно навязчивой для клиентов, не реализующих ее. Это создаст заметные файлы с длинными именами файлов, предлагая загрузить более новую версию BitComet. По крайней мере, в лагере hte uTorrent это расстроило многих пользователей, вплоть до того, что некоторые файлы .torrent были созданы для того, чтобы преднамеренно испортить эту функцию в биткомете (где файлы падов не все были нулевыми, как предполагал биткомет, поэтому он провалил свою работу). хэши).
Есть более элегантные способы реализации pad-файлов, и я считаю, что libtorrent и uTorrent делают это лучше. Например, вы можете объединить все файлы pad в (скрытый) каталог при создании торрента. uTorrent также помещает файлы частичной прокладки в свой файл.
Что касается клиентов, поддерживающих файлы pad, вот некоторые из них, которые я могу придумать навскидку (учитывая достаточно последнюю версию):
- uTorrent
- БитТоррент
- потоп
- qBitTorrent
- BitComet (я предполагаю, что он все еще поддерживает его)
- любой другой клиент, использующий libtorrent (rasterbar)
person
Arvid
schedule
11.08.2015