logo search
СуперШпор

17. Стек протоколов ipx/spx. Клиент – серверное взаимодействие. Идентификация программ в сети. Поиск серверов в сети с неизвестной топологией.

Этот стек является оригинальным стеком протоколов фирмы Novell, разработанным для сетевой операционной системы NetWare. Internetwork Packet Exchange (IPX) - протокол сетевого уровня, Sequenced Packet Exchange (SPX) - протокол транспортного уровня.

Многие особенности стека IPX/SPX обусловлены ориентацией ранних версий ОС NetWare на работу в локальных сетях небольших размеров, состоящих из персональных компьютеров со скромными ресурсами.

Прикладной уровень стека IPX/SPX составляют два протокола: NCP(NetWare Core Protocol) и SAP(Session Announcement Protocol).

Протокол NCP поддерживает все основные службы ОС Novell Netware – файловую службу, службу печати и т.д.

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

Т ранспортный протокол SPX может осуществить надежную передачу пакетов. Этот протокол работает с установлением соединения и восстанавливает пакеты при их потере или повреждении. Использование протокола SPX не является обязательным при выполнении операций передачи сообщений протоколами прикладного уровня. В протоколе SPX не предусмотрена широковещательная адресация. Пакеты SPX вкладываются в пакеты IPX(Internetwork Packet Exchange). При этом в поле тип пакета IPX записывается код 5. Заголовок пакета SPX всегда содержит 42 байта, включая 30 байт заголовка IPX-пакета, куда он вложен.

Поле управления соединением определяет, явл. ли данный пакет системным или прикладным. Это поле содержит однобитовые флаги, используемые SPX и SPX II для управления потоком данных в виртуальном канале.

Поле тип потока данных характеризует тип данных, помещенных в пакет.

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

Поле последовательный номер определяет число пакетов пересланных в одном направлении. Каждый из партнеров обмена имеет свой счетчик, который сбрасывается в ноль после достижения 0xffff, после чего счет может продолжаться. SPX-пакеты подтверждения содержат в этом поле порядковый номер последнего посланного пакета.

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

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

В новой версии SPX - SPX II увеличено число допустимых кодов для поля управления соединением, введено дополнительное поле в заголовок подтверждения. Алгоритм установление связи в SPX II отличатся от варианта SPX тем, что необходимо согласовать размер пересылаемых пакетов.

Клиент – серверное взаимодействие описано ниже и Идентификация программ в сети.

Есть 2 программы для сети: Клиент и Сервер.

Socket идентифицирует какое ПО будет использоваться для обработки кадра или т.п.

Если ком-ы находятся в одной сети, и нет маршрутизаторов, то DestinationNetwork=0.

Если программист поставит DestNode=FF…FFh, то пакет в таком случае услышат все.

DestSocket это то к чему мы обращаемся (Используется когда система однозадачна, чтобы определить серверную часть в сети).

Далее идет описание идентификации программ и передача информации:

Это работает только в сети без маршрутизатора.

А есть сеть с маршрутизатором, то следует использовать IPXGetLocalTarget. (ECBImmAddress).

Для поиска серверов в сети с неизвестной топологией используется Диагностический сервис IPX.

Существует удобный протокол, позволяющий средствами IPX найти все активные серверы и, что самое главное, определить их имена. Этот протокол называется протоколом объявления сервиса в сети (Service Advertising Protocol - SAP).

Использование протокола SAP основано на том факте, что все серверы в сети идентифицируют себя периодической посылкой пакета IPX специального типа - пакета объявления сервиса (Servise Advertising Packet). Кроме того, рабочие станции и серверы могут посылать пакеты запроса (Service Query) по адресу 0xFFFFFFFFFFFF, в ответ на который все серверы присылают запросившей станции пакеты объявления сервиса. Последнее обстоятельство роднит сервис SAP с диагностическим сервисом.

Для того чтобы найти все активные серверы в сети, ваша программа должна подготовить массив буферов и блоков ECB для приема IPX-пакетов объявления сервиса и послать по адресу 0xFFFFFFFFFFFF пакет запроса на сокет 0x452. Через некоторое время программа получит пакеты объявления сервиса. Просмотрев их, она сможет определить имена серверов, а также другую информацию об активных серверах.

18. Протоколы стека TCP/IP. Адресация в Internet. Различия в версиях протокола. Маршрутизация IP. Подсети IP с использование классов и масок. Технология CIDR. Вспомогательные и сопутствующие стеку TCP/IP протоколы и сервисы: DNS,ARP/RARP, ICMP,DHCP,WINS.

Cтек используется для связи компьютеров по Internet’у, а также в корпоративных сетях.

Стек ТСР/IP(Transmission Control Protocol/Internet Protocol — протокол управления передачей) на нижнем уровне поддерживает все популярные стандарты физического и канального уровней:

