TCP三次握手和四次挥手

TCP三次握手与四次挥手解析
本文深入探讨了TCP协议中的三次握手和四次挥手机制。解释了三次握手为何必要,以及它如何防止失效的连接请求导致资源浪费。同时,分析了四次挥手的原因,特别是客户端在TIME-WAIT状态等待2MSL时间的目的。

三次握手

三次握手

为什么要三次握手,两次不行吗?

  不行。三次握手的目的是为了防止已失效的连接请求报文段突然又传送到了服务端,从而产生错误。例如,客户端发送了两次建立请求,第一次丢失,第二次成功建立,随后通信完成,释放连接。但是,第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放之后才到达服务端,而这时若没有三次握手,便又再次建立连接,而此时没有数据传输,造成资源浪费


四次挥手

四次挥手

为什么客户端在TIME-WAIT状态必须等待2MSL的时间?

  • 保证客户端发送的最后一个ACK报文段能够到达服务端。
  • 防止“已失效的连接请求报文段”出现在本连接中。

为什么建立连接需要三次,而断开连接需要四次?

  建立连接时,因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,有可能自身还有数据需要传输,所以并不会立即关闭SOCKET,只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值