В начале 1980 гг. Apple Computer готовилась к выпуску компьютера Macintosh. Инженеры компании знали, что в скором времени сети станут насущной необходимостью, а не просто интересной новинкой. Они хотели также добиться того, чтобы базирующаяся на компьютерах Macintosh сеть была бесшовным расширением интерфейса пользователя Macintosh, совершившим подлинную революцию в этой области. Имея в виду эти два фактора, Apple решила встроить сетевой интерфейс в каждый Macintosh и интегрировать этот интерфейс в окружение настольной вычислительной машины. Новая сетевая архитектура Apple получила название Apple Talk.
Хотя Apple Talk является патентованной сетью, Apple опубликовала характеристики Apple Talk, пытаясь поощрить разработку при участии третьей стороны. В настоящее время большое число компаний успешно сбывают на рынке базирующиеся на Apple Talk изделия; в их числе Novell, Inc. и Мicrosoft Corparation.
Оригинальную реализацию Apple Talk, разработанную для локальных рабочих групп, в настоящее время обычно называют Apple Talk Phase I. Однако после установки свыше 1.5 мил. компьютеров Macintosh в течение первых пяти лет существования этого изделия, Apple обнаружила, что некоторые крупные корпорации превышают встроенные возможности Apple Talk Phase I, поэтому протокол был модернизирован. Расширенные протоколы стали известнны под названием Apple Talk Phase II. Oни расширили возможности маршрутизации Apple Talk, обеспечив их успешное применение в более крупных сетях.
Apple Talk была разработана как система распределенной сети клиент- сервер. Другими словами, пользователи совместно пользуются сетевыми ресурсами (такими, как файлы и принтеры). Компьютеры, обеспечивающие эти ресурсы, называются служебными устройствами (servers); компьютеры, использующие сетевые ресурсы служебных устройств, называются клиентами (clients). Взаимодействие со служебными устройствами в значительной степени является прозрачным для пользователя, т.к. сам компьютер определяет местоположение запрашиваемого материала и обращается к нему без получения дальнейшей информации от пользователя. В дополнение к простоте использования, распределенные системы также имеют экономические преимущества по сравнению с системами, где все равны, т.к.важные материалы могут быть помещены в нескольких, а не во многих местоположениях.
Apple Talk относительно хорошо согласуется с эталонной моделью OSI. На Рис. 16-1 "Apple Talk и эталонная модель OSI" представлены протоколы Apple Talk, смежные с теми уровнями OSI, с которыми у них установлено соответствие. Этот рисунок отличается от других изображений связи пакета протоколов Apple Talk с моделью OSI тем, что на нем NBP, ZIP и RTMP размещены на Уровне 3, а АЕР-на Уровне 7. По мнению Cisco, NBP, ZIP и RТМP по своим функциональным возможностям стоят в ряду ближе к Уровню 3 модели OSI, хотя они и пользуются услугами DDP, другого протокола Уровня 3. Аналогично, Cisco полагает, что АРЕ следует включить в перечень протоколов прикладного уровня, т.к. он обычно используется для обеспечения функциональных возможностей прикладного уровня. В частности, АЕР помогает определить возможность отдаленных узлов принимать следующие соединения.
Apple разработала AppleTalk таким образом, чтобы он был независимым от канального уровня. Другими словами, теоретически он может работать в дополнение к любой реализации канального уровня. Apple обеспечивает различные реализации канального уровня, включая Ethernet, Token Ring, FDDI и LocalTalk. Apple ссылается на AppleTalk, работающий в Ethernet, как нa EtherTalk, в Тоkеn Ring-кaк на TokenTalk и в FDDI-как на FDDITalk. Информация о технических характеристиках Ethernet, TokenRing и FDDI приведена соответственно в главе 5 "Ethernet/IEEE 802.3", главе 6 "Token Ring/IEEE 802.5" и главе 7 "FDDI".
LocalTalk - это запатентованная компанией Apple система доступа к носителю. Он базируется на конкуренции на получение доступа, топологии об'единения с помощью шины и передаче сигналов базовой полосы (baseband signaling) и работает на носителе, представляющим собой экранированную витую пару, со скоростью 230.4 Kb/сек. Физическим интерфейсом является RS-422; это сбалансированный интерфейс для передачи электрических сигналов, поддерживаемый интерфейсом RS-449. Сегменты LocalTalk могут переноситься на расстояния до 300 метров и обеспечивать до 32 узлов.
В данном разделе описываются концепции, принятые для сетевого уровня AppleTalk, и протоколы для этого уровня. В нем рассматриваются назначение адреса протокола, сетевые об'екты и протоколы AppleTalk, которые обеспечивают функциональные возможности Уровня 3 эталонной модели OSI.
Для обеспечения минимальных затрат, связанных с работой администратора сети, aдреса узлов AppleTalk назначаются динамично. Когда Macintosh, прогоняющий AppleTalk, начинает работать, он выбирает какой-нибудь адрес протокола (сетевого уровня) и проверяет его, чтобы убедиться, что этот адрес используется в данный момент. Если это не так, то этот новый узел успешно присваивает себе какой-нибудь адрес. Если этот адрес используется в данный момент, то узел с конфликтным адресом отправляет сообщение, указывающее на наличие проблемы, а новый узел выбирает другой адрес и повторяет этот процесс. На Рис. 16-2 представлен процесс выбора адреса AppleTalk.
Фактические механизмы выбора адреса AppleTalk зависят от носителя. Для установления связи адресов AppleTalk с конкретными адресами носителя используется протокoл разрешения адреса AppleTalk (AARP). AARP также устанавливает связи между адресами других протоколов и аппаратными адресами. Если пакет протоколов AppleTalk или любого другой пакет протоколов должен отправить пакет данных в другой сетевой узел, то адрес протокола передается в AARP. AARP сначала проверяет адресный кэш, чтобы определить, является ли уже установленной связь между адресом этого протокола и аппаратным адресом. Если это так, то эта связь передается в запрашивающий пакет протоколов. Если это не так, то AARP инициирует широковещательное или многопунктовое сообщение, запрашивающее об аппаратном адресе данного протокольного адреса. Если широковещательное сообщение доходит до узла с этим протокольным адресом, то этот узел в ответном сообщении указывает свой аппаратный адрес. Эта информация передается в запрашивающий пакет протоколов, который использует этот аппаратный адрес для связи с этим узлом.
AppleTalk идентифицирует несколько сетевых об'ектов. Самым простым является узел (node), который является просто любым устройством, соединенным с сетью AppleTalk. Наиболее распространенными узлами являются компьютеры Macintosh и лазерные принтеры, однако многие другие компьютеры также способны осуществлять связь AppleTalk, в том числе компьютеры IBM PC, Digital Equipment Corparation VAX и различные АРМ. Следующим об'ектом, определяемым AppleTalk, является сеть. Сеть AppleTalk представляет собой просто отдельный логический кабель. Хотя этот логический кабель часто является отдельным физическим кабелем, некоторые вычислительные центры используют мосты для об'единения нескольких физических кабелей. И наконец, зона (zone) АppleTalk является логической группой из нескольких сетей (возможно находящихся далеко друг от друга). Об'екты AppleTalk изображены на Рис. 16-3.
Основным протоколом сетевого уровня AppleTalk является протокол DDP. DDP обеспечивает обслуживание без установления соединения между сетевыми гнездами. Гнезда могут назначаться либо статистически, либо динамически. Адреса AppleTalk, назначаемые DDP, состоят из 2 компонентов: 16-битового номера сети (network number) и 8-битового номера узла (node number). Эти два компонента обычно записываются в виде десятичных номеров, разделенных точкой (например, 10.1 означает сеть 10, узел 1). Если номер сети и номер узла дополнены 8-битовым гнездом (socket), обозначающим какой-нибудь особый процесс, то это означает, что в сети задан какой-нибудь уникальный процесс.
AppleTalk Phase II делает различие между нерасширенными (nоnextended) и расширенными (extended) сетями. В нерасширенных сетях, таких как LocalTalk, номер каждого узла AppleTalk уникален. Нерасширенные сети были единственным типом сети, определенным в AppleTalk Phase I. В расширенных сетях, таких как EtherTalk и TokenTalk, уникальной является комбинация номер каждой сети/номер узла.
Зоны определяются управляющим сети AppleTalk в процессе конфигурации роутера. Каждый узел AppleTalk принадлежит к отдельной конкретной зоне. Расширенные сети могут иметь несколько зон, которые ассоциируются с ними. Узлы в расширенных сетях могут принадлежать к любой отдельной зоне, которая ассоциируется с этой расширенной сетью.
Протокол поддепжки маршрутной таблицы (RTMP)
Протокол, который организует и поддерживает маршрутные таблицы AppleTalk, называется Протоколом поддержки маршрутной таблицы (RTMP). Маршрутные таблицы RTMP содержат данные о каждой сети, до которой может дойти дейтаграмма. В эти данные входит порт роутера, который ведет к сети пункта назначения, ID узла следующего роутера, который принимает данный пакет, расстояние до сети назначения, выраженное числом пересылок, и текущее состояние этих данных (хорошее, подозрительное или плохое). Периодический обмен маршрутными таблицами позволяет роутерам об'единенных сетей гарантировать обеспечение непротиворечивой текущей информацией. На Рис. 16-4 представлен образец таблицы RTMP и соответствующая архитектура сети.
Протокол привязки по именам AppleTalk (Name Binding Protocol - NBP) устанавливает связь имен AppleTalk (которые выражаются как об'екты, видимые для сети - network-visible entities, или NVE) с адресами. NVE является адресуемой сетью AppleTalk услугой, такой как гнездо. NVE ассоциируются с более, чем одним именем об'ектов и перечнем атрибутов. Имена об'ектов представляют собой последовательность символов, например такую: printer@net1, в то время как перечень атрибутов определяет характеристики NVE.
Связь между NVE с присвоенными именами и сетевыми адресами устанавливается через процесс привязки имени. Привязка имени может быть произведена в момент запуска узла или динамично, непосредственно перед первым использованием. NBP управляет процессом привязки имени, в который входят регистрация имени, подтверждение имени, стирание имени и поиск имени.
Зоны позволяют проводить поиск имени в группе логически связанных узлов. Чтобы произвести поиск имен в пределах какой-нибудь зоны, отправляется запрос о поиске в местный роутер, который рассылает широковещательный запрос во все сети, которые имеют узлы, принадлежащие заданной зоне. Протокол информации зоны (Zone Information Protocol - ZIP) координирует эти действия.
ZIP поддерживает соответствие номер сети/номер зоны в информационных таблицах зоны (zone information tables-ZIT). ZIT хранятся в роутерах, которые являются основными пользователями ZIP, однако конечные узлы используют ZIP в процессе запуска для выбора своих зон и получения межсетевой информации о зонах. ZIP использует маршрутные таблицы RTMP для отслеживания изменений в топологии сети. Если ZIP находит данные о маршрутной таблице, которох нет в данной ZIT, она образует запись данных о новой ZIT. На Рис. 16-5 представлен образец ZIT.
Транспортный уровень AppleTalk реализуется двумя основными протоколами AppleTalk: AppleTalk Transaction Protocol (ATP) (Протокол транзакций AppleTalk) и AppleTalk Data Stream Protocol (ADSP) (Протокол потока данных АppleTalk). АТР является транзакционно-ориентированным, в то время как ADSP является ориентированным по потоку данных.
Протокол транзакций AppleTalk (ATP)
ATP является одним из протоколов транспортного уровня Appletalk. АТР пригоден для применений, базирующихся на транзакциях, которые можно встретить в банках или магазинах розничной торговли.
В транзакции АТР входят запросы (от клиентов) (requests) и ответы (от служебных устройств) (replies). Каждая пара запрос/ответ имеет отдельный ID транзакции. Транзакции имеют место между двумя гнездами клиентов. АТР использует транзакции "точно-один раз" (exactly once - XO) и "по крайней мере один раз" (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 - РАР) AppleTalk является ориентированным по связи протоколом, который организует и поддерживает связи между клиентами и служебными устройствами (использование термина printer в заголовке этого протокола является просто исторической традицией). Эхо-протокол AppleTalk (AppleTalk Echo Protocol - AEP) является очень простым протоколом, генерирующим пакеты, которые могут быть использованы для проверки способности различных узлов сети создавать повторное эхо. И наконец, Протокол ведения картотеки AppleTalk (AppleTalk Filing Protocol - AFP) помогает клиентам коллективно использовать служебные файлы в сети.