для локальных сетей — это Ethernet, Token Ring, FDDI (Fiber Distributed Data Interface — Волоконно-оптический интерфейс передачи данных),

для глобальных — протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP(Serial Line Internet Protocol), PPP(Point-to-Point Protocol), протоколы территориальных сетей Х.25 и ISDN(Integrated Services Digital Network).

Основными протоколами стека, давшими ему название, являются протоколы IP и TCP. Эти протоколы в модели OSI(open systems interconnection) относятся к сетевому и трансп. уровням соответственно. IP обеспечивает продвижение пакета по составной сети, а TCP гарантирует надежность его доставки.

За долгие годы использования в сетях различных стран и организаций стек TCP/IP вобрал в себя большое количество протоколов прикладного уровня. К ним относятся такие популярные протоколы, как протокол пересылки файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы службы WWW и многие другие.

IP-адрес. имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128.10.2.30. Адрес состоит из двух логических частей — номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая — к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес.

К классу А относится адрес, в котором старший бит имеет значение 0. В адресах класса А под идентификатор сети отводится 1 байт, а остальные 3 байта интерпретируются как номер узла в сети. Сети, все IP-адреса которых имеют значение первого байта в диапазоне от 1 (00000001) до 126 (01111110), называются сетями класса А. Значение 0 (00000000) первого байта не используется, а значение 127 (01111111) зарезервировано для специальных целей. Сетей класса А сравнительно немного, зато

количество узлов в них может достигать 224, то есть 16 777 216 узлов.

К классу В относятся все адреса, старшие два бита которых имеют значение 10. В адресах класса В под номер сети и под номер узла отводится по 2 байта. Сети, значения первых двух байтов адресов которых находятся в диапазоне от 128.0 (10000000 00000000) до 191.255 (10111111 11111111), называются сетями класса В. Ясно, что сетей класса В больше, чем сетей класса А, а размеры их меньше. Максимальное количество узлов в сетях класса В составляет 216 (65 536).

К классу С относятся все адреса, старшие три бита которых имеют значение 110. В адресах класса С под номер сети отводится 3 байта, а под номер узла — 1 байт. Сети, старшие три байта которых находятся в диапазоне от 192.0.0 (11000000 00000000 00000000) до 223.255.255 (11011111 11111111 11111111), называются сетями класса С. Сети класса С наиболее распространены, и наименьшее максимальное число узлов в них равно 28 (256).

Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый групповой адрес (multicast address). В то время как адреса классов А, В и С служат для идентификации отдельных сетевых интерфейсов, то есть являются индивидуальными адресами (unicast address), групповой адрес идентифицирует группу сетевых интерфейсов, которые в общем случае могут принадлежать разным сетям. Интерфейс, входящий в группу, получает наряду с обычным индивидуальным IP-адресом еще один групповой адрес. Если при отправке пакета в качестве адреса назначения указан адрес класса D, то такой пакет должен быть доставлен всем узлам, которые входят в группу.

Если адрес начинается с последовательности 11110, то это значит, что данный

адрес относится к классу Е. Адреса этого класса зарезервированы для будущих при-

менений.

Версии IP.

Протокол IPv6 оставляет основные принципы IPv4 неизменными. К ним относятся дейтаграммный метод работы, фрагментация пакетов, разрешение отправителю задавать максимальное число хостов для своих пакетов. Существенное отличие это то, что IPv6 использует 128-битные адреса. Как и в версии IPv4, адреса в версии IPv6 делятся на классы, в зависимости от значения нескольких старших бит адреса. Для обеспечения совместимости со схемой адресации версии IPv4, в версии IPv6 имеется класс адресов, имеющих 0000 0000 в старших битах адреса. Младшие 4 байта адреса этого класса должны содержать адрес IPv4. Роутеры, поддерживающие обе версии адресов, должны обеспечивать трансляцию при передаче пакета из сети, поддерживающей адресацию IPv4, в сеть, поддерживающую адресацию IPv6, и наоборот.

Вместо прежних двух уровней иерархии адреса (номер сети и номер узла) в IPv6 имеется 4 уровня, из которых три уровня используются для идентификации сетей, а один — для идентификации узлов сети. В новой версии не поддерживаются классы адресов (А, В, С, D, Е), но широко используется технология CIDR(Classless Inter-Domain Routing). Благодаря этому, а также усовершенствованной системе групповой адресации и введению адресов нового типа IPv6 позволяет снизить затраты на маршрутизацию.

Вместо десятичной используется шестнадцатеричная форма записи IP-адреса. Каждые четыре шестнадцатеричные цифры отделяются друг от друга двоеточием. Вот как, например, может выглядеть адрес IPv6: FEDC:0A98:0:0:0:0:7654:3210. Для сетей, поддерживающих обе версии протокола (IPv4 и IPv6), разрешается задействовать для младших 4 байтов традиционную для IPv4 десятичную запись: 0:0:0:0:0:FFFF:129.144.52.38.

