第一次握手
客户端主动发送 syn=1,随机产生sql number = x 的数据包到服务器(服务器由SYN=1知道客户端要求建立连接)
第二次握手
服务器收到请求后要确认联机信息,向客户端发送SYN=1,ACK=1,随机产生seq number=y, ack number = 客户端的 seq number +1 (x+1)
第三次握手
客户端收到后检查 ack number 是否正确, 即第一次发送的seq number +1,以及ack 是否为 1,
若正确客户端会再次发送ack number = y +1 (seq number +1)
seq number = 服务端 ack number(x+1) 也是第一次 seq number +1 ,服务端收到后确认 seq number 值 与ACK = 1 ,然后连接建立成功。
ACK 有确认应答 , SYN 同步序列号
简单来说
1. 主机A 向 主机B 发出连接请求数据包
2. 主机B 向 主机A 发出同意连接和要求同步的数据包
3. 主机A 在发出一个数据包用来向 主机B 确认要求同步
TCP断开连接进行四次分手
1. 当 主机A 完成数据的传输后,将控制为FIN置1,提出断开请求
2. 主机B 收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
3. 由 主机B 再提出反方向的关闭请求,将FIN置1(确保手头工作完成,以免数据丢失)
4. 主机A 对 主机B 的请求进行确认 将ACK置1,双向关闭结束。