首页 > 解决方案 > TCP如何处理三次握手期间的数据包丢失?

问题描述

建立连接时,TCP 使用三次握手。

step 1: client send SYN to server
step 2: server send SYN/ACK to client
step 3: client send ACK to server

但是,在步骤 1、2 或 3 中,数据包可能会丢失。
我有3个问题,请帮助我。

  1. TCP如何处理三次握手期间的数据包丢失?
  2. 有什么方法可以模拟丢包问题吗?
  3. TCP自动处理问题还是开发人员也必须处理?

感谢您的任何建议。

标签: networkingtcpnetwork-programming

解决方案


TCP如何处理三次握手期间的数据包丢失?

重传,与任何其他类型的数据包丢失一样。这就是为什么你在握手中有ACK。

有什么方法可以模拟丢包问题吗?

当然可以,但这取决于你的知识。例如,在 Linux 中,可以创建 iptables(防火墙)规则来丢弃一些但不是全部的 SYN 数据包。另请参阅在 Linux 上模拟延迟和丢弃的数据包

TCP自动处理问题还是开发人员也必须处理?

这对开发人员是透明的。最多应用程序连接失败(超时)。


推荐阅读