Введение

FastTrack — это протокол P2P, который использовался файлообменными программами Kazaa, Grokster, iMesh и Morpheus. В 2003 году FastTrack была самой популярной сетью для обмена файлами, в основном использовавшейся для обмена музыкальными файлами в формате mp3. В 2003 году в сети одновременно находилось около 2,4 миллиона пользователей. По оценкам, общее количество пользователей превышало пиковое число пользователей Napster.

История

Протокол FastTrack и Kazaa были созданы и разработаны эстонскими программистами компании BlueMoon Interactive под руководством Яана Таллина, той же командой, которая впоследствии создала Skype. После продажи Никласу Зеннстрему из Швеции и Янусу Фрису из Дании, они были представлены в марте 2001 года их нидерландской компанией Consumer Empowerment. Это произошло в конце первого поколения P2P-сетей – Napster прекратил свою работу в июле того же года. Существует три сети, основанные на протоколе FastTrack, использующие взаимно несовместимые версии протокола. Наиболее популярными клиентами в каждой из них являются Kazaa (и его модификации), Grokster и iMesh. Подробную информацию о различных судебных разбирательствах, связанных с Kazaa и Sharman Networks, можно найти в статье Kazaa.

Технология

FastTrack использует суперузлы для повышения масштабируемости. Чтобы обеспечить загрузку из нескольких источников, FastTrack применяет алгоритм хеширования UUHash. Хотя UUHash позволяет быстро вычислять контрольные суммы для очень больших файлов, даже на медленных и слабых компьютерах, он также допускает незаметное масштабное повреждение файла. Многие люди, а также RIAA, воспользовались этой уязвимостью для распространения поврежденных и поддельных файлов в сети. Протокол FastTrack использует шифрование и не был документирован его разработчиками. Первые клиенты были программным обеспечением с закрытым исходным кодом. Однако данные инициализации для алгоритмов шифрования передаются открыто, и не используется шифрование с открытым ключом, что облегчило обратную разработку. В 2003 году программистам с открытым исходным кодом удалось реконструировать часть протокола, касающуюся связи клиент-суперузел, но протокол связи суперузел-суперузел остается в основном неизвестным.