Лабораторная работа №1 icon

Лабораторная работа №1


Смотрите также:
Изучение макрокоманд программы ms excel с выполнением контр...
Лабораторная работа №1...
Лабораторная работа №1. «Диоды в источниках питания»...
Лабораторная работа №1...
Лабораторная работа 9...
Лабораторная работа №4...
Лабораторная работа № топографические карты...
Лабораторная работа №1...
Контрольная работа Лабораторная работа №1 «Дольменная культура» Лабораторная работа №2 «Генуэзцы...
Лабораторная работа №1. Освоение приемов работы с электронными таблицами. 5...
Методические указания к лабораторным работам Лабораторная работа №1...
Методические указания к выполнению лабораторно-практических работ для студентов специальности 17...



Загрузка...
страницы: 1   2   3
вернуться в начало
скачать



Структура IР-адреса

Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая к номеру узла, определяется значениями первых битов адреса:

  • Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) В сетях класса А количество узлов должно быть больше 216 , но не превышать 224.

  • Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров с числом узлов 28 - 216. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта.

  • Если адрес начинается с последовательности 110, то это сеть класса С с числом узлов не больше 28. Под адрес сети отводится 24 бита, а под адрес узла - 8 битов.

  • Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

  • Если адрес начинается с последовательности 11110, то это адрес класса Е, он зарезервирован для будущих применений.

В таблице приведены диапазоны номеров сетей, соответствующих каждому классу сетей.

Класс

Наименьший адрес

Наибольший адрес


A

01.0.0

126.0.0.0

B


128.0.0.0

191.255.0.0

C


192.0.1.0

223.255.255.0

D


224.0.0.0

239.255.255.255

E


240.0.0.0

247.255.255.255.


Соглашения о специальных адресах: broadcast, multicast, loopback

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:

  • если IР-адрес состоит только из двоичных нулей,


0000…….0000


то он обозначает адрес того узла, который сгенерировал этот пакет;

  • если в поле номера сети стоят 0,

000….0 № узла


то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;

  • если все двоичные разряды IP-адреса равны 1,


1111……..111

то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);

  • если в поле адреса назначения стоят сплошные 1,


№ сети 1111…..111


то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);

  • адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback.

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

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

Подсети

Важным элементом разбиения адресного пространства Internet являются подсети. Подсеть - это
подмножество сети, не пересекающееся с другими подсетями. Это означает, что сеть организации
(скажем, сеть класса С) может быть разбита на фрагменты, каждый из которых будет составлять
подсеть. Реально, каждая подсеть соответствует физической локальной сети (например, сегменту
Ethernet). Вообще говоря, подсети придуманы для того, чтобы обойти ограничения физических сетей
на число узлов в них и максимальную длину кабеля в сегменте сети. Например, сегмент тонкого
Ethernet имеет максимальную длину 185 м и может включать до 32 узлов. Самая маленькая сеть - класса С - может состоять из 254 узлов. Для того, чтобы достичь этой цифры, надо объединить несколько физических сегментов сети. Сделать это можно либо с помощью физических устройств (например, репитеров), либо при помощи машин-шлюзов. В первом случае разбиения на подсети не требуется, т.к. логически сеть выглядит как одно целое. При использовании шлюза сеть разбивается на подсети (рисунок 1).

На рисунке 1 изображен фрагмент сети класса B - 144.206.0.0, состоящий из двух подсетей -
144.206.130.0 и 144.206.160.0. В центре схемы изображена машина шлюз, которая связывает
подсети. Эта машина имеет два сетевых интерфейса и, соответственно, два IP-адреса.




Рисунок 1. Схема разбиения адресного пространства сети на подсети


В принципе, разбивать сеть на подсети необязательно. Можно использовать адреса сетей другого
класса (с меньшим максимальным количеством узлов). Но при этом возникает, как минимум, два
неудобства.

В сети, состоящей из одного сегмента Ethernet, весь адресный пул сети не будет использован,
т.к., например, для сети класса С (самой маленькой с точки зрения количества узлов в ней),
из 254 возможных адресов можно использовать только 32;
Все машины за пределами организации, которым разрешен доступ к компьютерам сети данной
организации, должны знать шлюзы для каждой из сетей. Структура сети становится открытой
во внешний мир. Любые изменения структуры могут вызвать ошибки маршрутизации. При
использовании подсетей внешним машинам надо знать только шлюз всей сети организации.
Маршрутизация внутри сети - это ее внутреннее дело.

Разбиение сети на подсети использует ту часть IP-адреса, которая закреплена за номерами хостов.
Администратор сети может замаскировать часть IP-адреса и использовать ее для назначения номеров
подсетей. Фактически, способ разбиения адреса на две части, теперь будет применятся к адресу хоста
из IP-адреса сети, в которой организуется разбиение на подсети.

