由于网络延时的原因, TCP重传会导致接收端重复收到数据吗?

客户端发了一次数据, 接收端却接受到多次重复数据. 帮忙分析下原因.

阅读 6.1k
3 个回答

ip层是可能会多收到包, 但是TCP层会扔掉那个已经收到的包, 你的逻辑层也只会收到一次

没有代码和实际环境不好分析。但是理论上来说,TCP本身应该不会发生这种事情,每个数据包都有一个id,重复的id会被过滤掉,所以客户端重发的多个包会以第一次完整接收到的为准。发生这个情况的原因可能在上面的应用层,也就是自己的代码没有写好,比如没有及时清除缓冲区里面已经读取过的数据等等。

ip這一層會
應用層不應該重覆收到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