Компьютерные сети

Компьютерные сети

Н. Олифер

Миллионы компьютеров, связанных через Интернет, хранят невообразимо огромные объемы информации, представленной в виде веб-страниц.
□ Веб-страница, или веб-документ, как правило, состоит из основного HTML-файла и,некоторого количества ссылок на другие объекты разного типа: JPEG- и GIF-изображения, другие, HTML-файлы, аудио- и видеофайлы.

Q НЩ-фяйлом, HTML-страницей или гипертекстовой страницей называют файл, который содержит текст, написанный на языке HTML (HyperText Markup Language — язык разметки гипертекста).

История появления языка HTML связана с попытками программистов разработать средство, которое бы позволяло им программным путем создавать красиво сверстанные страницы для просмотра на экране. Другими словами, красивая картинка появляется на дисплее только в результате ее интерпретации специальной программой, а в исходном виде она представляет собой однообразный текст с множеством служебных пометок. Вместо применения различных приемов форматирования, таких как выделение заголовков крупным шрифтом, а важных выводов — курсивным или полужирным начертанием, создатель документа на языках этого типа просто вставляет в текст соответствующие указания о том, что данная часть текста должна быть выведена на экран в том или ином виде. Служебные пометки такого рода в исходном тексте выглядят, например, как <Ь> </Ь> (начать и закончить вывод текста полужирным начертанием) и называются тегами. Язык HTML не является первым языком разметки текста, его предшественники существовали задолго до появления веб-службы, например в первых версиях ОС Unix существовал язык troff (с помощью этого языка отформатированы страницы электронной документации Unix, известные как man-страницы).

В язык HTML включены разные типы тегов, команд и параметров, в том числе для вставки в текст изображений (тег <i mg s гс="..." >). Чтобы HTML-страница выглядела так, как задумал программист, она должна быть выведена на экран специальной программой, способной интерпретировать язык HTML. Такой программой является уже упоминавшийся веб-браузер.

Существует особый тип*тега, который имеет вид <а href="..."> ...</а> и называется гиперссылкой. Гиперссылка содержит информацию о веб-странице или объекте, который может находиться как на том же компьютере, так и на других компьютерах Интернета. Отличие гиперссылки от других тегов состоит в том, что элемент, описываемый ею, не появляется автоматически на экране, вместо этого на месте тега (гиперссылки) на экран выводится некоторое условное изображение или особым образом выделенный текст — имя гиперссылки. Чтобы получить доступ к объекту, на который указывает эта гиперссылка, пользователь должен «щелкнуть» на ней, дав тем самым команду браузеру найти и вывести на экран требуемую страницу или объект. После того как новая веб-страница будет загружена, пользователь сможет перейти по следующей гиперссылке — такой «веб-серфинг» может продолжаться теоретически сколь угодно долго. Все это время веб-браузер будет находить указанные в гиперссылках страницы, интерпретировать все размещенные на них указания и выводить информацию на экран в том виде, в котором ее спроектировали разработчики этих страниц.

URL
Браузер находит веб-страницы и отдельные объекты по адресам специального формата,
называемым URL (Uniform Resource Locator — унифицированный указатель ресурса).
URL-адрес может выглядеть, например, так:
http://www.olifer.co.uk/books/books.htm
.
В URL-адресе можно выделить три части:

□ Тип протокола доступа. Начальная часть URL (http://) указывает на то, какой протокол должен быть использован для доступа к данным, расположение которых определяется оставшейся частью URL. Помимо HTTP, здесь могут быть указаны и другие протоколы, такие как FTP, telnet, также позволяющие осуществлять удаленный доступ к файлам или компьютерам
74
.
□ DNS-имя сервера. Имя сервера, на котором хранится нужная страница. В нашем случае — это имя сайта
www.olifer.co.uk
.

□ Путь к объекту. Обычно это составное имя файла (объекта) относительно главного каталога веб-сервера, предлагаемого по умолчанию. В нашем случае путем к объекту является /books/books.htm. По расширению файла мы можем сделать вывод о том, что это HTML-файл.
Веб-клиент и веб-сервер
Как мы уже отмечали, сетевая веб-служба представляет собой распределенную программу, построенную в архитектуре клиент-сервер. Клиент и сервер веб-службы взаимодействуют друг с другом по протоколу HTTP.

1веб-Слу*Вы,предс^1Ц}я<^^^ ма^ком^
4
^
liMif

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

