简单可靠传输与高级组件编程
1. 简单可靠传输协议
简单可靠传输协议是确保消息可靠传递的基础。该协议使用两种类型的数据包:消息传输包(reliable_msg_t)和确认包(ack_msg_t)。消息发送时带有一个“cookie”,每次传输时“cookie”都会改变,并且会重复发送消息,直到收到带有相同“cookie”的确认消息。传输不会重叠,即只有在消息 1 得到确认后,才会开始消息 2 的传输。
在接收端,会检测重复消息(通过相同的“cookie”来识别),并在将消息传递给上层之前抑制重复消息。但即使是重复消息也会被确认,因为之前的确认消息可能丢失。
以下是数据包的定义:
typedef nx_struct { nx_uint8_t cookie; nx_uint8_t data[]; } reliable_msg_t; typedef nx_struct { nx_uint8_t cookie; } ack_msg_t;2. Java 中的可靠传输实现
ReliableMoteIF类实现了简单可靠消息传输协议的 Java 版本。它使用mig生成AckMsg和ReliableMsg,以便分别构建和解码ack_msg_t和reliable_msg_t数据包。同时,使