Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
84
Добавлен:
09.06.2015
Размер:
88.58 Кб
Скачать

Лекция 8. 19.07.2019 9:39:29

Чтобы не возникло впечатления, что TCP/IP является единственным известным в вычислительных сетях стеком протоколов и всегда пребывал в гордом одиночестве, необходимо рассмотреть историю развития этой отрасли.

В 80-х и 90-х годах прошлого века сетевой мир не был столь однополярным. Функциональность, ставшая залогом современного доминирования TCP/IP, формировалась в жесткой конкуренции с сильными противниками. Кратко рассмотрим их.

AppleTalk

Компания Apple Computer, Inc. в 1983 году представила AppleTalk как фирменную сетевую архитектуру для небольших рабочих групп. Сетевые функции были встроены в компьютеры Macintosh, что сделало реализацию сети AppleTalk очень простой по сравнению с другими сетями.

При подготовке производства компьютеров Macintosh инженеры компании исходили из понимания того, что в скором времени сети станут насущной необходимостью, а не просто интересной новинкой. Они хотели также добиться, чтобы базирующаяся на компьютерах Macintosh сеть была естественным расширением интерфейса пользователя. Имея это в виду, Apple решилась встроить сетевой интерфейс в каждый компьютер и интегрировать этот интерфейс в окружение настольной вычислительной машины. Новая сетевая архитектура Apple получила название Apple Talk.

Хотя Apple Talk являлся патентованной сетью, Apple опубликовала его характеристики, пытаясь поощрить разработки сторонних компаний. И это принесло определенный успех, так Novell и Мicrosoft поддерживали этот протокол.

Первая реализация Apple Talk Phase I была предназначена для локальных рабочих групп. Однако после установки свыше 1.5 мил. компьютеров Macintosh в течение первых пяти лет существования этого изделия оказалось, что крупные корпорации не могут быть удовлетворены существующими возможностями, поэтому протокол был расширен и известен под названием Apple Talk Phase II. Прежде всего были внесены возможности маршрутизации, обеспечив применимость в более крупных сетях.

Сетевыми объектами Apple Talk являются: узел (компьютер, принтер или любое другое устройство, соединенное с сетью), сеть и зона.

Для обеспечения минимальных затрат, связанных с работой администратора сети, в AppleTalk реализовано динамичное назначение адреса узла. При этом узел сам выбирает себе адрес и запрашивает подключенные к сети устройства не совпал ли этот адрес с уже используемым в сети. Если конфликта нет, адрес присваивается. В противном случае попытка повторяется.

Полный сетевой адрес в AppleTalk содержит 24 разряда. При этом 16 бит отведено под адрес сети, а 8 под адрес узла. Эти два компонента обычно записываются в виде десятичных номеров, разделенных точкой (например, 10.1 означает сеть 10, узел 1).

Основным протоколом сетевого уровня AppleTalk является протокол DDP. DDP обеспечивает обслуживание без установления соединения.

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

Транспортный уровень AppleTalk реализуется двумя основными протоколами: AppleTalk Transaction Protocol (ATP) (Протокол транзакций AppleTalk) и AppleTalk Data Stream Protocol (ADSP) (Протокол потока данных АppleTalk). АТР является транзакционно-ориентированным, т.е. в отличие от UDP это протокол гарантированной доставки коротких сообщений (не более 8 пакетов в одной транзакции). ADSP является ориентированным на передачу потока данных протоколом.

IPX/SPX

Стек протоколов IPX/SPX разработан фирмой Novell для сетей NetWare, начиная с самых первых поколений. Этот стек использовался и сетевыми ОС других фирм, включая Microsoft Windows З.х/95/98/NT. По своей структуре стек напоминает TCP/IP. Основу стека составляет протокол сетевого уровня IPX (Internetwork Packet Exchange) – протокол межсетевого обмена пакетами, отвечающий за адресацию и маршрутизацию пакетов и их негарантированную доставку между узлами различных IPX-сетей. Поверх него работает протокол SPX (Sequenced Packet Exchange) – протокол упорядоченного обмена пакетами, обеспечивающий установление соединений и гарантированную доставку пакетов в правильном порядке. Над протоколами IPX и SPX работают остальные протоколы стека, охватывающие верхние уровни модели. Протокол IPX работает над LLC-уровнем (802.2) и может использовать технологии локальных сетей Ethernet, Token Ring, ARCnet, 100VG, FDDI.

