2条回答 默认 最新
yun6853992 2022-01-25 15:28关注个人理解,理性参考:
以前思考过tcp粘包和半包的问题,当时总觉得tcp不会有类似的包的问题,后来才理解,需要在应用层做一些协议的处理来规避一些问题。
==》因为底层协议,MTU限制等关系,tcp会做拼包(多个包组一个包),拆包(一个包拆多个包的处理),
==》而我们都知道,tcp是可靠的流式传输,他可以有序的,可靠得接收到发送的数据。
==》而tcp又有fd(五元组)之说,每个连接对应一个特定得fd,每个fd又对应一个特定得发送缓冲区和接收缓冲区。
==》一个连接有序,可靠接收到得数据,只是按照原来发送顺序,依次放在了这个缓冲区中而已。
==》那么,如何保证数据得完整性,是不是可以理解为我们对这个缓冲区中相关接收到数据得处理逻辑?
==》进而,是不是应该在应用层定义一些适当得协议,以及合理得取数据逻辑,来处理粘包,半包问题,以保证数据得完整性?解决 无用评论 打赏 举报