一、 TCP三次握手四次挥手
三次挥手
第一次握手:Client将标志位SYN置为1,随机产生一个seq=J,并将该数据包发送给Server,Client进入SYN_SENT(请求连接)状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack序号J+1,随机产生一个值seq=K,并将该数据包发送给Client确认连接请求,Server进入SYN_RCVD(等待对连接请求的确认)状态。
第三次握手:Client收到确认后,检查ack序号是否为J+1,标志位ACK是否为1,如果正确将标志位ACK置为1,ACK序号=K+1,并将该数据包发送给Server,Serve检查ack序号是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED(正在通信)状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
![](https://i-blog.csdnimg.cn/blog_migrate/74551de229b493305874a9026634baca.png)
TCP三次握手:
1.动态生成
2.第三次握手是可以发送一些数据的
3.第一次握手确认客户端的发送功能
第二次握手确认客户端的发送功能和服务器的接收发送功能
第三次握手确认客户端和服务器的发送和接收功能
4.TCP保活计时器
四次挥手
第一次挥手:Client发送一个标志位为FIN包,Seq序号=m,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1(等待回复ack)状态。
第二次挥手:Server收到标志位FIN包后,发送一个标志位ACK给Client,Ac