三次握手、四次挥手的理解

下面是个人对三次握手和四次挥手的理解。

1、三次握手

第一次握手:客户端向服务器发起连接请求(此时要确认客户端能不能发)。

第二次握手:服务器收到客户端的连接请求后,会给一个应答,以及请求连接的数据包(意味着服务器收到了客户端连接的请求,以此证明服务器能够接收,而且也证明了客户端能发。同时,服务器也给客户端发起了连接请求,服务器要确认自己能不能发)。

第三次握手:最后客户端给服务器一个应答,证明服务器是可以发的,客户端也可以收,即连接成功。

2、四次挥手

第一次挥手:客户端向服务器发起断开的请求(意味着客户端再不发送数据了,并不代表完全断开连接)。

第二次挥手:服务器收到后,会先给客户端一个应答(服务器可能还要发送数据,就不能立即关闭服务器到客户端的数据通道,只能先确认服务器收到了客户端发送要断开的请求,等服务器再无发送的数据之后再确认是否要断开连接)。

第三次挥手:服务器发起断开连接的数据包(意味着客户端知道了服务器已经发完数据)。

第四次挥手:客户端给服务器一个应答,证明服务器收到了断开连接的数据包,即断开连接。

3、为什么是三次握手,而不是两次?

答:两次不安全,TCP通信要确保双方都具有收发的能力。

4、为什么是四次挥手,而不是三次?

答:对于四次挥手,由于TCP是全双工通信,主动关闭方发送断开请求不代表完全断开连接,只能表示主动关闭方不在发送数据了。而接收方可能还要发送数据,就不能立即关闭服务器端到客户端的数据通道,只能先确认服务器端接收到了客户端发送要断开的信息,等服务器再无发送的数据之后再确认是否要断开连接,所以四次挥手时需要四次数据包的交互。

5、为什么四次挥手要等待2MSL(MSL指的是报文在网络编程中最大生存时间)

答:在客户端发送对服务器端的断开请求的确认包后,这个确认包可能到达不了,服务器如果接受不到这个确认包就会重新发送断开请求,所以客户端发送确认包后需要留出2MSL时间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值