- •Методические указания
- •230400.62 «Информационные системы и технологии»
- •Окно выбора типа веб-модуля
- •Html-страница с запросом
- •Список действий веб-модуля
- •Инспектор объектов
- •Html-страница с ответом сервера
- •Методические указания
- •230400.62 «Информационные системы и технологии»
- •394026 Воронеж, Московский просп., 14
ФГБОУВПО «Воронежский государственный технический университет»
Кафедра систем автоматизированного проектирования и информационных систем
Методические указания
к выполнению лабораторных работ №1-3
по дисциплине «Инфокоммуникационные системы и сети»
для студентов специальности
230400.62 «Информационные системы и технологии»
дневной формы обучения
Воронеж 2012
Составитель Ю.В. Минаева
УДК 621.3
Методические указания к выполнению лабораторных работ №1-3 по дисциплине «Инфокоммуникационные системы и сети» для студентов специальности 230400.62 «Информационные системы и технологии» дневной формы обучения / ФГБОУВПО «Воронежский государственный технический университет»; сост. Ю.В. Минаева. Воронеж, 2012. 41 с.
Методические указания содержат теоретические и практические сведения по изучению принципов работы протоколов стека TCP/IP, созданию приложений, работающих с почтовыми протоколами, и веб-приложений.
Методические указания подготовлены в электронном виде в текстовом редакторе MS Word XP и содержатся в файле Сети.doc.
Табл. 6. Ил. 5. Библиогр.: 5 назв.
Рецензент канд. техн. наук, доц. Ю.В. Литвиненко
Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Я.Е. Львович
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
© ФГБОУВПО «Воронежский государственный технический университет», 2012
стек протоколов TCP/IP.
адресация в IP-сетях
Общие указания по выполнению лабораторной работы
Цель работы
Изучение основных протоколов, входящих в стек TCP/IP, принципов адресации в IP-сетях, приобретение практических навыков определения маски подсети.
Используемое оборудование и программное обеспечение
Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с ОС Windows 2000 и выше.
Домашнее задание и методические указания по его выполнению
Модель взаимодействия открытых систем
Управление таким сложным, использующим многочисленную и разнообразную аппаратуру процессом, как передача и обработка данных в разветвленной сети, требует формализации и стандартизации процедур:
выделения и освобождения ресурсов компьютеров и системы телекоммуникации;
установления и разъединения соединений;
маршрутизации, согласования, преобразования и передачи данных;
контроля правильности передачи;
исправления ошибок и т. д.
Указанные задачи решаются с помощью системы протоколов и стандартов, регламентирующих нормализованные процедуры взаимодействия элементов сети при установлении связи и передаче данных.
Протокол – это набор правил и методов взаимодействия объектов вычислительной сети, охватывающий основные процедуры, алгоритмы и форматы взаимодействия, обеспечивающие корректность согласования, преобразования и передачи данных в сети.
В начале 80-х годов ХХ века международной организацией по стандартизации (ISO) была разработана модель взаимодействия открытых систем (Open System Interconnection, OSI). Модель OSI определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень (табл. 1).
Номер |
Название уровня |
1 |
Прикладной |
2 |
Представительский |
3 |
Сеансовый |
4 |
Транспортный |
5 |
Сетевой |
6 |
Канальный |
7 |
Физический |
Вышестоящие уровни сетевой модели выполняют более сложные, глобальные задачи, для этого используют в своих целях нижестоящие уровни, а также управляют ими. Нижестоящие уровни выполняют более простые и конкретные функции. В идеале каждый уровень взаимодействует только с теми, которые находятся рядом с ним (выше и ниже). Верхний уровень соответствует прикладной задаче, работающему в данный момент приложению, нижний – непосредственной передаче сигналов по каналу связи.
Для взаимодействия между собой протоколы смежных уровней, находящиеся в одном узле сети, используют интерфейсы – четко определенные правила и стандартизованные форматы сообщений.
При передаче данных по сети связь уровней между собой осуществляется посредством интерфейсов, а пересылка с одного узла на другой – с помощью протоколов.
Например, сформировав сообщение для передачи по сети, прикладной уровень передает его на ниже расположенный представительский уровень. Протокол данного уровня, получив сообщение, обрабатывает его, добавляя заголовок, содержащий служебную информацию. После этого сообщение «спускается» на сеансовый уровень, где оно также обрабатывается и снабжается еще одним заголовком – на этот раз сеансового уровня.
Продвигаясь на нижние уровни, сообщение постепенно обрастает заголовками. Эта операция называется инкапсуляцией данных верхнего уровня в пакет нижнего уровня. Служебная информация, помещаемая в заголовок сообщения, предназначается для объекта того же уровня на удаленном компьютере.
После передачи пакета по сети адресату он начинает продвижение по уровням «наверх». При этом на каждом уровне считывается служебная информация из заголовков пакета, выполняются соответствующие уровню функции, после этого заголовок, соответствующий текущему уровню, удаляется, и пакет передается на следующий вышележащий уровень. Таким образом, происходит декапсуляция пакета – процесс, обратный инкапсуляции, в результате которого данные, «очищенные» от служебной информации, попадают к пользовательским приложениям.
Рассмотрим подробнее задачи каждого уровня модели OSI.
Физический уровень определяет физический, механические и электрические характеристики линий связи (тип кабелей и разъемов, разводку контактов в разъемах, схемы бинарного кодирования сигналов). На этом уровне осуществляется прием и передача данных по линиям связи. Данные, поступающие с канального уровня, кодируются в электрические или световые сигналы, после этого передаются. При приеме полученные с линии связи данные декодируются и передаются на дальнейшую обработку на канальный уровень.
Канальный уровень определяет формирование пакетов. К задачам этого уровня относятся контроль над состоянием сети, реализация механизмов обнаружения и коррекции ошибок, обеспечение взаимодействия с физическим и сетевым уровнями.
Сетевой уровень обеспечивает адресацию передаваемых пакетов. Также здесь решаются задачи управления потоками данных в сети и маршрутизации, т. е. выбора маршрута передачи данных по узлам сети.
Транспортный уровень является своего рода связующим звеном между более высокими уровнями, сильно зависящими от приложений, и нижними уровнями, более привязанными к линиям связи.
На транспортном уровне происходит разбиение передаваемой информации на пакеты и сборка принимаемых данных из пакетов. Здесь же обеспечивается контроль над передачей данных. На транспортном уровне реализованы возможности обнаружения и исправления ошибок передачи данных, вызванными искажениями, потерями или дублированием пакетов.
Кроме того, на этом уровне происходит согласование сетевых уровней различных несовместимых сетей.
Сеансовый уровень обеспечивает координацию связи между двумя рабочими станциями сети. Уровень организует сеанс обмена данными, управляется приемом и передачей пакетов, обеспечивает завершение сеанса. Кроме того, осуществляется контроль над степенью завершения длинных передач, что позволяет избежать повторной пересылки данных при разрывах связи и возобновить передачу с прерванного места.
Представительский уровень имеет дело с внешним представлением данных и обеспечивает преемственность передаваемой информации с одной системы для другой системы. С его помощью преодолеваются различия, например, между всевозможными кодировками символов или синтаксиса.
Средства представительского уровня позволяют выполнять различные виды преобразования данных: шифрование, дешифрование, сжатие.
Прикладной уровень реализует взаимодействие прикладных программ пользователя с процессами модели OSI, обеспечивая им набор определенных сетевых услуг, таких как передача файлов, обмен почтовыми сообщениями, управление сетью и т. д.
Стек протоколов TCP/IP
Стек протоколов – это иерархически организованная совокупность протоколов, достаточных для реализации взаимодействия узлов в компьютерной сети.
В отличие от модели, представляющей собой концептуальную схему взаимодействия систем, стек протоколов представляет набор конкретных спецификаций, позволяющих реализовать сетевое взаимодействие.
Наиболее популярным и быстроразвивающимся в настоящее время является стек протоколов TCP/IP (табл. 2).
Поскольку стек протоколов TCP/IP был разработан до появления сетевой модели OSI, то соответствие его уровней уровням модели OSI носит весьма условный характер, хотя он также имеет многоуровневую структуру.
Самый нижний уровень стека – уровень межсетевых интерфейсов – соответствует физическому и канальному уровням модели OSI. В стеке TCP/IP этот уровень не регламентирован, но тем не менее реализована поддержка практически всех популярных стандартов физического и канального уровня: Ethernet, Token Ring, FDDI и др.
Уровни модели OSI |
Протоколы TCP/IP |
Уровни TCP/IP |
7 |
FTP, TFTP, Gohper, telnet, SMTP, SNMP, HTTP... |
I |
6 |
||
5 |
TCP, UDP |
II |
4 |
||
3 |
IP, ICMP, RIP, OSPF |
III |
2 |
Не регламентировано, но поддерживаются все популярные стандарты |
IV |
1 |
Уровень межсетевого взаимодействия (уровень III) обеспечивает маршрутизацию и передачу данных по сети, выполняя функции, соответствующие сетевому уровню модели OSI. На этом уровне используются протоколы IP, ISMP, RIP, OSPF.
IP (Internet Protocol) – межсетевой протокол, обеспечивает передачу пакетов в сетях.
RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First) – протоколы сбора маршрутной информации, обеспечивающие составление и модификацию специальных таблиц маршрутизации, используемых при выборе пути пересылки данных по сети.
ICMP (Internet Control Message Protocol) – протокол межсетевых управляющих сообщений, предназначенный для организации обратной связи с отдельными узлами сети при обмене информацией об ошибках, например, о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, о ненормальных значениях параметров. Кроме того, с помощью этого протокола передаются тестирующие пакеты и пакеты, содержащие служебные информационные сообщения, например об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.
Уровень II стека TCP/IP называется основным и обеспечивает функции транспортировки информации по сети. При этом используются два протокола TCP и UDP, реализующие различные механизмы доставки данных и имеющих различные степени надежности.
TCP (Transmission Control Protocol) – протокол управления передачей, работающий с установкой логического соединения между удаленными прикладными процессами, а также использующий принцип автоматической повторной передачи пакетов, содержащих ошибки.
UDP (Uset Datagram Protocol) – протокол пользовательский дейтаграмм (пакетов), являющийся упрощенным вариантом TCP и работающий без установки логического соединения, и, соответственно, не обеспечивающий проверку на наличие ошибок и поддержание доставки пакета.
Верхний уровень стека TCP/IP называется прикладным. К протоколам этого уровня относятся такие широко используемые протоколы, как FTP, telnet, SMTP, SNMP, HTTP и многие другие.
FTP (File Transfer Protocol) – протокол передачи файлов, использующий в качестве транспортного протокол с установлением соединений – TCP, что повышает надежность передачи и приема файлов между серверами и клиентами.
TFTP (Trivial File Transfer Protocol) – простейший протокол передачи файлов. В отличие от FTP этот протокол базируется на работе с UDP, при этом протокол реализует только передачу файлов.
SNMP (Simple Network Management Protocol) – простой протокол управления сетью, предназначенный для передачи информации, определяющей форматы сообщений, которыми обмениваются клиенты и серверы, а также форматы имен и адресов узлов сети.
Telnet – протокол, обеспечивающий передачу потока байтов между процессами или между процессом и терминалом и обычно использующийся для эмуляции терминала удаленной станции.
SMTP (Simple Mail Transfer Protocol) - простой протокол передачи почты, использующийся для обеспечения передачи электронных почтовых сообщений с применением транспортного протокола TCP
Gopher – протокол доступа клиентов к файлам и каталогам в сети Интернет, предоставляющий только текстовую информацию. Gopher обычно используется для передачи очень больших документов, не содержащих форматирования или иллюстраций.
HTTP (Hyper Text Transfer Protocol) – протокол передачи гипертекста, использующийся в службе Word Wide Web (WWW). При помощи этого протокола и клиентской программы – браузера – пользователь имеет возможность получать информацию с узлов всемирной паутины WWW.
Адресация в сетях
Локальный адрес
При объединении в сеть трех и более узлов возникает проблема идентификации конкретного узла, которому предназначены пересылаемые данные. Другими словами, возникает проблема адресации узлов компьютерной сети.
На практике адресация производится не для самих узлов сети, а для их сетевых интерфейсов, т. е. наборов средств и правил, позволяющих осуществлять обмен информацией. Это объявляется тем, что один узел сети может иметь несколько сетевых интерфейсов.
В стеке TCP/IP используются три типа адресов: локальные (аппаратные), IP-адреса и символьные доменные имена.
Примером локального адреса является MAC-адрес (физический адрес) – уникальный идентификатор, однозначно определяющий каждый сетевой интерфейс.
Чтобы избежать проблем, связанных с дублированием физических адресов на нескольких компьютерах, и тем самым с нарушением корректной работы системы адресации, MAC-адреса фиксируют в оборудовании сетевых интерфейсов. При этом этот адрес не повторяется нигде в мире, поскольку за распределением диапазонов физических адресов для сетевого оборудования следит институт IEEE.
MAC-адрес представляет собой двоичное число длиной 48 бит. Для простоты восприятия и работы с ними MAC-адреса обычно записываются в виде 12 цифр в шестнадцатеричной системе счисления, попарно разделенных дефисами, например 00-С0-DF-11-47-9F. При этом первые шесть цифр определяют производителя сетевого устройства, а оставшиеся шесть цифр идентифицируют само устройство, выпущенное этим производителем.
MAC-адреса – это адреса подуровня управления доступом к среде передачи (MAC – Media Access Control), которые лежат в основе работы протоколов физического уровня.
При взаимодействии по сети, если компьютер получает пакет, имеющий физический адрес, отличный от адреса компьютера, то полученный пакет отбрасывается сетевым интерфейсом на канальном уровне, и остальная часть стека протоколов его не обрабатывает.
При совпадении адресов пакет принимается и передается на более высокие уровни, где обрабатывается в соответствии со своим назначением.
IP-адрес
Классы IP-адресов
IP-адрес используется при работе протокола IP стека TCP/IP. Поскольку протокол IP относится к сетевому уровню, то и IP-адреса часто называют сетевыми адресами.
IP-адрес представляет собой двоичное число, имеющее длину 32 бита. Для удобства чтения и записи адреса он обычно представляется в виде четырех разделенных точками десятичных числе, например, 192.226.17.157. При этом каждое из четырех десятичных чисел соответствует числу, которое можно записать в двоичной системе счисления с помощью восемь бит.
В этом случае максимальным окажется число, состоящее из восьми двоичных единиц: 11111111, что при пересчете в десятичную систему счисления будет равно 255. Таким образом, каждое из четырех чисел IP-адреса при десятичном представлении не может быть больше 255.
IP-адреса являются иерархическими, т. к. состоят из двух частей, первая из которых идентифицирует номер сети, в которой находится некий узел, а вторая часть – непосредственно сам узел.
Адрес сети может быть выбран администратором произвольно, однако если сеть должна работать как составная часть Интернета, то адрес сети должен быть назначен централизованно некоммерческой организацией регистрации глобальных адресов в Интернете (Internet Corporation for Assigned Names and Numbers - ICAAN).
Существует пять классов IP-адресов, различающихся количеством бит, отведенных под идентификацию номера сети и номера узла (табл. 3). Определить, к какому классу относится IP-адрес, можно по значению первого байта адреса.
Адреса класса А предназначены для использования в крупных сетях масштаба региона или страны, число таких сетей сильно ограничено. Сети класса В имеют средние размеры и обычно используются в университетах и крупных компаниях. Адреса класса С используются в малых сетях, имеющих небольшое количество узлов. IP-адреса класса D используются для обращения к группам компьютеров. Адреса класса Е зарезервированы для будущего использования.
Класс |
Диапазон значений первого байта |
Максимально количество сетей |
Максимальное количество узлов в сети |
A |
1-126 |
126 |
16 777 214 |
B |
128-191 |
16 382 |
65 534 |
C |
192-223 |
2 097 150 |
254 |
D |
224-239 |
- |
228 |
E |
240-247 |
- |
227 |
Кроме того, существует набор специально зарезервированных IP-адресов:
адрес состоит только из двоичных нулей – обозначает адрес того узла, который сгенерировал пакет;
адрес типа «Номер сети. Все нули» обозначает данную сеть, т. е. ту же сеть, в которой находится компьютер, сгенерировавший пакет с этим адресом;
если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет;
адрес состоит только из двоичных единиц – означает, что пакет с таким адресом предназначен всем узлам той же сети, что и источник пакета (при этом такой пакет не выйдет за пределы данной сети, поэтому такая рассылка называется ограниченным широковещанием);
если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети; такая рассылка называется широковещательным сообщением (broadcast);
127.0.0.1 – пакет с таким адресом не передается в сеть, а возвращается верхним уровнем стека протоколов, как только что принятый; IP-адреса, первый байт которых имеет значение, равное 127, используются для тестирования программного обеспечения и взаимодействия сетевых процессов в пределах отдельного узла.
Традиционная схема деления IP-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Именно потому, что первый байт адреса 183.23.44.206 попадает в диапазон 128-191, можно сказать, что этот адрес относится к классу В, а значит, номером сети являются первые два байта, дополненные двумя нулевыми байтами – 185.23.0.0, а номером узла – 0.0.44.206.
Кроме этого, границу между номером сети и номером узла может определить с помощью маски сети – числа, используемого в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны интерпретироваться как номер сети. Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.
Для стандартных классов сетей маски имеют следующие значения:
класс А – 11111111.00000000.00000000.00000000 (255.0.0.0);
класс В – 11111111.11111111.00000000.00000000 (255.255.0.0);
класс С – 11111111.11111111.11111111.00000000 (255.255.255.0).
Для записи масок часто встречается обозначение 185.23.44.206/16 – эта запись говорит о том, что маска для этого адреса содержит 16 единиц, т. е. в указанном IP-адресе под номер сети отведено 16 двоичных разрядов.
В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8.
Определение маски подсети
Для решения проблем увеличения таблиц маршрутизации и дефицита номеров сети разбиваются на подсети. В этом случае IP-адрес будет состоять из номера сети, номера подсети и номера узла.
Рассмотрим пример создания подсетей. Пусть организация получила сеть 193.1.1.0 и ей необходимо сформировать шесть подсетей, при этом наибольшая подсеть должна поддерживать 25 узлов.
Т.к. задана сеть класс С, то маска сети будет равна 255.255.255.0. Найдем маску подсети.
Вначале определим количество бит, требуемых для номера подсети. Для этого число подсетей нужно округлить в большую сторону до ближайшей степени двойки (в нашем случае ), т. е. для номера подсети будут использованы три бита. В этом случае маска подсети будет 11111111.11111111.11111111.11100000 или в десятичном виде 255.255.255.224. Оставшиеся пять бит из последнего байта отводятся под номер узла, следовательно, в каждой подсети может быть определено до 32 ( ) адресов узлов. Однако адреса, у которых все биты равны или нулю, или единице, являются зарезервированными, так что общее число адресов узлов в каждой подсети становится равным 30 ( ).
В табл. 4 перечислены все восемь возможных вариантов подсетей для рассматриваемого примера (для большей наглядности биты адреса подсети подчеркнуты).
В табл. 5 перечислены возможные адреса для первой подсети.
Номер подсети
Адрес подсети
Двоичное представление адреса
0
193.1.1.0
11000001.00000001.0000001.00000000
1
193.1.1.32
11000001.00000001.0000001.00100000
2
193.1.1.64
11000001.00000001.0000001.01000000
3
193.1.1.96
11000001.00000001.0000001.01100000
4
193.1.1.128
11000001.00000001.0000001.10000000
5
193.1.1.160
11000001.00000001.0000001.10100000
6
193.1.1.192
11000001.00000001.0000001.11000000
7
193.1.1.224
11000001.00000001.0000001.11100000
Номер узла |
Адрес узла |
Двоичное представление адреса |
1 |
193.1.1.1 |
11000001.00000001.0000001.00000001 |
2 |
193.1.1.2 |
11000001.00000001.0000001.00000010 |
3 |
193.1.1.3 |
11000001.00000001.0000001.00000011 |
4 |
193.1.1.4 |
11000001.00000001.0000001.00000100 |
5 |
193.1.1.5 |
11000001.00000001.0000001.00000101 |
… |
… |
… |
30 |
193.1.1.30 |
11000001.00000001.0000001.00011110 |
Широковещательный адрес |
11000001.00000001.0000001.00011111 |
Перечислим диапазоны возможных адресов узлов остальных подсетей:
для второй подсети: 193.1.1.33 – 193.1.1.62, широковещательный адрес: 193.1.1.63;
для третьей подсети: 193.1.1.65 – 193.1.1.94, широковещательный адрес: 193.1.1.95 и т. д.
Рассмотрим еще один пример. Пусть надо разбить сеть 130.25.0.0 на десять подсетей по 100 машин в каждой.
С учетом того, что дана сеть класса В и что под адреса подсетей отводится 4 бита ( ), получим следующую маску подсети:
11111111.11111111.11110000.00000000 (255.255.240.0).
Адреса подсетей и узлов в подсетях:
130.25.16.0 (130.25.16.1 – 130.25.16.100)
130.25.32.0 (130.25.32.1 – 130.25.32.100)
130.25.48.0 (130.25.48.1 – 130.25.48.100)
…
130.25.160.0 (130.25.160.1 – 130.25.160.100).
Автоматизация процесса назначения IP-адресов
Назначение IP-адресов узлам сети может проводиться как вручную, так и автоматически.
Ручное назначение адресов обычно производится в процессе настройки конфигурации работы сетевого интерфейса, при этом новые назначаемые адреса не должны повторять уже используемые IP-адреса в сети. Естественно, что при больших размерах сетей такая настройка начинает вызывать ряд проблем.
Автоматическое назначение IP-адресов упрощает процесс определения адресов для каждого сетевого интерфейса и освобождает администратора, занимающегося настройкой сетевого взаимодействия, от рутинной работы.
Для автоматического назначения IP-адресов используется вспомогательный протокол динамической конфигурации узлов DHCP (Dynamic Host Configuration Protocol).
DHCP предназначен для автоматической настройки параметров стека TCP/IP рабочей станции. В момент загрузки операционной системы рабочая станция посылает широковещательный запрос параметров своей конфигурации, получив который, сервер DHCP посылает в ответ сведения, содержащие IP-адрес этой рабочей станции, а также прочую информацию, необходимую при настройке сетевого взаимодействия. При этом предполагается, что клиент DHCP, т. е. рабочая станция, пославшая широковещательный запрос, и сервер DHCP находятся в одной локальной сети.
Автоматическое назначение адресов может работать, используя различные способы распределения адресов по интерфейсам:
статический;
динамический.
При статическом способе сервер DHCP в ответ на запрос рабочей станции посылает ей произвольный IP-адрес, выбранный из диапазона наличных адресов. Диапазон адресов задается при настройке сервера DHCP. Выбранный для рабочей станции адрес дается ей в пользование на неограниченный срок, при этом при последующих обращениях к серверу станция будет получать этот же IP-адрес.
При динамическом распределении адресов адрес выдается для использования на ограниченное время, называемое сроком аренды. После истечения срока аренды данный IP-адрес может быть назначен другой рабочей станции. Поскольку при таком распределении один и тот же адрес может использоваться несколькими интерфейсами, а также за счет того, что обычно одновременно работают далеко не все зарегистрированные в сети рабочие станции, появляется возможность экономить IP-адреса, выделяя их под конкретные нужны, а не под простаивающие узлы.
Отображение IP-адресов на локальные адреса
Чтобы определить физический адрес узла, указанного сетевым адресом, используется протокол разрешения адресов ARP (Adress Resolution Protocol). В локальных сетях для определения нужного адреса ARP использует рассылку широковещательных запросов. Протокол разрешения адресов формирует запрос, указывая в нем сетевой адрес, для которого нужно определить соответствующий физический адрес узла, инкапсулирует этот запрос в кадр протокола канального уровня, используемого в данной сети, и производит широковещательную рассылку полученного кадра.
Узел сети, получивший такой запрос, сравнивает указанный в запросе сетевой адрес со своим сетевым адресом. В случае, если адреса совпали, узел формирует ответ, содержащий оба адреса узла – физический и сетевой – и отправляет его отправителю исходного ARP-запроса, на который передается ответ.
Для решения обратной задачи, т. е. определение IP-адреса по известному физическому адресу, используется протокол обратного разрешения адресов RARP (Reverse Address Resolution Protocol). Необходимость использования протокола обратного разрешения адресов обычно обусловливается использованием бездисковых рабочих станций, загрузка операционной системы которых производится с единого сервера.
Организация доменов и доменных имен
Кроме числовых схем адресации, также применяются схемы адресации, использующие символьное представление адресов. Символьные адреса гораздо проще запоминать, этому способствует еще и тот факт, что обычно они несут некую смысловую нагрузку. Поэтому такие адреса удобны там, где необходимо обеспечить интерфейс человека с сетевой программой.
Однако символьные адреса имеют переменный формат достаточно большой максимально возможной длины, поэтому хранение и передача по сети таких адресов вызывают ряд сложностей и являются не очень экономичными.
В сети Интернет используется IP-адресация, но поскольку пользователям приложений удобней работать с символьными адресами, то на прикладных уровнях используется символьная система адресации, каждый адрес которой является мнемоническим обозначением некоего IP-адреса.
В больших сетях наиболее эффективным оказалось применение иерархической системы адресации, и, соответственно, адресов, состоящих из нескольких «вложенных» друг в друга частей.
Примером такой системы адресации может служить доменная система имен (Domain Name System), имеющая иерархическую древовидную структуру и допускающая большую степени вложенности, т. е. большое количество иерархических подуровней.
Доменное имя может состоять из нескольких частей, отделенных друг от друга точками, например news.yandex.ru. Каждая из таких частей называется доменом.
Доменное имя записывается так, что слева оказывается имя узла, входящего в домен, имеющий самый низкий уровень в иерархии, а справа – домен, имеющий самый высокий иерархический уровень. Поэтому крайний справа домен называется доменом верхнего или первого уровня. Следующий слева домен, отделенный точкой, является дочерним доменом второго уровня. Домены, которые являются дочерними для домена второго уровня, называются доменами третьего уровня и т. д.
В адресе news.yandex.ru доменом первого уровня является домен «ru», доменом второго уровня – «yandex», слово «news» является именем хоста.
Термин «хост» используется в качестве синонима термина «узел сети», обычно говоря о сетях, объединенных на основе использования стека TCP/IP.
Названия доменов первого уровня назначаются централизованно в соответствии с международным стандартом. Имена доменов первого уровня могут обозначать страны или типы организаций и обычно представляют собой двух- или трехбуквенные аббревиатуры (табл. 6).
Домены первого уровня |
|||
Общие (предназначены для обозначения типов организаций) |
Региональные (предназначены для обозначения стран и регионов) |
||
Имя |
Значение |
Имя |
Значение |
com |
коммерческие |
ru |
Российская Федерация |
edu |
образовательные |
ua |
Украина |
gov |
правительственные |
us |
США |
int |
международные |
jp |
Япония |
mil |
военные |
de |
Германия |
info |
информационные |
gb |
Великобритания |
net |
сетевые |
au |
Австралия |
org |
некоммерческие |
za |
Южная Африка |
Доменом второго уровня обычно является псевдоним организации, которой принадлежит корпоративная сеть или хост-компьютер, для адресации которых используется этот домен.
Домены третьего и последующих уровней являются частью доменов второго уровня, и на практике обычно представляют некие подсети либо дочерние хосты, которые продаются или бесплатно передаются в использование другим организациям или физическим лицам. Очень часть на таких хостах размещаются домашние страницы пользователей Интернета.
Установление соответствия доменных имен сетевым адресам осуществляется централизованно с помощью службы DNS.
Служба DNS – система обеспечения преобразования символических имен и псевдонимов локальных сетей и узлов в сети Интернет в IP-адреса и обратно.
Принцип работы службы DNS основан на использовании так называемых DNS-серверов. Каждый домен должен иметь свой DNS-сервер, который хранит таблицу соответствий доменных имен и IP-адресов данного домена, а также доменов, являющихся для него дочерними. В таблице также присутствует запись, относящаяся к родительскому домену. Таким образом, любой узел может получить сведения об искомом IP-адресе любого узла сети. Для этого узел последовательно обращается ко всем DNS-серверам, находящимся выше по иерархии, пока не дойдет до сервера, расположенного в домене, общем для данного узла, осуществляющего поиск, и искомого узла. Далее происходит последовательное обращение к серверам, находящимся ниже по доменной иерархии, пока домен, содержащий искомый узел, не будет найден.
Сетевые утилиты Windows
Рассмотрим сетевые утилиты Windows, запускаемые из командной строки.
Утилита IPCONFIG выводит IP-адрес, маску подсети и шлюз по умолчанию для данного сетевого адаптера.
Утилита PING используется для проверки связи с удаленным хостом; может вызываться со следующими параметрами:
-n <значение> – число посылаемых на удаленный хост пакетов (по умолчанию 4);
-w <значение> – время ожидания отклика в миллисекундах (по умолчанию 1000);
-t – установка утилиты в непрерывный режим действия.
Утилита FTP используется для передачи файлов между компьютерами по одноименному протоколу. Для того чтобы запустить ftp-клиент, надо ввести имя утилиты в командной строке, после чего на экране появится приглашение ftp>.
Основные сервисные команды ftp:
open <имя_ftp_сервера> – устанавливает связь с ftp-каталогом;
ls <имя_каталога> – выводит список подкаталогов и файлов; в качестве необязательного параметра можно задать имя интересующего каталога;
dir <имя_каталога> – выводит список подкаталогов и файлов, включая информацию о размерах, датах и правах доступа; аналогично команде ls можно задать имя каталога;
cd <имя_каталога> – переходит в указанный каталог на удаленном компьютере;
get <имя_файла> – получает файл с удаленного компьютера; в качестве второго параметра можно задать новое имя файла;
put <имя_файла> – пересылает файл с локального компьютера (команда доступна только при наличии соответствующих прав);
delete <имя_файла> – удаляет файл на удаленном компьютере (команда доступна только при наличии соответствующих прав);
bye или quit – прекращает работу с протоколом ftp.
Лабораторное задание
определить маску подсети (задание взять у преподавателя);
с помощью команды ipconfig определить IP-адрес и маску подсети своего компьютера;
при помощи команды ping определить, функционирует ли соседний компьютер;
провести тестирование соседнего компьютера с помощью 10 посылок, отправляемых через 400 миллисекунд;
проверить работоспособность адреса www.yandex.ru с помощью 6-байтных и 60-байтных посылок; сравнить полученные результаты;
узнать IP-адреса сайтов ww.ixbt.com и www.ixbt.net;
с помощью команды ftp получить файл с сервера ftp.microsoft.com.
Указания по оформлению отчета
Отчет должен содержать:
- наименование и цель работы;
- краткие теоретические сведения;
- задание на лабораторную работу;
- результаты выполнения лабораторной работы.
контрольные вопросы
Что такое модель OSI, какие уровни она включает?
Какие протоколы входят в стек TCP/IP, как они соотносятся с уровнями модели OSI?
Какие типы адресов используются протоколами стека TCP/IP?
На какие классы делятся IP-адреса?
Как определить маску подсети?
Из каких частей состоит доменное имя? Зачем нужна служба DNS?
Какие сетевые утилиты есть в Windows?
работа с электронной почтой в delphi 7
Общие указания по выполнению лабораторной работы
Цель работы
Изучение основных свойств почтовых протоколов SMTP и POP3, приобретение практических навыков работы с протоколами в среде Delphi 7.
Используемое оборудование и программное обеспечение
Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с ОС Windows 2000 и выше.
Домашнее задание и методические указания по его выполнению
Протоколы электронной почты
Простой протокол передачи почты SMTP (Simple Mail Transfer Protocol) предназначен для отправки почты на почтовый сервер. Поступающая по протоколу SMTP на сервер почта раскладывается по личным почтовым ящикам пользователей и хранится до тех пор, пока пользователь ее не получит. В качестве почтовых ящиков могут использоваться либо отдельные файлы, либо специализированная база данных.
Передача почты по протоколу SMTP начинается с установления клиентом TCP-соединения с сервером (стандартный порт — 25). По установленному соединению клиент и сервер обмениваются текстовыми строками: клиент передает запросы, а сервер — ответы. Каждый запрос и ответ завершается переводом строки. Каждый ответ сервера начинается с трехзначного числа, первая цифра которого указывает на успешность выполнения последнего запроса: 2 — успешное выполнение, 3 — ожидается продолжение запроса, 5 — ошибка.
Протокол почтовой службы POP (Post Office Protocol) предназначен для получения электронной почты из почтового ящика, хранящегося на почтовом сервере. Сейчас используется третья версия этого протокола, РОРЗ.
Передача почты по протоколу POP начинается с установления клиентом TCP-соединения с сервером (стандартный порт — 110). По установленному соединению клиент и сервер обмениваются текстовыми строками: клиент передает запросы, а сервер — ответы. Каждый запрос и ответ завершается переводом строки. Каждый ответ сервера начинается либо со строки "+ОК", которая указывает на успешность выполнения последнего запроса, либо со строки "-ERR", указывающей на ошибку.
Отправка почты
Для отправки почты нам понадобится компонент IdSMTP со страницы Indy Clients палитры компонентов Delphi.
Этот компонент реализует все необходимое для отправки электронной почты по протоколу SMTP. Этапы отправки электронной почты следующие:
соединение с SMTP сервером;
подготовка тела письма, определение отправителя и получателя письма;
отправка письма на SMTP сервер.
Разместив на форме компонент IdSMTP, займёмся его настройкой. Настройку порта можно произвести в инспекторе объектов, установив свойство Port в значение 25, или в коде программы сделать то же самое:
IdSMTP1.Port:=25;
Соединение с сервером
Для соединения с SMTP сервером, который будет осуществлять отправку нашей почты, нужно указать его URL, для сервера mail.ru это производится следующим образом:
IdSMTP1.Host := ′smtp.mail.ru′;
Соединение с сервером производится методом Connect:
procedure Connect(const ATimeout: Integer); override;
где ATimeout - необязательный параметр, задает максимальное время в миллисекундах ожидания ответа с SMTP сервера, по истечении которого попытка установить соединение прекращается.
Например,
IdSMTP1.Connect(5000);
Если при соединении с сервером требуется авторизация, то значение свойства AuthenticationType нужно установить в atLogin, при этом в инспекторе объектов также нужно определить свойства Username(имя пользователя. К примеру, Username почтового ящика delphi@mail.ru - delphi) и Password(пароль на ящик), или сделать то же программно:
IdSMTP1.AuthenticationType:=atLogin;
IdSMTP1.Username:=′delphi′;
IdSMTP1.Password:=′mypass′;
Если авторизация не требуется, то свойство AuthenticationType в инспекторе объектов нужно установить в atNone, либо сделать это программно:
IdSMTP1.AuthenticationType:=atNone;
После применения метода Connect, нужно анализировать логическое свойство Connected, которое в случае удачного соединения устанавливается в True. После этого при помощи метода Send можно отправлять сообщение:
if Connected = True then IdSMTP1.Send(Msg);
Структура письма
Метод Send отправляет тело сообщения, представляющего собой структуру типа TIdMessage.
Структура письма реализуется в Delphi отдельным компонентом TIdMessage, расположенным на палитре компонентов Indy Misc и выглядит следующим образом:
var
Msg: TIdMessage;
begin
Msg.Subject:=′тема сообщения′;
Msg.Recipients.EMailAddresses:=′bogdanwe@mail.ru′;
Msg.From.Adress:=′delphi@mail.ru′;
Msg.Body.Text:=′текст сообщения′;
Msg.Date:=StrToDate(′01.12.2004′);
end;
Свойство Recipients определяет получателя или получателей электронного письма. Свойством EMailAddresses конкретно определяются названия электронных учетных записей, которым адресуется письмо. Названия должны указываться через запятую. Например:
Msg.Recipients.EMailAddresses:=′bogdanwe@mail.ru,delphi7@mail.ru′;
Свойство From представляет собой объект типа TIdEmailAddressItem и содержит информацию об отправителе письма и в свою очередь включает в себя три свойства - Name, Address, Text.
Свойство Address содержит информацию о электронном ящике отправителя, например,
Msg.From.Address:=′delphi@mail.ru′;
Свойство Name представляет собой имя отправителя:
Msg.From.Name:=′Илья Иванов′;
Свойство Text содержит информацию обоих свойств. Тело письма представляет собой объект типа TStrings.
Если вам нужно отправить с письмом файл, то для этого нужно создать объект класса TIdAttachment. Для этого применяется следующий конструктор:
constructor Create(Collection: TIdMessageParts; const AFileName: TFileName = ′′);
где Collection - объект класса TIdMessageParts, представляющее собой коллекцию приложений к электронному письму; константа AFileName типа TFileName - представляет собой обычную текстовую строку с указанием правильного пути к файлу, например ‘C:file.zip’, по умолчанию имеет значение ‘’.
Например,
TIdAttachment.Create(Msg.MessageParts,′c:file.zip′);
После отправки сообщения нужно разорвать соединение с сервером. Это производится методом Disconnect:
IdSMTP1.Disconnect;
Лабораторное задание
Написать программу, реализующую работу с почтой с помощью Delphi. Все данные для письма (адреса отправителя, получателя, тема, текст и т. д.) должны вводиться с формы (при отправке письма) и выводиться на нее (при получении письма).
Указания по оформлению отчета
Отчет должен содержать:
- наименование и цель работы;
- краткие теоретические сведения;
- задание на лабораторную работу;
- результаты выполнения лабораторной работы.
контрольные вопросы
Для чего предназначены протоколы SMTP и POP3?
Какие компоненты есть в Delphi для работы с почтовыми протоколами?
Какие параметры необходимо установить для подключения к почтовому серверу?
Какую структуру имеет письмо? Какой класс в Delphi есть для работы с письмом?
СОЗДАНИЕ ПРИЛОЖЕНИЙ веб-СЕРВЕРА
В СРЕДЕ DELPHI 7
Общие указания по выполнению лабораторной работы
Цель работы
Изучение способов оценки моделируемых систем; получение практических навыков работы со свойствами, определяемыми пользователем.
Используемое оборудование и программное обеспечение
Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с ОС Windows 2000 и выше.
Домашнее задание и методические указания по его выполнению
Назначение веб-сервера
Веб-сервер обеспечивает работу веб-узлов Интернета (или локальной сети на базе протокола TCP/IP), позволяя множеству пользователей одновременно обращаться к одним и тем же страницам HTML. Сервер рассылает копии этих страниц клиентским программам-браузерам. В то же время современные подходы к создании приложений Интернета, ориентированных на бурно развивающуюся электронную коммерция, требуют активного взаимодействия с пользователем и обеспечения тесной обратной связи с ним, по аналогии с автономными офисными приложениями.
Для этого необходимо, чтобы содержание страницы HTML, отправляемой пользователю, не было простой копией файла на сервере, а создавалось динамически, программным путем, в зависимости от действий пользователя. Например, пользователь может заполнять формы и отправлять их серверу или работать через сервер с таблицей удаленной базы данных, в которой хранятся списки товаров. Такая схема работы напоминает клиент-серверную и распределенную архитектуры.
Отличие заключается в том, что, во-первых, передавать клиентской программе надо не массив значений, который она обработает сама, а уже готовую HTML-страницу. Ее надо полностью подготовить на веб-сервере, вследствие чего нагрузка на сервер увеличивается. С другой стороны, нагрузка на компьютеры пользователей снижается, так как там требуется только отобразить страницу в окне браузера. Во-вторых, информация, особенно коммерческая, передаваемая по глобальной сети, должна быть хорошо защищена. Она может шифроваться промежуточными программными модулями, или, по крайней мере, при ее передаче должна использоваться более надежная и безопасная версия протокола HTTP.
Сам веб-сервер не занимается генерацией страниц. Ему и так хватает работы по рассылке этих страниц тысячам пользователей веб-узлов. При поступлении запроса на выполнение нестандартной операции веб-сервер загружает в виде отдельного процесса один из специальных модулей. Этот модуль выполняет создание нужной страницы HTML и затем передает ее обратно веб-серверу, который отсылает ее соответствующему клиенту.
Такие модули пишутся на разных языках программирования и могут работать под управлением самых разных операционных систем.
Создание пустого веб-модуля
В Delphi7 есть Мастер, позволяющий путем нескольких уточняющих вопросов подготовить пустое веб-приложение (модуль, загружаемый веб-сервером в ответ на специфический запрос пользователя). Этот Мастер вызывается командой File->New->Other... (Файл->Создать->Другое) с последующим выбором значка Web Server Application (Приложение веб-сервера). Мастер предложит выбрать один из четырех типов будущего серверного веб-модуля (рис. 1):
ISAPI/NSAPI Dynamic Link Library – создание библиотеки .dll, которая автоматически загружается веб-сервером в случае необходимости. Данные для обработки передаются в библиотеку и возвращаются веб-серверу в виде специальной структуры с помощью программного интерфейса ISAPI фирмы Microsoft или NSAPI фирмы Netscape.
CGI Stand-alone executable – создание серверного консольного приложения. Оно по мере необходимости запускается веб-сервером. Приложение получает параметры и передает результаты работы напрямую.
Apache Shared Module (DLL) - создание подгружаемой библиотеки для веб-сервера Apache. Он применяется, как правило, на платформе Linux.