Протоколы прикладного уровня. (1/2) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Протоколы прикладного уровня. (1/2)



Как было рассмотрено выше, существуют два основных транспортных протокола TCP и UDP. Большинство прикладных программ пользуются только одним из них. Программист при создании прикладного ПО, выбирает тот протокол, который наилучшим образом соответствует потребностям создаваемого программного продукта. Если нужна надёжная и эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP. Если потребности создаваемого ПО не попадают ни в одну из этих категорий, то и выбор транспортного протокола не ясен. Однако прикладные программы могут устранять недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность.

Общее количество прикладных программ,доступных в сетях с TCP/IP, велико и продолжает постоянно увеличиваться.

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

Система доменных имен DNS

Соответствие между доменными именами и IP-адресами может устанавливаться как средствами локального хоста, так и средствами централизованной службы. На раннем этапе развития Internet на каждом хосте вручную создавался текстовый файл с известным именем hosts. Этот файл состоял из некоторого количества строк, каждая из которых содержала одну пару «IP-адрес- доменное имя», например:

207.232.83.10 -www.dlink.com

По мере роста Internet, файлы hosts также росли, и создание масштабируемого решения для разрешения имен стало необходимостью. Таким решением стала специальная служба - система доменных имен (Domain Name System, DNS).

DNS - это централизованная служба,основанная на распределенной базе отображений «доменное имя - IP-адрес». Служба DNS использует в своей работе протокол типа «клиент-сервер». В нем определены DNS-серверы и DNS-клиенты. DNS-серверы поддерживают распределенную базу отображений, а DNS-клиенты обращаются к серверам с запросами о разрешении доменного имени в IP-адрес.

Служба DNS использует текстовые файлы почти такого формата, как и файл hosts, и эти файлы администратор также подготавливает вручную. Однако служба DNS опирается на иерархию доменов, и каждый сервер службы DNS хранит только часть имен сети, а не все имена, как это происходит при использовании файлов hosts. При росте количества узлов в сети проблема масштабирования решается созданием новых доменов и поддоменов имен и добавлением в службу DNS новых серверов.

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

Каждый DNS-сервер кроме таблицы отображений имен содержит ссылки на DNS-серверы своих поддоменов. Эти ссылки связывают отдельные DNS-серверы в единую службу DNS. Ссылки представляют собой IP-адреса соответствующих серверов. Для обслуживания корневого домена выделено несколько дублирующих друг друга DNS-серверов, IP-адреса которых являются широко известными (их можно узнать, например, в InterNIC).

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

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

Существуют две основные схемы разрешения DNS-имен.

В первом варианте работу по поиску IP-адреса координирует DNS-клиент:

DNS-клиент обращается к корневому DNS-серверу с указанием полного доменного имени;

DNS-сервер отвечает, указывая адрес следующего DNS-сервера, обслуживающего домен верхнего уровня, заданный в старшей части запрошенного имени;

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

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

Во втором варианте реализуется рекурсивная процедура:

DNS-клиент запрашивает локальный DNS-сервер, то есть тот сервер, который обслуживает поддомен, к которому принадлежит имя клиента;

если локальный DNS-сервер знает ответ, то он сразу же возвращает его клиенту; это может соответствовать случаю, когда запрошенное имя входит в тот же поддомен, что и имя клиента, а также может соответствовать случаю, когда сервер уже узнавал данное соответствие для другого клиента и сохранил его в своем кэше;

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

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

В стеке TCP/IP применяется доменная система имен, которая имеет иерархическую древовидную структуру, допускающую использование в имени произвольного количества составных частей

Рисунок 112. Иерархическая древовидная структура DNS.

Дерево имен начинается с корня, обозначаемого здесь точкой(.). Затем следует старшая символьная часть имени, вторая по старшинству символьная часть имени и т. д. Младшая часть имени соответствует конечному узлу сети. Составные части доменного имени отделяется друг от друга точкой.Например, в имени partnering.dlink.com составляющая partnering является именем одного из компьютеров в домене dlink.com.

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

Совокупность имен, у которых несколько старших составных частей совпадают, образуют домен имен (domain).

Например, имена ftp. dlink. ru и dlink.ru входят в домен в ru, так как все эти имена имеют одну общую старшую часть - имяru.

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

Например, поддомен dlink.ru обычно называют поддоменом (или доменом) dlink в российском сегменте (домене) ”ru”.

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

В доменной системе имен различают краткие имена,относительные имена и полные доменные имена.

Краткое имя - это имя конечного узла сети: хоста или порта маршрутизатора. Краткое имя - это лист дерева имен.

Относительное имя - это составное имя, начинающееся с некоторого уровня иерархии, но не самого верхнего. Например, www.dlink- это относительное имя.

Полное доменное имя (fully qualified domain name, FQDN)включает составляющие всех уровней иерархии, начиная от краткого имени и кончая корневой точкой: www.dlink.ru

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