Маска подсети - это четыре байта, которые накладываются на IP-адрес для получения номера
подсети. Например, маска 255.255.255.0 позволяет разбить сеть класса В на 254 подсети по 254 узла
в каждой. На рисунке 2 приведено маскирование подсети 144.206.160.0 из предыдущего примера.

На приведенной схеме (рисунок 2) сеть класса B (номер начинается с 10) разбивается на подсети
маской 255.255.224.0. При этом первые два байта задают адрес сети и не участвуют в разбиении на
подсети. Номер подсети задается тремя старшими битами третьего байта маски. Такая маска
позволяет получить 6 подсетей. Для нумерации подсети нельзя использовать номер 000 и номер 111.
Номер 160 задает 5-ю подсеть в сети 144.206.0.0. Для нумерации машин в подсети можно
использовать оставшиеся после маскирования 13 битов, что позволяет создать подсеть из 8190
узлов. Честно говоря, в настоящее время такой сети в природе не существует и РНЦ "Курчатовский
Институт", которому принадлежит сеть 144.206.0.0, рассматривает возможность пересмотра маски
подсетей. Перестроить сеть, состоящую из более чем 400 машин, не такая простая задача, так как ей
управляет 4 администратора, которые должны изменить маски на всех машинах сети. Ряд
компьютеров работает в круглосуточном режиме и все изменения надо произвести в тот момент,
когда это минимально скажется на работе пользователей сети. Данный пример показывает насколько
внимательно следует подходить к вопросам планирования архитектуры сети и ее разбиения на
подсети. Многие проблемы можно решить за счет аппаратных средств построения сети.




Схема маскирования и вычисления номера подсети

К сожалению, подсети не только решают, но также и создают ряд проблем. Например, происходит
потеря адресов, но уже не по причине физических ограничений, а по причине принципа построения
адресов подсети. Как было видно из примера, выделение трех битов на адрес подсети не приводит к
образованию 8-ми подсетей. Подсетей образуется только 6, так как номера сетей 0 и 7 использовать в
силу специального значения IP-адресов, состоящих из 0 и единиц, нельзя. Таким образом, все
комбинации адресов хоста внутри подсети, которые можно было бы связать с этими номерами,
придется забыть. Чем шире маска подсети (чем больше места отводится на адрес хоста), тем больше
потерь. В ряде случаев приходится выбирать между приобретением еще одной сети или изменением
маски. При этом физические ограничения могут быть превышены за счет репитеров, хабов и т. п.

^ Отображение символьных адресов на IP-адреса: служба DNS

DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес.

Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен - в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет - то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы.

База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.

Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:

  • com - коммерческие организации (например, microsoft.com);

  • edu - образовательные (например, mit.edu);

  • gov - правительственные организации (например, nsf.gov);

  • org - некоммерческие организации (например, fidonet.org);

  • net - организации, поддерживающие сети (например, nsf.net).

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени :
vmk.ugatu.ac.ru
------------------------
Установка и конфигурирование стека ^ TCP/IP в Windows осуществляется в:
"Мой компьютер-Панель управления-Сеть-Конфигурация (Добавить-Протокол или TCP/IP-Свойства).
Для работы с IP-конфигурацией в Windows существует утилита winipcfg.exe.
Для определения состояния текущих соединений используется утилита netstat.
-----------------------
Сервисные утилиты ping и traceroute(в Windows - tracert)

При работе в сети Internet могут возникать ситуации, когда необходимо определить работоспособность того или иного узла или канала связи, а также выяснить, по какому конкретно каналу передаются сообщения. Для этой цели служат утилиты ping и traceroute. Эти утилиты, как и многие другие, были разработаны под ОС UNIX, но в настоящее время они распространены практически во всех ОС. Названия программных файлов утилит, а также формат их командной строки могут изменяться в зависимости от версии ОС, но принципы работы и назначение этих везде утилит одинаковы (например, под ОС типа Windows NT утилита traceroute носит название tracert, однако, выполняет она те же действия).

Утилита ping базируется на протоколах ICMP (Internet Control Message Protocol) и UDP. Протокол ICMP проверяет состояние сетевых устройств и формирует соответствующие сообщения. При возникновении неисправности в каком-либо устройстве он сообщает об этом остальным устройствам. ICMP работает на том же уровне, что и протокол IP.

Входными данными для утилиты ping является адрес узла, маршрут до которого подлежит трассировке. Адрес узла задается в виде IP-адреса или доменного адреса в командной строке при запуске утилиты. На основе откликов протокола ICMP утилита строит протокол трассировки соединения, из которого можно определить, через какие узлы и в течение какого времени проходили пакеты по сети до заданной адресной точки. Версия BSD утилиты ping в ОС UNIX позволяет выполнять очень широкий набор функций по протоколированию и трассировке соединений. В других ОС (например, в Windows NT) часть функций трассировки выделена в другую утилиту - traceroute (в Windows NT - tracert), а утилита ping позволяет только проверить наличие соединения.

