Захват пакетов в программе WireShark. Исследование на соответствие формату кадров IEEE 802.3(3.1.1) — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Захват пакетов в программе WireShark. Исследование на соответствие формату кадров IEEE 802.3(3.1.1)

2020-11-19 522
Захват пакетов в программе WireShark. Исследование на соответствие формату кадров IEEE 802.3(3.1.1) 0.00 из 5.00 0 оценок
Заказать работу

Работа велась в самой популярной программе-сниффера WireShark. Она была нужна для того, захватить и сохранить пакет Ethernet для дальнейшего тестирования разрабатываемого коммутатора.

Захваченный пакет первым делом проверялся на соответствие формату кадров IEEE 802.3. Окно работы программы представлено на рисунке 1.1.

 

   

Рисунок 1.1 – Рабочее окно WireShark

 

Как видно на рисунке 1.1, в разделе Ethernet II есть следующие подразделы:

- Destination: c8:3a:35:dd:3d:50 (hexadecimal);

- Source: 80:fa:5b:12:fe:ab (hexadecimal);

- Type: 0800 (hexadecimal).

Эти подразделы соответствуют полям кадра DA, SA, Type/length. Число ‘h0800 обозначает протокол IPv4, а, например, число ‘h0806 обозначало бы протокол разрешения адресов (ARP).

Остальные подразделы IPv4, Transmission Control Protocol являются полем Data.

После анализа пакета в WireShark захваченный пакет был сохранён в формате.pcap.

Для работы с файлами WireShark в формате.pcap руководитель практики предоставил уже готовые модуль “pcap2gmii” и фунцию для подсчёта crc32. Модуль “pcap2gmii” открывал пакет, отсылал на выход стандартные преамбулу и делиметр, затем посылая содержимое файла формата.pcap однобайтными словами, параллельно используя эти данные для подсчёта контрольной суммы. После того, как был считан конец файла, то на выход идёт контрольная сумма.

На рисунке 1.2 продемонстрирована симуляция модуля приёма кадра в ModelSim. Как видно, при состоянии автомата (o_state) ‘b010 на выходе o_data 'hd5 – что соответсвует делиметру. А при состояниях ‘b011, ‘b100, ‘b101 – те же самые данные, представленные в окне WireShark в подразделах destination, source, type.

 

 

Рисунок 1.2 – Работа приёмника кадра Ethernet

Разработка коммутатора

2.1 Формат пакета Ethernet 802.3:

Практически каждой сетевой технологии (вне зависимости от её уровня) соответствует единица передачи данных. Такой единицей данных, передаваемых в сети Ethernet, является кадр.

Стандарт 802.3 определяет семь полей заголовка:

1. Поле преамбулы, состоящее из семи синхронизирующих байтов (каждый байт содержит одну и ту же последовательность битов – ‘b10101010). Преамбула используется для того, чтобы дать время и возможность схемам приемопередатчиков прийти в устойчивый синхронизм с принимаемым тактовыми сигналами;

2. Начальный ограничитель кадра (Start Frame Delimiter – SFD) состоит из одного байта с набором битов ‘b10101011. Данное поле указывает на предстоящий прием кадра.

3. Адрес назначения (Destination Address field) – состоит из 6 байт и содержит физический адрес устройства в сети, которому адресован данный кадр. Значение этого поля может быть уникальным или нет (широковещательный – предназначен для всех устройств сети).

4. Адрес источник (Source address field) – состоит из 6 байт и содержит физический адрес устройства в сети, которое отправило данный кадр. Первый бит адреса отправителя всегда равен нулю.

5. Поле длины/типа протокола следующего уровня (Length/Type field) может содержать соответственно длину или тип кадра в зависимости от используемого формата кадра. В нашем случае данное поле захваченных пакетов (в программе Wireshark) указывало на тип протокола верхнего уровня, которому принадлежит данный кадр. Состоит из двух байтов.

6. Поле данных (Data field) – содержит от 48 до 1500 байт. Если длина поля меньше 48 байт, то используется поле заполнения, которое и обеспечивает определенную минимальную длину поля данных (48 байт). Это обеспечивает корректную работу механизма обнаружения коллизий. Если длина поля данных достаточна, то поле заполнения в кадре не появляется.

