牛客网络刷题总结

一.三次握手与四次挥手

1.挥手时FIN和ACK 可能在同一包里吗?

 

可以。一般情况下,服务端收到客户端的FIN后,很有可能还要继续向客户端发送数据,因此一般只回复ACK,当数据传送完成后再发送FIN。但是有一种特殊情况,当服务端收到FIN后,它恰好也要关闭连接,则可以在一个包内发送FIN和ACK(从tcp包头格式可以看出是正确的,FIN和ACK不是在同一个bit位上的,可以同时发),此时对应tcp状态转移图来说,客户端从fin_wait1跳过fin_wait2直接到time_wait。还有一种特殊情况,因此,由于延时应答机制(tcp保证可靠传输的机制的一种),服务端有些情况下ACK在不会立刻发送,而会等待一段时间,且在这段时间内FIN包刚好准备就绪,系统就会在发送ACK包的同时捎带的发送FIN包,此时的4次挥手也就变成3次挥手了。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值