ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 113
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Шаг 3: получив широковещательный фрейм от коммутатора, хост B обрабатывает кадр Ethernet, и анализирует его данные. Хост B видит, что это ARP-запрос, а его IP-адрес совпадает с IP-адресом назначения в ARP-запросе. После он добавляет полученные IP-адрес и MAC-адрес хоста A в свою ARP-таблицу и формирует ARP-ответ, в котором указаны его MAC-адрес и IP-адрес.
Рисунок 2.5.4 – Процесс передачи ответа ARP-reply
Шаг 4: хост А получает ARP-ответ, добавляет в свою ARP-таблицу полученные MAC-адрес и IP-адрес хоста B. На этом работа протокола ARP завершается и начинает работу протокол IP, который инкапсулирует IP-пакет в кадр Ethernet, просматривает свою ARP-таблицу на наличие соответствующего MAC-адреса для IP-адреса 172.16.1.2, так как такая запись присутствует, то хост А в заголовок кадра Ethernet помещает MAC-адрес хоста B и отправляет пакет в сеть к хосту B.
В ARP-таблицах существуют два типа записей: динамические и статические.
Статические записи создаются вручную и не имеют срока устаревания, существуют до тех пор, пока сетевое устройство остается включенным.
Динамические записи создаются автоматически при работе протокола ARP и должны периодически обновляться. Если запись не обновлялась в течение определенного времени, то она удаляется из таблицы. Поэтому в ARP-таблице содержатся записи не обо всех узлах сети, а только о тех, которые участвуют в сетевом взаимодействии.
Чаще всего, время жизни одной записи составляет 2 минуты, а максимальное время жизни – 10 минут, поэтому:
-
если запись создана и не используется более 2 минут, то она удаляется; -
если запись была использована, то таймер обнуляется и вновь идёт отсчёт 2 минут; -
максимальное время “жизни” записи – 10 минут, после чего запись надо подтвердить.
24 Протокол ARP. Безопасность
Протокол преобразования адресов ARP
В сети Интернет сетевое взаимодействие осуществляется на основе IP-адресов. В сети данные передаются с помощью технологий канального уровня, например, Ethernet. Сетевые устройства канального уровня – коммутаторы, используют физические MAC-адреса. Для получения МАС-адреса сетевого устройства в локальной сети по известному IP-адресу используется протокол преобразования адресов (ARP-Address Resolution Protocol).
Протокол ARP работает в режиме запрос-ответ. На каждом сетевом устройстве, например, сетевом адаптере хоста или коммутаторе поддерживается собственная ARP-таблица, в которой в ходе функционирования сети накапливается информация о соответствии между IP-адресами и МАС-адресами интерфейсов других устройств данной сети. Первоначально, при включении компьютера, маршрутизатора или коммутатора в сеть их ARP-таблицы пусты.
Различные сетевые операционные системы по-разному используют протокол ARP для изменения информации в своих ARP таблицах.
Атаки, связанные с уязвимостями протокола ARP являются внутрисегментными и поэтому представляют угрозу для пользователя только в случае нахождения атакующего внутри сегмента сети. Защиты от атак на протокол ARP в общем случае не существует, т.к. используемые уязвимости являются особенностями работы технологии Ethernet (широковещательность). Однако можно выполнить следующее:
-
нарушителя нужно искать внутри сетевого сегмента атакуемого объекта; -
полезно вести таблицу соответствия МАС-адресов и IP-адресов, которую следует периодически обновлять; -
использовать статические записи в таблице ARP хотя бы для наиболее важных узлов сети.
25 Транспортные протоколы. Протокол TCP
Протокол управления передачей TCP
Протоколы транспортного уровня решают проблему правильной последовательности и гарантированной доставки сообщений. На рисунке 2.11.1 представлены некоторые протоколы транспортного уровня. Основными из них являются TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).
Взаимодействие прикладных программ, использующих транспортные услуги протокола TCP или UDP, строится, согласно модели, "клиент-сервер", которая подразумевает
, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Связь программы-клиента и сервера идентифицируется пятеркой:
-
Используемый транспортный протокол TCP или UDP; -
IP-адрес сервера; -
Номер порта сервера; -
IP-адрес клиента; -
Номер порта клиента.
e
Рисунок 2.11.1 – Различные протоколы транспортного уровня
2.11.1. Основные функции протокола TCP
Основная задача протокола TCP – обеспечение надежной передачи данных в сети. Его транспортный адрес в заголовке IP-сегмента равен 6. Год создания – 1981 (RFC 793).
Основные функции протокола TCP:
-
Реализует взаимодействие в режиме с установлением логического соединения; -
Обеспечивает двунаправленную дуплексную связь; -
Организует потоковый тип передачи данных; -
Дает возможность пересылки части данных, как «экстренных»; -
Для идентификации взаимодействующих сторон на транспортном уровне использует 16-битовые "номера портов"; -
Реализует принцип "скользящего окна" (sliding window) для повышения скорости передачи; -
Поддерживает механизмы, обеспечивающие надежную передачу данных.
На рисунке 2.11.2 представлен формат заголовка TCP-пакета.
4 бита | 6 бит | 6 бит | 16 бит | |
Source Port | Destination Port | | ||
Sequence Number | ||||
Acknowledgment Number | ||||
Data Offset | Reserved | Control Bits | Window | |
Checksum | Urgent Pointer | | ||
Options | Padding | | ||
Data |
Рисунок 2.11.2 – Формат заголовка TCP-пакета
Рассмотрим поля заголовка TCP-пакета.
Source Port, Destination Port (Порт источника и порт приемника) – 16-битовые поля, содержащие номера портов, соответственно, источника и приёмника TCP-пакета. В таблице 2.11.1 дан список номеров портов для некоторых приложений.
Sequence Number (Номер в последовательности) – 32-битовое поле, содержимое которого определяет положение данных TCP-пакета внутри исходящего потока данных, существующего в рамках текущего логического соединения.
В момент установления логического соединения каждый из двух абонентов генерирует начальный номер для первого пакета в последовательности, основное требование к которому - не повторяться в промежутке времени, в течение которого TCP-пакет может находиться в сети. Абоненты обмениваются этими начальными номерами и подтверждают их получение. Во время отправления TCP-пакетов с данными, поле "номер в последовательности" содержит сумму начального номера и количества байт ранее переданных данных.
Acknowledgment Number (Номер подтверждения) – 32-битовое поле, содержимое которого определяет количество принятых данных из входящего потока к TCP-модулю, формирующему TCP-пакет.
Data Offset (Смещение данных) – 4-битовое поле, содержащее длину заголовка TCP-пакета в 32-битовых словах и используемое для определения начала расположения данных в TCP-пакете.
Reserved (Зарезервировано) – 6 бит, выделенных для дальнейшего использования. В настоящее время последние два бита уже используются, как управляющие биты (флаги).
Control Bits (Управляющие биты/флаги) – поле из 6 битовых флагов.
Флаг URG – установленное в 1 значение, которого означает, что TCP-пакет содержит важные данные. Обработке таких данных отдаётся наивысший приоритет.
Флаг ACK – установленное в 1 значение означает, что TCP-пакет содержит в поле «номер подтверждения» верные данные.
Флаг PSH – установленное в 1 значение означает, что данные, содержащиеся в TCP-пакете, должны быть немедленно переданы прикладной программе, для которой они адресованы. Подтверждение для TCP-пакета, содержащего единичное значение во флаге PSH, означает, что и все предыдущие TCP-пакеты достигли адресата.
Флаг RST – устанавливается в 1 в TCP-пакете, отправляемом в ответ на получение неверного TCP-пакета. Также может означать запрос на переустановление логического соединения.
Флаг SYN – установленное в 1 значение означает, что TCP-пакет представляет собой запрос на установление логического соединения. Получение пакета с установленным флагом SYN должно быть подтверждено принимающей стороной.
Флаг FIN
– установленное в 1 значение означает, что TCP-пакет представляет собой запрос на закрытие логического соединения и является признаком конца потока данных, передаваемых в этом направлении. Получение пакета с установленным флагом FIN должно быть подтверждено принимающей стороной.
Window (Размер окна) – 16-битовое поле, содержащее количество байт информации, которое может принять в свои внутренние буфера TCP-модуль, отправляющий партнеру данный TCP-пакет. Данное поле используется принимающим поток данных TCP-модулем для управления интенсивностью этого потока. Установив значение поля в 0, можно полностью остановить передачу данных, которая будет возобновлена, когда размер окна увеличится.
Checksum (Контрольная сумма) – 16-битовое поле, содержащее контрольную сумму, подсчитанную для ТСР-заголовка, данных пакета и псевдозаголовка. Псевдозаголовок включает в себя ряд полей IP-заголовка и имеет показанную на рисунке 2.11.3 структуру.
Urgent Pointer (Указатель) – 16-битовое поле, содержащее указатель (в виде смещения) на первый байт в теле TCP-пакета, начинающий последовательность важных (urgent) данных.
Options (Опции) – последовательность полей произвольной длины, описывающих необязательные данные заголовка;
Padding (Выравнивание) – последовательность нулей для дополнения строки до длины, равной 32 битам;
Data (данные) – передаваемые данные.
Source Address (Адрес источника) | ||
Destination Address (Адрес назначения) | ||
Zero (нули) | Protocol (Идентификатор протокола) | TCP Length (Длина TCP пакета) |
Рисунок 2.11.3 – Схема псевдозаголовка TCP-пакета
Протокол TCP устанавливает обязательное получение подтверждения от принимающей стороны о правильности полученных данных.
В протоколе TCP используется принцип "скользящего окна" (sliding window), который заключается в том, что каждая сторона может отправлять партнеру максимум столько байт, сколько партнер указал в поле "размер окна" заголовка TCP-пакета, подтверждающего получение предыдущих данных.
Принцип "скользящего окна" обеспечивает "опережающую" посылку данных с "отложенным" их подтверждением. Следует отметить недостаток этого механизма: если в течение некоторого времени не будет получено "отсроченное" подтверждение ранее отправленного пакета, то отправляющий TCP-модуль будет вынужден повторить посылку всех TCP-пакетов, начиная с неподтвержденного. Размер окна, как правило, определяется объемом свободного места в буферах, принимающего TCP-модуля.