К числу наиболее популярных сейчас браузеров можно отнести Internet Explorer компании Microsoft, Firefox компании Mozilla и последнее предложение компании Google — Chrome. Веб-браузер — это не единственный вид клиента, который может обращаться к веб-серверу. Эту роль могут исполнять любые программы и устройства, поддерживающие протокол HTTP, а также многие модели мобильных телефонов — для доступа в этом случае применяется специальный протокол WAP (Wireless Application Protocol — протокол беспроводных приложений).

Значительную часть своих функций браузер выполняет в тесной кооперации с вебсервером. Как уже было сказано, клиент и сервер веб-службы связываются через сеть по протоколу HTTP. Это означает, что в клиентской части веб-службы присутствует клиентская часть HTTP, а в серверной — серверная часть HTTP.
Веб-сервер — это программа, хранямшя Ь0ъе|пгы ло^ьнб компьютера, на котором

она запущена, и обеспечивающая доступ к этим объектам поШ1-адресам. Наиболее популярными веб-серверами сейчас являются Apache и Microsoft internet Information Server.
Корневой каталог HTTP
fa.
—f video, flv |
♦O'
► D-

9 9
|Веб-сервер J
7 7
t
^ *| Видеоклип * / l из файла / /f video.flv /
7
i //fa и' /
-Iim1.jpg — 'T\ -[abc.htm|
Веб-клиент
Рисунок из файла img1 .jpg ^
75
/
Текст, находящийся /
^ ^ в теле HTML-страницы
Рис. 23.4. Отображение веб-страницы

Как и любой другой сервер, веб-сервер должен быть постоянно в активном состоянии, прослушивая ТСР-порт 80, который является назначенным портом протокола HTTP. Как только сервер получает запрос от клиента, он устанавливает TCP-соединение и получает от клиента имя объекта, например, в виде /books/books.htm, после чего находит в своем каталоге этот файл, а также другие связанные с ним объекты и отсылает по ТСР-соединению клиенту. Получив объекты от сервера, веб-браузер отображает их на экране (рис. 23.4). После отправки всех объектов страницы клиенту сервер разрывает с ним ТСР-соединение. В дополнительные функции сервера входят также аутентификация клиента и проверка прав доступа данного клиента к данной странице.

Для повышения производительности некоторые веб-серверы прибегают к кэшированию наиболее часто используемых в последнее время страниц в своей памяти. Когда приходит запрос на какую-либо страницу, сервер, прежде чем считывать ее с диска, проверяет, не находится ли она в буферах более «быстрой» оперативной памяти. Кэширование страниц осуществляется и на стороне клиента, а также на промежуточных серверах (прокси-серверах). Кроме того, эффективность обмена данными с клиентом иногда повышают путем компрессии (сжатия) передаваемых страниц. Объем передаваемой информации уменьшают также за счет того, что клиенту передается не весь документ, а только та часть, которая была изменена. Все эти приемы повышения производительности веб-службы реализуются средствами протокола HTTP

Протокол HTTP
HTTP (HyperText Transfer Protocol — протокол передачи гипертекста)
1
— это протокол прикладного уровня, во многом аналогичный протоколам FTP и SMTP. В настоящее время используются две версии протокола HTTP 1.0 и HTTP 1.1
Обмен сообщениями идет по обычной схеме «запрос-ответ». Клиент и сервер обмениваются текстовыми сообщениями стандартного формата, то есть каждое сообщение представляет собой нескольких строк обычного текста в кодировке ASCII.

Для транспортировки HTTP-сообщений служит протокол TCP. При этом ТСР-соединения могут использоваться двумя разными способами:
□ Долговременное соединение — передача в одном TCP-соединении нескольких объектов, причем время существования соединения определяется при конфигурировании вебслужбы.
□ Кратковременное соединение — передача в рамках одного ТСР-соединения только одного объекта.
Долговременное соединение, в свою очередь, может быть использовано двумя способами:

□ Последовательная передача запросов с простоями — новый запрос посылается только после получения ответа.
□ Конвейерная передача — это более эффективный способ, в котором следующий запрос посылается до прибытия ответа на один или несколько предыдущих запросов (напоминает метод скользящего окна). Обычно по умолчанию степень параллелизма устанавливается на уровне 5-10, но у пользователя имеется возможность изменять этот параметр при конфигурировании клиента.

