zoukankan      html  css  js  c++  java
  • 2020-12-31:tcp三次握手,最后一次失败,网络会怎么样?

    福哥答案2020-12-31:
    [答案来自此链接:](https://www.zhihu.com/question/437249958)
    第一次握手:建立连接时,客户端发送syn包(syn=a)到服务器,并进入SYN_SEND状态,等待服务器确认;
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=a+1),同时自己也发送一个SYN包(syn=b),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=b+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据。

    如果第三次握手失败,服务器会定时重新发送SYN+ACK,重传次数根据/proc/sys/net/ipv4/tcp_synack_retries来指定,默认是5次。如果重传指定次数到了后,仍然未收到ACK应答,那么一段时间后,server自动关闭这个连接。但是client认为这个连接已经建立,如果client端向server写数据,server端将以RST包响应。
    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1609369813https://user.qzone.qq.com/3182319461/blog/1609369813)

  • 相关阅读:
    Docker PHP 扩展配置
    PHP 打水印功能
    MYSQL的主从复制
    CentOS7开启防火墙及特定端口
    非常全面的讲解Hosts文件
    STL的erase()陷阱-迭代器失效总结
    scons使用
    SecureCRT 使用技巧
    atomic, spinlock and mutex性能比较
    内存池的实现(二)
  • 原文地址:https://www.cnblogs.com/waitmoon/p/14218846.html
Copyright © 2011-2022 走看看