Протокол AppleTalk
В начале 1980 гг. Apple Computer готовилась к выпуску компьютера Macintosh. Инженеры компании знали, что в скором времени сети станут насущной необходимостью, а не просто интересной новинкой. Они хотели также добиться того, чтобы базирующаяся на компьютерах Macintosh сеть была бесшовным расширением интерфейса пользователя Macintosh, совершившим подлинную революцию в этой области. Имея в виду эти два фактора, Apple решила встроить сетевой интерфейс в каждый Macintosh и интегрировать этот интерфейс в окружение настольной вычислительной машины. Новая сетевая архитектура Apple получила название Apple Talk.
Хотя Apple Talk является патентованной сетью, Apple опубликовала характеристики Apple Talk, пытаясь поощрить разработку при участии третьей стороны. В настоящее время большое число компаний успешно сбывают на рынке базирующиеся на Apple Talk изделия; в их числе Novell, Inc. и Microsoft Corparation.
Оригинальную реализацию Apple Talk, разработанную для локальных рабочих групп, в настоящее время обычно называют Apple Talk Phase I. Однако после установки свыше 1.5 мил. компьютеров Macintosh в течение первых пяти лет существования этого изделия, Apple обнаружила, что некоторые крупные корпорации превышают встроенные возможности Apple Talk Phase I, поэтому протокол был модернизирован. Расширенные протоколы стали известны под названием Apple Talk Phase II. Они расширили возможности маршрутизации Apple Talk, обеспечив их успешное применение в более крупных сетях.
Apple Talk была разработана как система распределенной сети клиент-сервер. Другими словами, пользователи совместно пользуются сетевыми ресурсами (такими, как файлы и принтеры). Компьютеры, обеспечивающие эти ресурсы, называются служебными устройствами (servers); компьютеры, использующие сетевые ресурсы служебных устройств, называются клиентами Ifclients). Взаимодействие со служебными устройствами в значительной степени является прозрачным для пользователя, так как сам компьютер определяет местоположение запрашиваемого материала и обращается к нему без получения дальнейшей информации от пользователя. В дополнение к простоте использования, распределенные системы также имеют экономические преимущества по сравнению с системами, где все равны, так какважные материалы могут быть помещены в нескольких, а не во многих местоположениях.
Apple Talk относительно хорошо согласуется с эталонной моделью OSI.
Apple разработала AppleTalk таким образом, чтобы он был независимым от канального уровня. Другими словами, теоретически он может работать в дополнение к любой реализации канального уровня. Apple обеспечивает различные реализации канального уровня, включая Ethernet, Token Ring, FDDI и LocalTalk. Apple ссылается HaAppleTalk, работающий в Ethernet, как на EtherTalk, в Token Ring — как на TokenTalk и в FDDI — как на FDDITalk.
LocalTalk — это запатентованная компанией Apple система доступа к носителю. Он базируется на конкуренции на получение доступа, топологии объединения с помощью шины и передаче сигналов базовой полосы (baseband signaling) и работает на носителе, представляющим собой экранированную витую пару, со скоростью 230.4 Kb/сек. Физическим интерфейсом является RS-422; это сбалансированный интерфейс для передачи электрических сигналов, поддерживаемый интерфейсом RS-449.
Сегменты LocalTalk могут переноситься на расстояния до 300 метров и обеспечивать до 32 узлов.
Сетевой уровень Назначения адреса протокола
Для обеспечения минимальных затрат, связанных с работой администратора сети, адреса узлов AppleTalk назначаются динамично. Когда Macintosh, прогоняющий AppleTalk, начинает работать, он выбирает какой-нибудь адрес протокола (сетевого уровня) и проверяет его, чтобы убедиться, что этот адрес используется в данный момент. В случае, если это не так, то этот новый узел успешно присваивает себе какой-нибудь адрес. В случае, если этот адрес используется в данный момент, то узел с конфликтным адресом отправляет сообщение, указывающее на наличие проблемы, а новый узел выбирает другой адрес и повторяет этот процесс.
Фактические механизмы выбора адреса AppleTalk зависят от носителя. Для установления связи адресов AppleTalk с конкретными адресами носителя используется протокол разрешения адреса AppleTalk (AARP). AARP также устанавливает связи между адресами других протоколов и аппаратными адресами. В случае, если пакет протоколов AppleTalk или любого другой пакет протоколов должен отправить пакет данных в другой сетевой узел, то адрес протокола передается в AARP. AARP сначала проверяет адресный кэш, чтобы определить, является ли уже установленной связь между адресом этого протокола и аппаратным адресом. В случае, если это так, то эта связь передается в запрашивающий пакет протоколов. В случае, если это не так, то AARP инициирует широковещательное или многопунктовое сообщение, запрашивающее об аппаратном адресе данного протокольного адреса. В случае, если широковещательное сообщение доходит до узла с этим протокольным адресом, то этот узел в ответном сообщении указывает свой аппаратный адрес. Эта информация передается в запрашивающий пакет протоколов, который использует этот аппаратный адрес для связи с этим узлом.
AppleTalk идентифицирует несколько сетевых объектов. Самым простым является узел (node), который является просто любым устройством, соединенным с сетью AppleTalk. Наиболее распространенными узлами являются компьютеры Macintosh и лазерные принтеры, однако многие другие компьютеры также способны осуществлять связь AppleTalk, в том числе компьютеры IBM PC, Digital Equipment Corparation VAX и различные АРМ. Следующим объектом, определяемым AppleTalk, является сеть. Сеть AppleTalk представляет собой просто отдельный логический кабель. Хотя этот логический кабель часто является отдельным физическим кабелем, некоторые вычислительные центры мосты для объ
Единения нескольких физических кабелей. И наконец, зона (zone) AppleTalk является логической группой из нескольких сетей (возможно находящихся далеко друг от друга).
Протокол доставки дейтаграмм (DDP)
Основным протоколом сетевого уровня AppleTalk является протокол DDP. DDP обеспечивает обслуживание без установления соединения между сетевыми гнездами. Гнезда могут назначаться либо статистически, либо динамически. Адреса AppleTalk, назначаемые состоят из 2
Компонентов: 16-битового номера сети (network number) и 8-битОвого номера узла (node number). Эти два компонента обычно записываются в виде десятичных номеров, разделенных точкой (например, 10.1 означает сеть 10, узел 1). В случае, если номер сети и номер узла дополнены 8-битовым гнездом (socket), обозначающим какой-нибудь особый процесс, то это означает, что в сети задан уникальный процесс.
AppleTalk Phase II делает различие между нерасширенными (попех - tended) и расширенными (extended) сетями. В нерасширенных сетях, таких как LocalTalk, номер каждого узла AppleTalk уникален. Нерасширенные сети были единственным типом сети, определенным в AppleTalk Phase I. В расширенных сетях, таких как EtherTalk и TokenTalk, Уникальной является комбинация номер каждой сети/номер узла.
Зоны определяются управляющим сети AppleTalk в процессе конфигурации роутера. Каждый узел AppleTalk принадлежит к отдельной конкретной зоне. Расширенные сети могут иметь несколько зон, которые ассоциируются с ними. Узлы в расширенных сетях могут принадлежать к любой отдельной зоне, которая ассоциируется с этой расширенной сетью.
Протокол поддержки маршрутной таблицы (RTMP)
Протокол, который организует и поддерживает маршрутные таблицы AppleTalk, Протоколом поддержки маршрутной таблицы (RTMP). Маршрутные таблицы RTMP содержат данные о каждой сети, до которой может дойти дейтаграмма. В эти данные входит порт роутера, который ведет к сети пункта назначения, ID узла следующего роутера, который принимает данный пакет, расстояние до сети назначения, выраженное числом пересылок, и текущее состояние этих данных (хорошее, подозрительное или плохое). Периодический обмен маршрутными таблицами позволяет роверам объединенных сетей гарантировать обеспечение непротиворечивой текущей информацией.
Протокол привязки по именам AppleTalk (Name Binding Protocol — NBP) устанавливает связь имен AppleTalk (которые выражаются как объекты, видимые для сети — network-visible entities, или NVE) с адресами. NVE является адресуемой сетью AppleTalk услугой, такой как гнездо. NVE ассоциируются с более, чем одним именем объектов и перечнем атрибутов. Имена объектов представляют собой последовательность символов, например такую: в то время как перечень атрибутов опреде
Ляет характеристики NVE. Связь между NVE с присвоенными именами и сетевыми адресами устанавливается через процесс привязки имени. Привязка имени может быть произведена в момент запуска узла или динамично, непосредственно перед первым использованием. NBP управляет процессом привязки имени, в который входят регистрация имени, подтверждение имени, стирание имени и поиск имени.
Зоны позволяют проводить поиск имени в группе логически связанных узлов. Для того, чтобы произвести поиск имен в пределах какой - нибудь зоны, отправляется запрос о поиске в местный который
Рассылает широковещательный запрос во все сети, которые имеют узлы, принадлежащие заданной зоне. Протокол информации зоны (Zone Information Protocol — ZIP) координирует эти действия.
ZIP поддерживает соответствие номер сети/номер зоны в информационных таблицах зоны (zone information tables-ZIT). ZIT хранятся в ро - утерах, которые являются основными пользователями ZIP, однако конечные узлы используют ZIP в процессе запуска для выбора своих зон и получения межсетевой информации о зонах. ZIP использует маршрутные таблицы RTMP для отслеживания изменений в топологии сети. В случае, если ZIP находит данные о маршрутной таблице, которых нет в данной ZIT, она образует запись данных о новой ZIT.
Транспортный уровень AppleTalk реализуется двумя основными протоколами AppleTalk: AppleTalk Transaction Protocol (ATP) (Протокол транзакций AppleTalk) и AppleTalk Data Stream Protocol (ADSP) (Протокол потока данных AppleTalk). ATP является транзакционно-ориентиро - ванным, в то время KaKADSP является ориентированным по потоку данных.
Протокол транзакций AppleTalk (ATP)
ATP является одним из протоколов транспортного уровня Appletalk. ATP пригоден для применений, базирующихся на транзакциях, которые можно встретить в банках или магазинах розничной торговли.
В транзакции АТР входят запросы (от клиентов) (requests) и ответы (от служебных устройств) (replies). Каждая пара запрос/ответ имеет отдельный ID транзакции. Транзакции имеют место между двумя гнездами клиентов. АТР использует транзакции «точно-один раз» (exactly once — ХО) и «по крайней мере один раз» (at-least-once — ALO), Транзакции ХО требуются в тех ситуациях, когда случайное выполнение транзакции более одного раза неприемлемо. Банковские транзакции являются примером таких неидемпотентных (nonidempotent) ситуаций (ситуаций, когда повторение какой-нибудь транзакции вызывает проблемы, что достигается тем, что делаются недействительными данные, участвующие в данной транзакции). АТР способен выполнять наиболее важные функции транспортного уровня, в том числе подтверждение о приеме данных И повторную передачу, установление последовательности пакетов, а также фраг- ментирование и повторную сборку. АТР ограничивает сегментирование сообщений до 8 пакетов; пакеты АТР не могут содержать более 578 информационных байтов.
Протокол потока данных AppleTalk (ADSP)
ADSP является другим важным протоколом транспортного уровня Apple Talk. Как видно из его названия, ADSP является ориентированным по потоку данных, а не по транзакциям. Он организует и поддерживает полностью дублированный поток данных между двумя гнездами в объединенной сети AppleTalk.
ADSP является надежным протоколом в том плане, что он гарантирует доставку байтов в том же порядке, в каком они были отправлены, а также то, что они не будут дублированы. ADSP нумерует каждый байт, чтобы отслеживать отдельные элементы потока данных.
ADSP также определяет механизм управления потоком. Пункт назначения может в значительной степени замедлять передачи источника путем сокращения размера объявленного окна на прием.
ADSP также обеспечивает механизм сообщений управления «выхода из полосы» (out-of-band) между двумя объектами AppleTalk. В качестве средства для перемещения сообщений управления выхода из полосы между двумя объектами AppleTalk используются пакеты «внимания» (attention packets). Эти пакеты используют отдельный поток номеров последовательностей, чтобы можно было отличать их от обычных пакетов данных ADSP.
AppleTalk обеспечивает несколько протоколов высшего уровня. Протокол сеансов AppleTalk (AppleTalk Session Protocol — ASP) организует и поддерживает сеансы (логические диалоги) между клиентом AppleTalk и служебным устройством. Протокол доступа к принтеру (Printer Access Protocol — PAP) AppleTalk является ориентированным по связи протоколом, который организует и поддерживает связи между клиентами и служебными устройствами (использование термина printer в заголовке этого протокола является просто исторической традицией). Эхо - протокол AppleTalk (AppleTalk Echo Protocol — AEP) является очень простым протоколом, генерирующим пакеты, которые могут быть использованы для проверки способности различных узлов сети создавать повторное эхо. И наконец, Протокол ведения картотеки AppleTalk (AppleTalk Filing Protocol — AFP) помогает клиентам коллективно использовать служебные файлы в сети.