Смекни!
smekni.com

Интранет сети (стр. 3 из 8)

return regs.x.ax;

}

unsigned int get_1st_connection_num (char *who)

{

union REGS regs;

struct SREGS sregs;

struct {

unsigned int len;

unsigned char buffer_type;

unsigned int object_type;

unsigned char name_len;

unsigned char name [47];

} request_buffer;

struct {

unsigned int len;

unsigned char number_connections;

unsigned char connection_num [100];

} reply_buffer;

regs.h.ah = 0xe3;

request_buffer.len = 51;

request_buffer.buffer_type = 0x15;

request_buffer.object_type = 0x0100;

request_buffer.name_len = (unsigned char) strlen(who);

strcpy(request_buffer.name, who);

reply_buffer.len = 101;

regs.x.si = FP_OFF( (void far *) &request_buffer);

sregs.ds = FP_SEG( (void far *) &request_buffer);

regs.x.di = FP_OFF( (void far *) &reply_buffer);

sregs.es = FP_SEG( (void far *) &reply_buffer);

int86x(0x21, &regs, &regs, &sregs);

if (regs.h.al != 0) return 0;

if (reply_buffer.number_connections == 0) return 0;

regs.h.ah = 0;

regs.h.al = reply_buffer.connection_num[0];

return regs.x.ax;

}

unsigned char get_connection_number(void)

{

_AH = 0xDC;

geninterrupt(0x21);

return _AL;

}

void get_user_id(unsigned char connection_number,

unsigned char *user_id)

{

union REGS regs;

struct SREGS sregs;

struct {

unsigned int len;

unsigned char buffer_type;

unsigned char connection_number;

} request_buffer;

struct {

unsigned int len;

unsigned char object_id[4];

unsigned char object_type[2];

char object_name[48];

char login_time[7];

} reply_buffer;

regs.h.ah = 0xe3;

request_buffer.len = 2;

request_buffer.buffer_type = 0x16;

request_buffer.connection_number = connection_number;

reply_buffer.len = 61;

regs.x.si = FP_OFF( (void far *) &request_buffer);

sregs.ds = FP_SEG( (void far *) &request_buffer);

regs.x.di = FP_OFF( (void far *) &reply_buffer);

sregs.es = FP_SEG( (void far *) &reply_buffer);

int86x(0x21, &regs, &regs, &sregs);

strncpy(user_id, reply_buffer.object_name, 48);

}

2.6. Протокол последовательного обмена пакетами NetWare (SPX)

Протокол обмена последовательными пакетами (SPX) строится на

основе IPX и предлагает дополнительные услуги Xerox's Sequenced

Packet Protocol (SPP). SPX дает возможность прикладным программам

рабочей станции NetWare получать некоторые преимущества при ис-

пользовании сетевых драйверов при прямых коммуникациях с другими

рабочими станциями, серверами и устройствами интерсети с дополни-

тельной гарантией достоверности и последовательности пакетов.

Внутренне SPX построен на дейтаграммных примитивах IPX и дает

простой интерфейс, ориентированный на установление соединения.

В дополнение к структуре IPX, SPX включает 12 байтов блока уп-

равления соединения.

2.7. Программный интерфейс SPX

В дополнение к программному интерфейсу IPX, SPX предоставляет

следующие функции:

a. проверка установки SPX;

b. установка соединения;

c. прослеживание соединения;

d. окончание соединения;

e. разрыв соединения;

f. получение состояния соединения;

g. посылка последовательного пакета;

h. прослушивание (ожидание) последовательного пакета.

Эти функции управляют установкой, поддержанием, cбросом соеди-

нения. Прикладные системы, использующие SPX не обязаны организовы-

вать свои собственные схемы тайм-аутов для гарантирования воста-

новления по обрыву установленного соединения, посылки последова-

тельного пакета или по запросу об окончании соединения.


Формат пакета протокола SPX

0 1 15 ¦

г====================¬¦

¦ контрольная сумма ¦¦

¦--------------------¦¦

¦ длина ¦¦

¦---------T----------¦¦

¦упр.транс¦тип пакетদ

¦---------+----------¦¦

¦- сеть доставки -¦¦