В Internet корневой домен управляется центром InterNIC.Домены верхнего уровня назначаются для каждой страны, а также наорганизационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры (“ ru ”,” ua ”), а для различных типов организаций - следующие обозначения, вот некоторые:

com - коммерческие организации;

gov - правительственные организации;

org - некоммерческие организации;

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

info - информационные ресурсы

biz - только коммерческие организации

aero - для субъектов авиатранспортной индустрии

coop- кооперативы

edu - высшие учебные заведения.

int - межгосударственные организации

mil - министерство вооруженных сил США

museum - музеи

travel - для субъектов туристического бизнеса.

Каждый домен администрируется отдельной организацией,которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Чтобы получить доменное имя, необходимо зарегистрироваться в какой-либо организации, которой InterNIC делегировал свои полномочия по распределению имен доменов. В России такой организацией является РосНИИРОС, которая отвечает за делегирование имен поддоменов в домене ru.

Протоколы Telnet, SSH

Telnet - протокол эмуляции терминала, обычно используемый в сети Интернет и в сетях, работающих по протоколам, основанным на TCP/IP. Протокол telnet был первоначально разработан для ARPAnet и является важной частью протокола передачи данных TCP/IP.

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

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

Создано множество реализаций для самых разных операционных систем.

Telnet - клиент-серверный протокол, и клиенты в общем случае соединяется с портом 23 на удаленном компьютере,предоставляющем такую услугу (хотя, подобно многим протоколам, используемым в сети Интернет, используемый для соединения порт можно изменить, другими словами23 номер порта – всего лишь общий случай). Частично из-за конструкции протокола и частично из-за гибкости, обычно снабжаемой программами telnet, можно использовать программу telnet, чтобы установить интерактивное подключение TCP с некоторой другой услугой удаленного компьютера. Классическим примером такого использования клиентской части протокола может послужить соединение при помощи программы telnet с портом 25 удаленного компьютера (где обычно находиться SMTP сервер) чтобы отладить сервер почты.

Протокол telnet может быть представлен в виде ядра и наборов дополнений. Ядро протокола описано в соответствии с IETF документами RFC 854 и RFC 855, которые также собраны вместе в STD 8, который определяет только базисные эксплуатационные показатели протокола и способы определения и осуществления дополнений к нему. Имеется много дополнений,некоторые из которых были приняты как стандарты Интернет, некоторые нет.

Отмечают три главных проблемы связанные с использованием telnet, делая его плохим выбором для современных систем с точки зрения безопасности:

· Используемые по умолчанию демоны telnet имеют сетевые уязвимости;

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

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

Нежелательно использование протокола telnet в системах, для которых важна безопасность, таких как общественный Интернет.

SSH (Secure Shell) — сетевой протокол, позволяющий производить удалённое управление компьютером и передачу файлов. Сходен по функциональности с протоколом Telnet, однако использует алгоритмы шифрования передаваемой информации.

Криптографическая защита протокола SSH не фиксирована, возможен выбор различных алгоритмов шифрования. Клиенты и серверы,поддерживающие этот протокол, доступны для различных платформ. Кроме того,протокол позволяет не только использовать безопасный удалённый shell на машине,но и туннелировать графический интерфейс — X Tunnelling (только для Unix-подобных ОС или приложений, использующих графический интерфейс X Window System). SSH также способен передавать через безопасный канал (Port Forwarding) любой другой сетевой протокол, обеспечивая (при надлежащем конфигурировании) возможность безопасной пересылки не только X-интерфейса, но и, например, звука.

Поддержка SSH реализована во всех UNIX системах, и на большинстве из них в числе стандартных утилит присутствуютклиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIXОС. Большую популярность протокол получил после широкого развития программ для прослушивания сети, как альтернатива небезопасному Telnet решение для управления важными узлами.

SSH предоставляет 3 способа аутентификации клиента: по ip адресу клиента(небезопасно), по публичному ключу клиента и стандартный парольный метод

Схема работы

При запросе клиента сервер сообщает ему, какие методы аутентификации он поддерживает (это определяется в опции PreferredAuthentications sshd.conf) и клиент по очереди пытается проверить их.По умолчанию клиент вначале пытается аутентифицироваться своим адресом, затем публичным ключом и, если ничего не сработало, передаёт пароль, введённый с клавиатуры (при этом пароль шифруется асимметрическим шифрованием). После прохождения аутентификации одним из методов из имеющихся у клиента и сервера пар ключей генерируется сеансовый ключ симметрического шифрования. После чего все последующие данные, передаваемые через ssh, шифруются данным ключом (обычно используется алгоритм aes с длиной ключа 128 бит). Также вместе с данными посылаются контрольные суммы формата sha или md5, что исключает подмену или иную модификацию передаваемого трафика.

SSH защищает от:

· «ip-подмены» (IP spoofing), когда удаленный(атакующий) компьютер высылает свои пакеты симулируя якобы они пришли с другого компьютера, с которого разрешен доступ. SSH защищает от подмены даже в локальной сети, когда кто-то например, решил подменить маршрутизатор сети"собой".

· «ip исходный маршрутизатор» (IP source routing),когда компьютер может симулировать что IP-пакеты приходят от другого,разрешенного компьютера (маршрутизатора).

· «DNS spoofing», когда атакующий фальсифицирует записи DNS -сервера.

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

· Манипуляций над вашими данными людьми управляющими промежуточными компьютерами.

Все вышесказанное верно, лишь при использовании шифрования. Однако SSH имеет опцию шифрования "none",которая необходима лишь для отладки и ни в коем случае не должна быть использована для обычной работы.

Протоколы FTP и TFTP

Протокол FTP распространен также широко как Telnet, и также как он представляет собой клиент-серверный протокол. Он является одним из старейших протоколов семейства TCP/IP. Также как Telnet он пользуется транспортными услугами TCP.

FTP (англ. File Transfer Protocol —протокол передачи файлов) — протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того,возможен режим передачи файлов между серверами.

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

Работа FTP на пользовательском уровне содержит несколько этапов:

  • Идентификация (ввод имени-идентификатора и пароля).
  • Выбор каталога.
  • Определение режима обмена (поблочный, поточный, ASCII или двоичный).
  • Выполнение команд обмена (get, mget, dir, mdel, mput или put).
  • Завершение процедуры (quit или close).

Процедура организации FTP поддерживает две логические связи между узлами (компьютерами). Одна связь служит для удаленного доступа и использует протокол Telnet. Другая связь предназначена для обмена данными. Сервер производит операцию passive open для порта 21 и ждет соединения с клиентом. Клиент осуществляет операцию active open для порта 21. Канал остается активным до завершения процедуры FTP. Канал для передачи данных (TCP)формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла).

Конечный пользователь взаимодействует с протокольным интерпретатором, в задачи которого входит управление обменом информацией между пользователем и файловой системой, как местной, так и удаленной. Схема взаимодействия различных частей Internet при работе FTP изображена на рис. 113

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

Рисунок 113. Схема работы протокола FTP

TFTP (Trivial FTP, RFC-1350, -783,RFC-906, STD0033) представляет собой упрощенную версию FTP. TFTP не имеет системы безопасности и идентификации, она в отличии от FTP базируется на протоколе UDP (порт 69), а не TCP. Обычно передача осуществляется блоками по512 байт с ожиданием подтверждения приема каждого пакета (протокол "стой-и-жди"). TFTP используется при загрузке операционной системы в бездисковые рабочие станции или для загрузки конфигурационных файлов в маршрутизатор.

Поскольку протокол не поддерживает аутентификации, единственный метод идентификации клиента — это его сетевой адрес(который может быть подделан).

Порядок работы

Сначала устанавливается связь между клиентом и сервером, для этого посылаются запросы WRQ (write) или RRQ (read). При этом сообщается имя файла и режим доступа (Mode). Предусмотрено два режима доступа:

· netascii — файл перед передачей перекодируется в ASCII.

· octet — файл передается без изменений.

В начале TFTP-пакета идет поле размером в 2 байта, определяющее тип пакета:

ReadRequest (RRQ) — запрос на чтение файла.

WriteRequest (WRQ) — запрос на запись файла.

Data (DATA)— данные, передаваемые через TFTP.

Acknowledgment (ACK) — подтверждение пакета.

Error (ERR)— ошибка.

Options Acknowledgment (OACK) — подтверждение опций.

После получения RRQ-пакета сервером, он сразу начинает передачу данных. В случае с WRQ-запросом - сервер должен прислать ACK-пакет c номером пакета 0. Сервер использует IP-адрес и номер UDP-порта клиента для идентификации последующих операций. Таким образом, ни при пересылке данных, ни при передаче подтверждений (ACK) не нужно указывать явно имя файла. Блоки данных нумеруются, начиная с 1, подтверждение получения пакета имеет тот же номер. Получение блока с размером менее 512 байт означает конец файла. Получение сигнала об ошибке прерывает обмен. При возникновении тайм-аута производится повторная передача последнего блока данных или подтверждения.

Предусмотрено шесть типов сообщений об ошибках:

0 - не определен;

1 - файл не найден;

2 - ошибка доступа;

3 - переполнение диска или превышение выделенной квоты;

4 - нелегальная TFTP-операция;

5 - неизвестный идентификатор обмена.

Всего по TFTP можно передать 32 Мб (65536 * 512 / 1024²), однако если клиент и сервер поддерживают расширения протокола RFC 2347 и RFC 2348, то максимальный размер передаваемого файла увеличивается до 4Gb.



Поделиться:


Последнее изменение этой страницы: 2021-03-10; просмотров: 85; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.144.197 (0.047 с.)