Рассмотрим принципы маршрутизации, на основании кот в сетях IP происходит выбор маршрута передачи пакета м/у сетями. Программные модули протокола IP устанавливаются на всех конечных станциях и маршрутизаторах сети. Для продвижения пакетов они используют таблицы мар-ции.

Для отправки пакета следующему маршрутизатору требуется знание его локального адреса, но в стеке TCP/IP в таблицах маршрутизации принято использование только IP-адресов для сохранения их универсального формата, не зависящего от типа сетей, входящих в интерсеть. Для нахождения локального адреса по известному IP-адресу необходимо воспользоваться протоколом ARP(Address Resolution Protocol).

Решением дефицита адресов является переход на новую версию протокола IP IPv.6. Другой подход – использование технологии масок. При использовании масок переменной длины (это когда в разных частях сети, которую разделили, используются маски разной длины). Еще одна технология – трансляция адресов (NAT(Network Address Translation)). Внутренняя сеть соединяется с Интернетом ч/з некое промежуточное устройство (напр, маршрутизатор), оно может преобразовывать внутренние адреса во внешние, используя некие таблицы соответствия. При получении внешнего запроса это устройство анализирует его содержимое и при необходимости пересылает его во внутреннюю сеть, заменяя IP-адрес на внутренний адрес этого узла.

Подсети IP с использование классов и масок.

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

Способ: использованием технологии масок, которая позволяет разделять одну сеть на несколько сетей. Итак, номер сети, который администратор получил от поставщика услуг, - 129.44.0.0 (10000001 00101100 00000000 00000000). В качестве маски было выбрано значение 255.255.192.0 (11111111 11111111 XX000000 00000000) (где XX=11).

После наложения маски на этот адрес число разрядов, интерпретируемых как номер сети, увеличилось с 16 (стандартная длина поля номера сети для класса В) до 18 (число единиц в маске), то есть администратор получил возможность использовать для нумерации подсетей два дополнительных бита.

Это позволяет ему сделать из одного, централизованно заданного ему номера сети, четыре:

129.44.0.0

(10000001 00101100 00000000 00000000)

(XX=00)

129.44.64.0

(10000001 00101100 01000000 00000000)

(XX=01)

129.44.128.0

(10000001 00101100 10000000 00000000)

(XX=10)

129.44.192.0

(10000001 00101100 11000000 00000000)

(XX=11)

Два дополнительных последних бита в номере сети (XX) часто интерпретируются как номера подсетей (subnet), и тогда четыре перечисленных выше подсети имеют номера 0 (00), 1 (01), 2 (10) и 3 (11) соответственно. Все узлы были распределены по трем разным сетям, которым были присвоены номера 129.44.0.0, 129.44.64.0 и 129.44.128.0 и маски одинаковой длины - 255.255.192.0. Извне сеть по-прежнему выглядит, как единая сеть класса В, а на местном уровне это полноценная составная сеть, в которую входят три отдельные сети. Приходящий общий трафик разделяется местным маршрутизатором между этими сетями в соответствии с таблицей маршрутизации.

Адресация в Internet.

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

Технология масок и ее развитие - технология бесклассовой междоменной маршрутизации (Classless Inker-Domain Routing, CIDR). Технология CIDR позволяет получать в пользование столько адресов, сколько реально необходимо

Деление IP-адреса на номер сети и номер узла в технологии CIDR происходит не на основе нескольких старших бит, определяющих класс сети (А, В или С), а на основе маски переменной длины, назначаемой поставщиком услуг.

Все адреса имеют общую часть в k старших разрядах - префикс. Оставшиеся n разрядов используются для дополнения неизменяемого префикса переменной частью адреса. Диапазон имеющихся адресов в таком случае составляет 2n. Когда потребитель услуг обращается к поставщику услуг с просьбой о выделении ему некоторого количества адресов, то в имеющемся пуле адресов «вырезается» непрерывная область S1, S2, S3 или S4 соответствующего размера.

Причем границы этой области выбираются такими, чтобы для нумерации требуемого числа узлов хватило некоторого числа младших разрядов, а значения всех оставшихся (старших) разрядов было одинаковым у всех адресов данного диапазона. Таким условиям могут удовлетворять только области, размер которых кратен степени двойки, А границы выделяемого участка должны быть кратны требуемому количеству узлов. CIDR-технология, позволяет экономить адреса и уменьшить таблицу маршрутизации.

DHCP(Dinamic Host Configuration Protocol) - протокол динамич. конфигурирования узла.

1) IP адрес(свой).

2) MASK (маска подсети)

3) Если в другую подсеть отсылаем то необходимо знать IP адрес шлюза.

4) Если использовать DNS, то надо знать IP адрес DNS сервера.

