TCP三次握手和四次挥手
在了解TCP三次握手和四次挥手之前我们先来了解一下TCP的标志位,这样有助于我们理解TCP三次握手和四次挥手的过程
TCP标志位:
URG:表示TCP包的紧急指针域有效,用来保证TCP连接不被中断
ACK:表示确认序号有效
PSH:表示Push操作; 所谓Push操作就是指在数据包到达接收端以后, 立即传送给应用程序,不在缓冲区排队
RST:表示连接复位请求; 用来复位那些产生错误的连接
SYN:表示同步序号, 用来建立连接;SYN和ACK搭配使用,请求连接时,SYN=1,ACK=0;响应连接时,SYN=1,ACK=1
FIN:表示发送端已经达到数据末尾,也就是说双方的数据传送完成,发送FIN标志位的TCP数据包后,连接将被断开
TCP三次握手:(如图)
1、建立连接时,主机A发送请求包(SYN=1)到主机B,并进入SYN_SEND状态,等待主机B确认
2、主机B收到SYN包,确认是主机A的请求包(ACK=x+1),向主机A发送一个包(SYN=1,ACK=1),主机B进入SYN_RECV状态,也正是主机B进入SYN_RECV(阻塞)所有才有了DDOS攻击
3、主机A收到主机B的回复包(ack=y+1),向主机B发送确认包(ACK=1),主机A和主机B进入ESTABLISHED状态
注:seq是序列号,是为了以后传送数据时使用
TCP四次挥手:(如图)
1、主机A发送一个FIN,用来关闭主机A到主机B的数据传送
2、主机B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1
3、主机B关闭与主机A的连接,发送一个FIN给客户端A
4、主机A发回ACK报文确认,并将确认序号设置为收到序号加1
时间: 2024-10-09 00:05:15