130.38K
Category: internetinternet

Исследование процесса фрагментации ipv4пакетов при помощи UD. Примеры разделения

1.

ИССЛЕДОВАНИЕ ПРОЦЕССА
ФРАГМЕНТАЦИИ IPV4ПАКЕТОВ ПРИ ПОМОЩИ UD
подсказки

2.

ПРИМЕР РАЗДЕЛЕНИЯ
Серверная часть
Сервер будет принимать UDP-пакеты и выводить их
содержимое.
Клиентская часть
Клиент будет отправлять UDP-пакеты произвольной
длины. Включение/отключение флага DF (Don't Fragment)
можно реализовать с использованием низкоуровневых
сокетов.

3.

АНАЛИЗ ПАКЕТОВ
Смотрим на поля Identification, Flags и Fragment Offset в
заголовке IPv4
DF (Не фрагментировать). 1-битное поле, если в котором
указано 1, то пакет не может быть фрагментирован или
разделён. 4
MF (Больше фрагмента). 1-битное поле, которое используется
для определения, является ли принятый фрагмент последним
фрагментом пакета или нет. Если бит MF равен 1, то в пакете
больше фрагментов, а если бит MF равен 0, то полученный
фрагмент является последним фрагментом пакета.

4.

ОЧИСТКА ARP ТАБЛИЦЫ
ARP-таблица (Address Resolution Protocol table) — это важный
компонент сетевой инфраструктуры, который используется
для сопоставления IP-адресов с MAC-адресами в локальной
сети.
Что произойдет, если очистить ARP-таблицу?
Временная задержка, новые запросы и ответы, восстановится.

5.

ОЧИСТКА ТАБЛИЦЫ ARP
На Linux: sudo ip -s -s neigh flush all
На Windows: arp -d *

6.

НА ЧЕМ ПИСАТЬ?
Python
socket - встроенная библиотека для работы с сокетами (TCP/UDP).
Позволяет создавать клиент-серверные приложения, настраивать флаги
(например, DF для IPv4).
scapy - мощная библиотека для работы с сетевыми пакетами. Позволяет
создавать, отправлять и анализировать пакеты (ARP, ICMP, UDP, TCP и
т.д.).
dpkt - библиотека для создания и разбора сетевых пакетов. Полезна для
анализа трафика.

7.

НА ЧЕМ ПИСАТЬ?
На любом удобном вам языке, примеры некоторых дальше.

8.

НА ЧЕМ ПИСАТЬ?
C/C++
<sys/socket.h> - стандартная библиотека для работы с сокетами. Позволяет
создавать UDP-сокеты, настраивать флаги (например, IP_MTU_DISCOVER для
флага DF).
<netinet/ip.h> - заголовочный файл для работы с IP-заголовками. Полезен для
ручного создания пакетов и настройки флагов фрагментации.
libpcap - библиотека для захвата сетевого трафика. Используется в
инструментах, таких как WireShark и tcpdump.
libnet - библиотека для создания и отправки сетевых пакетов. Подходит для
работы с ARP, UDP, TCP и другими протоколами.
English     Русский Rules