Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS


Определение топологии сети


Если средствами IPX или SPX необходимо передавать данные между рабочими станциями, расположенными в разных сетях, соединенных мостами, вам не обойтись без определения топологии сети. Когда программа передает данные в пределах одной сети, она должна знать адрес станции, которой будет посылаться пакет.

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

Другое дело, если в передачу данных вовлекается мост. Если пакет должен пройти мост, в поле ImmAddress блока ECB необходимо указать сетевой адрес моста, так как для того, чтобы попасть в другую сеть, пакет должен быть передан прежде всего в мост. В заголовке пакета при этом должен быть указан адрес принимающей станции - ее сетевой адрес, в том числе и номер сети, в которой расположена станция.

Вспомним, каким образом в приведенных ранее примерах программа-клиент и программа-сервер узнавали сетевой адрес друг друга.

Программа-клиент знала номер сокета, который используется программой-сервером. Клиент посылал пакет на этот сокет, при этом в качестве номера сети использовалось нулевое значение (пакет предназначен для передачи в пределах той сети, в которой находится передающая станция), а в качестве сетевого адреса станции - значение FFFFFFFFFFFFh (пакет предназначен для всех станций в сети). Сервер, расположенный в той же сети, что и клиент, принимал такой пакет. Анализируя поле "обратного адреса" пакета, сервер мог определить точный сетевой адрес клиента. Более того, в поле ImmAddress блока ECB, использовавшегося для приема пакета, стоял непосредственный адрес станции, от которой пришел пакет (пакет мог прийти и из другой сети через мост, в этом случае в поле ImmAddress стоял бы адрес моста).

Узнав сетевой адрес клиента, сервер отправлял ему пакет. Приняв пакет от сервера, клиент мог определить сетевой адрес сервера из заголовка пришедшего к нему пакета.


- Начало -  - Назад -  - Вперед -