Рекомендации по простому проектированию и внедрению генератора сетевых пакетов
Я очень новичок в программировании, так что простите меня, если мой вопрос может показаться очевидным. Мне интересно узнать больше о нетворкинге, хотя у меня никогда не было возможности поучиться в нем. Мне было предложено, что я узнаю много нового о пакетах и генерации пакетов, написав свою собственную программу для генерации простых пакетов с использованием модели OSI, сосредоточившись на уровнях 2, 3 и 4 и беспокоясь об обработке только основных важных протоколов, таких как Ethernet, IPv4, IPv6, TCP и UDP.
Я нашел эту удобную справочную страницу, так что я немного понимаю о различных слоях и их целях. Я просмотрел много источников, таких как Ostinato, Jperf, JNetPCap и т. д. Все это кажется немного более сложным, чем то, что я пытаюсь сделать. Я действительно хочу просто создавать / генерировать пакеты,которые я никогда раньше не видел.
Может ли кто-нибудь объяснить мне, какие компоненты этих исходных примеров будут полезны для меня в качестве примеров, и на какую область я смотрю с моим собственным дизайном и реализациями. Я думал, что, вероятно, буду писать на Java, потому что я больше знаком с ней, имею около полудюжины классов для завершения работы и просто запускаю ее как консольную программу. Я что, сбился с пути?
Кроме того, нужно ли мне будет подключаться к каким-либо библиотекам только для того, чтобы генерировать пакеты? Я был немного смущен всеми зависимостями в некоторых коммерческих генераторах пакетов. Я постоянно вижу некоторые ссылки на libpcap или winpcap, и я не знаю, нужно ли мне об этом беспокоиться?
Просто ищу какое-то направление, чтобы получить меня началась. Спасибо, я действительно ценю это!
Что я уже пробовал:
Я искал в google информацию/инструкции о том, как генерировать пакеты. Большая часть информации, которую я нашел, касается приемного конца или использования сниффера. Может быть, многое из того, что я вижу, имеет отношение к делу, но я просто не понимаю этого.
Я смотрел на эти ресурсы:
Справочное руководство: Урок 1: эталонная модель взаимосвязи открытых систем (OSI) [^]
Остинато: http://ostinato.org[^]
Утилит jperf: github.com/AgilData/jperf/tree/master/src/main/java/org/jperf[^]
JNetPCap: jnetpcap.com/examples/sendpacket[^]