- •Протоколы
- •Адресация в ip сетях
- •Соглашение о специальных ip-адресах
- •Использование масок в ip-адресации
- •Протокол arp
- •Протокол rarp
- •Протокол ip версии 4
- •Фрагментация ip-датаграмм
- •Формат ip-пакета
- •Маршрутизация пакетов с помощью ip-адресов
- •Перекрывающиеся маршруты
- •Протоколы ip версии 6.
- •Адресация ip-версии 6.
- •Протокол icmp.
- •Протоколы транспортного уровня
- •Алгоритм скользящего окна
- •Таймеры, протоколы тср
- •Методология атак с использованием протокола тср
- •Протокол bootp
- •Протокол dhcp
- •Протокол http
- •Механизм аутентификации
- •Протоколы передачи файлов
- •Протокол sftp
- •Протокол ftp
- •Передача данных между передачи между ftp серверами
- •Протокол Telnet
- •Расширенный протокол smtp (esmtp)
- •Протокол рор
- •Протокол imap (получение почтовых сообщений)
Протокол icmp.
Протокол обмена управляющими сообщениями. Этот протокол используется системными приложениями. Этот протокол только сообщает об ошибках, а как среагирует на это сообщение пользователь, не регламентируется.
Функции:
1) Обмен тестовыми сообщениями для выяснения узлов активности сети
2) Анализ достижимости узлов и сброс недостижимых пакетов, направленных к несуществующим узлам (утилита ping использует такие эхо-пакеты).
3) Изменение маршрутов.
4) Уничтожение пакетов с истекшим временем жизни: когда маршрутизатор видит, что у очередного пакета TTL=0, он его отбрасывает, или когда истекло время, выделенное для сборки фрагментированной датаграммы.
5) Синхронизация времени в узлах сети.
6) Управление трафиком – регулирование частоты отправки пакетов.
При работе прокол ICMP придерживается следующих правил:
- потеря пакета с ICMP сообщением никогда не генерирует нового ICMP-сообщения.
- сообщение об ошибке никогда не генерируется в ответ на IP-датаграммы широковещательными или групповыми адресами, чтобы не вызвать перегрузку сети.
- при повреждении фрагментированной IP-датаграммы ICMP-сообщение отправляется только после первого поврежденного фрагмента.
Злоумышленник отправляет от имени жертвы ICMP эхо-пакет, все ПК сети (получают этот пакет) посылают ответ на адрес жертвы.
Злоумышленники послали Ping-пакеты 20 тыс байт на сайт эстонского правительства.
Для программирования данного протокола используется класс RAW-сокетов.
Протоколы транспортного уровня
Данный уровень используется для отправки сообщения конкретному приложению, поэтому появляется понятие порт.
На этом уровне работают протокол пользовательских датаграмм UDP и TCP.
UDP:
0 31
Порт отправителя |
Порт получателя |
Общая длина |
Контрольная сумма |
Данные |
|
Протокол TCP:
Является байт-ориентированным (поточным) протоколом, т.е. данные, которые он принимает от верхнего уровня представляет собой поток байтов, из которых протокол TCP формирует пакеты, передаваемые протоколу IP. ТСР пакеты принято называть сегментами.
Формат протокола ТСР:
0 31
Порт отправителя |
Порт получателя |
||||
Номер последовательности |
|||||
Номер подтверждения |
|||||
Длина заголовка (4) | Зарезервир бит | | | | | | Размер окна (16 бит) |
|||||
Контрольная сумма (16 бит) |
Указатель на данные для неотложной обработки |
||||
Опции, если есть |
Заполняется нулями |
||||
Данные |
|||||
U R G |
A C K |
P S H |
R S T |
S Y N |
F I N |
Номер последовательности: определяет номер первого определяемого байта. Исключение составляет тот случай, когда установлен бит 7, этот флаг означает, что в поле «Номер последовательности» записан начальный номер ISN, тогда номер первого передаваемого байта будет ISN+1.
Номер подтверждения: номер очередного ожидаемого байта. При этом в поле подтверждения должен быть установлен бит АСК.
Длина заголовка: определяет длину заголовка в тридцати двухбитных словах (в этом поле не может содержаться число меньшее 5)
Размер окна: определяет сколько данных отправитель может получить (сколько обратно можно присылать).
Контрольная сумма: определяется как всегда – весь ТСР-сегмент разбивается на 16-и разрядные слова, которые суммируются, берутся младшие 16 разрядов, и находится дополнение, но контрольная сумма учитывает также 96-и битный псевдозаголовок (включает ряд поле из заголовка протокола IP, а именно IP-адреса отправителя и получателя, протокол верхнего уровня и длину сегмента). С помощью этого псевдозаголовка ТСР защищает себя от ошибочной доставки протоколом IP.
Указатель на данные для неотложной обработки: определяет смещение относительно первого байта в сегменте, указывает на данные, которые должны быть обработаны получателем вне очереди. Используется совместно с флагом URG. Когда получатель видит, что установлен URG, он обращается к полю указателя данных для неотложной обработки, данные извлекаются и обрабатываются вне очереди. (Эти данные использовать не рекомендуется или передавать данные для неотложной обработки в отдельном сегменте).
Опции: имеет переменную длину (кратную 8 битам) или может отсутствовать. В настоящий момент используются следующие опции: максимальный размер сегмента, параметры масштабирования окна, временной штамм.
SYN: устанавливается при создании соединения
ACK: поле «номер подтверждения» задействовано.
URG: задействовано поле «Указатель на данные для неотложной обработки»
PSH: при установленном отправитель должен отправлять эти данные вне очереди
RST: сброс данного соединения
FIN: устанавливается при разрыве соединения.
Опции:
Максимальный размер сегмента: размер – 16 бит. Используется только в сегментах, которые посылаются при установлении соединения.
Временной штамм: используется для того, чтобы проводить точные измерения времени прохождения сигнала от отправителя и обратно (для измерения времени RTT).
Параметры масштабирования окна: используется при установлении соединения, если установлена та опция, то размер окна определяется, как 2^F, где F – число, записанное в поле «размер окна». Используется, если размер окна, объявленное получателем превышает 65536.
Установление соединения:
Выполняется в три этапа.
Клиент |
Сервер |
1) SYN, TSN=1000, MaxLength=1500
----------------------------------------------------------------------------------------------->
2) ACK, ISNс=2000, SYN, Номер подтверждения=1001, MaxLength=500
----------------------------------------------------------------------------------------------
3) Nomer_posled=1001, ACK, Nomer_podtv=2001
------------------------------------------------------------------------------------------------>
Рассмотрим процесс передачи данных:
Клиент |
Сервер |
1) Nomer_posledovat=1001, ACK, Nomer_podtv=2001
---------------------------------------------------------------------------------------------
2) Nomer_posledovat=2001, ACK, Nomer_podtv=1501
(размер сегмента равен 300 байт)
--------------------------------------------------------------------------------------------
3) Nomer_posledovat=1501, ACK, Nomer_podtv=2301
---------------------------------------------------------------------------------------------
Разрыв соединения:
Клиент |
Сервер |
1) FIN, Nomer_posledovat=1501, ACK, Nomer_podtv=2301
-------------------------------------------------------------------------------------------
2) Nomer_posledovat=2301, ACK, Nomer_podtv=1501
-------------------------------------------------------------------------------------------
3) FIN, Nomer_posledovat=2301, ACK, Nomer_podtv=1501
-------------------------------------------------------------------------------------------
4) Nomer_posledovat=1501, ACK, Nomer_podtv=2301
-------------------------------------------------------------------------------------------
