Kasan Blog

TCP三次握手

第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;

第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;

第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。

简单理解三次握手就是客户端与服务端之间建立通信时进行相互确认。

客户端: SYN = x 你在不?

服务端: SYN = Y ,ACK = x + 1 在的,你在不?

客户端: ACK = Y + 1 在的


s


TCP四次挥手

第1次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态;

第2次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态;

第3次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态;

第4次挥手:客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。

客户端:FIN = 1, seq = x(x由客户端随机生成) 我要离开了

服务端:ACK = x+1, seq = y(y服务端随机生成) 知道了,等我一会

服务端:ACK = x + 1,seq = z,(z服务端随机生成) 我好了,你可以离开了

客户端:ACK = z + 1,seq = h,(h为客户端随机生成) 好的,拜拜