¦--------------------¦¦

Сетевой адрес ¦- -¦¦

доставки ¦- хост доставки -¦¦

¦--------------------¦¦Уровень 1

¦ порт доставки ¦+---------

¦--------------------¦¦адресация

¦- сеть отправителя-¦¦

¦--------------------¦¦

Сетевой адрес ¦ -¦¦

отправителя ¦- хост отправителя -¦¦

¦- -¦¦

¦--------------------¦¦

¦ порт отправителя ¦¦

L====================-¦

-+

г==========T=========¬¦

¦упр.соедин¦тип потоꦦ

¦----------+---------¦¦

¦идент.источ.соединен¦¦

¦--------------------¦¦

¦идент. приемника ¦¦Уровень 2

¦--------------------¦+---------

¦ номер пакета ¦¦протокол

¦--------------------¦¦последова-

¦номер подтверждения ¦¦тельных

¦--------------------¦¦пакетов

¦ номер размещения ¦¦

L====================-¦

--

г====================¬¦

¦ 0 - 546 байтов ¦¦Уровень 3

¦ ¦+---------

¦ прозрачных данных ¦¦управление

¦ -----------¦¦

¦ ¦доп.байт ¦¦

L=========¦==========-¦

--

гTTT======T==========¬

¦¦¦¦резерв¦тип потока¦

L+++======¦==========-

¦¦¦¦конец сообщения

¦¦¦внимание

¦¦посылка подтверждений

¦системный пакет

Рис.2.4


2.8. Управление потоком SPX

Управление потоком является средством, позволяющим уменьшить

количество повторных передач пакетов. В таких случаях, когда про-

исходит тайм-аут без успешного подтверждения, SPX выполняет опти-

мальное количество повторов, прежде чем декларирует обрыв соедине-

ния. SPX автоматически выбирает оптимальный тайм-аут и значение

количества повторов, которые наиболее подходят к физическим харак-

тетистикам соответствующих сетевых устройств. SPX использует эв-

ристический алгоритм тайминга для вычисления оптимального коли-

чества повторов, адаптируясь под время задержки пакетов.

Протокол SPX предназначен для использования в качестве фунда-

мента для всевозможных сложных прикладных систем, включая коммуни-

кационные серверы, шлюзы и системы пересылки сообщений рабочих

станций интерсети.

2.9. Протокол объявления услуг

Создавая открытую архитектуру, фирма Novell открывает разработ-

чикам возможность добавлять к существующему набору сетевых услуг

новые сервисы и услуги. Для облегчения таких разработок среда ин-

терсети NetWare включает в себя протокол и механизм, который поз-

воляет сетевым сервисным программам объявлять свои услуги по имени

и типу интерсети NetWare.

Серверы, использующие этот протокол, имеют свое имя, тип серви-

са и адрес интерсети, та же самая информация существует в маршру-

тизаторах NetWare.

Данный механизм позволяет рабочей станции издать широковеща-

тельный пакет запроса в локальную сеть для получения идентификации

всех серверов любого типа, всех серверов специфического типа или

только ближайшего сервера конкретного типа услуг. Дополнительно

рабочая станция может запросить любой сервер для получения имен и

адресов всех серверов данного конкретного типа.

Весь этот механизм известен как протокол объявления услуг

(SAP). Каждый сервер определенного типа имеет заданное уникальное

имя, которое позволяет клиенту выбирать среди серверов определен-

ный тип и определять желаемый сервер по имени, а не по адресу ин-

терсети.


3. ПРОТОКОЛЫ TCP/IP

Соотношение пpотоколов TCP/IP и Модели Откpытых Систем

Уpовни МОС Пpотоколы TCP/IP

------------------¬ --------T----T-----T-----T---------¬

¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦

¦Пpикладной ¦ ¦Telnet ¦FTP ¦TFTP ¦SMTP ¦ DNS ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦

+-----------------+ ¦ ¦ ¦ ¦ +---------+

¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦

¦Пpедставительный ¦ ¦ ¦ ¦ ¦ ¦ Дpугие ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦

+-----------------+ +-------+----+---T-+-----+---------+

¦ ¦ ¦ ¦ ¦

