TCP/IP三次握手
TCP/IP协议是传输层的一个面向连接的安全可靠的传输协议,三次握手的机制是为了能够建立一个安全可靠的连接。
- 第一次握手是由客户端发起,客户端向服务端发送一个报文SYN=1,这里的seq是随机生成的,为初始seq;
- 第二次握手是服务端接收到客户端发来的建立连接的请求,会给客户端返回报文SYN=1,seq=20000,并发送确认消息包ACK=1,ack=10001(seq+1);
- 第三次握手是客户端收到服务端的确认消息包后,会确认可以建立连接,但是服务端并不知道客户端是否收到消息,所以客户端要向服务端返回消息确认包,确认自己收到消息,ACK=1,ack=20001;
TCP/IP四次挥手
TCP/IP四次挥手的机制是为了能够安全的断开客户端和服务端的连接:
- 第一次挥手是客户端向服务端发送报文FIN=1,seq=25368(这里的seq不是随机生成的,是建立连接之后多次报文发送后产生的);用于请求服务端断开连接;
- 第二次挥手是服务端向客户端发送确认消息包ACK=1,ack=25369;因为服务端不是立即接收到客户端的断开连接请求就立刻断开连接,但是不能让客户端长期处于等待状态,所以先向客户端发送确认消息包,确认已经收到消息;
- 第三次挥手是服务端确定可以断开与客户端的连接时,会向客户端发送报文FIN=1,seq=10568;
- 第四次挥手是客户端收到服务端的断开确认消息后,会给服务端发送确认消息包ACK=1,ack=10569;