PSH是一种通过TCP发送数据的方法。除此之外,我可以找到关于如何正确实现它的信息。
以下是我感兴趣的内容:
假设服务器窗口是8000字节,我发送了2个150和600字节的请求。我是否收到某些确认数据已收到?我可以以某种方式触发确认吗?
我见过一些ACK数据包,它不包含PSH但包含某种有效载荷数据(Wireshark将其标记为“TCP段数据”)。这些数据是否传递给用户,如果是,为什么我们需要PSH标志?
答案 0 :(得分:6)
TCP PSH通常根本不起作用。 Berkely派生的TCP实现完全忽略它。来源:Stevens tcp / ip插图第一卷:20.5 PUSH Flag。
答案 1 :(得分:3)
答案 2 :(得分:0)
我假设,如果我们设置推送标志,数据包将不会在接收缓冲区中等待,它将直接发送给接收方。
答案 3 :(得分:0)
无论如何,数据都不会在接收缓冲区中等待。
TCP应用程序必须尽力使TCP层增加一些数据包并提供完整的数据缓冲区。
实际上,看到应用程序分配64KB缓冲区来接收数据并看到它们收到大量的1480/1472字节消息,这有些令人沮丧。