请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

四次挥手 为什么服务器确认报文ack=u+1, FIN报文也是ack=u+1

有个问题哈, 看到服务器确认ACK报文ack=u+1, FIN报文也是ack=u+1, 但是中间有数据发送, 如果中间是多个报文段发送的话, 客户端接收到之后不发送ACK的吗,只是在最后服务端发送FIN报文才会回传ACK,ack=最后发送的字节位置+1,如果丢包的话, 那客户端一直不回传ACK, 服务端不得把中间所有发送的数据全都补上; 还是说中间也发送ACK, 但是ACK报文的seq不消耗序列号

正在回答

1回答

翔仔 2020-03-20 00:50:32

同学好,因为客户端已经发送了要断开服务的请求,此时只有可能是服务器往客户端去发送数据了呢,所以ack的值不变

1 回复 有任何疑惑可以回复我~
  • 提问者 坐看落花 #1
    那这样的话, 发送数据的时候, 客户端还会发送ACK确认报文吗?
    回复 有任何疑惑可以回复我~ 2020-03-20 17:12:54
  • 翔仔 回复 提问者 坐看落花 #2
    期间不会了哈
    回复 有任何疑惑可以回复我~ 2020-03-21 01:30:03
  • 提问者 坐看落花 回复 翔仔 #3
    那如果数据丢失如何重传呢,  还是说如果数据丢失,客户端在服务端发送FIN报文的时候, 也是不会回发ACK的, 然后服务端没有收到ACK, 会把期间所有发送的报文再发送给客户端
    回复 有任何疑惑可以回复我~ 2020-03-26 12:37:18

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信