1
momo24672 247 天前
Delay ACK
|
2
albert990624 247 天前
TCP 的延迟确认机制
|
3
lysShub OP |
4
leonshaw 247 天前 via Android
TCP 除了第一个 SYN 包以外都有 ACK
|
5
feedcode 247 天前
|
6
vituralfuture 247 天前 via Android 3
图片打不开了,不过这种情况是可以的,它叫做 ACK 捎带,不是 ACK 包捎带了数据,而是数据捎带了 ACK
TCP 协议是全双工的,允许双方互相收发数据,当接受方有数据需要发送时,它既需要发出 ACK 向发送方确认之前收到的包已经到达,又需要把它想要发送的数据发送给发送方,这时没必要分开进行,只需要数据捎带 ACK 即可,这时发送的包就有两重含义 1. 接收方想要发送的数据 2. 接收方对收到的包的确认 |
7
ben666 246 天前
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 携带有数据。
|