AppleTalk
Подобно NetBEUI, стек протоколов AppleTalk предназначен для выполнения базовых сетевых функций в небольшой группе компьютеров.
В компьютерах Apple Macintosh сетевое оборудование и ПО имелось практически с самого начала. AppleTalk, конечно, не обладает гибкостью TCP/IP, но зато его просто устанавливать и использовать.
Основные сетевые задачи — совместное использование файлов и принтеров — он решает вполне эффективно. Но, увы, AppleTalk не поддерживает коммуникации Интернета и потому уступает свои позиции TCP/IP.
В AppleTalk изначально применялся собственный протокол канального уровня — Apple LocalTalk — адаптер для которого встраивался в компьютеры Macintosh. Он работал на скорости всего 230 кбит/сек, и вскоре был заменен протоколом Apple EtherTalk со скоростью 10 Мбит/сек (или Fast EtherTalk со скоростью 100 Мбит/сек), а также, в меньшей степени, протоколами TokenTalk со скоростями 4 и 16 Мбит/сек и FDDITalk со скоростью 100 Мбит/сек. Эти протоколы являются адаптированными вариантами протоколов Ethernet, Token Ring и FDDI.
Подобно IP и IPX, для идентификации сетевых компьютеров в AppleTalk используется иерархическая система адресации. У каждого компьютера AppleTalk имеется уникальный 8-битовый идентификатор узла, который выбирается случайным образом и назначается самим компьютером при первом подключении к сети. Убедившись с помощью широковещательного сообщения, что ни одному компьютеру в сети не присвоен тот же идентификатор, система запоминает его и использует при последующих подключениях к сети. Поскольку длина идентификатора всего 8 битов, в одиночную сеть AppleTalk нельзя включить более 254 узлов (идентификаторы 0 и 255 не применяются). Для маршрутизации в AppleTalk используются 16-битовые номера сетей. Компьютер, подключающийся к сети, определяет ее номер с помощью протокола ZIP (Zone Information Protocol). Как и в случае IP, сети AppleTalk можно соединять с помощью маршрутизаторов, которые считывают из пакета номер целевой сети и идентификатор целевого узла и направляют пакет в соответствующую ЛВС.
Для идентификации процесса на компьютере в AppleTalk применяется 8-битовый номер сокета, который играет ту же роль, что и значение поля Protocol заголовка IP. Комбинация номера сети, идентификатора узла и сокета записывается в виде трех десятичных чисел, разделенных точками, например, 2.12.50. Преобразование аппаратного адреса канального уровня в идентификатор узла и номер сети в AppleTalk осуществляется с помощью протокола AARP (AppleTalk Address Resolution Protocol), действие которого практически идентично действию протокола ARP из TCP/IP.
Помимо идентификатора узла и номера сети компьютеру Apple-Talk присваивается понятное имя. Компьютеры объединяются в логические структурные единицы, называемые зонами (zones).
На сетевом уровне в AppleTalk работает протокол DDP. Подобно IP и IPX, он не ориентирован на соединение. DDP инкапсулирует данные, сгенерированные протоколом верхнего уровня, а также выполняет многие другие функции, аналогичные функциям IP и IPX, в том числе адресацию пакетов, маршрутизацию и идентификацию протокола. Простая сеть AppleTalk идентифицируется одним номером и состоит из одной нерасширенной зоны (nonextended network). Сеть, идентифицируемая несколькими номерами и состоящая из нескольких зон, называется расширенной сетью (extended network). В такой сети применяется расширенный формат заголовка DDP (рис).
Функции полей заголовка DDP:
· Hop Count (1 байт) — число маршрутизаторов, пройденных пакетом на пути к целевой системе.
· Datagram Length (2 байта) — длина дейтаграммы DDP; используется для базового обнаружения ошибок.
· Checksum(2 байта) — необязательное поле, содержащее контрольную сумму, рассчитанную для всей дейтаграммы; используется для более летального обнаружения ошибок.
· Source Socket Number (1 байт) — номер сокета, соответствующий приложению или процессу, которые сгенерировали информацию в поле данных,
· Destination Socket Number (1 байт) — номер сокета, соответствующий приложению или процессу, которым адресована информация в поле данных.
· Source Address (3 байта) — номер сети и идентификатор узла ком-Jf пьютера, сгенерировавшего пакет.
· Destination Address (3 байта) — номер сети и идентификатор узла компьютера, которому адресован пакет.
· DDP Type (1 байт) — идентификатор протокола верхнего уровня, сгенерировавшего информацию в поле данных.
· Data(переменной длины, до 586 байтов) — информация, сгенерированная протоколом верхнего уровня.
В нерасширенных сетях применяется сокращенный заголовок DDP, в который включаются только четыре, поля, идентифицирующие исходную и целевую системы, а также поля, определяющие длину дейтаграммы и протокол, сгенерировавший данные.