知识卡片

网络错误处理的关闭重连与消息重发

专业/工作 · 512.b.2

内容

Simple 实现处理网络异常(错误码、magic 校验失败、crc 校验不一致等)的策略很朴素:直接关闭出问题的 socket,重新建立连接,并把之前发出但没有收到 ACK 确认的消息重新放回发送队列等待重发。这依赖消息带有序号(out_seq/in_seq)和 ACK 确认机制,才能安全地判断哪些消息需要重发而不会重复处理。”出错就重连+基于确认号重发未确认消息”是可靠传输在应用层的常见兜底手法,本质上是把 TCP 连接级的可靠性问题转移到应用层消息级来处理,换取连接可以随时安全重建的能力。

参考来源

《Ceph源码分析》第3章《Ceph网络通信》