专业用语解释:
SYN(同步序列编号) 表示进行一个连接请求
ACK(确认字符) 接收站发给发送站的一种传输类控制字符
seq(序列号) 跟踪数据的作用
ack(确认编号) 上一次远端主机传来的seq+1
FIN(释放,关闭) 表示进行一个结束请求
"三次握手"(客户端————服务器(正在运行))
第一次握手
客户端给服务器发送一个连接请求(SYN)(报文),表示申请与服务器进行连接,并且随机生成一个序列号(seq)发送到服务器。
第二次握手
当服务器接收到信号会给客户端一个回馈(SYN,ACK)表示确认并接收与客户端的连接,确认编号(ack)的值将在客户端发送的序列号基础上seq+1,并且自己也随机生成一个序列号(seq)反馈给客户端。
第三次握手
客户端收到信号后回应给服务器(ACK)确认收到,同样客户端的确认编号(ack)的值将在服务器发送的随机序列号基础上seq+1,序列号在第一次发送的基础上+1。
(实现数据传输的过程)
"四次断开"(客户端————服务器(正在运行))
第一次断开
客户端向服务器发起一个关闭请求(报文)(FIN),并且客户端会停止向服务器发送数据,同时随机生成一个序列号(seq)发送到服务器。
第二次断开
服务器进行回应(ACK)表示确认收到报文信号,同时确认编号(ack)的值在客户端发送的序列号基础上seq+1, 服务器也会随机生成一个序列号(seq)反馈给客户端。
(此时服务器的状态为半关闭状态)
第三次断开
客户端接收到信号报文之后处于等待状态,服务器再次给客户端发送信号(FIN)请求关闭客户端和服务器的连接,(ACK)确认客户端已经没有向服务器发送数据,同样服务器会随机生成一个序列号(seq)发送给客户端。
第四次断开
客户端接收到第二次信号后回馈(ACK)表示已经接收并确认关闭请求,同时确认编号(ack)的值在服务器发送的第二个报文序列号基础上seq+1。
(服务器接收到客户端发出的信号后,表示客户端和服务器的连接完全断开和关闭)