有人可以推荐一些讨论通信协议设计和编程中常见模式的资源吗?
对于协议设计模式,我正在考虑如何使用分隔符来标记消息的开始/结束,使用转义以便在消息数据中出现分隔符,各种校验和方法的优点/缺点,固定长度与可变长度消息,在消息中表示数据的各种方式(例如明文,小/大端二进制编码)等等。
对于协议编程模式,我指的是编写软件以使用这些协议进行通信时使用的技术。作为示例 - 对于各种协议设计,当数据流暂时被破坏时,存在什么技术在消息边界上重新同步(例如,如果定义了一个消息,则查找下一个消息开始定界符,在输入缓冲区上滑动窗口)寻找格式正确的消息),或者在流中间拾取现有会话?
对于我的项目,我主要关注的是通过不可靠的链接(例如RS-232)与硬件进行通信,因此错误检测和消息框架技术对我来说特别感兴趣,尽管对该主题的一般处理非常好。
我对这个主题的大部分了解是通过查看现有协议以特别方式学习的。我希望能够正式理解我的理解,并希望在此过程中采用一些新技术,并且在培训其他人做这类工作时我可以指出一些东西。
答案 0 :(得分:1)
我发现O'Reilly的BEEP: The Definitive Guide的前几章是对协议设计的一个很好的介绍。
答案 1 :(得分:0)
有许多资源...... PPP是一个:用于串行和放大不可靠的链接,经常使用这个协议。