If a message is lost between the sender and the receiver, reasonable effort must be made to retransmit that message.
Solution: If the sender does not acknowledge a message within a brief interval, write the message and all subsequent messages to a file, and retry the first lost message until it is accepted. At that time, resend all the subsequent messages and remove the file.
If an ack is lost, the original message may be retransmitted. The duplicate must not enter the logs.
Solution: The sender will apply a sequence number to all messages. The receiver will acknowledge and drop all authenticated messages with a sequence number less than the one it expects to see next.
If a message is lost during retransmit, all messages between the lost message and the current message must be retransmitted.
The system must prevent an attacker from adding a forged message to the logs for any system.
The system must prevent an attacker from forging an acknowledgement for a message. While this may not appear to be a big deal, it may result in lost messages in the worst case.
The system must prevent an attacker from discerning the contents of a message.
Solution: Encrypt messages. Blowfish? DES? Rijndael?