如何通过TCP / IP破坏校验和

时间:2019-05-23 04:26:36

标签: python tcp checksum crc modbus-tcp

我正在通过TCP / IP连接从站,通过使用Wireshark软件,一切看起来都很好,我可以验证CRC校验和始终有效为“良好”,但是我想知道如何破坏CRC校验和,因此可以看到校验和“无效”。关于如何完成此操作的任何建议,可能是python代码,或者可能的话,采用其他任何方式。

谢谢大家 塔里克

2 个答案:

答案 0 :(得分:1)

我认为您使用的是计算CRC的库。如果要模拟错误的CRC条件,可以不使用它就形成Modbus数据包

答案 1 :(得分:0)

首先,请注意Modbus TCP不包含任何CRC,错误控制是通过TCP协议本身的适当层进行处理的。例如,查看此帖子:Can you keep a CRC in a Modbus TCP message?

如果您想处理Modbus RTU CRC错误,可以看看MinimalModbus(Python)及其单元测试MiniMalModbus Unit Tests

如果您更喜欢简单的东西,则可能需要看一下ModbusPoll,您可以在其中定义一个从站并模拟CRC错误(我认为仅适用于Modbus RTU)。有30天的试用版。

据我所知,我要使用的其他库pymodbus和libmodbus不可能开箱即用,但是编写类似于MinimalModbus单元测试的东西应该并不难。