охватывает до 300 метров, и при этом обеспечивается подключение максимально
32 устройств.
[КС 21-2]
[ Адресация LocalTalk ]
[ Я - 15-й ] [ Адреса клиентов ]
[ У кого еще такой ] [ Я - 15-й ] [ 1,2...127 ]
[ адрес?]
[ Ну, ладно!]
[ Тогда Я - 127? ]
[ Я - 137, ] [ Адреса серверов ]
[ Это нормально? ] [ 128...254 ]
[ к рис. на стр. 21-3 (в поле рисунка)]
[1]IАдресация LocalTalk
[5]Для поддержания марки компании, создающей продукты с дружественными
пользовательскими интерфейсами, фирма Apple разработала систему адресации,
требующую минимального вмешательства со стороны пользователя. В LocalTalk
используется система динамического назначения адресов. Другими словами, в
процессе загрузки Машины Apple, работающие под управлением LocalTalk,
автоматически назначают (выбирают) себе некоторый адрес. Этот метод экономит
время, сокращает число случаев дублирования адресов, и особенно полезен тогда,
когда ЭВМ-узлы приходится часто переключать между различными сетями. Метод
динамического назначения адресов достаточно уникален, не находит широкого
распространения у производителей ЭВМ.
Процедура динамического назначения адресов в LocalTalk работает следующим
образом. При включении питания на ЭВМ-узле адрес выбирается или произвольно
(случайным образом), или считывается из памяти долговременного хранения.
После этого узел выполняет широковещательную передачу сообщения, с помощью
которого остальным узлам сети предлагается выполнить проверку на дублирование
выбранного адреса. Если дублирование зафиксировано, то выбирается другой
адрес и процедура повторяется, пока не будет найден уникальный собственный
адрес.
Адреса LocalTalk подразделяются на две группы: пользовательские адреса
(клиенты) и серверные адреса. Диапазон адресов клиентов - (1 - 127), адреса
серверов - (128 - 254). Адрес 255 зарезервирован для широковещательной
передачи.
[КС 21-3]
[5]Использование двух адресных групп позволяет отделить клиентов от серверов.
Этот момент достаточно важен при выполнении алгоритма динамического назначения
адресов клиентам и серверам. Выражается это в том, что серверу предоставляется
больше времени для ответа на запрос о дублировании адреса. Связано это с тем,
что серверы обычно в большей степени загружены работой, и поэтому не могут
также быстро реагировать на запросы, как машины клиентов. Кроме этого,
поскольку включение/выключение питания на серверах является событием
достаточно редким в сравнении с машинами клиентов, увеличенные времена
откликов на запросы о дублировании адресов не снижает сколь-нибудь заметно
производительность сети.
[1]Метод доступа LocalTalk
и диалоги передачи данных
[5]Процесс передачи в LocalTalK представляется в виде Диалога, состоящего из
совокупности передаваемых кадров. Прямой диалог осуществляется между одним
передающим узлом сети и одним принимающим узлом сети. Широковещательный
диалог - между одним передающим узлом сети и всеми принимающими узлами сети.
Минимальный временной интервал между двумя очередными диалогами (IDG -
Inter Dialogue Gap) составляет 400 микросекунд. Кадры в рамках диалога
разделяются временными интервалами (IFG - Inter Frame Gap) не менее 200
микросекунд.
Методом доступа, применяемым в LocalTalk, является CSMA/CA. В сетях LocalTalk
не выполняется обнаружение коллизий, а принимаются меры для их исключения
(avoidence) посредством контроля несущей и передачи специальных пакетов:
Запрос передачи (RTS - Request to Send) и Готовность к передаче
(CTS - Clear to Send). Комбинация RTS/CTS служит нескольким целям. Во-первых,
она предупреждает другие узлы о наступлении фазы передачи данных. Во-вторых,
если коллизия и происходит, то лучше, если она возникает в ходе передачи
короткой последовательности RTS/CTS, чем на этапе передачи собственно данных.
Обсуждая диалоги и метод CSMA/CA, рассмотрим более внимательно процесс
выполнения прямых и широковещательных диалогов. При этом предполагается, что
ответственность за повторную передачу данных несут протоколы более высоких
уровней.
Прямой диалог выполняется следующим образом.
[ Контроль ] [ Данные ]
[ несущей ]
[ Время ]
[ Прямая передача ]
[5] Рис. 21-1. Прямой диалог
[КС 21-4]
[5]Перед выполнением передачи узел прежде всего выполняет оперецию "контроль
несущей". Контроль несущей осуществляется в течение по-крайней мере 400
микросекунд (минимальный интервал IDG). Если в этот период обнаруживается
несущая, то выполняется задержка (отсрочка) передачи на время, зависящее от
предыстории работы узла, увеличенное на некоторую случайную величину.
[Контроль] [Контроль]
[несущей] [отсрочка] [несущей ]
[ данные ]
[ задержанная прямая передача ] [ 400 микросекунд ]
[ Контроль ] [ Cлучайная задержка ]
[ несущей ]
[5] Рис. 21-2. Задержанный прямой диалог.
[5]Время отсрочки минимально, если ранее было выполнено несколько отсрочек
передачи. Время отсрочки увеличивается, когда сеть занята другими
передачами, и было выполнено достаточно много отсрочек. Если же несущая
не обнаружена, то осуществляется передача кадра RTS. Принимающий узел
должен сформировать и передать кадр CTS в течение 200 микросекунд
(минимальный IFG). Если кадр CTS в указанный период не передается, то
считается, что возникла коллизия, и вводится отсрочка передачи.
[ Контроль ] [ нет ] [ контроль ]
[ несущей ] [ CTS?] [ отсрочка ] [ несущей ]
[ контроль ] [ нет ] [ отсрочка ] [ контроль ]
[ несущей ] [ CTS?] [ несущей ]
[ Коллизия при прямой передаче ]
[5] Рис. 21-3. Прямой диалог и коллизия
[5]После приема кадра CTS узел должен передать информационный кадр в
течение 200 микросекунд.
[КС 21-5]
[5]Широковещательный диалог выполняется следующим образом.
[ Контроль ]
[ несущей ] [ Данные ]
[ Широковещательная передача ] [ 200 микросекунд ]
[ отсрочка - переменный интервал ]
[ времени, зависящий от предыстории]
[ и некоторой случайной величины ]
[5] Рис. 21-4. Широковещательный диалог
[5]Перед передачей выполняется "прослушивание" несущей. Если несущая
обнаружена, то узел вводит задержку передачи (отсрочку). Если же несущая не
зафиксирована, то осуществляется передача кадра RTS, содержащего
широковещательный адрес назначения (255). Этот кадр не требует ответа, он
просто информирует другие узлы о наступлении фазы передачи данных. Если при
этом канал остается не занятым, узел передает широковещательное сообщение.
При фиксации подряд 32 коллизий (32 отсрочек) в ходе прямого или
широковещательного диалога для высокоуровневых протоколов формируется сигнал
сбоя.
В соответствии со спецификацией LocalTalk прием кадров осуществляется при
совпадении собственного адреса узла и значения из поля адреса кадра, а также
при правильной контрольной сумме кадра (FCS). При нарушении одного из двух
условий кадр "поглощается" без какого-либо уведомления программного
обеспечения протоколов верхнего уровня.
[КС 21-6]
[ Формат кадра LocalTalk ]
[ Преамбула ] [ заголовок ] [ поле Данные ] [ Хвостовик ]
[ пакета ] [ 0-600 байт] [ кадра]
[ кадр ]
[ А=Флаг (2 или более байтов)] [ F=Данные (переменные) ]
[ В=Ид. целевого узла (1 байт)] [ G=Контрольная сумма (2 байта)]
[ C=Ид. узла источника (1 байт)] [ Н=Флаг (1 байт)]
[ D=Тип (1 байт)] [ I=Последовательность сброса (12-18 бит)]
[ E=Длина данных (10 бит)]
[ к рис. на стр. 21-7 (в поле рисунка) ]
[1]Форматы кадров LocalTalk и назначения полей
[5]В LocalTalk специфицировано применение кадров двух типов: кадр управления,
используемый исключительно в интересах протокола передачи, и собственно кадр
данных для высокоуровневой информации. Оба кадра содержат заголовок, в
котором указываются адреса узлов источника и назначения, а также тип пакета.
Реальная длина кадра колеблется от 5 до 603 байтов. При этом в расчет
принимаются длина заголовка и минимальная и максимальная длина поля данные.
Флаги, поле FCS и длина последовательности сброса не учитываются.
[5]Преамбула
[5]Поле преамбулы состоит из двух и более байтов, переносящих
шестнадцатиричное значение 7E. Используется в качестве указателя на начало
кадра. Для обеспечения прозрачности передачи данных внутри кадра применяется
техника бит-стаффинга.
[5]Идентификатор узла-источника
[5]Поле содержит однобайтовый адрес источника кадра
[5]Идентификатор узла назначения
[5]Поле содержит однобайтовый адрес целевого узла.
[КС 21-7]
[5]Тип
[5]В этом поле специфицируется тип кадра: или это кадр данных (значения
1 - 127), или кадр управления (значения 128 - 255). В кадрах управления
поле Данные отсутствует. В настоящее время определены 4 типа кадров
управления, остальные типы зарезервированы. В случае кадров данных поле
Тип используется для идентификации высокоуровневых процессов, принимающих
соответствующие данные.
[5]Длина данных
[5]Первые два байта поля Данные, если оно имеется в кадре, в младших десяти
разрядах содержат значение, указывающее длину всего поля Данные. Шесть
старших разрядов в LocalTalk не используются, однако они зарезервированы для
применения в высокоуровневых протоколах.
[5]Поле Данные
[5]Поле Данные содержит информацию прикладных систем и высокоуровневых
протоколов. Длина данных в этом поле колеблется в интервале от 0 до 600
байтов.
[5]Контрольная сумма (FCS)
[5]Поле контрольной суммы содержит циклическую 16-ти битовую сумму (CRC)
содержимого всех полей кадра, кроме флагов, собственно поля FCS и
последовательности сброса.
[5]Хвостовой флаг
[5]Хвостовой флаг подобно преамбуле содержит 1 байт, имеющий значение 7Е.
Длина поля в 1 байт отличает его от поля преамбулы.
[5]Последовательность сброса
[5]С помощью этой последовательности отмечается конец передаваемого кадра.
Последовательность представляется 12-18 единичными битами. Приемно/передающая