TCP/IP 三次握手
第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 完成后,客户端和服务器开始传送数据。
TCP的连接的拆除需要发送四个包,任何一方执行close()操作即可产生挥手操作,以客户端为例
第一阶段 :
1.客户机发送完数据之后,向服务器发送一个FIN数据段,序列号为i;
2.服务器收到FIN(i)后,返回确认段ACK,序列号为i+1,关闭服务器读通道;
3.客户机收到ACK(i+1)后,关闭客户机写通道;
第二阶段 :
1.服务器发送完数据之后,向客户机发送一个FIN数据段,序列号为j;
2.客户机收到FIN(j)后,返回确认段ACK,序列号为j+1,关闭客户机读通道;
3.服务器收到ACK(j+1)后,关闭服务器写通道。