目录
我们协议栈的某条业务线数据的收发基于TCP连接的,在测试过程中发现,TCP数据的接收与发送各有一次数据“丢失”的问题。我们知道TCP数据的收发是可靠的,不会发生数据丢失的情况,本文将讲的数据“丢失”是出问题时给人的一种假象。下面本文就来详细地讲述一下收发数据失败问题的排查过程。

1、TCP发送数据的“丢失”问题
2.1 问题描述
平台的同事向我们反馈,换了新版本的协议栈后,发送大的消息(发送的是1669个字节的数据)会有概率失败的情况。失败不是说,发送端调用我们协议栈的接口发送数据时接口就返回失败,而是返回了成功,但接收端却并没有收到此消息。
2.2 问题分析
老版本的协议栈和新版本
本文探讨了TCP连接中发送和接收数据时遇到的“丢失”问题,通过问题描述、分析和解决步骤,揭示了其实是缓冲区管理和数据处理错误导致的假象。问题在于发送速度过快导致缓冲区不足,以及特殊产品数据处理引发的解析错误。通过调整发送间隔、增大缓冲区和改进预读机制,成功解决了问题。
订阅专栏 解锁全文
691

被折叠的 条评论
为什么被折叠?



