我正在研究我所知道的两种不同TCP消息帧方法的优缺点.
EG:用户[用户名] \n密码[密码] \n
EG:[MessageLength]用户[用户名] [MessageLength]密码[密码]
这两种方法都允许传输消息帧,消息帧的大小可以变化并包含要解释的字节流.更高级别的消息结构或协议不相关.
因此,我将注意力集中在可扩展性和性能效率上.我发现自己需要运行基准测试,看看哪种方法可以获得最高的效率吞吐量,而不涉及任何消息处理.
我目前的想法,无论如何我都不是专家.
在接收例程期间,定界消息帧的效率会降低,因为需要检查流中的每个字节的消息帧定界符.长度 - 前缀消息帧将始终读取前缀字节,并且消息帧流的其余部分将直接进入缓冲区而不进行处理,直到收到整个消息帧.
其中长度前缀消息帧在发送例程期间具有较低的效率,作为在消息本身之前发送的消息前缀.
我能想到的其他因素包括:
这个主题的任何亮点都很棒.我发现很难找到有关TCP的消息帧结构之间差异的良好资源.