Сервисные утилиты ping и traceroute зачастую требуют для своего запуска наличия у пользователя административных прав. Это связано с тем, что при трассировке соединений они посылают в сеть большое число пакетов, не несущих никакой полезной информации. Неквалифицированное или преднамеренно злоумышленное использование этих утилит может привести к значительному росту трафика сети, что в свою очередь может осложнить работу многих прикладных программ.

Указанные сервисные утилиты выполняют в основном отладочные, а не прикладные функции. Они чаще всего используются административным персоналом сетей и узлов для проверки исправности оборудования и правильности настроек программных систем. Они также полезны разработчикам прикладных программ, ориентированных на работу в сети, для проверки отклика этих программ на входящие сообщения. Версии этих утилит во многих ОС (прежде всего - под ОС UNIX) позволяют получить дополнительную отладочную информацию, полезную разработчикам программ при отладке. Например, возможна распечатка содержимого входных и выходных пакетов, распечатка заголовков пакетов (в стандартных утилитах ping и tracert под графической оболочкой типа Windows такие отладочные функции не предоставляются).

Порядок выполнения работы

    1. Установка и конфигурирование стека протоколов TCP/IP.

    2. Обследование локальной, кафедральной и институтской сетей. Структура общей институтской сети расположена по адресу

    3. Установка, конфигурирование и работа с персональным Firewall-ом

    4. Подготовить и защитить отчет.

Требования к оформлению отчета

Отчет должен содержать следующие разделы:

  • Задание по лабораторной работе.

  • Описание TCP/IP-параметров настройки компьютера, на котором выполнялась данная работа).

  • Структура локальной (кафедральной), факультетской и институтской сетей с указанием IP и доменных адресов.

  • Параметры настройки @GUARD-a.

  • Выводы по проделанной работе.



^ Лабораторная работа № 2
Взаимодействие прикладных программ с помощью протоколов прикладного уровня

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

^ Для выполнения лабораторной работы требуется написать программу, которая выполняется под управлением ОС типа Windows или UNIX и использует для взаимодействия с другими программами заданный протокол электронной почты или иной прикладной протокол сети Internet. Для разработки программы рекомендуется использовать среду Delphi версии 3.0 или старше под управлением ОС типа Windows XP или Windows NT/2000.

Краткие теоретические сведения

Протокол электронной почты SMTP

Электронная почта - это средство передачи сообщений между любыми двумя ЭВМ, имеющими соединение в сети. Принцип работы электронной почты предельно прост (и в этом сродни работе обычной, "бумажной" почты) - для того, чтобы передать сообщение, достаточно только иметь текст сообщения и знать адрес получателя. Пользователь электронной почты не должен заботится о том, каким образом и с помощью каких средств должно быть передано его сообщение. Электронная почта - это принадлежность не только сети Internet, она использовалась (и используется) также в других сетях, но с появлением всемирной сети это средство получило истинно всемирный размах, сравнявшись по широте возможностей со своим "бумажным" аналогом, а в чем-то даже превосходя его.

SMTP (Simple Mail Transfer Protocol - простой протокол электронной почты) принят в качестве стандартного метода передачи электронной почты в сети Internet. Этот протокол во многом подобен протоколу FTP. Название его вполне соответствует сути - с ним достаточно просто работать. В качестве транспортного протокола SMTP использует TCP, соединение устанавливается через порт с номером 25. Для обслуживания этого соединения используется специальная программа, которая именуется почтовым сервером. Для формирования сообщения и установления соединения используется почтовая программа (утилита) пользователя.

Главной целью протокола SMTP является надежная и эффективная доставка электронных почтовых сообщений. Для реализации протокола требуется только надежный канал связи. Средой для SMTP может служить отдельная локальная сеть, система сетей или же вся всемирная сеть Internet. Если между отправителем и получателем письма имеется непосредственная связь, адрес пользователя имеет вид имя_пользователя@адрес_ЭВМ. Когда получатель находится на ЭВМ, которая не поддерживает соединение по протоколу SMTP, и передача происходит через промежуточный сервер, то адрес получателя письма может иметь иной вид, например, имя_пользователя%имя_сервера@адрес_ЭВМ. Адреса ЭВМ в сети Internet представляют собой имя домена и преобразуются в IP-адреса согласно протоколу DNS.

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

Перечень команд протокола SMTP приведен в табл. 3. Это внутренние команды протокола. Если пользователь использует для работы с электронной почтой некоторую утилиту, то эти команды ему недоступны. Они представляют интерес только при программировании взаимодействия программ на основе этого протокола.

Таблица 3.Внутренние команды протокола SMTP

Команда

Описание команды

DATA

Сообщение (за командой следует текст сообщения)

EXPN

Расширение списка получателей

HELO

Используется при инициализации обмена при установлении соединения

HELP

Запрос о помощи

MAIL

Адрес отправителя

