
1 momo24672 2024 年 3 月 19 日 Delay ACK |
2 albert990624 2024 年 3 月 19 日 TCP 的延迟确认机制 |
3 lysShub OP |
4 leonshaw 2024 年 3 月 19 日 via Android TCP 除了第一个 SYN 包以外都有 ACK |
5 feedcode 2024 年 3 月 19 日 |
6 vituralfuture 2024 年 3 月 19 日 via Android 图片打不开了,不过这种情况是可以的,它叫做 ACK 捎带,不是 ACK 包捎带了数据,而是数据捎带了 ACK TCP 协议是全双工的,允许双方互相收发数据,当接受方有数据需要发送时,它既需要发出 ACK 向发送方确认之前收到的包已经到达,又需要把它想要发送的数据发送给发送方,这时没必要分开进行,只需要数据捎带 ACK 即可,这时发送的包就有两重含义 1. 接收方想要发送的数据 2. 接收方对收到的包的确认 |
7 ben666 2024 年 3 月 20 日 ACK 是可以带数据的,只是 socket 编程接口不提供这种特性,如果是自己写的协议栈就可以这样。 可以理解为丢失了一个纯 ACK: SYN -> <-SYN+ACK [->ACK] 丢失了 ->ACK + DATA 开源网络测试仪 dperf https://github.com/baidu/dperf 是自研的 TCP 协议栈,就是在三部握手的 ACK 上带数据的。 |
8 lysShub OP |
9 lysShub OP 是我理解错了,我一直误以为 PSH 标识表示这个 segment 携带有数据。 |