一、规则中的名词含义
SYN:同步位,SYN=1,表示进行一个连接请求。
ACK:确认位,ACK=1,表示确认有效;ACK=0,表示确认无效。
seq:随机序号,用于确认标识(在连接成功后的数据传输中,表示发送了多少数据)。
ack:确认号,对方发送的随机序号+1,表示确认接受到了请求(在连接成功后的数据传输中,表示接受了多少数据)。
FIN:同步位,FIN=1,表示进行一个关闭请求(断开连接)。
二、TCP协议的作用
提供可靠的、面向连接的数据传输服务。TCP通过对每一份数据包附加序号、确认、重传、和流量控制等控制信息,确保数据传输的顺序性、可靠性和高效性。
三、TCP“三次握手”规则示意图和说明
1、第一次握手:客户端向服务器发送一个SYN=1连接请求和一个随机序号seq=x,此时客户端不知道自己的发送和接受是否正常。
2、第二次握手:服务器接受到客户端的请求,为对客户端做出响应,也向客户端发送一个SYN=1连接请求,并通过发送ACK=1,告诉客户端,其连接请求有效和ack+1,告诉客户端可以进行连接;以及一个随机序号seq=y。此时,服务器只知道自己的接受正常,不知道自己的发送是否正常。
3、第三次握手:客户端得到了服务器的响应,也对服务器做出响应,通过发送ACK=1,告诉服务器收到了请求且有效;和ack=y+1,告诉服务器可以进行连接;以及随机序号seq=x+1。此时,客户端和服务器都知道自己的发送和接受都正常。于是,客户端和服务器就建立起了连接。
四、TCP“四次挥手”规则示意图和说明
1、第一次挥手:客户端主动发送一个FIN=1关闭连接请求,并带上一个随机序号seq=x给服务器。
2、第二次挥手:服务器收到客户端的请求,对客户端做出响应,发送出ACK=1,ack=x+1,seq=y(x与y是不同的随机数),告诉客户端接受关闭连接请求。此时,服务器可能会继续向客户端发送数据。
3、第三次挥手:为了彻底关闭连接,服务器也向客户端发送FIN=1关闭连接请求和ack=x+1,ACK=1,seq=z告诉客户端自己已停止发送数据。
4、第四次挥手:客户端对服务器做出最后的响应,向服务器发送ACK=1,ack=z+1,seq=x+1,告诉服务器接受关闭连接请求。最后,间隔一段时间,客户端与服务器将彻底断开连接。