NOOP

Никаких действий (пустая команда)

QUIT

Разрыв соединения

RCPT

Адрес получателя (таких команд может быть несколько)

RSET

Закончить текущую транзакцию

SAML

Послать письмо на терминал пользователя и в почтовый ящик

SEND

Послать письмо на терминал

SOML

Если можно, послать письмо на терминал, иначе - в почтовый ящик

TURN

Изменить направление передачи (отправитель и получатель меняются местами)

VRFY

Проверить имя пользователя

Через систему электронной почты передаются сообщения, которые должны иметь строго определенный формат. Этот формат достаточно прост. Любое почтовое сообщение можно разделить на три части: "конверт", заголовки и собственно текст. "Конверт" используется почтовым сервером, он содержит две команды - MAIL и RCPT (то, как они передаются серверу, описано ниже). Заголовок используется почтовой программой пользователя. Он содержит девять специальных полей: Received, From, To, Date, Subject, Message-Id, X-Phone, X-Mailer, Reply-To. Назначение этих полей понятно из их названия. Каждое из этих полей содержит имя, за которым после двоеточия идет его значения. При желании, пользователь может ознакомится с содержимым всех полей заголовка письма.

Текст сообщения должен передаваться в виде 7-разрядных символов ASCII. Конец сообщения представляет собой строку, содержащую только символы точки (".") и перевода строки. Если по каким-то причинам такая строка непосредственно встречается внутри текста сообщения, то передающая сторона автоматически дублирует точку, чтобы принимающая сторона не приняла ее за конец сообщения (на принимающей стороне дублированный символ точки в начале строки заменяется на одну точку).

С 7-битной кодировкой сообщений связана проблема пересылки писем, написанных на национальных языках, в т.ч. и на русском, поскольку для русского алфавита требуется 8-битная кодировка. Большинство современных почтовых серверов поддерживают не только 7-битные, но и 8-битные кодировки, однако, для совместимости со старыми почтовыми системами может использоваться специальная схема преобразования 8-битных кодов в 7-битные (естественно, при этом увеличивается объем сообщения, поскольку один 8-битный символ заменяется на специальную последовательность 7-битных).

Более сложная проблема заключается в том, что нет единого стандарта на кодировку русского алфавита, и поэтому на сторонах отправителя и получателя могут использоваться различные кодировки. Для того чтобы сообщение, посланное отправителем в одной кодировке, было понятно адресату, который использует другую кодировку, почтовый сервер использует специальные таблицы смены кодировок. С помощью них текст сообщения, посланного в одной кодировке, преобразуется в другую кодировку. Чтобы сервер знал, какую кодировку использовать, информация об исходной кодировке включается почтовой системой отправителя в текст или в заголовок сообщения (в зависимости от используемой системы). Одно сообщения в процессе своего прохождения через почтовые сервера может претерпеть несколько перекодировок. В случае, когда у сервера нет информации об используемой кодировке или тип кодировки указан неверно (непонятен серверу), текст сообщения может исказиться.

Передача сообщения по протоколу SMTP происходит следующим образом: после установления соединения стороны обмениваются кодами аутентификации (с помощью команд HELO), затем одна из них посылает команду MAIL, в которой указан адрес отправителя и сведения о письме. Если получатель готов к приему сообщения, он посылает положительный отклик. Далее отправитель посылает одну или несколько команд RCPT, в которых идентифицирует адресатов сообщения. Если получатель может принять сообщение для указанного адресата, то он снова выдает положительный отклик на каждую команду. После этого передается команда DATA за которой следует само письмо (сколько бы не было адресатов, само письмо передается только один раз). В конце сеанса отправитель дает команду QUIT.

Конечно, маловероятно, что при приеме почтовым сервером сообщения, адресованному некоторому пользователю ЭВМ, этот пользователь установит с сервером непосредственную связь по протоколу SMTP. Обычно сервер размещает сообщение в почтовом ящике пользователя. Почтовый ящик - это некоторое промежуточное хранилище электронных сообщений, позволяющее почтовому серверу осуществить их передачу адресату не сразу, а в тот момент, когда он установит связь с сервером. Обычно сообщения хранятся в почтовом ящике не вечно - по истечении некоторого времени почтовый сервер удаляет их оттуда. Политика обслуживания почтовых ящиков регламентируется администратором системы.

Для того, чтобы получить сообщение из своего почтового ящика, почтовая программа пользователя соединяется с сервером уже не по протоколу SMTP, а по специальному почтовому протоколу получения сообщений. Такой протокол позволяет работать с почтовым ящиком: забирать сообщения, удалять сообщения, сортировать их и выполнять другие операции. Самым популярным в настоящее время протоколом такого рода является протокол POP3 (Post Office Protocol v.3). Он предусматривает соединение с почтовым сервером на основе транспортного протокола TCP через порт 110. Другой, более сложный, известный протокол - IMAP4.

