Взаимодействие процессов через сеть.
Два процесса взаимодействуют путём посылки сообщений через их гнёзда (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).
Набрал Рафальсон Кирилл, редактирование и вставка рисунков Симаков Владислав.