TCP协议之三次握手与四次挥手

作者:Stephen

整体分为三次握手环节,三次握手的主要意义为:

第一次握手:
●客户端向服务器端发出连接请求,等待服务器确认.
第二次握手:
●服务器端向客户端回送一个响应,通知客户端收到连接请求.
第三次握手:
●客户端再次向服务器端发送确认信息,确认连接。

对于TCP协议来讲,它是面向连接的,所谓面向连接,就是当计算机双方通信时必须经过先建立连接,然后在传输数据,最后进行拆除(断开)连接的三个整体过程。

TCP建立连接时候的三次握手详细解析:

第一次握手:客户端发送一个含SYN同步标志的
TCP报文,SYN司步报文会指明客户端使用的端口以
及TCP连接的初始序号;

第二次握手:服务器在收到客户端的SYN报文后,
将返回一个SYN+ACK报文,表示客户端的请求被接收。
同时TCP序号被加1;

第三次握手:客户端返回个确认报文ACK给服务
器端,同样TCP序号被加1,至此一个TCP连接完成;然
后才开始通信的第二步,数据处理。

灵魂拷问:为什么是三次握手?不是两次、四次?

回答: ●三次握手才可以阻止重复历史连接的初始化(主要原因)
●三次握手才可以同步双方的初始序列号
●三次握手才可以避免资源浪费

TCP协议断开连接时的四次挥手:

●第1次挥手:客户端打算关闭连接,此时会发送一个TCP首部FIN 标志位被置为1的报文,也即FIN报文,之后客户端进入FIN_WAIT_1状态。
●第2次挥手:服务端收到该报文后,就向客户端发送ACK应答报文,接着服务端进入cLOSED_WAIT状态。
客户端收到服务端的ACK应答报文后,之后进入FIN_WAIT_2状态。
●第3次挥手:等待服务端处理完数据后,也向客户端发送FIN报文,之后服务端进入LAST_ACK状态。
●第4次挥手:客户端收到服务端的FIN报文后,回一个ACK应答报文,之后进入TIME_WAIT状态。
●服务器收到了ACK应答报文后,就进入了CLOSE状态,至此服务端已经完成连接的关闭。
●客户端在经过2MSL—段时间后,自动进入CLOSE状态,至此客户端也完成连接的关闭。


你可能感兴趣的:(TCP协议之三次握手与四次挥手)