三次握手
第一次握手—客户端给服务端发送一个连接请求信息,发送SYN报文,进入SYN_SENT状态
第二次握手—服务端收到客户端发送的连接请求后,给客户端发送一个ACK包和一个SYN包,进入SYN_RECE状态
第三次握手—客户端收到服务端发给的ACK包和SYN包之后,向服务端发送一个ACK包,发送完毕后,服务端和客户端均进入ESTABLISHED状态,至此,服务端开始给客户端发送数据
四次挥手
第一次挥手—客户端发送链接释放报文,并且停止发放数据。进入结束等待1阶段
第二次挥手—服务端收到客户端发送的链接释放报文,给客户端发送一个确认报文,进入关闭等待状态
第三次挥手—客户端收到服务端发送的确认报文,进入终止等待状态,等待服务端发送链接释放报文
第四次挥手—服务端发送完所有的数据之后, 向客户端发送链接释放报文并断开连接,客户端收到服务端发送的释放报文之后也断开连接,至此,四次挥手结束
举个例子来说明一下:
小明给小红打电话,
小明:喂?可以听见吗?(一次握手)
小红:嗯,我可以听见,你呢?(二次握手)
小明:我也可以,开始说话。(三次握手)
小明已经把要说的话说完了,之后
小明:我已经说完了(一次挥手)
小红:好,我也快说完了,继续说(二次挥手)
小明:等待小红说完她要说的话(二次挥手)
小红:我也说完了,挂了电话(三次挥手)
小明:等小红挂了电话之后也把电话挂了(四次挥手)
三次握手有缺陷,可以被黑客利用,进行拒绝服务攻击