7. Поле контрольной суммы (FCS field) – 4 байта, содержащие значение, которое вычисляется по определенному алгоритму (алгоритм циклического избыточного кода с использованием полинома CRC32 ('h04C11DB7)), подсчет начинается с поля Destination Address и заканчивается последним байтом поля данных. Данное поле предназначено для проверки корректности передачи данных, оно формируется на устройстве-отправителе пакета, а станция-получатель при приеме пакета выполняет собственно вычисление контрольной суммы для этого кадра по известному алгоритму, однако вычисление теперь заканчивается после прохождения последнего байта поля контрольной суммы. Таким образом при получении фиксированного заранее известного остатка (C704DD7B) можно сделать вывод о том, что пакет передан без ошибок.

 

2.2 Понятие контрольной суммы, виды, алгоритмы. Cyclic redundancy check (crc). CRC-32-IEEE 802.3 (0x04C11DB7)

Контрольная сумма – некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении. Несмотря на своё название, контрольная сумма не обязательно вычисляется путём суммирования.

Популярность использования контрольных сумм для проверки целостности данных обусловлена тем, что подобная проверка просто реализуема в двоичном цифровом оборудовании, легко анализируется и хорошо подходит для обнаружения общих ошибок, вызванных наличием шума в каналах передачи данных.

Среди простых можно выделить проверку общей чётности (бит четности) и код Хэмминга, среди наиболее распространенными алгоритмами в данное время являются CRC (циклический избыточный код), MD5 (используется на только для проверки целостности данных, но и позволяет получить довольно надежный идентификатор файла) и SHA-1 (алгоритм криптографического хеширования).

Для подсчета контрольной суммы поля FSM кадра Ethernet используется алгоритм CRC32. Данный алгоритм базируется на свойствах деления с остатком двоичных многочленов. Существует несколько вариантов реализации данного алгоритма:

1. Классический (побитовый алгоритм) реализуется с помощью последовательного итерационного сдвига данных в регистре с обратной связью на один бит. Недостатком является низкая скорость работы;

2. Табличный алгоритм, которые при расчете контрольной суммы использует таблицу с предвычисленными значениями на основе образующего полинома. При использовании данного метода используется большой объем памяти, поскольку приходится хранить предвычисленные данные;

3. Матричный алгоритм работает также, как и табличный, за исключением того, что вместо таблицы используется операция умножения выдвинутого вектора на матрицу по модулю 2.

В работе решено было использовать классический алгоритм с выдвижением сразу одного байта. Таким образом вычисление происходит по приходу нового байта данных: пришел байт – пересчитали контрольную сумму. Важно отметить, что алгоритм имеет некоторые входные параметры, которые влияют на результат работы алгоритма, например, значение используемого полинома, начальная инициализация CRC, инверсия конечного результата и инверсия порядка бит в байте и прочее.

Для подсчета контрольной суммы в протоколе Ethernet необходимо начальное значение для регистра, хранящего текущую контрольную сумму как 0xFFFFFFFF. Принятые байты необходимо передавать развернутым, ведь старший бит – на самом деле младший в байте и наоборот. Вычисленная контрольная сумма разворачивается и инвертируется.

 

2.3 Однопортовая\двухпортовая память

Стандартное однопортовое ОЗУ имеет по одной шине адреса, данных и управления и в каждый момент времени обеспечивает доступ к ячейке памяти только одному устройству. В отличие от стандартного в n-портовом ОЗУ имеется n независимых наборов шин адреса, данных и управления, гарантирующий одновременный и независимый доступ к ОЗУ n устройствам.

В двухпортовой памяти имеются два набора адресных, информационных и управляющих сигнальных шин, каждый из которых обеспечивает доступ к общему массиву запоминающих элементов.

Другими словами, одновременное выполнение операций чтения и записи в однопортовая памяти невозможно. А к двухпортовой могут сразу обращаться два устройства, так как она обладает способностью одновременного выполнения операций чтения и записи данных.     

Так как двухпортовая память обеспечивает гораздо лучшее быстродействие, то было решено реализовывать этот вид запоминающих устройств.

 


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.