Открыть сервис

Apple Filing Protocol

Apple Filing Protocol (AFP) — это сетевой протокол прикладного уровня, предназначенный для обеспечения доступа к файлам и каталогам на удалённых компьютерах в локальной сети. Протокол разработан компанией Apple Inc. и является основным средством файлового обмена в операционных системах семейства macOS (ранее Mac OS) и классической Mac OS. AFP работает поверх протоколов TCP/IP (поверх TCP-порта 548) и AppleTalk (поверх DDP — Datagram Delivery Protocol), обеспечивая прозрачный доступ к файловым ресурсам, поддержку длинных имён файлов, кодировок, атрибутов и метаданных, характерных для файловой системы HFS+ (Hierarchical File System Plus).

История

Протокол AFP был впервые представлен в 1986 году в составе операционной системы AppleShare, которая обеспечивала файловый сервис для компьютеров Macintosh в сетях AppleTalk. Изначально AFP работал исключительно поверх протокола AppleTalk, что ограничивало его использование локальными сетями. С появлением Mac OS X (2001 год) AFP был адаптирован для работы поверх TCP/IP, что позволило использовать его в глобальных сетях и интернете. В версии AFP 3.0 (2002 год) была добавлена поддержка шифрования (через Kerberos и Open Directory) и улучшена работа с метаданными. Последняя значительная версия, AFP 3.4, была выпущена в 2013 году вместе с OS X Mavericks. В 2018 году Apple объявила о постепенном отказе от AFP в пользу протокола SMB (Server Message Block), который стал стандартным для файлового обмена в macOS, начиная с версии 10.13 High Sierra. Однако AFP остаётся поддерживаемым в качестве устаревшего протокола для совместимости со старыми версиями macOS и классической Mac OS.

Архитектура и принцип работы

AFP работает по модели «клиент-сервер». Клиент (компьютер с macOS или классической Mac OS) отправляет запросы на сервер (компьютер или сетевое хранилище, работающее под управлением macOS Server, AppleShare или стороннего ПО, поддерживающего AFP). Сервер обрабатывает запросы и возвращает данные. Протокол использует сессии, которые устанавливаются через TCP-порт 548. После установления соединения клиент аутентифицируется (поддерживаются методы: гость, парольная аутентификация, Kerberos, аутентификация через Open Directory) и получает доступ к файловой системе сервера.

Основные функции

AFP обеспечивает:

  • Прозрачный доступ к файлам и каталогам — клиент видит файловую систему сервера как часть своей локальной файловой системы.
  • Поддержку метаданных — протокол передаёт атрибуты файлов, характерные для macOS: даты создания, изменения, доступа, права доступа (POSIX), а также расширенные атрибуты, такие как иконки, комментарии, теги, цветовые метки и метаданные приложений (например, Spotlight).
  • Поддержку длинных имён файлов — до 255 символов в кодировке UTF-8.
  • Блокировку файлов — предотвращение одновременного изменения одного файла несколькими пользователями.
  • Поддержку псевдонимов (aliases) — ссылок на файлы и каталоги, которые сохраняют связь с оригиналом даже при перемещении.
  • Поддержку ресурсных форков (resource forks) — устаревшая, но исторически важная функция, позволяющая хранить в файле две ветви данных (данные и ресурсы). В современных версиях macOS ресурсные форки заменены расширенными атрибутами.
  • Шифрование — с версии AFP 3.0 поддерживается шифрование сессии с помощью Kerberos или Open Directory.

Классификация и версии

AFP развивался в нескольких версиях, каждая из которых добавляла новые возможности:

ВерсияГод выпускаОсновные изменения
AFP 1.01986Первая версия, работа поверх AppleTalk.
AFP 2.01990Поддержка длинных имён файлов и улучшенная аутентификация.
AFP 2.11991Поддержка ресурсных форков и блокировок файлов.
AFP 3.02002Поддержка TCP/IP, шифрования (Kerberos), аутентификация через Open Directory.
AFP 3.12005Поддержка Unicode (UTF-8) и улучшенная работа с метаданными.
AFP 3.22007Поддержка расширенных атрибутов и Spotlight.
AFP 3.32011Улучшенная поддержка Time Machine и сетевых хранилищ.
AFP 3.42013Последняя версия, добавлена поддержка SMB-совместимости.

Применение

AFP исторически использовался в следующих сценариях:

  • Файловые серверы macOS — серверы под управлением macOS Server (до версии 10.13) использовали AFP для предоставления доступа к файлам клиентам macOS.
  • Сетевые хранилища (NAS) — многие производители NAS (например, Synology, QNAP, Western Digital) поддерживали AFP для обеспечения совместимости с macOS.
  • Time Machineрезервное копирование на сетевые диски в macOS до версии 10.15 Catalina использовало AFP для передачи данных.
  • Классическая Mac OS — AFP был единственным протоколом файлового обмена для систем Mac OS до 9.2.2.

Сравнение с другими протоколами

AFP часто сравнивают с другими протоколами файлового обмена:

  • SMB (Server Message Block) — стандартный протокол для Windows и современных macOS. SMB обеспечивает лучшую совместимость с Windows, поддерживает шифрование, многопоточность и более высокую производительность при работе с большими файлами. AFP уступает SMB в скорости и функциональности, но исторически лучше работал с метаданными macOS.
  • NFS (Network File System) — протокол для Unix-подобных систем. NFS обеспечивает высокую производительность и прозрачный доступ, но не поддерживает метаданные macOS и блокировки файлов в той же степени, что AFP.
  • FTP (File Transfer Protocol) — устаревший протокол, не поддерживающий метаданные, блокировки и аутентификацию в современном виде.

Критика и недостатки

AFP критикуется за:

  • Низкую производительность — по сравнению с SMB и NFS, AFP медленнее передаёт большие файлы и хуже масштабируется в больших сетях.
  • Закрытость — протокол является проприетарным, его спецификация не полностью открыта, что затрудняет реализацию сторонними разработчиками.
  • Устаревшую архитектуру — AFP не поддерживает современные функции, такие как асинхронная передача данных, многопоточность и эффективное кэширование.
  • Отсутствие поддержки для Windows — AFP не поддерживается в Windows без стороннего ПО (например, MacDrive или DAVE).

Интересные факты

  • AFP был одним из первых протоколов, поддерживающих ресурсные форки, что позволяло хранить метаданные (например, иконки и настройки) непосредственно в файле.
  • Протокол AFP использовался в AppleShare IP (1996–2001) — программном обеспечении для файлового и печатного серверов.
  • С выходом macOS 10.13 High Sierra (2017) Apple сделала SMB протоколом по умолчанию для файлового обмена, но AFP остаётся доступным для совместимости со старыми версиями macOS.
  • AFP поддерживается в эмуляторах классической Mac OS (например, SheepShaver) для обеспечения сетевого доступа.

Источники

  • Apple Inc. «Apple Filing Protocol (AFP) Overview» — документация Apple Developer.
  • «Mac OS X Server: File Services Administration Guide» — Apple Inc., 2005.
  • «Network File System Protocols: AFP, SMB, NFS» — O'Reilly Media, 2012.
  • «AFP vs SMB: Performance Comparison» — Ars Technica, 2018.
  • «Apple Filing Protocol» — Wikipedia (английская версия), 2023.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →