繁体   English   中英

高效的数据包类型/传输协议

[英]Efficient Packet types/transfer protocol

在C ++中使用boost :: asio,我正在尝试确定对程序中的数据包进行加密的最佳方法。 我想到了自己按类型编号定义数据包,每个数据包具有不同的固定数据包大小。 系统读取标头(数据列表的条目的类型和数量),并创建适当的结构来接收数据,然后根据接收到的数据做出反应。

但是,当我研究这种方法时,我想知道是否会有一种更简单的方法来完成此任务而不牺牲效率。

这些数据包将通过TCP在不同的应用程序之间发送。 理想情况下,我的目标是使用带宽和CPU最少的应用程序,同时又要尽可能简单地进行修改。 有什么建议么?

TCP使用数据流 ,而不是数据包。 我强烈建议您将数据传输视为数据流而不是数据包序列。 这将使抽象到代码更加容易。 看一下Boost.Serialization或Google Protocol Buffers

Boost.Asio具有SSL加密功能 ,因此对数据流进行加密很简单。 它还有一个使用序列化的示例

您考虑过Google protobufs吗? 尽管它实际上并没有进行加密(您必须自己做),但它确实提供了一种对结构化数据进行编码的方法,使您可以有效地通过网络发送数据。 此外,还有许多语言绑定(C ++,Java和Python不在我的脑海)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM