7.TCP的十一种状态集

本文详细介绍了TCP的三次握手和四次挥手过程,包括每个过程中涉及的五种和六种状态变化。同时,提到了SYN攻击的概念,即通过伪造IP导致服务端资源耗尽。在挥手过程中,还讨论了特殊情况下的状态转换。此外,还提及了time_wait状态的优化问题,以防止过多的time_wait连接影响新的连接建立。
摘要由CSDN通过智能技术生成

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状态的连接过多,新的连接进不来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值