如题,一个HTTP请求被切割成多个tcp包,发送到对端后,会在接收缓冲区拼接后才被读取。
如果过程中有某个包丢失了,缓冲区里的其他包拼不到一起,应用层会直接读取,还是等到丢失的包重发后拼接完再获取?
如果说应用层会直接读取丢失的包之前的其他包,那应用层读取到不完整的HTTP请求会直接报错? 还是等到那个丢失的包重发后且接收到后,依然可以读取到完整的HTTP请求!
如题,一个HTTP请求被切割成多个tcp包,发送到对端后,会在接收缓冲区拼接后才被读取。
如果过程中有某个包丢失了,缓冲区里的其他包拼不到一起,应用层会直接读取,还是等到丢失的包重发后拼接完再获取?
如果说应用层会直接读取丢失的包之前的其他包,那应用层读取到不完整的HTTP请求会直接报错? 还是等到那个丢失的包重发后且接收到后,依然可以读取到完整的HTTP请求!
3 回答2.3k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读
988 阅读
797 阅读
需要理解tcp协议为什么被称为可靠连接,以及它的各种机制保证数据从发送方到接收方不遗漏,不重复,不乱序。