2011-01-21 5 views
1

Использование boost :: asio в C++, я пытаюсь определить лучший способ шифрования пакетов в моей программе. Я подумал о том, чтобы определить пакеты самостоятельно, по номеру типа, каждый с разными фиксированными размерами пакетов. Система считывает заголовок (тип и количество записей для списков данных) и создает соответствующую структуру для приема данных, затем реагирует в соответствии с полученными данными.Эффективные типы пакетов/протокол передачи

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

Эти пакеты должны быть отправлены между различными приложениями через TCP. В идеале, я стараюсь использовать оба приложения, используя как минимум пропускную способность и процессор, насколько это возможно, а также максимально просто модифицировать. Какие-либо предложения?

+0

Я удалил тег 'packet' и' packets' и добавил 'tcp'. –

ответ

1

TCP использует потоков данных, а не пакетов. Я настоятельно рекомендую думать о вашей передаче данных как о потоке данных, а не о последовательности пакетов. Это упростит абстрагирование вашего кода. Взгляните на Boost.Serialization или Google Protocol Buffers.

Boost.Asio имеет SSL-шифрование capabilities, поэтому тривиально шифровать поток данных. Он также имеет example с использованием сериализации.

0

Считаете ли вы, что google protobufs? Хотя на самом деле это не шифрование (вы должны сделать это сами), оно обеспечивает способ кодирования структурированных данных, позволяющих эффективно отправлять его по сети. Кроме того, для него существует множество языковых привязок (C++, Java и Python с головы).

Смежные вопросы