<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Компьютерные сети &#187; Протоколы прикладного уровня</title>
	<atom:link href="http://www.conlex.kz/category/prikladnoj-uroven/principy-raboty-protokolov-prikladnogo-urovnya/protokoly-prikladnogo-urovnya/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.conlex.kz</link>
	<description>Многоуровневая архитектура Интернета</description>
	<lastBuildDate>Wed, 30 Nov 2011 06:17:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Функции DNS</title>
		<link>http://www.conlex.kz/funkcii-dns/</link>
		<comments>http://www.conlex.kz/funkcii-dns/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 17:06:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[udp]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[браузер]]></category>
		<category><![CDATA[домен]]></category>
		<category><![CDATA[маршрутизатор]]></category>
		<category><![CDATA[протокол]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/funkcii-dns/</guid>
		<description><![CDATA[Как мы видели, существуют два принципиально разных способа идентификации хостов: с помощью имен и с помощью IP-адресов. Имя хоста удобно для людей в силу своей мнемоничности, а IP-адрес, являющийся компактной числовой величиной фиксированного размера, проще обрабатывать маршрутизаторами. Для того чтобы установить связь между этими двумя идентификаторами, используется система доменных имен (Domain Name System, DNS). DNS [...]]]></description>
			<content:encoded><![CDATA[<p>Как мы видели, существуют два принципиально разных способа идентификации хостов: с помощью имен и с помощью IP-адресов. Имя хоста удобно для людей в силу своей мнемоничности, а IP-адрес, являющийся компактной числовой величиной фиксированного размера, проще обрабатывать маршрутизаторами. Для того чтобы установить связь между этими двумя идентификаторами, используется система доменных имен (Domain Name System, DNS). DNS представляет собой, с одной стороны, базу данных, распределенную между иерархически структурированными серверами имей, и, с другой стороны, протокол прикладного уровня, организующий взаимодействие между хостами и серверами имен для выполнения операций преобразования. Зачастую серверы имен являются UNIX-машинами, использующими программное обеспечение BIND (Berkeley Internet Name Domain — домен имен Интернета Беркли). Протоколу DNS назначен порт с номером 53, и работает DNS поверх протокола UDP транспортного уровня. На сайте _http://www.awl.com.kurose-ross, посвященном этой книге, вы можете найти интерактивные ссылки на DNS-программы, осуществляющие преобразование произвольных имен хостов в IP-адреса.</p>
<p>Обычно DNS используется другими протоколами прикладного уровня: HTTP, SMTP и FTP для получения IP-адресов вместо вводимых пользователями имен хостов. Рассмотрим, к примеру, ситуацию, когда пользователь вводит в адресной строке браузера адрес web-страницы _www.someschool.edu/index.html. Для того чтобы сформировать запрос, пользовательский хост должен сначала получить IP-адрес удаленного хоста, на котором находится ресурс, то есть _www.someschool.edu. При работе протокола DNS пользовательский хост играет роль клиента. Браузер выделяет из URL-адреса страницы имя хоста и передает его клиентской стороне DNS-приложения, которая формирует и отправляет запрос DNS-серверу. DNS-сервер обрабатывает запрос и отсылает клиенту ответ, содержащий IP-адрес хоста. Затем браузер открывает TCP-соединение с HTTP-сервером, выполняющимся на хосте с полученным IP-адресом. Очевидно, что процесс получения IP-адреса не является мгновенным и вносит дополнительную задержку в суммарное время установления соединения с HTTP-сервером, которая иногда может быть весьма значительной. Как мы увидим позже, среднее время получения IP-адреса (а также объем DNS-трафика) может быть уменьшено путем кэширования IP-адреса на «ближайшем» DNS-сервере.<br />
Помимо преобразования имен хостов в IP-адреса, DNS выполняет еще несколько важных функций, перечисленных ниже.</p>
<p>□ Поддержка псевдонимов серверов. Хосты с длинными именами могут иметь один или несколько псевдонимов; например, хосту _relayl.west-coast.enterprise.com можно присвоить два псевдонима — _enterprise.com и _www.enterprise.com. В этом случае говорят, что _relayl.west-coast.enterprise.com является каноническим именем хоста. Обычно введение псевдонимов вызывается недостаточной мнемо-ничностью канонического имени. Получение канонического имени хоста по заданному псевдониму, как и IP-адреса, выполняется с помощью протокола DNS.</p>
<p>□ Поддержка псевдонимов почтовых серверов. Очевидно, что мнемоничность особенно важна для адресов электронных почтовых ящиков. Например, если Боб использует почтовый ящик компании Hotmail, то его адрес будет иметь вид _bob@hotmail.com, что нетрудно запомнить. На самом деле _hotmail.com является лишь псевдонимом почтового сервера Боба, в то время как каноническое имя имеет гораздо более сложную структуру, например _relayl.west-coast.hotmail.com. Приложение электронной почты с помощью протокола DNS по заданному псевдониму получает каноническое имя и IP-адрес сервера. Фактически запись типа MX (см. ниже) позволяет почтовому серверу компании и ее web-серверу иметь одинаковые псевдонимы, например _enterprise.com.</p>
<p>□ Распределение загрузки. В последнее время DNS все больше используется для распределения загрузки между дублирующими серверами. Популярные сайты, например cnn.com, зачастую имеют несколько копий (или реплик, или зеркал), расположенных на различных серверах с различными IP-адресами. Таким образом, в случае дублирующих серверов с одним именем хоста связывается множество IP-адресов, которые хранятся в базе данных DNS. Когда производится DNS-запрос для имени, которому сопоставлено несколько IP-адресов, в ответ включаются все IP-адреса, однако сервер может изменять порядок их перечисления. Поскольку обычно HTTP-клиент сначала формирует запрос с использованием IP-адреса, который был указан в списке первым, это позволяет распределять загрузку между дублирующими серверами. Подобный механизм применим как для web-серверов, так и для почтовых серверов, то есть несколько почтовых серверов могут иметь один и тот же псевдоним. В последнее время некоторые компании, такие как Akamai, стали применять DNS для «изощренных» методов распределения web-ресурсов (см. раздел «Распределение ресурсов» этой главы).</p>
<p><em>ПРИНЦИПЫ И ПРАКТИКА -<br />
DNS, подобно протоколам HTTP, FTP и SMTP, является протоколом прикладного уровня. Он выполняется на оконечных системах, опираясь на парадигму клиент/сервер и службы протокола транспортного уровня, передающие DNS-сообщения между оконечными системами. Тем не менее роль DNS в значительной степени отличается от роли web-протоколов, а также протоколов электронной почты и обмена файлами. Пользователь не взаимодействует с DNS напрямую: DNS осуществляет в Интернете «закулисную» функцию преобразования имен хостов в IP-адреса. Эта функция используется либо пользовательскими приложениями, либо другим сетевым программным обеспечением. В разделе «Ядро компьютерных сетей» главы 1 мы рассказали о том, что наиболее сложные проблемы Интернета сосредоточены на его «периферии». Служба DNS, выполняющая трансляцию адресов с помощью клиентов и серверов, находящихся на разбросанных по Интернету оконечных системах, только подтверждает эту философию разработчиков.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/funkcii-dns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Агенты пользователя</title>
		<link>http://www.conlex.kz/agenty-polzovatelya/</link>
		<comments>http://www.conlex.kz/agenty-polzovatelya/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 14:02:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[браузер]]></category>
		<category><![CDATA[протокол]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/agenty-polzovatelya/</guid>
		<description><![CDATA[Перед тем как начать более детальное изучение протоколов прикладного уровня, было бы целесообразно ознакомиться с понятием агента пользователя. Агентом пользователя называется интерфейс между пользователем и сетевым приложением. Представим себе web. Для web роль агента пользователя играет браузер, например Netscape Navigator или Microsoft Internet Explorer. Браузеры позволяют пользователям просматривать содержимое web-страниц, осуществлять навигацию в web, заполнять [...]]]></description>
			<content:encoded><![CDATA[<p>Перед тем как начать более детальное изучение протоколов прикладного уровня, было бы целесообразно ознакомиться с понятием агента пользователя. Агентом пользователя называется интерфейс между пользователем и сетевым приложением. Представим себе web. Для web роль агента пользователя играет браузер, например Netscape Navigator или Microsoft Internet Explorer. Браузеры позволяют пользователям просматривать содержимое web-страниц, осуществлять навигацию в web, заполнять формы, взаимодействовать с Java-апплетами и т. д. Кроме того, браузер является клиентской частью протокола HTTP. Таким образом, браузер — это процесс, осуществляющий обмен сообщениями через сокет и одновременно предоставляющий пользовательский интерфейс. В качестве другого примера возьмем приложение электронной почты. Здесь роль агента пользователя играет программа чтения почты, позволяющая обрабатывать электронные письма. Современные программы (Microsoft Outlook, Eudora, AOL, Netscape Communicator) обладают развитым графическим интерфейсом. Как мы увидим в разделе «Электронная почта» этой главы, перечисленные программы зачастую используют как минимум два разных протокола прикладного уровня: SMTP — для отправки электронных писем и РОРЗ или IMAP — для их доставки.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/agenty-polzovatelya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Адресация процессов</title>
		<link>http://www.conlex.kz/adresaciya-processov/</link>
		<comments>http://www.conlex.kz/adresaciya-processov/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 14:01:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[протокол]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/adresaciya-processov/</guid>
		<description><![CDATA[Для успешного обмена сообщениями между процессами, выполняющимися на двух различных хостах, необходимо, чтобы они могли идентифицировать друг друга. Идентификация требует наличия следующей информации о процессе: □ имя или адрес хоста, которому принадлежит процесс; □ идентификатор процесса внутри хоста. Сначала рассмотрим адрес хоста. В Интернет-приложениях хосты идентифицируются с помощью IP-адресов, которые будут подробно изучены нами в [...]]]></description>
			<content:encoded><![CDATA[<p>Для успешного обмена сообщениями между процессами, выполняющимися на двух различных хостах, необходимо, чтобы они могли идентифицировать друг друга. Идентификация требует наличия следующей информации о процессе:<br />
□ имя или адрес хоста, которому принадлежит процесс;<br />
□ идентификатор процесса внутри хоста.</p>
<p>Сначала рассмотрим адрес хоста. В Интернет-приложениях хосты идентифицируются с помощью IP-адресов, которые будут подробно изучены нами в главе 4. Пока нам достаточно знать, что IP-адрес представляет собой 32-разрядное двоичное число, уникальное для каждого хоста сети (говоря точнее, это число уникально для каждого интерфейса, с помощью которого осуществляется подключение хоста к сети). Проблема уникальности IP-адресов является очень важной, и в главе 4 мы подробно ее обсудим.</p>
<p>Идентификация процесса внутри хоста производится с помощью уникального для каждого процесса хоста номера порта. Популярные Интернет-протоколы прикладного уровня имеют стандартизированные (говорят: хорошо известные) значения номеров портов. Так, процесс, использующий протокол HTTP, получает порт номер 80, а процесс, использующий протокол SMTP, — порт номер 25. Хорошо известные номера портов можно найти в документе RFC 1700 (который в настоящее время является несколько устаревшим) и на сайте _http://www.iana.org (RFC 3232). Когда разработчик создает новое сетевое приложение, он должен назначить приложению собственный номер порта.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/adresaciya-processov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Взаимодействие процессов через сеть</title>
		<link>http://www.conlex.kz/vzaimodejstvie-processov-cherez-set/</link>
		<comments>http://www.conlex.kz/vzaimodejstvie-processov-cherez-set/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 13:58:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[udp]]></category>
		<category><![CDATA[протокол]]></category>
		<category><![CDATA[протокол tcp]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/vzaimodejstvie-processov-cherez-set/</guid>
		<description><![CDATA[Как было сказано выше, многие приложения состоят из двух «сторон», взаимодействующих друг с другом через компьютерную сеть. Взаимодействие осуществляется путем передачи и приема сообщений. Процесс осуществляет прием и передачу сообщений через свой сокет. Сокет можно сравнить с дверью: когда процессу необходимо произвести отправку сообщения, он «выталкивает» сообщение через «дверь», предполагая, что некто снаружи (службы более [...]]]></description>
			<content:encoded><![CDATA[<p>Как было сказано выше, многие приложения состоят из двух «сторон», взаимодействующих друг с другом через компьютерную сеть. Взаимодействие осуществляется путем передачи и приема сообщений. Процесс осуществляет прием и передачу сообщений через свой сокет. Сокет можно сравнить с дверью: когда процессу необходимо произвести отправку сообщения, он «выталкивает» сообщение через «дверь», предполагая, что некто снаружи (службы более низких уровней) осуществит доставку сообщения до «двери» адресата. Затем сообщение попадает через «дверь» непосредственно приложению-адресату, которое осуществляет его обработку.</p>
<p>На рис, 2.3 изображено взаимодействие двух процессов через Интернет посред-ством.сокетов (хотя в представленной ситуации используется протокол TCP, с тем же успехом это мог бы быть протокол UDP). Как можно видеть, сокет представляет собой интерфейс между прикладным и транспортным уровнями хоста. Сокет также часто называют прикладным программным интерфейсом (API), осуществляющим связь приложения и компьютерной сети. Под контролем разработчика приложения практически целиком находится часть сокета, относящаяся к прикладному уровню, чего нельзя сказать о его «транспортной» части. Здесь в компетенции разработчика лишь выбор протокола транспортного уровня и установка значений нескольких параметров транспортного уровня (максимальный размер буфера, максимальный размер сегмента и др.). Приложение всегда строится с использованием единственного транспортного протокола. Мы вернемся к обсуждению сокетов в разделах «Программирование ТСР-сокетов» и «Программирование UDP-сокетов» этой главы.</p>
<p><a href="http://www.conlex.kz/wp-content/uploads/2008/08/23.png" title="23.png"><img src="http://www.conlex.kz/wp-content/uploads/2008/08/23.png" ilo-full-src="http://www.conlex.kz/wp-content/uploads/2008/08/23.png" alt="23.png" height="297" width="617" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/vzaimodejstvie-processov-cherez-set/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Клиентская и серверная стороны приложения</title>
		<link>http://www.conlex.kz/klientskaya-i-servernaya-storony-prilozheniya/</link>
		<comments>http://www.conlex.kz/klientskaya-i-servernaya-storony-prilozheniya/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 13:49:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[браузер]]></category>
		<category><![CDATA[протокол]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/klientskaya-i-servernaya-storony-prilozheniya/</guid>
		<description><![CDATA[Как показано на рис. 2.2, сетевое приложение, как правило, состоит из двух «сторон»: клиентской и серверной. Клиентская и серверная стороны находятся на разных оконечных системах и взаимодействуют путем обмена сообщениями. Так, web-браузер является клиентской стороной HTTP, в то время как программное обеспечение web-сервера представляет собой серверную сторону протокола. Роль клиентской и серверной сторон для SMTP [...]]]></description>
			<content:encoded><![CDATA[<p>Как показано на рис. 2.2, сетевое приложение, как правило, состоит из двух «сторон»: клиентской и серверной. Клиентская и серверная стороны находятся на разных оконечных системах и взаимодействуют путем обмена сообщениями. Так, web-браузер является клиентской стороной HTTP, в то время как программное обеспечение web-сервера представляет собой серверную сторону протокола. Роль клиентской и серверной сторон для SMTP играют соответственно передающий и принимающий почтовые серверы соответственно.</p>
<p>Во многих приложениях хост может играть роль как клиента, так и сервера. Представим себе сеанс Telnet, установленный между хостами А и В (как вы помните, Telnet представляет собой когда-то популярное приложение для организации удаленного доступа). Если сеанс был инициирован хостом А, то хост А будет играть роль клиента, а хост В — роль сервера. Если же инициатором сеанса был хост В, то хосты А и В поменяются ролями. В качестве другого примера представьте себе обмен файлов между двумя хостами по протоколу FTP (File Transfer Protocol — протокол передачи файлов). Во время FTP-сеанса клиент и сервер могут неоднократно меняться местами, при этом клиентом считается та сторона, которая осуществляет прием файла. Тем не менее чаще всего пользуются следующим правилом: клиентом является хост, инициирующий обмен.</p>
<p><a href="http://www.conlex.kz/wp-content/uploads/2008/08/22.png" title="22.png"><img src="http://www.conlex.kz/wp-content/uploads/2008/08/22.png" ilo-full-src="http://www.conlex.kz/wp-content/uploads/2008/08/22.png" alt="22.png" height="694" width="632" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/klientskaya-i-servernaya-storony-prilozheniya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Необходимо различать понятия сетевых приложений и протоколов прикладного уровня</title>
		<link>http://www.conlex.kz/neobxodimo-razlichat-ponyatiya-setevyx-prilozhenij-i-protokolov-prikladnogo-urovnya/</link>
		<comments>http://www.conlex.kz/neobxodimo-razlichat-ponyatiya-setevyx-prilozhenij-i-protokolov-prikladnogo-urovnya/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 13:45:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Протоколы прикладного уровня]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[браузер]]></category>
		<category><![CDATA[протокол]]></category>

		<guid isPermaLink="false">http://www.conlex.kz/neobxodimo-razlichat-ponyatiya-setevyx-prilozhenij-i-protokolov-prikladnogo-urovnya/</guid>
		<description><![CDATA[Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются частью (хотя и весьма большой) сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются частью (хотя и весьма большой) сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft или Netscape), протоколы прикладного уровня. Протокол прикладного уровня для web носит название протокола передачи гипертекста (HyperText Transfer Protocol, HTTP) и описывает формат и порядок обмена сообщениями между клиентом и сервером (RFC 2646). Таким образом, HTTP является лишь частью web-приложения.</p>
<p>В качестве второго примера рассмотрим приложение электронной почты. Электронная почта Интернета также состоит из множества компонентов: почтовых серверов, содержащих почтовые ящики пользователей, программ для просмотра и создания электронных писем, стандартов, описывающих структуру электронных писем, протоколов прикладного уровня, регламентирующих порядок обмена сообщениями серверов между собой и с оконечными системами пользователей, а также интерпретацию полей, из которых состоят электронные письма. Основным протоколом прикладного уровня для электронной почты является протокол простой передачи сообщений (Simple Mail Transfer Protocol, SMTP). Как мы видим, SMTP (RFC 2821) — лишь часть (хотя и достаточно большая) структуры приложений электронной почты.</p>
<p>Как сказано выше, протоколы прикладного уровня определяют способ обмена сообщениями между двумя процессами, выполняющимися на разных оконечных системах. Обычно протокол определяет следующие элементы:<br />
□ типы используемых сообщений, например запросы и ответы;<br />
□ синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;<br />
□ семантику полей, то есть смысл информации, содержащейся в каждом из полей сообщения;<br />
□ правила, описывающие события, которые вызывают генерацию сообщений.</p>
<p>Некоторые из протоколов прикладного доступа (HTTP, SMTP и др.) являются официально документированными в RFC. Это означает, что если разработчик нового браузера будет следовать стандарту, то браузер сможет получать документы с любого web-сервера, построенного по этому же стандарту. Тем не менее существует множество протоколов прикладного уровня, которые не стандартизированы и при этом используются для поддержки коммерческих продуктов. В частности, это характерно для Интернет-телефонии.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conlex.kz/neobxodimo-razlichat-ponyatiya-setevyx-prilozhenij-i-protokolov-prikladnogo-urovnya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

