三次握手:
定义:
三次握手是指TCP/IP协议下,客户端和服务器为了相互连接进行的三次交互过程。
具体流程:
1.第一次握手:客户端发送一个SYN=1的数据包,用来表示”请求建立连接‘,并生成一个序号seq=1,客户端进入SYN_SEND状态等待服务器确认。
2.第二次握手:服务器接收到SYN数据包之后,必须确认SYN=1,发送ASK=1(确认序号有效)序号seq=y(服务器返回的序号),ask=x+1(下次接受的客户端的序号为x+1),服务器进入SYN_RECV状态。
3.第三次握手:客户端接收到服务器的SYN+ACK包,向服务器发送确认包ACK=1,seq=x+1(客户端的数据序号起始位置),ack=y+1(下一次服务端序号的起始位置),客户端和服务端都进入ESTABLISHED状态,完成三次握手。
四次挥手:
定义:
四次挥手是指TCP/IP协议下,客户端和服务器为了中止连接进行的四次交互过程。
具体流程:
1.第一次挥手:客户端发送断开连接的请求,FIN=1(断开请求),随机产生序号seq=x。
2.第二次挥手:服务器接收到消息,发送ACK=1(确认收到消息),ack=x+1(确定序号)。
3.第三次挥手:服务器发送FIN=1(关闭连接)。
4.第四次挥手:客户端接收到消息,发给服务端ACK=1,ack=x+n+1,随后服务器断开连接。
作用及其意义:
三次握手使客户端与服务器建立了连接,并且同步了双方的序列号,以便以后的数据传递能够顺利进行,并且三次握手能够判断出客户端和服务端之间的连接是否流畅,提高数据的时效性。
四次挥手使客户端与服务端断开连接,并且确保断开完整,释放系统资源。在四次挥手之前,客户端和服务端都会保证数据已经完成发送和接收,保证了数据传输的完整性。