• TCP的十一种状态集


    TCP三次握手过程中的五种状态

    在这里插入图片描述
    三次握手过程 (5种状态)

    客户端 和 服务端 初始状态: closed

    第一个历程: 服务端状态发生变化
    closed --> listen 创建网络socket
    第二个历程: 客户端状态发生变化
    closed --> syn_sent 完成了第一次握手过程 发送了syn
    第三个历程: 服务端状态发生变化
    listen --> syn_rcvd 接收第一次握手请求, 并做出回复 发送 syn ack
    第四个历程: 客户端状态发生变化
    syn_sent --> established 接收第二次握手回复的信息, 并发送最后确认信息 ack
    第五个历程: 服务端状态发生变化
    syn_rcvd --> established 接收第三次握手回复的确认信息

    syn泛洪攻击:
    SYN攻击利用的是TCP的三次握手机制,攻击端利用伪造的IP地址向被攻击端发出请求,
    而被攻击端发出的响应 报文将永远发送不到目的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源,
    如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的目的。
    就是让服务端的状态一直处于syn_rcvd的状态,消耗服务端的资源

    TCP四次挥手过程中的六种状态

    正常情况是以下五种状态:
    在这里插入图片描述

    特殊情况:
    在这里插入图片描述

    四次挥手过程 (6种状态)
    客户端 和 服务端 初始状态为: established
    第一个历程: 服务端状态发生变化
    established --> fin_wait1 完成第一次挥手过程 发送 fin ack
    第二个历程: 客户端状态发生变化
    established --> close_wait 接收第一次挥手信息 并发送 ack信息
    第三个历程: 服务端状态发生变化
    fin_wait1 --> fin_wait2 接收第二次挥手信息
    ====================================================
    补充: 特殊情况
    服务端直接接收到了 fin 和 ack 第三次挥手信息 ,直接由closing 状态替换fin_wait2状态,过渡到time_wait 状态
    fin_wait1 --> closing
    ====================================================
    第四个历程: 客户端状态发生变化
    close_wait --> last_ack 完成第三次挥手过程 发送 fin ack
    第五个历程: 服务端状态发生变化
    fin_wait2 --> time_wait 完成第四次挥手过程 发送 ack
    第六个历程: 客户端状态发生变化
    last_ack --> closed 接收第四次挥手信息
    第七个历程: 服务端状态发生变化
    time_wait --> closed 等待一段时间(60s 90s 120s)

    补充:优化可以针对系统的time_wait进行优化,防止time_wait状态的连接过多,新的连接进不来。

  • 相关阅读:
    基于数组结构刷题
    一文带你理解@RefreshScope注解实现动态刷新原理
    3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
    DDS层架构组成
    设计模式——16. 迭代器模式
    【深度学习】U-net网络结构搭建 | pytorch
    finereport报表制作总结:每页既有页内合计,又有总合计,包含解决页合计,总合计最后一页重复的问题
    JVM的组成
    SVN基本使用笔记——广州云科
    虚拟局域网VLAN
  • 原文地址:https://blog.csdn.net/Wangjiachenga/article/details/125493711