networking - 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个问题,请帮助我。
- TCP如何处理三次握手期间的数据包丢失?
- 有什么方法可以模拟丢包问题吗?
- TCP自动处理问题还是开发人员也必须处理?
感谢您的任何建议。
解决方案
TCP如何处理三次握手期间的数据包丢失?
重传,与任何其他类型的数据包丢失一样。这就是为什么你在握手中有ACK。
有什么方法可以模拟丢包问题吗?
当然可以,但这取决于你的知识。例如,在 Linux 中,可以创建 iptables(防火墙)规则来丢弃一些但不是全部的 SYN 数据包。另请参阅在 Linux 上模拟延迟和丢弃的数据包。
TCP自动处理问题还是开发人员也必须处理?
这对开发人员是透明的。最多应用程序连接失败(超时)。
推荐阅读
- c++ - 指向成员变量的指针作为静态成员
- json - 从 osmbuildings.org 数据站点检索 JSON 数据
- android - 在活动 Java 代码中包含 RecycleViewsHolders
- python - 拒绝两个单词之间有空格的字符串
- vb.net - vb.net 如何获取文本文件的文件名?
- docker - 启动我的 dockerized laravel 应用程序时出现服务器错误(500)
- swift - xCode Like-button 不会在表格单元格中创建 (EXC_BAD_ACCESS (code=2, address=0x7fff86e8d750))
- javascript - 开玩笑在服务中模拟 mongodb 记录
- javascript - 带有子组件的 Blazor 页面:如何从行 @onclick 方法按钮传递当前 HTML 表格行索引或 Vairable
- python - Using WriteToBigQuery FILE_LOADS in a streaming pipeline just creates a LOT of temporary tables (python SDK)