三次握手与四次挥手

为什么要三次握手?

三次握手的目的是发送方与接收方确认自己与对方收发信息正常。

第一次握手:客户端没确认,服务端确认客户端发送消息正常。

第二次握手:客户端确认自己发送接收消息正常,服务端发送接收消息正常。服务端确认客户端发送消息正常,自己接收消息正常

第三次握手:客户端确认自己发送接收消息正常,服务端发送接收消息正常。服务端确认自己发送接收消息正常,客户端发送接收消息正常。

对ACK,SYN,FIN,ack,seq的理解

SYN:SYN=1表示请求连接

FIN:FIN=1表示释放一个连接

seq:标记字节流

ack:确认序号,确认接收到信息,返回seq+1

ACK:状态码,为1时表示确认序号有效

为什么三次握手时发送的数据包是指定的?

三次握手的另外一个目的就是确认双方都支持TCP,告诉对方使用TCP传输

第一次握手:服务端并不知道客户端是要发起TCP请求。

第二次握手:通过ack=j+1,客户端知道了服务端支持TCP并且理解了自己连接TCP的请求

第三次握手:通过ack=k+1,服务端知道了客户端支持TCP并且客户端确实要进行TCP连接

四次挥手的流程

第一次挥手:客户端认为要发送的消息已经发送完了,便向服务端发送FIN=1来终止客户端的连接。

第二次挥手;服务端接收到客户端发送的FIN=1后,返回一个确认信息,ack=m+1。此时TCP处于半关闭状态,客户端收到确认消息后,等待服务端发送连接释放的报文。

第三次挥手:服务端认为自己要发送的消息也已经发送完了,就向客户端发送FIN=1来终止服务端的连接。

第四次挥手:客户端收到服务的的FIN=1后,返回服务端一个确认信息,ack=k+1,至此TCP连接断开

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容