强调:TCP三次握手并不进行收据的传输,在三次握手完毕后才开始正式传递数据,一个不太恰当的例子就是相当于两个人握手之后,才算正式熟悉,开始进行对话。
三次握手:
第一次握手:客户端会向服务器发送一个SYN包(synchronous同步的),并且自己也将进入一个SYN_SED状态, 说明自己已经发送了信息,等待服务端的回信。
第二次握手:服务器收到SYN包后,必须先确认 客户的SYN,同时自己也发送一个SYN包(SYN+ACK :Acknowledgement确认字符),此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,给服务器发送确认信息,在发送完毕之后,服务器和客户端同时进入ESTABLISHED(创建)状态。
注:在三次握手结束之后表明服务器和客户端之间建立连接成功,可以进行数据通信:在理论上来说只要TCP连接一旦建立,在通信的双方任一方主动关闭连接之前,TCP连接将会一直被保存下去。
四次挥手:
第一次挥手:如果建立连接的双方有一方需要关闭连接,那么它会发送一个FIN,用来给被动关闭的一方通知其关闭,但是在没有收到被关闭方的ACK确认报文之后,它还会继续发送FIN,并且可以继续接收数据,直到
第二次挥手:被动关闭方收到FIN后,发送一个ACK给对方,确认序号为收到的序号+1
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,然后告诉主动关闭方,数据传输完成 ,不会再发送数据
第四次挥手:主动关闭方接收到FIN后,发送一个ACK给被动关闭方,确认序号为i收到的序号+1,四次挥手完成
挥手完成代表数据传输过程结束。
TCP三次握手和四次挥手的全过程
最新推荐文章于 2021-05-10 14:07:30 发布