Сетевые протоколы. Прикладной уровень Дроздов Алексей Владимирович БГТУ 2008 Примеры протоколов Hi TCP connection req Hi TCP connection response Got the time? 2:00 <file> time Пример простого HTTP-запроса Запрос: GET /robots.txt HTTP/1.1 Host: iipo.bstu.b-metro.net Ответ: HTTP/1.1 200 OK Date: Wed, 17 Sep 2008 08:49:24 GMT Server: Microsoft-IIS/7.0 Last-Modified: Fri, 19 Jan 2007 20:00:00 GMT ETag: "169069f-11e-4276a281f5000" Accept-Ranges: bytes Content-Length: 286 Content-Type: text/plain User-agent: * Disallow: /administrator/ Disallow: /cache/ Откуда берутся протоколы Произвольное задание разработчиками Расширение существующих Результат математического моделирования Способы моделирования протоколов и сетевого взаимодействия Цели моделирования сетевого взаимодействия Минимизация задержки взаимодействия Эффективное использование сетевых каналов Выбор аппаратного обеспечения Симуляционное моделирование Симуляционное (статистическое) моделирование служит для анализа системы с целью выявления критических элементов сети. Этот тип моделирование используется также для предсказания будущих характеристик системы. Такое моделирование может осуществляться с использованием специализированных языков симулирования и требует априорного знания относительно статистических свойств системы в целом и составляющих ее элементов. Процесс моделирования включат в себя формирование модели, отладку моделирующей программы и проверку корректности выбранной модели. Последний этап обычно включает в себя сравнение расчетных результатов с экспериментальными данными, полученными для реальной сети. Параметры моделирования В процессе моделирования рассчитываются следующие параметры: Статистика очередей Статистика времени ожидания Статистика системного времени Статистика потерь сообщений Примеры ПО для моделирования Network Simulator (ns-2) (http://isi.edu/nsnam/ns/) OMNeT++ (http://www.omnetpp.org/) др. Инструментальные средства изучения протоколов Способы изучения протоколов Изучение спецификации Исследование ПО на уровне исходных кодов Исследование сетевой активности при помощи специализированных инструментальных средств. Что такое сниффер? Sniffer (от англ. to sniff – нюхать) – это сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов. Способы перехвата трафика обычным «прослушиванием» сетевого интерфейса; подключением сниффера в разрыв канала; ответвлением (программным или аппаратным) трафика и направлением его копии на сниффер; через анализ побочных электромагнитных излучений и восстановление таким образом прослушиваемого трафика; через атаку на канальном (2-й) или сетевом (3-й) уровне, приводящую к перенаправлению трафика жертвы или всего трафика сегмента на сниффер с последующим возвращением трафика в надлежащий адрес. Применимость снифферов Отслеживать сетевую активность приложений. Отлаживать протоколы сетевых приложений. Локализовать неисправность или ошибку конфигурации. Обнаружить паразитный, вирусный и закольцованный трафик, наличие которого увеличивает нагрузку сетевого оборудования и каналов связи. Выявить в сети вредоносное и несанкционированное ПО, например, сетевые сканеры, флудеры, троянские программы, клиенты пиринговых сетей и другие. Перехватить любой незашифрованный (а порой и зашифрованный) пользовательский трафик с целью узнавания паролей и другой информации. Сниффер Wireshark Wireshark (http://www.wireshark.org/) до недавнего момента был известен под названием Ethreal. Свободно распространяемый продукт. Обладает очень широкими возможностями анализа сетевого трафика. Принцип работы сниффера Пример интерфейса Wireshark Зачем это нам? Для того, чтобы понять как работает программа (без исходных кодов), необходимо воспользоваться отладчиком В случае изучения сетевого взаимодействия сниффер сродни отладчику. Возможности Wireshark Захват сетевых пакетов по заданному критерию Пост фильтрация пакетов Разложение пакетов на протоколы Детальное разложение заголовков протоколов по полям Статистический анализ сетевого потока Сохранение полученных данных Стандартизация протоколов и документация Request for Comments Спецификации практических реализаций сетевых протоколов и связанные с ними архитектурные вопросы (в частности, Internet) содержатся в серии документов, объединенных названием Request for Comments (RFC – Предложения для обсуждения). Request for Comments: 2 Но RFC – это не только спецификации протоколов. Их можно назвать рабочими документами, в которых обсуждаются разнообразные аспекты компьютерных коммуникаций и сетей. Request for Comments: 3 Хотя не в каждом RFC содержится какойлибо стандарт Internet, любой стандарт Internet опубликован в виде RFC. Материалам, входящим в подсерию RFC дается дополнительная метка «STDxxxx». Текущий список стандартов и тех RFC которые находятся на пути принятия в качестве стандарта, опубликован в документе STD0001. Request for Comments: 4 Получить копии RFC можно разными путями, но самый простой - зайти на Web-страницу редактора RFC http://www.rfc-editor.org. После публикации ни номер, ни текст RFC уже не изменяются, так что единственный способ модифицировать RFC – это выпустить другое RFC, заменяющее предыдущее. Для каждого RFC в указателе отмечено, есть ли для него заменяющее RFC и если есть, то его номер. Там же указаны RFC, которые обновляют, но не замещают прежние. Достаточно свежая коллекция RFC доступна на кафедральном web-сервере (ftp://iipo-tubryansk.ru/pub/Drozdov/Net/RFC). Протоколы прикладного уровня стека TCP/IP Прикладной уровень (Application layer) Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает доступ к сетевым службам приложениям пользователя, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Что неважно для прикладного уровня Работает с потоком данных, а не пакетами Как будет доставлен поток данных до получателя Как правильно его доставить до получателя Как избежать ошибок передачи данных Общий принцип работы протоколов прикладного уровня Общий принцип работы протоколов прикладного уровня: 2 Адресация прикладного уровня Разнообразие протоколов прикладного уровня Самое большое количество протоколов стека TCP/IP – протоколы прикладного уровня Большинство специализированных сетевых приложений используют собственные реализации протоколов поверх TCP/UDP Способы реализации протоколов Протоколы можно разделить на 2 типа: Бинарные Текстовые Бинарные протоколы Преимущества бинарных протоколов: Высокая эффективность Недостатки: Сложность анализа ошибок Сложность с расширением Примеры бинарных протоколов DNS SSH Telnet NTP SNMP ICQ SIP X Window BitTorrent Текстовые протоколы Преимущества текстовых протоколов: Легкая расширяемость Легкое восприятие для анализа Недостатки: Эффективность не всегда на высоте Примеры текстовых протоколов HTTP FTP SMTP POP3 Заключение Большинство современных сетевых приложений использует для взаимодействия протоколы прикладного уровня. Преимущественно текстового типа Требования сетевых приложений ?