Общая схема пересылки сообщения от отправителя к адресату с использованием прикладных протоколов электронной почты представлена на рис. 4.

Во многих версиях ОС UNIX протокол SMTP, а также другие почтовые протоколы, реализован в простейших утилитах типа sendmail или mmdf. Первая из них может служить как почтовым клиентом, так и почтовым сервером. Обычно она работает в фоновом режиме и ждет поступления сообщений от пользователя или извне. В ОС типа Windows NT ту же роль играет утилита, именуемая mdaemon (mail daemon).

Для непосредственного взаимодействия с пользователем существует простейшая программа, именуемая mail или mailx. Однако в современных ОС ею мало кто пользуется, поскольку существует большое количество прикладных программ с развитым интерфейсом, которые предоставляют пользователю возможности работы с электронной почтой. Примерами таких программ могут служить широко известные пакеты Outlook Express (производство фирмы Microsoft) и Netscape Communicator (производство фирмы Netscape). Внешний интерфейс этих программных продуктов чрезвычайно прост, так что использовать их может даже неквалифицированный пользователь. Все эти программы формируют сообщения в требуемом формате и передают их утилитам ОС, работающим в фоновом режиме, для отправки. К ним же они обращаются и для приема сообщений.

Протокол и утилита обмена файлами FTP

Протокол FTP (File Transfer Protocol - Протокол передачи файлов) предназначен для передачи файлов между машинами без установления дистанционного соединения между ними (без использования Telnet). С его помощью можно передавать файлы, работать с каталогами и пользоваться электронной почтой, но он не позволяет запускать программы на удаленной ЭВМ.

Для своей работы FTP использует транспортный протокол TCP, но связь по FTP поддерживается с помощью двух соединений: по одному из них передаются команды FTP, а по другому - данные. Поэтому программная реализация FTP предполагает работу двух процессов на каждой из взаимодействующих машин. Первый из них отвечает за передачу команд и называется протокольным интерпретатором (PI - protocol interpreter), а второй - за передачу данных и называется процессом передачи данных (DTP - data transfer process). Протокол TCP обеспечивает установление, разрыв соединения и надежность передачи данных. На удаленной ЭВМ (сервере) процессу передачи данных соответствует порт 20, а протокольному интерпретатору - порт 21.

Также как и протокол Telnet, протокол FTP использует для своей работы специальные внутренние команды. Эти команды могут использоваться специализированным программным обеспечением и администратором системы, но обычному пользователю они, как правило, недоступны. Пользователи для работы с протоколом FTP используют сервисные утилиты. Взаимодействие программных модулей при передаче данных по FTP показано на рис. 3.

В ОС типа UNIX для обслуживания запросов по FTP на удаленной машине запускается процесс ftpd (FTP daemon), в других ОС для этого могут использоваться другие процессы, предоставляющие аналогичный сервис. На локальной ЭВМ (клиенте) может выполняться любое пользовательское приложение, обеспечивающее соединение по FTP. В настоящее время разработано большое количество программ, обеспечивающих работу с этим протоколом, в том числе и программы с развитым графическим интерфейсом под ОС и графические оболочки типа MS Windows 3.11, MS Windows NT, UNIX (X Window). Но широко известна самая простейшая утилита, которая носит то же название, что и протокол - ftp. Она имеет тривиальный командный интерфейс, аналогичный интерфейсу утилиты telnet.

^ Общие принципы работы с утилитой ftp.

Также как при работе с утилитой telnet, при запуске утилиты ftp требуется указать имя или IP-адрес удаленной машины, с которой требуется установить соединение. Если этот адрес не указан, то ftp переходит в командный режим без установления соединения. Тогда для начала сеанса связи надо воспользоваться командой open. После того, как соединение установлено, необходимо пройти авторизацию доступа, для чего требуется ввести имя и пароль пользователя. В большинстве систем право доступа имеют только зарегистрированные пользователи, но иногда допускается так называемый "анонимный" вход, который будет рассмотрен далее. Как и при работе с telnet, при работе с ftp имя и права пользователя определяются удаленной, северной, а не локальной ЭВМ (в общем случае имена пользователя на сервере и клиенте могут быть различны). Для работы с каталогами, копирования и удаления файлов с удаленной машины пользователь должен располагать соответствующими правами, иначе эти команды выполняться не будут.

Следует обратить внимание, что и после установления соединения с удаленной ЭВМ, все команды пользователя ftp выполняются относительно локальной ЭВМ, в отличие от telnet. Особенно аккуратно следует выполнять команды копирования файлов, чтобы не потерять содержимое нужных файлов на машине-клиенте.

