OMNeT ++ cPacket как std :: bitset для применения кодировки Рида-Соломона

Имея пакет

cPacket *pk

как я могу получить битовое представление этого? Например, в форме

std::bitset<pk->getBitLength()> pk_bits;

Моя конечная цель — применить к пакету схему кодирования, то есть кодирование Рида-Соломона.

0

Решение

Как прокомментировал @rcgldr, простой cPacket сам по себе не содержит никаких данных, по крайней мере, не в том смысле, как это делают реальные пакеты. И это не нужно в большинстве моделей, потому что они работают на более высоком, более абстрактном уровне, что облегчает работу с ними и ускоряет их запуск.

Информация, которая передается между узлами симуляции, — это то, что вы помещаете в поля ваших сообщений (желательно, сделанных на заказ с использованием компилятора сообщений OMNeT ++ из файлов .msg).

Это, однако, полностью не зависит от свойств bitLength / byteLength класса cPacket, который является просто числом, для которого можно установить любое значение для любого сообщения.

Конечно, вы можете выбрать модель реалистичного протокола, добавив в ваше сообщение поля, которые соответствуют реальному (изобразительному) заголовку сетевого протокола, например TCP или IP, или даже что-то, что вы только что создали. Но это по-прежнему не обеспечивает (надежного) доступа к содержимому в виде последовательности байтов, поскольку не всегда тривиально, как отдельные поля должны быть сериализованы в простые октеты.

Для этого, например, в INET предусмотрены отдельные классы * [De] Serializer для ряда пользовательских типов сообщений. Вы можете сделать то же самое со своим, если хотите.

Более простым решением было бы представить любую полезную нагрузку в пакете, добавив std::vector<unsigned char> или даже std::bitset если ты предпочитаешь это. И просто обрабатывайте эту часть отдельно от легкодоступных полей, применяя любую кодировку к ее содержимому.

И, наконец, как и в случае с любым вопросом, например, «как добавить библиотеку шифрования в симуляцию и использовать ее для преобразования пакетов»: вы уверены, что добавляете настоящий побайтовый кодировщик / сериализатор / и т. Д. к моделирование правильный выбор для достижения того, что вы пытаетесь сделать? Я имею в виду, это может быть, и это возможно, но могут быть лучшие / более простые / более быстрые способы. С точки зрения моделирования.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]