
Модель OSI
Эталонная модель OSI, иногда называемая стеком OSI представляет собой 7-уровневую сетевую иерархию (рис. 1) разработанную Международной организацией по стандартам (International Standardization Organization - ISO). Эта модель содержит в себе по сути 2 различных модели:
горизонтальную модель на базе протоколов, обеспечивающую механизм взаимодействия программ и процессов на различных машинах
вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине
В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной - соседние уровни обмениваются данными с использованием интерфейсов API.
Рисунок 1 Модель OSI
Уровень 1, физический
Физический уровень получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включаютя:
Тип кабелей и разъемов
Разводку контактов в разъемах
Схему кодирования сигналов для значений 0 и 1
К числу наиболее распространенных спецификаций физического уровня относятся:
EIA-RS-232-C, CCITT V.24/V.28 - механические/электрические характеристики несбалансированного последовательного интерфейса.
EIA-RS-422/449, CCITT V.10 - механические, электрические и оптические характеристики сбалансированного последовательного интерфейса.
IEEE 802.3 -- Ethernet
IEEE 802.5 -- Token ring
Уровень 2, канальный
Канальный уровень обеспечивает создание, передачу и прием кадров данных. Этот уровень обслуживает запросы сетевого уровня и использует сервис физического уровня для приема и передачи пакетов. Спецификации IEEE 802.x делят канальный уровень на два подуровня: управление логическим каналом (LLC) и управление доступом к среде (MAC). LLC обеспечивает обслуживание сетевого уровня, а подуровень MAC регулирует доступ к разделяемой физической среде.
Наиболее часто используемые на уровне 2 протоколы включают:
HDLC для последовательных соединений
IEEE 802.2 LLC (тип I и тип II) обеспечивают MAC для сред 802.x
Ethernet
Token ring
FDDI
X.25
Frame relay
Уровень 3, сетевой
Сетевой уровень отвечает за деление пользователей на группы. На этом уровне происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые адреса. Сетевой уровень обеспечивает также прозрачную передачу пакетов на транспортный уровень.
Наиболее часто на сетевом уровне используются протоколы:
IP - протокол Internet
IPX - протокол межсетевого обмена
X.25 (частично этот протокол реализован на уровне 2)
CLNP - сетевой протокол без организации соединений
Уровень 4, транспортный
Транспортный уровень делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень.
Наиболее распространенные протоколы транспортного уровня включают:
TCP - протокол управления передачей
NCP - Netware Core Protocol
SPX - упорядоченный обмен пакетами
TP4 - протокол передачи класса 4
Уровень 5, сеансовый
Сеансовый уровень отвечает за организацию сеансов обмена данными между оконечными машинами. Протоколы сеансового уровня обычно являются составной частью функций трех верхних уровней модели.
Уровень 6, уровень представления
Уровень представления отвечает за возможность диалога между приложениями на разных машинах. Этот уровень обеспечивает преобразование данных (кодирование, компрессия и т.п.) прикладного уровня в поток информации для транспортного уровня. Протоколы уровня представления обычно являются составной частью функций трех верхних уровней модели.
Уровень 7, прикладной
Прикладной уровень отвечает за доступ приложений в сеть. Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью.
К числу наиболее распространенных протоколов верхних уровней относятся:
FTP - протокол переноса файлов
TFTP - упрощенный протокол переноса файлов
X.400 - электронная почта
Telnet
SMTP - простой протокол почтового обмена
CMIP - общий протокол управления информацией
SNMP - простой протокол управления сетью
NFS - сетевая файловая система
FTAM - метод доступа для переноса файлов
4. Сеть, структура сети, маска подсети.
Все устройства, подключенные к сети – узлы. Любая ЭВМ, подключенная к сети, должна иметь адрес, который является 32-разрядным двоичным числом. Он д.б. уникален.
Любой IP можно логически разделить на 2 части:
1) идентификатор сети
2) идентификатор узла
В связи с этим сети бывают 5 классов: A, B, C, D, E. Microsoft поддерживает первые 3 класса.
Сети класса А. Для идентификатора сети отводится 1 байт. Значения номера сети: 1-126, длина идентификатора узла: 24 разряда. Это крупные сети – более 16 млн. узлов. Их м.б. до 126 штук.
Сети класса В. Для идентификатора сети отводится 2 байта. Значения номера сети: 128-191, длина идентификатора узла: 16 разрядов. Номер 127 зарезервирован и не м.б. использован как идентификатор, он используется для диагностики и выступает локальной заглушкой.
Сети класса С. Для идентификатора сети отводится 3 байта. Значения номера сети: 192-223, длина идентификатора узла: 1 байт. Этих сетей около 2 млн., м подключить 222 узла.
Сети класса D. Значения номера сети: 224-239. Эти сети используются для рассылки почтовых сообщений.
Сети класса E. Для идентификатора сети отводится 1 байт. Значения номера сети: 240-255. Экспериментальные сети, сейчас не используются.
IP записывают в виде четырех десятичных чисел, разделенных точкой, по нему можно сразу определить, к какому классу он принадлежит.
1) 0000 – для передачи пакетов самому себе
2) 127 001 – для тестирования своих приложений
3) IP, в котором номер узла равен нулю, используется для обозначения сети
Например, 194.65.24.0 – обозначение сети класса С
Если номер узла равен 255, то он используется как широковещательный адрес, с помощью которого можно передавать пакеты всем узлам указанной сети.
IP м.б. постоянным или динамическим, последний дается при каждом новом подключении к сети.
Маска подсети
Маска – 32-разрядное число, предназначенное для выделения идентификатора сети и идентификатора узла из IP для того, чтобы выяснить, относится тот или иной адрес к локальной или удаленной сети.
Маску подсети м. иметь каждый узел TCP/IP. Она Мб по умолчанию, если сеть не делится на подсети, или специальным образом, если подсети есть. По умолчанию маска должна иметь следующие значения:
Для класса А: 255.0.0.0
Для класса В: 255.255.0.0
Для С: 255.255.255.0
Программирование в web: доступ к БД на стороне сервера.
При разработке прикладных программ, работающих с БД на серверах используют 2 метода доступа к БД:
Доступ к БД на стороне сервера.
Доступ к БД на стороне клиента.
Механизм доступа на стороне сервера реализуется за счет наличия 2 или более стандартных средств:
возможность включения форм в документ, составленный на языке html;
возможность использования внешних по отношению к серверу web-программ, взаимодействие которых происходит через спец. протокол CGI и API.
Хотя CGI называют общим интерфейсом шлюзования, по сути это, с одной стороны, подмножество протокола http, с другой, способ его соблюдения при взаимодействии сервера с внешней программой.
Общая схема реализации доступа к БД на стороне web-сервера при использовании cgi выглядит след. образом:
клиент встречает страницу html с незаполненной формой;
он заполняет эту форму и отправляет на сервер;
получив заполненную форму, сервер запускает соответственную внешнюю программу, передавая ей параметры и получая результаты на основе протокола CGI.
внешняя программа преобразует запрос, выраженный с помощью заполненной формы, в запрос на языке, понятном SQL-серверу БД.
внешняя программа взаимодействует с сервером БД. Оно м.б. прямым, если внешняя программа жестко привязана к конкретному SQL-серверу или с использованием протоколов и соответствующего драйвера ODBC, если жесткая привязка отсутствует;
после получения результата запроса к БД внешняя программа формирует html страницу, передает ее серверу и завершает свое выполнение;
сервер передает сформированную html страницу клиенту.
После этого программа доступа к БД заканчивается и сервер разрывает свое соединение с клиентом.
Любая внешняя программа, запускаемая сервером (web-сервером), в соответствии со спецификацией cgi, называется cgi-скриптом. Она м.б. реализована на любом ЯП, в т.ч. и на любом командном языке.
CGI-скрипт, выполняющий роль посредника между web-сервером и другими видами серверов, называется шлюзом.
Шлюзы обеспечивают связь между различными архитектурами и серверами. Они переупаковывают и преобразуют данные, переданные из одной среды в другую, чтобы каждая среда могла понимать действия другой среды. Шлюзы создаются для выполнения конкретного типа задач, т.е. для конкретного типа преобразования данных. В частности, CGI-скрипт на стороне сервера позволяет перенести часть логики приложения с клиента на сервер.
В спецификациях CGI существуют способы взаимодействия web-сервера и скриптов. Например, предусмотрено использование созданных сервером переменных окружения, через которые передается как общая информация, не зависящая от особенностей скрипта, так и специфические данные, определяющие поведение cgi-скрипта.
Предусмотрено использование входных параметров, которые передаются cgi-скрипту через файл стандартного ввода. В свою очередь, cgi-скрипт может передать web-серверу результирующие данные через файл стандартного вывода.
Интерфейс api – способ выполнить в адресном пространстве сервера web-программу, которая соответствует спецификации на языке html. Такая программа д.б. заранее подготовлена и включена в библиотеку, из которой сервер производит динамическую загрузку. Применение api имеет ряд преимуществ по сравнению с cgi-скриптами:
библиотеки расположены в адресном пространстве сервера и, следовательно, имеют доступ ко всем атрибутами доступа;
они быстрее загружаются в память;
м. контролировать загрузку этих библиотек, т.е сначала их м. загружать для более быстрого доступа, а затем выгружать для освобождения системных ресурсов.