三次握手
1.客户端先发送SYN请求建立连接,并告诉服务器发送数据的序列号syn=i;
2.服务器端收到SYN后发送ACK(ack=i+1)将客户端发来的序列号加一来应答,同时发送SYN并发送序列号syn=j 给客户端;
3.客户端收到服务器发来的ACK后,发送ACK(ack=j+1)将服务器发来的序列号加一来应答,此时连接成功.
四次挥手:
1.客户端发送FIN()来请求释放连接,并发送序列号i,此时数据发送完毕需要关闭连接。称为主动关闭
2.服务器收到FIN后发送Ack(ack=i+1)将客户端发送的序列号加一来应答,在该进程接收的其他所有数据之后添加文件结束符(end-of-file);
3.过一段时间(处理未发送完的数据)数据数据处理完后,接收到文件结束符的进程调用close关闭套接字,这导致它的TCP也发送FIN(fin = j)请求,并发送序列号j给服务器;
4.客户端收到服务器的连接释放报文后,发送将服务器发送的序列号加一后发送ACK应答;
此时连接成功