tcp控制流量:A修改端口大小后传输时为何B回应ACK=6145

图片说明

如图:
发送方A,接收方B
A向B连续发送4个长度为1024Bytes的数据段,A的窗口大小为4096Bytes

B接收到了A发送过来的第3个1024Bytes的数据段后,自己的缓冲区已经满了,就会丢弃第4个1024Bytes的数据段。表明B的缓冲区处理能最多3072Bytes的数据段。窗口大小为3072Bytes。B回应给A的响应报文ack=3073。

A收到B的ACK报文之后,序号为3073,那么就知道B的窗口大小为3072,然后A就会改变自己的发送速率,调整自己的窗口大小为3072。

问题:为什么B再次回应A时的ACK是6145呢?缓存再次满了吗?还是如何?求大佬们解释一下。

我觉得你的解释的有点不太对 他不是缓存里还有3072bytes的数据 如果还有他怎么接收呢 他是缓存被清空了之后再次填满的 中间是有其他的响应过程的 推荐看一下https://blog.csdn.net/zgege/article/details/80445324这个 可能会理解更深

https://blog.csdn.net/weixin_34393428/article/details/92468672