Протокол FTP позволяет передавать файлы в нескольких форматах, которые в общем случае системно зависимы. В большинстве систем (включая UNIX и Windows NT) определены два режима передачи файлов - текстовый и двоичный. Текстовый файл состоит из строк ASCII-символов, разделенных кодами перевода строки и возврата каретки, при его передаче выполняются действия по перекодировке символов. Для двоичных файлов не предусмотрено никакого определенного формата и никакой перекодировки, их передача осуществляется быстрее. Текстовый файл можно передавать как двоичный (в расчете произвести перекодировку на локальной машине или если перекодировка вовсе не требуется), но не наоборот.

Типичный сеанс работы с ftp включает следующие этапы:

  • запуск утилиты, установление соединения с удаленной ЭВМ;

  • переход в требуемый каталог на удаленной ЭВМ (сервере);

  • выбор режима передачи файлов;

  • передача данных согласно командам пользователя;

  • завершение работы, разрыв соединения.

Эти процедуры выполняются последовательно в каждом сеансе. Самые распространенные команды пользователя в утилите ftp приведены в табл. 2.

Таблица 2.Наиболее употребительные команды утилиты ftp

Команда

Параметры

Описание

ascii




Переключиться в режим передачи текстовых файлов

binary




Переключиться в режим передачи двоичных файлов

cd

имя каталога

Сменить рабочий каталог на удаленной ЭВМ

close




Закрыть соединение с удаленной ЭВМ

del

имя файла

Удалить файл на удаленной ЭВМ

dir

маска файлов

Отобразить содержимое текущего каталога сервера

get

имя файла

Получить файл с удаленной ЭВМ

hash

on/off

Включить или выключить режим вывода знака "#" для каждого переданного блока данных при передаче файлов

help




Получить подсказку

lcd

имя каталога

Сменить рабочий каталог на локальной ЭВМ

mget

маска файлов

Получить несколько файлов с удаленной ЭВМ

mput

маска файлов

Отправить несколько файлов на удаленную ЭВМ

open

адрес ЭВМ

Установить соединение с указанной ЭВМ

put

имя файла

Передать файл на удаленную ЭВМ

pwd




Вывести имя текущего каталога

quote

команда

Передать команду непосредственно FTP (для ввода команд администратора)

quit




Завершить работу с утилитой

Более подробное описание команд утилиты ftp можно получить в предлагаемой литературе и в руководствах по работе с утилитой. Как уже было сказано выше, для различных ОС существует множество других приложений, обеспечивающих работу с протоколом FTP. Такого рода утилиты могут обладать рядом дополнительных возможностей.

Возможности работы с FTP при анонимном доступе.

Протокол FTP широко используется для обмена данными в сети Internet. Многие сервера сети поддерживают этот протокол. Поскольку количество пользователей в этой сети очень велико, то задача выделения каждому из них индивидуальных прав доступа представляется абсолютно нереальной. В то же время, большое число серверов стремится предоставить услуги по обмену данными максимально возможному количеству клиентов сети. Например, такие услуги предоставляют сервера сервисных центров фирм, занимающихся распространением свободно используемого программного обеспечения.

В таких случаях для установления соединения по протоколу FTP используется метод анонимного доступа. В этом варианте в качестве имени пользователя используется слово anonymous, а вместо пароля - чаще всего слово guest (гость). Иногда для анонимного доступа может использоваться и другие варианты пароля: например, слово ftp или адрес электронной почты пользователя (в последнем случае доступ будет уже не столь анонимным, хотя, конечно, никто не проверит истинность введенных пользователем данных).

При анонимном доступе пользователь имеет, как правило, очень ограниченные права. Чаще всего при анонимном доступе пользователь может только перемещаться по ограниченному перечню каталогов и получать файлы с удаленной ЭВМ (выполнять команды get и mget).

Метод анонимного доступа - это основной метод, который используют для обмена данными по протоколу FTP программы-браузеры (browser) сети Internet, например, широко распространенные программы "Internet Explorer"и "Netscape Navigator". Эти программы имеют возможность только получать файлы с удаленных ЭВМ, в то время, как полный доступ по протоколу FTP дает пользователю также возможность передавать файлы на удаленные ЭВМ. Имя и пароль для анонимного доступа в этих программах можно настраивать.

Программирование взаимодействия программ на основе прикладных протоколов

Рассмотренные в этой лабораторной работе прикладные протоколы позволяют осуществлять обмен через сеть Internet различного рода данными. Это полезное свойство, безусловно, находит практическое применение.

Во многих ОС прикладные протоколы реализованы в различных утилитах (часть из которых была рассмотрена здесь и в предыдущей работе). Эти утилиты ориентированы, прежде всего, на работу с пользователями операционных систем. Однако часто возникает необходимость осуществить обмен данными непосредственно между прикладными программами, минуя вмешательство человека или при его ограниченном участии. Тогда у разработчиков программ возникает потребность в том, чтобы сами прикладные программы могли непосредственно использовать те же самые протоколы, что и описанные выше утилиты. Естественно, к этому нет никаких препятствий - прикладные протоколы сети Internet являются открытыми протоколами, их команды и принцип работы известны и регламентированы общедоступными стандартами.

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

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

