UDP对即时通讯协议设计的启示

UDP特点
(1)不保证报文可达,即可能丢失;
(2)不保证报文正序,即可能乱序;
(3)不保证报文不重,即可能可重复;

即时通讯(InstantMessaging, IM)应用层协议有与UDP类似的问题,于是即时通讯应用层协议设计上应该有以下机制已解决上述问题:
(1)确认机制,使用ACK保证消息可达;
(2)序列号机制,使用seq保证消息顺序;
(3)时间戳机制,使用timestamp去重;

序列号配合应用层确认机制解决消息丢失,顺序问题;
用时间戳标识唯一的一条消息,客户端可用来实现消息去重。

注:理论上已经证明,再完美的IM系统也不能保证消息既不丢失,也不重复。
为了保证消息不丢失,必须使用超时,确认,重传机制。

评论关闭。