Максимальный размер IPX-дейтограммы составляет 576 байт, из них 30 байт занимает заголовок Формат пакета IPX приведен на рис. 7.2, длина полей указана в байтах.

CS

Len

TC

PT

DN

DH

DS

SN

SH

SS

Data

2

2

1

1

4

6

2

4

6

2

0-546

Рис. 7.2. Формат пакета IPX

CS (CheckSum) — контрольная сумма, обычно не используется (при этом CS=FFFFh);

Len (Length) — длина пакета;

ТС (Transport Control) — управление транспортировкой. Поле TransportControl служит как бы счетчиком мостов, которые проходит пакет на своем пути от передающей станции к принимающей. Это поле устанавливается IPX-драйвером равным нулю перед посылкой пакета. Каждый маршрутизатор увеличивает значение этого поля на 1. Если пакет прошел через 15 маршрутизаторов, очередной - удалит пакет из сети (в некотором смысле это аналог поля время жизни - TTL в протоколах TCP/IP).

PT (Packet Type) — тип пакета. Поле PacketType определяет тип передаваемого пакета. Программа, которая передает пакеты средствами IPX, должна установить в поле PacketType значение 4. Протокол SPX, реализованный на базе IPX, использует в этом поле значение 5, NCP(Netware core protocol) -17.

Полный IPX-адрес имеет разрядность 12 байт и состоит из следующих частей:

DN (Destination Network) – 4 байта

DH (Destination Host) – 6 байт

DS (Destination Socket) – 2 байта. Поле DestSocket дескриптора соединителя предназначены для адресации программы, принимающей пакеты, заполняется приложением.

Соединители (socket) служат для управления обработкой пакетов. Широковещательный пакет будет получен ЭВМ, если она имеет открытый соединитель для процесса, которому он адресован.

SN (Source Network)

SH (Source Host)

SS (Source Socket)

Data — поле данных. В пакетах SPX это поле начинается с 12-байтного заголовка SPX. Размер передаваемых в поле Data данных может составлять от 0 до 546 байт, следовательно, в поле Length в зависимости от размера поля Data могут находиться значения от 30 до 576 байт. В действительности максимальная длина IPX-пакета равна 1518 байт, но при прохождении пакетов через маршрутизаторы, когда не используется протокол LIP(large internet packet) - протокол межсетевой пересылки больших пакетов, максимальная длина может быть равной лишь 576 байт (что и принято по умолчанию).

В отличие от IP-адреса, где сетевая и хост-часть для всех узлов назначаются явно и по желанию администратора (конечно, по определенным правилам), в IPX-адресе в качестве адреса узла выступает физический адрес адаптера. В сетях Ethernet адресом узла является МАС-адрес сетевого адаптера и его специально задавать не требуется (за исключением особых случаев). Номер сети требуется указывать только при конфигурировании серверов и маршрутизаторов

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

Для протоколов IPX/SPX кроме маршрутизации возможна фильтрация трафика по определенным признакам (по элементам IPX-адреса и информации SPX). Функции фильтрации могут выполнять и внутренние маршрутизаторы серверов NetWare, для этого в них должны быть загружены специальные программные модули.

SPX (Sequence Packet eXchange) представляет собой транспортный протокол 7-уровневой модели ISO. Этот протокол гарантирует доставку пакета и использует технику скользящего окна (отдаленный аналог протокола TCP). В случае потери или ошибки пакет пересылается повторно, число повторений задается программно. В протоколе SPX не предусмотрена широковещательная или мультикастинг-адресация. Пакеты SPX вкладываются в пакеты IPX. При этом в поле тип пакета IPX записывается код 5. Заголовок пакета SPX состоит из следующих полей:

Пакет, передаваемый при помощи протокола SPX, имеет более длинный заголовок. Дополнительно к 30 байтам стандартного заголовка пакета IPX добавляется еще 12 байт (рис. 4).

Формат заголовка пакета SPX

Поле ConnControl можно рассматривать как набор битовых флагов, управляющих передачей данных по каналу SPX:

Биты

Назначение

01h-08h

Зарезервировано

10h

End-of-Message. Этот бит может использоваться программой для сигнализации окончания передачи данных. Драйвер SPX передает этот бит программе в неизменном виде, причем сам драйвер протокола SPX этот бит игнорирует

