每日三道面试题(2)

TCP四次挥手过程

四次挥手过程

  1. 客户端发送一个带FIN标志的报文给服务器
  2. 服务器接收到之后返回确认,
  3. 之后若有数据要传输给客户端,则继续传输,传输完之后再发送一个带ACK和FIN标志的报文给客户端
  4. 客户端接收之后返回确认

为什么建立连接是三次握手,断开是四次

建立连接的时候,服务器处于listen状态,收到客户端请求建立TCP连接的SYN报文之后,会在一个报文同时设置ACK和SYN然后返回给客户端
断开连接的时候,服务器收到来自客户端断开连接的请求,然后会先发送ACK报文,这表明客户端到服务器的通信连接断开,客户端不再发送数据给服务器,但是服务器可能会继续发送数据给客户端,等数据传输完之后,服务器再发送ACK+FIN报文给客户端

为什么客户端还要等待2MSL

MSL(maximum segment lifetime)
保证服务器发送的断开连接请求(ACK+FIN报文)到达:如果在2MSL时间服务器没有收到客户端发的最后一次ACK,服务器此时可能认为客户端没有收到自己发的ACK+FIN报文,就会重发,然后客户端在2MSL时间内收到了来自服务器重发的断开连接报文,就会再次发送ACK,并重置计时器

内容来自该博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值