В разделах 4.6.3.1–4.6.3.4 все эти компоненты рассматриваются более подробно.
4.6.3.1 Упорядоченные множества Fibre Channel
Упорядоченные множества – это структуры последовательной передачи данных объемом 4 байта, которые представляют собой специальные символы или сигналы линии связи. Далее приведены примеры подобных множеств.
Разделители кадров SOF (Start Of Frame) и EOF (End Of Frame), которые являются аналогами пакетов SOF и EOF в сетях Ethernet. В отличие от Ethernet, в Fibre Channel определено несколько вариантов SOF и EOF, поскольку уровнем FC-1 используется схема кодирования, формирующая несколько представлений для каждого передаваемого символа.
Два базовых сигнала для указания состояния порта.
Idle – указание, что порт готов для передачи или приема данных.
Receiver Ready – указание, что буфер интерфейса (устройства взаимодействия) готов для приема данных.
Базовая последовательность. Простое упорядоченное множество, которое регулярно передается для указания особого статуса порта. К особым статусам относятся:
Not Operational (NOS) – используется только в сетях с топологией «точка-точка» или в связной архитектуре (но не в кольце с разделением доступа) для указания на отказ в работе линии связи или появление определенной ошибки;
Offline (OLS) – передается во время инициализации порта или при получении базового статуса NOS; таким образом, в ответ на NOS порт отправляет ответ OLS;
Link Reset (LR) – используется для указания на необходимость повторной инициализации линии связи;
Link Reset Response (LS) – используется для указания, что данные LR получены и обработаны.
4.6.3.2 Кадр Fibre Channel
Как пакет IP является базовым элементом протокола Internet (IP), так ■ и кадр представляет собой основной структурный элемент интерфейса Fibre Channel. Существует три типа кадров.
1. Кадры управления линией связи (link control frames), используемые для отправки команды управления линией связи.
Рис. 4.5. Заголовок кадра Fibre Channel
Кадры данных линии связи (link data frames), используемые для отправки данных, необходимых для управления линией связи.
Кадры данных устройства (device data frames), которые содержат данные для протоколов более высокого уровня, например данные, считанные с жесткого диска.
На рис. 4.5 показан заголовок кадра Fibre Channel. Кадр проектировался для передачи 2048 байт данных и необйзательного заголовка размером 64 байт. Подобный размер кадра позволяет передавать за один раз большой объем данных с минимальными накладными расходами (около 1,5%). Однако при этом другому узлу придется ждать, пока завершится передача большого кадра, что подразумевает увеличение задержек в передаче. Сравним это с протоколом ATM (Asynchronous Transfer Mode), где кадр имеет размер 53 байт и накладные расходы протокола составляют около 10%. Это позволяет снизить задержки, но время передачи определенного объема данных возрастает.
Каждый кадр начинается и заканчивается специальным ограничителем, как и в других сетевых протоколах. Это SOF и EOF соответственно. Каждый кадр имеет заголовок, выполняющий несколько функций. Одна из них – это предоставление адресов назначения и источника для обеспечения коммута-
дии данных. Еще одна задача состоит в переносе информации для управления линией связи, включая управление самой передачей.
Другие поля заголовка кадра Fibre Channel рассматриваются ниже.
Поле Destination_Id используется для маршрутизации кадра. В топологиях «точка-точка» и кольцо с разделением доступа маршрутизация может проходить обычным образом, что не относится к топологии коммутируемой связной архитектуры. Поле Source_Id предназначено для передачи сообщений об ошибках и для предотвращения циклов данных при маршрутизации.
Поля R_CTL и Туре используются для сортировки различных кадров уровня FC-4 по их прибытию в точку назначения. Таким образом, эти поля указывают, содержит ли прибывший кадр данные интерфейса SCSI, протокола IP или другие данные. Значения поля Туре описываются в табл. 4.3.
Поле R_CTL используется для указания содержимого кадра. Кадр может содержать данные или информацию для управления линией связи; в последнем случае кадры могут быть запрошенными и незапрошенными.
Таблица 4.3. Значения поля Туре в кадрах Fibre Channel
Поле F_CTL используется для описания информации кадра, например первой или последней последовательности.
Поле DF_CTL указывает на присутствие или отсутствие необязательных заголовков.
Поля SEQ_Id и SEQ_CNT уникально идентифицируют счетчик последовательности обмена (см. раздел 4.6.3.3).
Поле 0X_Id (идентификатор обмена источника) используется для связывания кадра с определенным обменом исходного порта.
Доле RX_Id (идентификатор обмена ответчика) используется для связывания кадра с определенным обменом отвечающего порта.
Поле Relative Offset идентифицирует относительное смещение первого байта основного содержания кадра от базового адреса.
4.6.3.3 Последовательность Fibre Channel
Последовательность представляет собой набор кадров, которые передаются из одной точки в другую. Для исправления возможных ошибок каждый кадр содержит уникальный счетчик последовательности. Исправление ошибок осуществляется протоколом более высокого уровня, обычно на уровне FC-4. Обратите внимание, что все кадры в последовательности передаются в одном направлении (а не в обоих одновременно). На рис. 4.4 показано, как кадры, последовательности и обмены взаимодействуют друг с другом.
4.6.3.4 Обмен Fibre Channel
Несколько последовательностей составляют обмен (exchange). Обмены представляют собой последовательности двусторонних направлений; т.е. в обмен входят последовательности данных, передающихся в разных направлениях, хотя каждая последовательность передается только в одном направлении. При каждом обмене только одна последовательность может быть активна в текущий момент времени. Но, так как одновременно могут быть активны несколько обменов, различные последовательности из этих обменов также могут быть активны одновременно.
Каждый обмен выполняет одну функцию, например реализует команду SCSI Read.
4.6.3.5 Управление потоком Fibre Channel
Конечные узлы Fibre Channel взаимодействуют непосредственно друг с другом и не создают сеансовых подключений к промежуточным узлам.
Устройства не «подозревают» о коммутаторе связной архитектуры и концентраторе. Конечно, при этом коммутаторы и концентраторы обмениваются пакетами управления потоком с этими устройствами.
Механизм управления потоком требует, чтобы передающий порт не отправлял кадры быстрее, чем принимающий порт может их обработать. Порты Fibre Channel имеют буфера для временного хранения кадров и последующей их обработки. Под обработкой подразумевается отправка кадра на другой порт или передача кадра протоколу более высокого уровня. Схема управления потоком, которая используется в Fibre Channel, очень напоминает протокол плавающего окна в TCP/IP. Размер окна, представляющий собой количество кадров, которые можно отправить без подтверждения их приема, устанавливается сторонами обмена заранее. При этом согласованное значение не может быть изменено. Для каждого отправленного кадра размер окна уменьшается на единицу, а для каждого подтвержденного кадра – увеличивается на единицу. Управление потоком может осуществляться одним из двух способов: «точка-точка» или «буфер-буфер». При этом требуется совместное использование обоих методов.
Управление потоком по схеме «точка-точка» осуществляется между двумя конечными точками: источником данных (например, сервером) и получателем данных (например, жестким диском). Управление потоком «точка- точка» проводится между двумя портами типа N (между ними могут находиться промежуточные узлы). Два порта типа N регистрируют друг друга, в процессе чего каждый порт выделяет для себя определенное количество буферов у другого порта. Это количество называется резервированием буфера. Отправитель может отправлять количество кадров, не превышающее это значение. Получатель отправляет кадр АСК (позитивное подтверждение) для каждого успешно полученного и обработанного кадра, а отправитель при получении кадра АСК может увеличить значение резервирования (credit count) на единицу для каждого полученного кадра АСК. Получатель может подтвердить успешное получение нескольких кадров или даже целой последовательности и получатель должен будет, не ожидая подтверждения для каждого кадра в отдельности, увеличить количество кадров, которое можно отправлять.