В HTTP 1.1 по умолчанию применяются постоянные соединения и конвейерный режим.
75
Формат НТТР-сообщений
В протоколе HTTP все сообщения состоят из текстовых строк. Сообщения как запросов, так и ответов имеют единую обобщенную структуру из трех частей: обязательной стартовой строки, а также необязательных заголовков и тела сообщения. В табл. 5.1 приведены форматы и примеры стартовых строк и заголовков для запросов и ответов.
Таблица 5.1. Форматы стартовых строк и заголовков

Обобщенная структура сообщения
НТТР-запрос
НТТР-ответ
Стартовая строка (всегда должна быть первой строкой сообщения; обязательный элемент)
Формат запроса Метод/ URL HTTP/l.x. Пример: GET /books/ books.htm НТТР/1.1
Формат ответа: HTTP/l.x КодСо-стояния Фраза. Пример: НТТР/1.0 200 ОК
Заголовки (следуют в произвольном порядке; могут отсутствовать)
Заголовок о DNS-имени компьютера, на котором расположен веб-сервер. Пример: Host:
www.olifer.co.uk

Заголовок о времени отправления данного ответа. Пример: Date: 1 Jan 2009 14:00:30
Заголовок об используемом браузере. Пример: User-agent: Mozilla/5.0
Заголовок об используемом вебсервере. Пример: Server: Apache/1.3.0 (Unix)
Заголовок о предпочтительном языке. Пример: Accept-language: ru
Заголовок о количестве байтов в теле сообщения. Пример: Content-Length: 1234
Заголовок о режиме соединения. Пример: Connection: close
Заголовок о режиме соединения. Пример: Connection: close
Пустая строка

Тело сообщения (может отсутствовать)
Здесь могут быть расположены ключевые слова для поисковой машины или страницы для передачи на сервер
Здесь может быть расположен текст запрашиваемой страницы

Как видно из таблицы, запросы и ответы имеют разные форматы стартовой строки. Каждая из них состоит из трех элементов, включающих поле версии протокола HTTP. И в запросе, и в ответе примера указана версия HTTP 1.1. Стартовая строка запроса включает в себя поле метода — это название операции, которая должна быть выполнена. Чаще всего в запросах используется метод GET, то есть запрос объекта. Именно он включен в наш пример запроса. Помимо этого метода в запросах протокол предусматривает и другие методы, такие как POST, который используется клиентом, например, для отправки электронной почты или в поисковых машинах, когда клиент запрашивает у сервера не определенный объект, а объекты, содержащие ключевые слова, помещенные в теле сообщения. Еще одним элементом стартовой строки является URL-ссылка на запрашиваемый объект — здесь это имя файла /books/books.htm.

В стартовой строке ответа, помимо уже упоминавшегося указания на версию протокола HTTP, имеется поле кода состояния и поле фразы для короткого текстового сообщения, поясняющего данный'код пользователю.
В настоящее время стандарты определяют пять классов кодов состояния:
□ 1хх — информация о процессе передачи;

□ 2хх — информация об успешном принятии и обработки запроса клиента (в таблице в примере стартовой строки ответа приведен код и соответствующая фраза 200 0К сообщает клиенту, что его запрос успешно обработан);
□ Зхх — информация о том, что для успешного выполнения операции нужно произвести следующий запрос по другому URL-адресу, указанному в дополнительном заголовке
Locati on;

□ 4хх — информация об ошибках на стороне клиента (читатель наверняка не раз сталкивался с ситуацией, когда при указании адреса несуществующей страницы браузер выводил на экран сообщение 404 Not Found);
□ 5хх — информация о неуспешном выполнения операции по вине сервера (например, сообщение 505httpVersionNotSupported говорит о том, что сервер не поддерживает версию HTTP, предложенную клиентом).

Среди кодов состояния имеется код 401, сопровождаемый сообщением authorization requi red. Если клиент получает такое сообщение в ответ на попытку доступа к странице или объекту, это означает, что доступ к данному ресурсу ограничен и требует авторизации 1 пользователя. Помимо поясняющей фразы сервер помещает в свой ответ дополнительный заголовок www- Authenticated... >, который сообщает клиенту, какую информацию он должен направить серверу для того, чтобы процедура авторизации могла быть выполнена. Обычно это имя и пароль. Веб-клиент с момента получения такого ответа сервера начинает добавлять во все свои запросы к ресурсам данного сервера дополнительный заголовок Authorization: <имя, паролъ>, который содержит информацию, необходимую для авторизации доступа.

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

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

