(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

Взаимодействие процессов через сеть.

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

Таким образом гнездо является находящимся на СЭВМ интерфейсом между прикладным и транспортным уровнями. Оно имеет прикладную сторону, связанную с процессом и транспортную сторону, связанную с транспортным протоколом (для Internet это TCP или UDP). Внизу можно рассмотреть API (application program interface) между приложениями и сетью, поскольку гнездо является программой интерфейса.

Подчеркнём, что разработчик полностью контролирует все свойства и функции прикладной стороны гнезда и практически очень мало параметров разработчик может контролировать на транспортной стороне гнезда. Здесь он может только выбрать транспортный протокол, максимальные размеры буферов и сегментов.

Адресация процессов.

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

Уникальный адрес СЭВМ определяется при помощи 32 (v. 4) или 128 (v. 6) битного IP-адреса.

Для определения принимающего процесса на СЭВМ получателя, используется номер порта (port number). Наиболее популярные приложения имеют фиксированные имена портов (HTTP - 80, SMTP - 25). Список номеров портов определяется в RFS 1700.

РАЗАРАБОТЧИК НОВОГО ПРИЛОЖЕНИЯ ДОЛЖЕН ВЫБРАТЬ НОВЫЙ НОМЕР ПОРТА, КОТОРЫЙ НЕ ЗАНЯТ ПОД СТАНДАРТНЫЕ ПРИЛОЖЕНИЯ.

2.1.2. Требование приложений к транспортным услугам.

Эти требованья могут быть грубо сформированы в трёх измерениях:

Пользовательские агенты.

Пользовательский агент является интерфейсом между пользователем и сетевым приложением, например для web-приложений это обозреватель, обеспечивающий просмотр web-страниц, навигацию по web, ввод данных с формы, взаимодействие с JAVA applet'ами. Таким образом обозреватель после запуска представляет собой процесс, обеспечивающий интерфейс с пользователем и посылку/принятие сообщений через гнездо.

Рассмотрим приложения электронной почты. В этом случае пользовательским агентом является "чтец почты", который позволяет составлять и читать сообщения и называется он MUA (Mail User Agent). MUA реализует клиентскую часть электронной почты, в частности протокол SMTP для посылки и клиентскую часть протоколов IMAP и POP 3.

2.2. Web-приложения, протоколы HTTP.

2.2.1. Обзор.

Центральной частью Web является его протокол прикладного уровня - HTTP. Протокол реализуется в виде двух программ: клиента и сервера. Эти программы выполняются на разных СЭВМ и взаимодействуют между собой, путём (???), которое определяет структуру сообщения и способ обмена ими.

Терминология: web-страница (документ) состоит из объектов. Объект (object) является файлом, например HTML (Hyper Text Markup Language) файл, JPEG файл, JAVA applet, аудио файл и т.д. Объектом может быть практически любой объект, адресуемый через URL.

Большинство из web-страниц состоит из базового HTML файла, содержащего ссылки на несколько объектов, например если web-страница содержит HTML текст и 5 файлов JPEG, то она имеет 6 объектов: базовый файл и 5 рисунков.

Базовый HTML файл ссылается на объекты страницы с помощью URL объектов. Каждый URL имеет 2 части: имя СЭВМ, на котором сервер владеет этим объектом и путь к объекту в файловой системе.

Термин обозреватель (browser) является пользовательским агентом web. Он отображает запрашиваемые web страницы на экране и обеспечивает разнообразные возможности по навигации и конфигурации. Обозреватель организует клиентскую часть HTTP. Сервера организуют серверную часть сети (Apache, Netscape Int. Server).

Набрал Рафальсон Кирилл, редактирование и вставка рисунков Симаков Владислав.