博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三次握手的第三个ACK包丢了,TCP的处理方式
阅读量:7049 次
发布时间:2019-06-28

本文共 463 字,大约阅读时间需要 1 分钟。

众所周知,TCP建立采用的是三次握手。最近在看论文的时候,突然想到,如果第三个ACK报文丢失了,TCP建立是否还会成功?TCP是如何处理的呢?在网上搜了一圈,看到了这篇文章:

三次握手的第三个ACK包丢了——客户端认为连接建立,写数据时,会触发RST  

三次握手的第三个ACK包丢了——客户端认为连接建立,写数据时,会触发RST - 无影 - 激情、专注、坚持、思考
 
            当Client端收到Server的SYN+ACK应答后,其状态变为ESTABLISHED,并发送ACK包给Server;
 
            如果此时ACK在网络中丢失,那么Server端该TCP连接的状态为SYN_RECV,并且依次等待3秒、6秒、12秒后重新发送SYN+ACK包,以便Client重新发送ACK包。
           
             Server重发SYN+ACK包的次数,可以通过设置/proc/sys/net/ipv4/tcp_synack_retries修改,默认值为5。
             
             如果重发指定次数后,仍然未收到ACK应答,那么一段时间后,Server自动关闭这个连接。
             但是Client认为这个连接已经建立,如果Client端向Server写数据,Server端将以RST包响应,方能感知到Server的错误

转载地址:http://fapol.baihongyu.com/

你可能感兴趣的文章
从旅行箱到旅行美学品牌,ITO获数千万A轮融资
查看>>
Ant Design 3.16.0 发布,企业级 UI 设计语言
查看>>
less学习-混合
查看>>
Fast特征点的寻找和提取
查看>>
SpringBoot抛出ContextPath must start with xx and not end with xx异常
查看>>
JDK11新特性解读
查看>>
用JAVA写一个冒泡排序
查看>>
【网络新功能】NAT网关和弹性公网IP一键组合购买,开通效率提升一倍
查看>>
03.设计模式-单例模式
查看>>
轻松搞定RabbitMQ1:RabbitMQ与AMQP协议简介
查看>>
MySQL主从同步报error 1236
查看>>
php中一些提高性能的技巧
查看>>
前端开发——模块化(css模块化开发)
查看>>
mysql关于ibdata文件的理解
查看>>
Redis未授权访问漏洞的利用及防护
查看>>
SQL必备知识点
查看>>
一篇入门 -- Scala
查看>>
文件包含
查看>>
如何学会编辑文章快速收录?
查看>>
redis第三步(频道订阅和消息发布)
查看>>