3.2 Описание протокола SMB

SMB, или иначе CIFS – это протокол, определяющий сетевую файловую систему, ее структуру и порядок использования. NetBIOS предоставляет интерфейс, через который SMB-сообщения передаются в сети, он используется серверами для "анонса" служб в сети, и клиентами для "обзора" этих служб. NetBIOS в качестве транспортного протокола может использовать любой низкоуровневый сетевой протокол, однако наиболее часто используется TCP/IP; когда NetBIOS работает поверх TCP/IP, это называется NBT. WINS предоставляет централизованные службы имен (отображение имен машин в IP-адреса) там, где это необходимо.

Протокол SMB, соответствующий прикладному и представительному уровням модели OSI, регламентирует взаимодействие рабочей станции с сервером. В функции SMB входят следующие операции:

Управление сессиями. Создание и разрыв логического канала между рабочей станцией и сетевыми ресурсами файлового сервера.

Файловый доступ. Рабочая станция может обратиться к файл-серверу с запросами на создание и удаление каталогов, создание, открытие и закрытие файлов, чтение и запись в файлы, переименование и удаление файлов, поиск файлов, получение и установку файловых атрибутов, блокирование записей.

Сервис печати. Рабочая станция может ставить файлы в очередь для печати на сервере и получать информацию об очереди печати.

Сервис сообщений. SMB поддерживает простую передачу сообщений со следующими функциями: послать простое сообщение; послать широковещательное сообщение; послать начало блока сообщений; послать текст блока сообщений; послать конец блока сообщений; переслать имя пользователя; отменить пересылку; получить имя машины.

На высоком уровне представление протокола SMB довольно просто. Он включает в себя все возможные операции для работы с файлами и принтерами, которыми вы пользуетесь на обычном компьютере, например :

открыть и закрыть файл;

создание и удаление директорий;

чтение и запись в файл;

поиск файлов;

посылка на печать и отмена печати на принтере.

Все эти операции могут быть помещены в сообщение SMB и переданы к и от сервера. Название SMB происходит от названия формата данных √ разновидности стандартных системных вызовов DOS к различным структурам данных или Server Message Blocks, адаптированная для передачи данных другому компьютеру по сети.

Формат SMB

Richard Shape из команды разработчиков Samba дал определение протоколу SMB как запрос-ответ. На практике это означает, что клиент посылает запрос SMB к серверу и сервер отвечает сообщением на этот запрос. Сервер редко формирует ответы, которые не относятся к клиенту.

Сообщение SMB не так сложно. Рассмотрим структуру сообщения. Его можно разделить на две части: заголовок фиксированного размера и поле команды, размер которой меняется динамически в зависимости от состава сообщения.

Формат заголовка SMB

Таблица 3.1 показывает формат заголовка SMB. Команды SMB не обязательно должны заполнять все поля заголовка SMB. Например, когда клиент впервые пытается соединиться с сервером, то значение идентификатора дерева (TID) пусто √ он появляется после успешного соединения и нулевое значение TID (0xFFFF) устанавливается в соответствующее поле заголовка. Другие поля могут также устанавливаться в ноль, когда не используются.

Значения полей заголовка SMB перечислены в Таблице 3.1.

Таблица 3.1 Поля заголовка SMB

Поле Размер (байты) Описание
0xFF 'SMB' 1 Идентификатор протокола
COM 1 Код команды, от 0x00 до 0xFF
RCLS 1 Класс ошибки
REH 1 Зарезервирован
ERR 2 Код ошибки
REB 1 Зарезервирован
RES 14 Зарезервирован
TID 2 ID Дерева; уникальное ID для ресурса, исп. клиентом
PID 2 ID Вызывающего процесса
UID 2 Идентификатор пользователя
MID 2 Мультиплексный ID; используемый для передачи запросов внутри процесса

Формат команды SMB

После того, как заголовок представлен определенным числом байт, происходит выполнение команды SMB. Любая команда, например такая, как открыть файл (ID поля COM: SMBopen ) или получить запрос на печать (SMBsplretq), имеет свой набор параметров и данные. Как и в поле заголовка SMB, здесь также могут быть заполнены не все командные поля, все зависит от команды. Например, команда GetServerAttributes (SMBdskattr) устанавливает поля WCT BCC в 0. Поля командных сегментов показаны в Таблице 3.2.

Таблица 3.2 - Содержание команды SMB

Поле Размер в байтах Описание
WCT 1 Счетчик слов
VWV Переменная Параметр слов (размер, определяемый WCT)
BCC 2 Параметр счетчика байт
DATA Переменная Данные (размер, определяемый BCC)

Информация о работе «АИС управления серверным программным обеспечением на базе программного комплекса Webmin/Alterator»
Раздел: Информатика, программирование
Количество знаков с пробелами: 84255
Количество таблиц: 6
Количество изображений: 8

0 комментариев


Наверх