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.0 | 1986 | Первая версия, работа поверх AppleTalk. |
| AFP 2.0 | 1990 | Поддержка длинных имён файлов и улучшенная аутентификация. |
| AFP 2.1 | 1991 | Поддержка ресурсных форков и блокировок файлов. |
| AFP 3.0 | 2002 | Поддержка TCP/IP, шифрования (Kerberos), аутентификация через Open Directory. |
| AFP 3.1 | 2005 | Поддержка Unicode (UTF-8) и улучшенная работа с метаданными. |
| AFP 3.2 | 2007 | Поддержка расширенных атрибутов и Spotlight. |
| AFP 3.3 | 2011 | Улучшенная поддержка Time Machine и сетевых хранилищ. |
| AFP 3.4 | 2013 | Последняя версия, добавлена поддержка 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 →