Поскольку в качестве транспортного протокола для всех протоколов прикладного уровня используется TCP, то чтобы реализовать обмен данными по любому выбранному протоколу необходимо использовать обмен данными на основе именно TCP. Для этого в составе многих ОС имеются специальные библиотеки программных средств, позволяющие прикладным программам пользователя осуществлять обмен данными по протоколу TCP. В ОС типа UNIX или Linux это библиотека "сокетов" (socket - ее программный код входит в ядро ОС). В языке программирования "Си", который является базовым для этих ОС, ей обычно соответствует файл заголовков "socket.h". В ОС типа Windows NT (начиная с версии 3.5) и графических средах Windows-95/98 этот протокол реализует динамическая библиотека "WinSock.DLL" (в более ранних версиях этих ОС она не поставляется и должна устанавливаться дополнительно).

Такие библиотеки позволяют осуществлять самые простые операции: установить связь с ЭВМ, для которой известны адрес и порт связи, передать блок данных по протоколам TCP или UDP, получить блок данных, поступивший на локальную ЭВМ. Этого достаточно для того, чтобы запрограммировать любой прикладной протокол и любой обмен данными, поскольку известны все команды протоколов и используемые для обмена информацией номера портов. Однако это достаточно трудоемкий процесс, поскольку необходимо корректно запрограммировать передачу всех команд выбранного протокола и реакцию на полученные команды. Поэтому к такому методу прибегают обычно только в том случае, если нет возможности использовать стандартные прикладные протоколы и приходится организовывать обмен данными по своему, специфичному протоколу (такой подход рассматривается в следующей лабораторной работы). Для реализации стандартных прикладных протоколов уже разработано большое количество программных библиотек в различных языках программирования, поэтому нет необходимости создавать их заново.

Варианты таких библиотек в языке Object Pascal разработанные фирмой Borland для среды программирования Borland Delphi рассмотрены далее. Поскольку чаще всего возникает необходимость создать прикладную программу "клиентской" стороны протокола, то далее речь пойдет именно о создании программ такого рода.

Средства реализации прикладных протоколов Internet в среде разработки Borland Delphi

В среде программирования Borland Delphi прикладные библиотеки для реализации прикладных протоколов Internet существуют, начиная с версии 3.0 (они существуют и в более ранних версиях этой среды, но поставляются только сторонними разработчиками). Поскольку эта среда программирования основана на использовании компонентной модели, то и все прикладные протоколы Internet реализованы в ней в виде компонент.

Каждому типу протокола в среде программирования соответствует свой класс объектов, который представлен в виде компоненты в рамках среды разработки (графически он отображается в виде "иконки" при проектировании приложения). Для того, чтобы работать с выбранным протоколом, разработчик должен создать экземпляр объекта нужного класса. Это можно сделать в среде разработке при проектировании приложения или же в программном коде с помощью операторов языка программирования Object Pascal. В первом случае среда разработки автоматически выберет и подключит к коду программы нужную библиотеку, а в последнем случае это должен не забыть сделать сам разработчик.

После того, как экземпляр объекта создан, с ним можно работать, используя свойства и методы объекта. Если необходимо использовать несколько соединений по одному и тому же протоколу, то нужно создать столько экземпляров объекта, сколько соединений предполагается использовать. Соответственно, если надо использовать несколько различных протоколов, то надо создать несколько экземпляров объектов разных классов.

В среде программирования Borland Delphi версии 3.0 для реализации протоколов FTP, SMTP и POP3 существуют классы объектов типа TFTP, TSMTP и TPOP3 соответственно (обычно они находятся на страничке "Internet" в палитре компонент). В среде программирования Borland Delphi версии 3.0 для этой же цели служат компоненты TNMFTP, TNMPOP3 и TNMSMTP (на страничке "FastNet" палитры компонент). К сожалению, названия свойств и методов (процедур и функций классов) у этих компонент несколько различаются, но суть и принципы работы с ними от этого не меняются.

Как уже было сказано выше, для работы с прикладным протоколом необходимо создать экземпляр класса, реализующего такую работу. Следующим действием, как правило, становится установка необходимых параметров (свойств) для созданного класса - примерами таких параметров служат, прежде всего, адрес и порт ЭВМ. с которой будет устанавливаться соединение, затем, имя и пароль пользователя и т.д. Конкретный состав параметров зависит от типа протокола и того, для какой цели его планируется использовать. Разработчики компонент предусмотрели для каждой из них широкий набор свойств, соответствующих тем или иным параметрам протокола, но они также позаботились и о том, чтобы пользователь не создавал большой объем кода для задания всех свойств - большинство из них имеют значения по умолчанию, которые, в принципе, не всегда надо изменять. Поэтому разработчик должен позаботится об установке именно тех свойств, которые ему нужны (то, откуда он будет брать значения этих свойств, определяет уже сам создатель программы в соответствии с целью своей работы и выбранным интерфейсом).

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

