在qos=1的原理描述中,会出现前后两条全新消息的packetId一样的情况,导致接收方无法根据dup字段判断重复消息的现象。所以我想问这个packetId为什么会出现前后两条新消息一致的情况?
在一个连接周期内的某个一个方向,packetId 是递增的。如果 packetId 已经超过协议里规定的最大值(0xFFFF),那么将会从 1 开始。
所以如果有一个 packetId = N 的消息一直在重发却没有被接收端确认,发送方继续发送其他消息的时候,可能会复用这个 packetId = N。这是我能想到的情况。