当前位置:网站首页>7.TCP的十一种状态集
7.TCP的十一种状态集
2022-07-02 05:11:00 【Wangjiachenga】
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状态的连接过多,新的连接进不来。
边栏推荐
- 摆正元素(带过渡动画)
- 黑马笔记---Map集合体系
- Practical problem solving ability of steam Education
- Collectors. Groupingby sort
- 数学问题(数论)试除法做质数的判断、分解质因数,筛质数
- Pytest learning ----- pytest Interface Association framework encapsulation of interface automation testing
- Mysql基础---查询(1天学会mysql基础)
- 农业生态领域智能机器人的应用
- Using Kube bench and Kube hunter to evaluate the risk of kubernetes cluster
- CubeMx DMA笔记
猜你喜欢

The underlying principle of go map (storage and capacity expansion)

C# 基于MQTTNet的服务端与客户端通信案例

How do I interview for a successful software testing position? If you want to get a high salary, you must see the offer

How to configure PostgreSQL 12.9 to allow remote connections

将光盘中的cda保存到电脑中

4. Flask cooperates with a tag to link internal routes

Fabric.js IText 手动设置斜体

数据库问题汇总

黑马笔记---Map集合体系

Super detailed pycharm tutorial
随机推荐
2022阿里巴巴全球数学竞赛 第4题 虎虎生威(盲盒问题、集卡问题)解决思路
Lm09 Fisher inverse transform inversion mesh strategy
Simple and practical accounting software, so that accounts can be checked
解析少儿编程中的动手搭建教程
Leetcode basic programming: array
Fabric.js IText 上标和下标
【pyinstaller】_get_sysconfigdata_name() missing 1 required positional argument: ‘check_exists‘
数学问题(数论)试除法做质数的判断、分解质因数,筛质数
函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因
JS interview collection test question 1
Using Kube bench and Kube hunter to evaluate the risk of kubernetes cluster
4. Flask cooperates with a tag to link internal routes
Leetcode18题 【四数之和】递归解法
视差特效的原理和实现方法
Disable access to external entities in XML parsing
CubeMx DMA笔记
Pyflink writes MySQL examples with JDBC
Fabric.js 激活输入框
Black Horse Notes - - set Series Collection
创新永不止步——nVisual网络可视化平台针对Excel导入的创新历程