Протокол Dynamic Host Configuration Protocol (DHCP). может поддерживать способ автоматического динамиского, ручного и статического распределения адресов. Работает в соотв с моделью клиент-сервер. Во время старта системы комп, явл DHCP-клиентом, посылает в сеть широковещат запрос на получение IP-адреса. DHCP - cepвер откликается и посылает сообщение-ответ, содержащее IP-адрес.

Предполагается, что DHCP-клиент и DHCP-сервер находятся в одной IP-сети. При динамич распределении адресов DHCP-сервер выдает адрес клиенту на огранич время, наз временем аренды (lease duration), что дает возможность впоследствии повторно использовать этот IP-адрес для назначения др. компу. В ручной процедуре назначения статических адресов активное участие принимает администратор, кот предоставляет DHCP - серверу инфу о соответствии IP-адресов физическим адресам или др идентификаторам клиентов. DHCP-сервер, пользуясь этой информацией, всегда выдает определенному клиенту назначенный админом адрес. При статическом способе DHCP-сервер присваивает IP-адрес из пула наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов задает админ при конфигурировании DHCP-сервера. М/у идентификатором клиента и его IP-адресом существует постоянное соответствие. Оно устанавливается в момент первого назначения DHCP-сервером IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес. DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и др параметры стека TCP/IP.

Domain Name System (DNS) — служба разрешения доменных имен, базовая для Интернета. В традиционной реализации DNS требует указывать статическое соотв м/у именем хоста и его адресом. Т.к. служба DNS не динамична, изменения в базе данных DNS необходимо делать вручную.

DNS-сервер (или сервер имен) - программа (1 или неск), обраб запросы типа: "определить IP-адрес по имени", "определить имя по IP-адресу", "определить имя сервера, на кот должна направлятся эл почта для заданного домена", "определить имя другого сервера имен, ответственного за заданный домен".

DNS (Domain Name System) - распределенная БД, поддерживающая иерархич систему имен для идентификации узлов в сети Internet. DNS-серверы хранят часть распределенной БД о соотв символьных имен и IP-адресов. DNS имеет структуру дерева, наз доменным пространством имен, в кот любой домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой БД по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена. Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе.

Протокол обмена управляющими сообщениями ICMP (Internet Control Message Protocol) позволяет маршрутизатору сообщить конечному узлу об ошибках, с кот машрутизатор столкнулся при передаче какого-либо IP-пакета от данного конечного узла. Протокол

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

Протокол решает задачи:

1) Если маршрутизатор вынужден отбросить пакет, то он должен отправить уведомление о том, что пакет доставлен не может быть.

2) ping 192.168.10.159 – после этой команды, будут посылаться пакеты, - проверка связи, работоспособности.

ARP/RARP.

Для определения локального адреса (MAC-адреса) по IP-адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP). Протокол ARP в зависимости от того, какой протокол канального уровня работает в данной сети - протокол лок. сети с возможностью широковещ доступа одновременно ко всем узлам сети или же протокол глоб. сети, не поддерж широковещ доступ.

Существует протокол, решающий обратную задачу - нахождение IP-адреса по известному лок адресу(MAC-адресу) - реверсивный ARP (Reverse Address Resolution Protocol, RARP) и используется при старте бездисковых станций, не знающих в нач. момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

Протокол WINS.

WINS(Windows Internet Name Service)-служба интернет имен для виндоус.

NetBIOS over TCP/IP (механизм отображения запросов NetBIOS(Network Basic Input/Output System) на TCP/IP(Transmission Control Protocol/Internet Protocol — протокол управления передачей)) – программный интерфейс.

WINS-запросы транспортируются в UDP-дейтограммах(User Datagram Protocol). При этом используется порт отправителя=137. Протокол WINS удобен для сбора данных о МАС-адресах ЭВМ в многоранговой сети, где получить эти данные с помощью ARP-запросов невозможно. Какие-то данные можно извлечь из кэша маршрутизаторов или таблиц сетевых переключателей, если они доступны с помощью SNMP-запросов (Simple Network Management Protocol).

Сервер WINS обрабатывает запросы на регистрацию имен от клиентов WINS, регистрирует их имена и IP-адреса и отвечает на запросы разрешения имен NetBIOS от клиентов, возвращая IP-адрес по имени, если это имя находится в базе данных сервера. Сервер WINS поддерживает базу данных WINS.

Сервер WINS позволяет избавиться от широковещательных пакетов. На сервер WINS посылается запрос на получение имени и может быть отказ(перед отказом если имя занято, то это имя проверяется используется ли оно) или согласия использования имени.

Сервер WINS может установить соответствие: name IP. Использует порты: 137,138,179. IP WINS включает в себя: IP,MASK,IP-шлюз,IP-DNS.  для того чтобы избавиться от широковещательных пакетов.