TCP PSH如何工作?

时间:2012-10-24 23:19:31

标签: networking tcp tcp-ip

PSH是一种通过TCP发送数据的方法。除此之外,我可以找到关于如何正确实现它的信息。

以下是我感兴趣的内容:

  1. 假设服务器窗口是8000字节,我发送了2个150和600字节的请求。我是否收到某些确认数据已收到?我可以以某种方式触发确认吗?

  2. 我见过一些ACK数据包,它不包含PSH但包含某种有效载荷数据(Wireshark将其标记为“TCP段数据”)。这些数据是否传递给用户,如果是,为什么我们需要PSH标志?

4 个答案:

答案 0 :(得分:6)

TCP PSH通常根本不起作用。 Berkely派生的TCP实现完全忽略它。来源:Stevens tcp / ip插图第一卷:20.5 PUSH Flag。

答案 1 :(得分:3)

@Arsen:回答你问题的第二部分“为什么我们需要PSH旗帜?” TCP报头中的PSH标志通知接收主机应立即将数据推送到接收应用程序。 我们使用PSH标志在两台服务器之间交换时间戳值。

答案 2 :(得分:0)

我假设,如果我们设置推送标志,数据包将不会在接收缓冲区中等待,它将直接发送给接收方。

答案 3 :(得分:0)

无论如何,数据都不会在接收缓冲区中等待。
TCP应用程序必须尽力使TCP层增加一些数据包并提供完整的数据缓冲区。
实际上,看到应用程序分配64KB缓冲区来接收数据并看到它们收到大量的1480/1472字节消息,这有些令人沮丧。