20h

Attention. Этот бит игнорируется драйвером SPX и передается в неизменном виде программе

40h

Acknowledgement Required. Бит используется драйвером SPX. Вам не следует модифицировать его значение

80h

System Packet. Этот бит устанавливается драйвером SPX при передаче системных пакетов, которые используются самим драйвером и не передаются в программу пользователя

Поле DataStreamType также состоит из однобитовых флагов, которые используются для классификации данных, передаваемых или принимаемых при помощи протокола SPX. Приведем возможные значения поля DataStreamType:

Биты

Назначение

00h-FDh

Эти значения игнорируются драйвером SPX и могут быть использованы программой произвольным образом

FEh

End-of-Connection. Когда программа вызывает функцию, закрывающую SPX-канал, драйвер SPX посылает партнеру по связи последний пакет, в поле DataStreamType которого записано значение FEh. Это служит требованием завершить связь и закрыть канал

FFh

End-of-Connection-Acknowledgement. Это значение отмечает пакет, подтверждающий завершение связи. Такой пакет является системным и не передается в программу пользователя

Поле SourceConnID содержит номер канала связи передающей программы, присвоенный драйвером SPX при создании канала связи. Этот номер должен указываться функции передачи пакета средствами SPX.

Поле DestConnID содержит номер канала связи принимающей стороны. Так как все пакеты приходят на один номер сокета и могут принадлежать разным каналам связи (на одном сокете можно открыть несколько каналов связи), вам необходимо классифицировать приходящие пакеты по номеру канала связи.

Поле SeqNumber содержит счетчик пакетов, переданных по каналу в одном направлении. На каждой стороне канала используется свой счетчик. После достижения значения FFFFh счетчик сбрасывается в нуль, после чего процесс счета продолжается.

Содержимым этого поля управляет драйвер SPX, поэтому программа не должна менять его значение.

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

Содержимым этого поля управляет драйвер SPX, поэтому программа не должна менять его значение.

Поле AllocNumber содержит количество буферов, распределенных программой для приема пакетов. Содержимым этого поля управляет драйвер SPX, поэтому программа не должна менять его значение (буфера нумеруются, начиная с 0, один буфер способен принять один пакет) и используется для организации управления потоком данных между приложениями. Код этого поля информирует партнера о наибольшем порядковом номере пакета, который может быть послан. Протокол spx посылает пакеты до тех пор, пока локальный последовательный номер не станет равным числу-указателю на удаленной ЭВМ.

Судьба стека протоколов IPX/SPX была тесно связана с судьбой сетевой операционной системы NetWare фирмы Novell. Последняя версия NetWare 6.х была выпущена в конце 2001 года. В настоящее время поддерживается реализация 6.5 этой системы, но область применения данного стека протоколов продолжает сокращаться.

Стек NetBIOS

Этот стек широко используется в продуктах компаний IBM и Microsoft. На физическом и канальном уровнях этого стека используются все наиболее распространенные протоколы Ethernet, Token Ring, FDDI и другие. На верхних уровнях работают протоколы NetBEUI и SMB.

Протокол NetBIOS (Network Basic Input/Output System) появился в 1984 году как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network фирмы IBM. Он использует для идентификации компьютеров сетевые имена NetBIOS, которые представляют собой произвольную символьную строку длиной не более 16 символов, например, Client-1, Client-2 и так далее. В дальнейшем этот протокол был заменен так называемым протоколом расширенного пользовательского интерфейса NetBEUI - NetBIOS Extended User Interface. Для обеспечения совместимости приложений в качестве интерфейса к протоколу NetBEUI был сохранен интерфейс NetBIOS. Протокол NetBEUI разрабатывался как эффективный протокол, потребляющий немного ресурсов, для использования в сетях, насчитывающих не более 200 рабочих станций. Этот протокол содержит много полезных сетевых функций, которые можно отнести к сетевому, транспортному и сеансовому уровням модели OSI, однако с его помощью невозможна маршрутизация пакетов. Это ограничивает применение протокола NetBEUI локальными сетями, не разделенными на подсети, и делает невозможным его использование в составных сетях. Некоторые ограничения NetBEUI снимаются реализацией этого протокола NBF (NetBEUI Frame), которая включена в операционную систему Microsoft Windows NT.

5