lection3

advertisement
Сетевые протоколы.
Прикладной уровень
Дроздов Алексей Владимирович
БГТУ 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
Заключение
Большинство современных сетевых
приложений использует для взаимодействия
протоколы прикладного уровня.
Преимущественно текстового типа
Требования сетевых приложений
?
Download