Веб-страницы, которые могут генерировать выводимое на экран содержание, меняющееся в зависимости от некоторых внешних условий, называются динамическими.
Динамика страницы достигается путем ее программирования, обычно для этого используются программные языки сценариев, такие как Perl, РНР или JavaScript.
Различают два класса программ, предназначенных для создания динамического содержания веб-страниц:

□ программы, работающие на стороне клиента (то есть на том компьютере, где запущен веб-браузер, воспроизводящий страницу на экране);
□ программы, работающие на стороне сервера.
76

В том случае, когда программа работает на стороне клиента, код страницы передается веб-сервером веб-браузеру как обычный статический объект, а затем браузер выполняет этот код, с его помощью создает динамическое содержание страницы и выводит ее на экран. Примером может служить код, написанный на языке ActionScript, который иногда используется для программирования интерактивной анимации в играх. Однако для этого требуется еще один механизм, поддерживаемый современными браузерами, — механизм надстроек (add-on). Механизм надстроек является программным интерфейсом между браузером и внешними программами, которые расширяют функциональные возможности браузеров. Программа-надстройка обрабатывает объекты веб-страницы определенного типа, в данном случае — код ActionScript. Программой-надстройкой, которая понимает ActionScript, является Flash-плейер компании Adobe. Если Flash-плейер загружен в браузер, то динамическая веб-страница, в которой есть код ActionScript, будет правильно работать и воспроизводить интерактивную анимацию. Другим популярным языком программирования страниц на стороне клиента является JavaScript.

При программировании содержания страницы на стороне сервера процесс выглядит немного сложнее, так как программный код страницы создает содержание на сервере, следовательно, здесь нужен дополнительный этап — передача этого содержания по протоколу HTTP на клиентскую машину браузеру. Популярными языками сценариев для серверной части являются Perl, ASP, JSP и РНР Существует также стандартный программный интерфейс между веб-сервером и программами, генерирующими динамическое содержание, — это общий шлюзовой интерфейс (Common Gateway Interface, CGI).

IP-телефония
IP-телефония — это сервис, который обеспечивает коммутируемые голосовые соединения преимущественно по схеме «один к одному» и который поддерживается сетью, использующей протокол IP в форме общедоступного Интернета или частной 1Р-сети.
О ТЕРМИНАХ -

Понятие «IP-телефония» распространяется также и на те случаи, когда голос и факс передаются вместе с другими видами информации, в частности с текстом и изображением. Помимо термина «IP-телефония» употребляются также термины «VoIP» (Voice over IP — голос через IP) и «интернет-телефония». Хотя аббревиатура VoIP часто используется как синоним термина «1Р-телефония», существует ее более широкая трактовка — любая услуга, включающая передачу голоса по протоколу IP; это может быть, например, передача голосовой рекламы при щелчке на соответствующем значке, расположенном на веб-странице. Интернет-телефония — это частный случай IP-телефонии, когда разговор происходит через Интернет, а не, например, в пределах локальной сети предприятия.

Ранняя 1Р-телефония
В своем развитии IP-телефония прошла три этапа.
На первом этапе это была, скорее, интернет-игрушка, пригодная разве что для общения двух энтузиастов, готовых мириться с сопровождающим диалог кваканьем и шипением. Два компьютера, оснащенные микрофонами, динамиками, звуковыми картами с поддержкой оцифровки звука и не очень сложным программным обеспечением, позволяли вести двусторонний диалог через Интернет в реальном времени (рис. 23.5).

Рис. 23.5. Средства поддержки разговора пользователей через Интернет

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

Второй этап ознаменовался появлением стандартов IP-телефонии, прежде всего — стандартов группы Н.323, разработанных ITU-T, и стандартов на основе протокола SIP, разработанного IETF.
К третьему этапу можно отнести появление нового поколения IP-телефонии, поддерживающей широкий спектр дополнительных услуг, подобный тому, который предоставляют абонентам развитые телефонные сети.
Стандарты Н.323

Разработчики стандартов Н.323 исходили из того, что две сети — телефонная и IP — будут сосуществовать бок о бок достаточно длительное время, а значит, важно регламентировать их взаимодействие с учетом существующих в традиционных телефонных сетях процедур установления соединения, а также договориться о способе передачи вызова и собственно голоса по 1Р-сети.

В рамках установленного сеанса Н.323 абоненты могут обмениваться не только голосовой, но и видеоинформацией, то есть пользоваться видеотелефонами или оборудованием для организации видеоконференций.
В стандартах Н.323 определяется две группы протоколов (рис. 23.6):


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

Report Page