По завершении обмена данными прикладная программа должна закрыть соединение и удалить экземпляр класса. Если этот экземпляр создавался в среде разработке автоматически, то она сама позаботится о том, чтобы породить программный код, необходимы для его удаления; если же пользователь создавал его "вручную" (непосредственно операторами языка), то он должен не забыть и удалить объект.

Более подробную информацию о функциях программного интерфейса с описанными компонентами можно получить здесь или в специальной литературе и Internet-e.

Порядок выполнения работы

    1. Получить вариант задания у преподавателя.

    2. Разработать прикладную программу в соответствии с заданием.

    3. Подготовить и защитить отчет.

    4. Написать и отладить программу на ЭВМ.

    5. Сдать работающую программу преподавателю.

Требования к оформлению отчета

Отчет должен содержать следующие разделы:

  • Задание по лабораторной работе.

  • Описание алгоритма взаимодействия прикладной программы с внешним миром на основе заданного протокола.

  • Перечень используемых классов, их свойств и функций ОС или среды разработки для организации протокола взаимодействия.

  • Текст программы (оформляется после выполнения программы на ЭВМ).

  • Выводы по проделанной работе.

Основные контрольные вопросы

  1. Что такое электронная почта, каким целям она служит ? Каковы преимущества электронной почты перед другими видами коммуникаций ? Расскажите, какие существуют варианты и протоколы организации электронной почты.

  2. Как организована передача сообщений в электронной почте, какие поля содержит заголовок сообщения ?

  3. Что такое адрес электронной почты ? Из каких полей состоит адрес ?

  4. Что такое протокол SMTP ? Как организована передача данных по этому протоколу ?

  5. Расскажите об основных командах протокола SMTP.

  6. Как организована передача сообщения по протоколу SMTP ?

  7. Почему могут возникать проблемы с передачей сообщений на русском языке через электронную почту ? Расскажите о причинах этих проблем.

  8. Что такое "почтовый ящик", для чего он используется? Что такое POP3-протокол ?

  9. Какие действия позволяет выполнить сетевая утилита FTP ?

  10. Расскажите об основных командах утилиты FTP.

  11. Как осуществляется соединение и взаимодействие процессов по протоколу FTP ?

  12. Какие возможности протокола FTP используются программами - "браузерами" ?

  13. Что такое FTP-сервер ? Для чего используется анонимное соединение с сервером ?

  14. Какие существуют средства для реализации протоколов Internet в прикладных программах ?

  15. Что такое библиотека "сокетов" ? Каким целям она служит ?

  16. Как реализовано программирование прикладных протоколов Internet в среде Borland Delphi ?

  17. Расскажите об общих принципах программирования работы с прикладными протоколами.

Варианты заданий

    1. Необходимо разработать программу, которая позволяет организовать прием выбранного файла с удаленной ЭВМ по протоколу FTP. Адрес ЭВМ, имя и пароль пользователя, имя и местоположения файла должны настраиваться при использовании программы. Порт обмена данными можно считать фиксированным.

    2. Необходимо разработать программу, которая позволяет организовать передачу выбранного файла на удаленную ЭВМ по протоколу FTP. Адрес ЭВМ, имя и пароль пользователя, имя и местоположения файла должны настраиваться при использовании программы. Порт обмена данными можно считать фиксированным.

    3. Необходимо разработать программу, которая позволяет организовать передачу выбранного файла на удаленную ЭВМ по протоколу FTP. Адрес ЭВМ, имя и местоположения файла должны настраиваться при использовании программы. Для регистрации на удаленной ЭВМ требуется использовать анонимный доступ. Порт обмена данными можно считать фиксированным.

    4. Необходимо разработать программу, которая позволяет организовать прием и отображение сообщения электронной почты из почтового ящика пользователя с удаленной ЭВМ по протоколу POP3. Адрес ЭВМ, имя и пароль пользователя должны настраиваться при использовании программы. Порт обмена данными можно считать фиксированным. Допускается использование только символов кодировки ASCII.

    5. Необходимо разработать программу, которая позволяет организовать передачу сообщения электронной почты на удаленную ЭВМ по протоколу SMTP. Адрес ЭВМ, имя и пароль пользователя должны настраиваться при использовании программы. Порт обмена данными можно считать фиксированным. Допускается использование только символов кодировки ASCII.

    6. Необходимо разработать программу, которая позволяет организовать передачу файла на удаленную ЭВМ по протоколу SMTP. Адрес ЭВМ, имя и пароль пользователя должны настраиваться при использовании программы. Порт обмена данными можно считать фиксированным. Допускается использование только символов кодировки ASCII.





Скачать 475.27 Kb.
оставить комментарий
страница2/3
Дата29.09.2011
Размер475.27 Kb.
ТипЛабораторная работа, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   2   3
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх