15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

Библиотека Системного Программиста. Том 8
Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS

1. ПЕРЕДАЧА ДАННЫХ В ЛОКАЛЬНОЙ СЕТИ

1.1. Датаграммы

1.2. Сеансы связи

1.3. Сетевой адрес

В локальной сети данные передаются от одной рабочей станции к другой блоками, которые называют пакетами данных. Каждый пакет состоит из заголовка и собственно блока данных. Станция, которая желает передать пакет данных другой станции, указывает в заголовке адрес назначения и свой
собственный, аналогично тому, как это делаете вы, отправляя обычное письмо. На конверте, в который вложено письмо, вы указываете адрес получателя и обратный (свой собственный) адрес.

Продолжая аналогию с письмами, вспомним, что на почте существует такая услуга, как отправка письма или телеграммы с уведомлением о вручении. Когда адресат получит ваше письмо, вам отправляется уведомление о вручении. В этом случае вы можете убедиться, что письмо дошло до адресата и не потерялось по дороге.

В локальной сети программы также имеют возможность отправлять "обычные письма", а также "письма с уведомлением о вручении". И, разумеется, в локальной сети имеется своя система адресов.

1.1. Датаграммы

Передача пакетов данных между рабочими станциями без подтверждения - это тип связи между рабочими станциями на уровне датаграмм (datagram). Уровень датаграмм соответствует сетевому уровню (Network Layer) семиуровневой модели OSI, описанной нами в предыдущем томе.

Что значит "передача без подтверждения"? Это означает, что не гарантируется доставка пакета от передающей станции к принимающей. В результате, например, перегрузки сети или по каким-либо другим причинам принимающая сторона может так и не дождаться предназначенного ей пакета данных. Причем, что характерно для уровня датаграмм, передающая сторона так и не узнает, получила ли принимающая сторона пакет или не получила.

Более того, на уровне датаграмм не гарантируется также, что принимающая сторона получит пакеты в той последовательности, в какой они посылаются передающей станцией!

Казалось бы, зачем нужна такая передача данных, которая не гарантирует доставки? Однако программы, обменивающиеся данными, могут сами организовать проверку. Например, принимающая программа может сама посылать подтверждение передающей программе о том, что получен пакет данных.

Протокол передачи данных IPX - межсетевой протокол передачи пакетов (Internetwork Packet Exchange) - используется в сетевом программном обеспечении Novell и является реализацией уровня датаграмм. Протокол NETBIOS, разработанный фирмой IBM, также может работать на уровне датаграмм.

Большинство задач в сети можно решить на уровне датаграмм, поэтому мы уделим много внимания протоколам IPX и NETBIOS.

Одно из преимуществ уровня датаграмм - возможность посылки пакетов данных одновременно всем станциям в сети. Если же для программ необходима гарантированная доставка данных, можно использовать протокол более высокого уровня - уровня сеанса связи.

1.2. Сеансы связи

На уровне сеансов связи (Session Layer) две рабочие станции перед началом обмена данными устанавливают между собой канал связи - обмениваются пакетами специального вида. После этого начинается обмен данными.

На уровне сеансов связи при необходимости выполняются повторные передачи пакетов данных, которые по каким-либо причинам "не дошли" до адресата. Кроме того, гарантируется, что принимающая станция получит пакеты данных именно в том порядке, в котором они были переданы.

При использовании уровня сеансов связи невозможно организовать "широковещательную" передачу пакетов одновременно всем станциям - для передачи данных необходимо организовать канал связи между одной и другой станцией. Следовательно, в процессе передачи данных могут участвовать одновременно только две станции.

Как и следовало ожидать, в сетевом программном обеспечении Novell уровень сеансов связи реализован как надстройка над уровнем датаграмм. На базе протокола IPX реализован протокол SPX - протокол последовательной передачи пакетов (Sequenced Packet Exchange Protocol).

Протокол NETBIOS реализует наряду с уровнем датаграмм уровень сеансов связи.

В сети Novell NetWare есть эмулятор протокола NETBIOS. Этот эмулятор использует протокол IPX для реализации как уровня датаграмм, так и уровня сеансов связи.

1.3. Сетевой адрес

Подобно почтовому адресу, сетевой адрес состоит из нескольких компонентов. Это номер сети, адрес станции в сети и идентификатор программы на рабочей станции - сокет (рис. 1).

Рис. 1. Сетевой адрес

Номер сети (network number) - это номер сегмента сети (кабельного хозяйства), определяемого системным администратором при установке Novell NetWare. Не путайте этот номер с внутренним номером сети файл-сервера. Напомним, что если в одном сегменте сети имеется два файл-сервера NetWare, то они оба имеют одинаковый номер сети, но разные внутренние номера сети. Если в общей сети есть мосты, каждая отдельная сеть, подключенная через мост, должна иметь свой, уникальный номер сети.

Адрес станции (node address) - это число, которое является уникальным для каждой рабочей станции. При использовании адаптеров Ethernet уникальность обеспечивается изготовителем сетевого адаптера (адрес станции записан в микросхеме постоянного запоминающего устройства, которая находится внутри самого адаптера). Для адаптеров ArcNet адрес станции необходимо устанавливать при помощи перемычек или переключателей на плате сетевого адаптера. Устанавливая в сети адаптеры ArcNet, позаботьтесь о том, чтобы все они имели в сети разные адреса. Как установить сетевой адрес адаптера ArcNet, вы сможете узнать из документации, поставляющейся вместе с адаптером.

Специальный адрес FFFFFFFFFFFFh используется для посылки пакета данных всем станциям данной сети одновременно. Пакет с таким адресом напоминает открытое письмо с опубликованием в печати.

Идентификатор программы на рабочей станции - сокет (socket) - число, которое используется для адресации конкретной программы, работающей на станции. В среде мультизадачных операционных систем, к которым можно отнести OS/2 и Microsoft Windows в расширенном режиме, на каждой рабочей станции в сети одновременно могут быть запущены несколько программ.
Для того, чтобы послать данные конкретной программе, используется идентификация программ при помощи сокетов. Каждая программа, желающая принимать или передавать данные по сети, должна получить свой, уникальный для данной рабочей станции, идентификатор - сокет.