- •Протоколы локальных сетей
- •Введение
- •Протокол
- •Существует два основных метода взаимодействия абонентов в сети:
- •Метод дейтаграмм
- •Пакет при этом методе передается без установления логического канала, то есть без предварительного
- •Метод дейтаграмм предъявляет повышенные требования к аппаратуре (так как приемник всегда должен быть
- •Метод с логическим соединением
- •При этом методе пакет передается только после того, как будет установлено логическое соединение
- •Метод с логическим соединением более сложен, чем метод дейтаграмм, но гораздо надежнее, поскольку
- •Примеры протоколов, работающих по методу дейтаграмм — это протоколы IP и IPX.
- •Именно для того, чтобы объединить достоинства обоих методов, эти протоколы используются в виде
- •Схема соответствия протоколов Novell и 7-уровневой модели OSI
- •Сетевому уровню модели OSI соответствует протокол IPX.
- •Протокол IPX
- •Общие сведения
- •В качестве прототипа протокола IPX компания Novell использовала один из первых протоколов локальных
- •Если устройство, с которым необходимо установить связь, находится в другой сети, IPX прокладывает
- •Формат пакета IPX
- •Все поля, кроме поля Data, образуют заголовок пакета.
- •Контрольная сумма (Checksum)
- •Общая длина пакета (Length)
- •Управление транспортом (Transport control)
- •Тип пакета (Packet type)
- •Номер сети получателя
- •Адрес станции-получателя (DestNode)
- •Гнездо программы-
- •Номер сети отправителя пакета (SourceNetwork),
- •Передаваемые данные (Data)
- •Пример структуры заголовка
- •Работа с драйвером IPX/SPX
- •API драйвера протокола IPX состоит из примерно дюжины функций, предназначенных для выполнения операций
- •Процедура приема/передачи
- •Прикладные программы не работают напрямую с драйвером сетевого адаптера. Запросы на прием и
- •Если на рабочей станции используется операционная система MS-DOS, функции, необходимые для реализации протокола
- •Для приема или передачи пакета прикладная программа должна подготовить пакет данных, сформировав его
- •Подготовив блок ECB, прикладная программа передает его адрес соответствующей функции IPX для выполнения
- •Функции IPX, принимающие или передающие пакет, не выполняют ожидания завершения операции, а сразу
- •Есть и другая возможность. В блоке ECB можно указать адрес процедуры, которая будет
- •Формат блока ECB
- •Блок ECB состоит из фиксированной части размером 36 байт и массива дескрипторов, описывающих
- •Поле Link
- •Поле ESRAddress
- •Поле InUse
- •FFh - ECB используется для передачи пакета данных;
- •Программа может постоянно опрашивать поле InUse, ожидая завершения процесса передачи или приема данных.
- •Поле CCode
- •Если с данным ECB была связана команда приема пакета, в поле CCode могут
- •Если ECB использовался для передачи пакета, в поле CCode после завершения передачи могут
- •Обратим еще раз ваше внимание на то, что, даже если код завершения в
- •Одна из интересных особенностей при передаче пакетов заключается в том, что вы можете
- •Поле Socket
- •Поле IPXWorkspace
- •Поле DriverWorkspace
- •Поле ImmAddress
- •Поле FragmentCnt
- •Значение, записанное в поле FragmentCnt, не должно быть равно нулю. Если в этом
- •Сразу вслед за полем FragmentCnt располагаются дескрипторы фрагментов, состоящие из указателя в формате
- •Самый первый фрагмент не должен быть короче 30 байт, так как там должен
- •Подведём итоги по первой части
- •Недостатки IPX
- •Большие накладные расходы на служебную информацию. Сравнительно небольшая максимальная длина поля данных IPX-пакета
- •Дополнительный трафик, возникающий из-за того, что активные рабочие станции используют часто генерируемые широковещательные
- •Протокол SPX
- •Общие сведения
- •Преимущества использования SPX
- •Формат пакета SPX
- •Отличия форматов IPX и SPX
- •Управление потоком данных (ConnControl)
- •Биты
- •40h Acknowledgement Required. Бит используется драйвером SPX. Вам не следует модифицировать его значение
- •Тип данных в пакете (DataStreamType)
- •Биты
- •FFh End-of-Connection- Acknowledgement. Это значение отмечает пакет, подтверждающий завершение связи. Такой пакет является
- •Идентификатор канала отправителя (SourceConnID)
- •Идентификатор канала получателя (DestConnID)
- •Счетчик переданных пакетов (SeqNumber)
- •Номер следующего пакета (AckNumber)
- •Количество буферов для приема
- •Для протокола используется точно такой же блок ECB, что и для протокола IPX.
- •Протокол SPX позволяет осуществить от 100 до 2000 соединений одновременно (по умолчанию это
- •На основе протокола SPX работают утилита удаленной консоли и службы печати фирмы Novell.
- •Подведём итоги по второй части
- •Взаимодействие уровней стека IPX/SPX
- •Протокол SAP (Service Advertising Protocol) выполняет вспомогательную роль. С помощью протокола SAP каждый
- •В стеке Novell прикладные протоколы NCP и SAP взаимодействует с сетевым уровнем непосредственно,
- •Подведем общий итог
- •Протоколы стека IPX/SPX до недавнего времени хорошо работали в локальных сетях и не
- •Протоколы IPX/SPX широко используются в серверах NetWare до 4-й версии включительно. Начиная с
- •Прикладные программы могут обращаться непосредственно к уровню IPX, например, для посылки широковещательных сообщений,
Все поля, кроме поля Data, образуют заголовок пакета.
Особенностью формата пакета является то, что все поля заголовка содержат значения в перевернутом формате, т. е. по младшему адресу записывается старший байт данных.
Контрольная сумма (Checksum)
Контрольная сумма (Checksum) - это 2-байтовое поле, являющееся «пережитком прошлого», которое протокол IPX ведет от протокола IDP стека Xerox. Так как низкоуровневые протоколы (например, Ethernet) всегда выполняют проверку контрольных сумм, то IPX не использует это поле и всегда устанавливает его в единицы.
Общая длина пакета (Length)
Занимает 2 байта и задает размер всего пакета, включая IPX-заголовок и поле данных. Самый короткий пакет - 30 байт - включает только IPX-заголовок, а рекомендуемый максимально большой - 576 байт - включает IPX-заголовок плюс 546 байт данных. Максимальный размер пакета
в576 байт соответствует рекомендациям стандартов Internet для составных сетей. Протокол IPX вычисляет значение этого поля, основываясь на информации, предоставляемой прикладной программой при вызове функции IPX. IPX-пакет может превосходить рекомендуемый максимум в 576 байт, что и происходит в локальных сетях Ethernet, где используются IPX-пакеты
в1500 байт с полем данных в 1470 байт.
Управление транспортом (Transport control)
Имеет длину 8 бит. IPX-пакет может пересечь до 15 маршрутизаторов. Протокол IPX передающей станции устанавливает это однобайтовое поле в 0 до начала передачи, а затем увеличивает его на 1 каждый раз, когда пакет проходит через маршрутизатор. Если счетчик превысит 15, то пакет аннулируется.
Тип пакета (Packet type)
Имеет длину 8 бит. Фирма Xerox определила в свое время определенные значения для различных типов пакетов: прикладные программы, посылающие IPX- пакеты, должны устанавливать в это поле значение, равное 4. Значение 5 соответствует служебным IPX-пакетам, используемым протоколом SPX в качестве служебных сообщений. Значение 17 указывает на то, что в поле данных IPX- пакета находится сообщение протокола NetWare Core Protocol (NCP) - основного протокола файловой службы NetWare.
Номер сети получателя
пакета
(DestNetwork)
Определяет номер сети, в которую передается пакет. Устанавливается в прикладной программе. Если в поле указывается нулевое значение, то пакет передается в сеть, к которой подключена станция.
Адрес станции-получателя (DestNode)
Определяет адрес станции, которой предназначен пакет. Устанавливается прикладной программой.
Гнездо программы-
получалеля
(DestSocket)
Предназначено для определения программы, которая запущена на станции-получателе и должна принять пакет. Это поле устанавливается в прикладной программе.
Номер сети отправителя пакета (SourceNetwork),
Адрес станции-отправителя (SourceNode),
Гнездо программы-отправителя (SourceSocket)
Содержат, соответственно, номер сети, из которой посылается пакет, адрес передающей станции и гнездо программы, которая передает пакет. Эти поля заполняются протоколом IPX передающей станции.
Передаваемые данные (Data)
Данное поле содержит передаваемые данные. Это поле формируется протоколом IPX передающей станции на основании описания блока ECB (Event Control Block).