1.三次握手四次挥手
SYN = 1,代表这个数据包是客户端和服务器之间连接数据包。
ACK = 1,代表这个数据包是一个答复包,用于确认收到的数据包。
FIN = 1,说明这是一个单方面结束连接的数据包
RST = 1,说明TCP连接出现异常强制断开连接。
ack=上一次的seq+1,+1表示上一段发送的消息成功接收
seq为服务器初始化的一个数,代表数据包在服务器连接中发送的所有数据包
1.1何为三次握手?
三次握手为“建立连接”
(1)客户端-------->服务器发送一段建立连接请求的SYN
(2)服务器收到SYN后,发出一个SYN表示已收到,又给客户端一个同意建立连接的ACK
(3)客户端收到服务器的回复后,双方达成一致建立连接
1.2何为四次挥手?
四次挥手为“解除连接”
(1)客户端-------->服务器发送一段解除连接请求的SYN
(2)服务器收到SYN后,发出SYN告诉客户端已经收到
(3)然后再次发出一个ACK表示同意解除
(4)由1和3中的信息达成一致,双方解除连接
1.3为何握手三次,挥手则是四次?
当客户端发起解除连接请求时,客户端不能关闭,需要等待服务器回应;
服务器收到请求后,首先表示同意;
此时服务器还有数据未完成发送给客户端,他需要完成发送才可发送FIN=1结束连接并且还要等待客户端回应,避免FIN数据包失效
客户端再次向服务器发送ACK确认的答复包。此时连接才真正关闭