ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.12.2023

Просмотров: 107

Скачиваний: 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, строится, согласно модели, "клиент-сервер", которая подразумевает

, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Связь программы-клиента и сервера идентифицируется пятеркой:

  1. Используемый транспортный протокол TCP или UDP;

  2. IP-адрес сервера;

  3. Номер порта сервера;

  4. IP-адрес клиента;

  5. Номер порта клиента.

e

Рисунок 2.11.1 – Различные протоколы транспортного уровня

2.11.1. Основные функции протокола TCP

Основная задача протокола TCP – обеспечение надежной передачи данных в сети. Его транспортный адрес в заголовке IP-сегмента равен 6. Год создания – 1981 (RFC 793).

Основные функции протокола TCP:

  1. Реализует взаимодействие в режиме с установлением логического соединения;

  2. Обеспечивает двунаправленную дуплексную связь;

  3. Организует потоковый тип передачи данных;

  4. Дает возможность пересылки части данных, как «экстренных»;

  5. Для идентификации взаимодействующих сторон на транспортном уровне использует 16-битовые "номера портов";

  6. Реализует принцип "скользящего окна" (sliding window) для повышения скорости передачи;

  7. Поддерживает механизмы, обеспечивающие надежную передачу данных.

На рисунке 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-модуля.