¦Сеансовый ¦ ¦ TCP ¦ UDP ¦

¦ ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦

¦Тpанспоpтный ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦

+-----------------+ +-------T--------+T----------------+

¦ ¦ ¦ IP ¦ ICMP ¦ ---------------+

¦Сетевой ¦ ¦ L---------- ¦ ARP RARP ¦

¦ ¦ ¦ ¦ ¦

+-----------------+ +----------T--------+--T-----------+

¦ ¦ ¦ ¦ ¦ ¦

¦Канальный ¦ ¦ ¦ ¦ ¦

¦ ¦ ¦Ethernet ¦Token Ring ¦ Дpугие ¦

+-----------------+ ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦ ¦

¦Физический ¦ ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦ ¦

L------------------ L----------+-----------+------------

Рис.3.1.

Уровневая структура модели позволяет разработчикам сетей сосре-

доточиться на функциях конкретного уровня. Другими словами, нет

необходимости создавать все механизмы для посылки информации по

сети. Разработчикам нужно знать сервисы, которые должны быть обес-

печены вышележащему уровню, какие сервисы нижележащего уровня дос-

тупны, и какие протоколы модели обеспечивают эти сервисы.

Сумму уровней протокольного набора часто называют протокольным

стеком (protocol stack) - см. pис .3.2.

Таблица иллюстрирует некоторые из наиболее общих протоколов

TCP/IP и сервисы, обеспечиваемые ими.

Каждый уровень протокольного стека исходного компьютера взаимо-

действует с соответствующим уровнем компьютера-адресата как равный

с равным. С точки зрения программного обеспечения или пользователя

передача данных имеет место так, словно равноправные


Пpотоколы TCP/IP

Хост-ЭВМ - источник Хост-ЭВМ - адpесат

---------------¬ --------------¬

¦ Пpикладной ¦ ¦ Пpикладной ¦

¦ ¦ ¦ ¦

L-------T------- сообщения или L------T-------

¦ ---------- потоки -----------¦

-------+------¬ -------+------¬

¦Тpанспоpтный ¦ ¦Тpанспоpтный ¦

¦ ¦ ¦ ¦

L------T------- дейтагpаммы (UDP) L------T-------

¦ --------- или сегменты (TCP) ------¦

-------+------¬ -------+------¬

¦Межсетевой ¦ ¦ Межсетевой ¦

¦(Интеpсеть) ¦ ¦ (Интеpсеть)¦

L------T------- L------T-------

¦ ---------- дейтагpаммы IP ------- ¦

-------+------¬ -------+------¬

¦Сетевой ¦ ¦ Сетевой ¦

¦интеpфеис ¦ ¦ интеpфейс ¦

L------T------- L------T-------

¦ ---------- кадpы сети ------------ ¦

¦ ¦

¦ ¦

¦ -----------------------¬ ¦

L-------+ Сетевая аппаpатуpа +------

L-----------------------

Рис.3.2.

уровни посылают свои пакеты непосредственно друг другу.

Например, прикладная программа, посылающая файлы с использова-

нием TCP, выполняет следующие операции:

- прикладной уровень передает поток байтов транспортному уровню

на исходном компьютере; - транспортный уровень делит поток на сег-

менты TCP, добавляя заголовок с последовательным номером сегмента

и передает сегмент межсетевому уровню (Internet-IP);

- уровень IP создает пакет с порцией данных, содержащий сегмент

TCP. Уровень добавляет заголовок пакета, содержащий адреса источ-

ника и получателя IP. Уровень определяет также физический адрес

компьютера - адресата или промежуточных компьютеров на пути к узлу

- адресату и передает пакет уровню логической связи;

- уровень звена данных передает пакет IP в порции данных кадра

уровня звена данных компьютеру - адресату. Здесь может иметь место

направление пакета IP промежуточными системами;

- на компьютере - адресате уровень звена данных удаляет заголо-

вок уровня звена данных и передает пакет IP уровню IP;

- уровень IP проверяет заголовок пакета IP. Если контрольная

сумма, содержащаяся в заголовке, не совпадает с контрольной сум-

мой, вычесленной уровнем IP, пакет уничтожается;