use*_*514 7 networking tcp tcpdump pcap wireshark
我正在开发一个高性能 TCP 服务器,当我使用 TCP 客户端泵送高流量时,我发现服务器的处理速度不够快。经过仔细检查,我发现 TCP 服务器上的“增量时间”出现峰值。而且,我看到服务器发送了一个 ACK,0.8 秒后又发送了相同 seqno 的 PSH、ACK。我在 pcap 中多次看到这种模式。专家能否评论一下为什么服务器发送 ACK 后跟 PSH,ACK,中间有延迟?
简化含义ACK和PSH含义
ACK将始终存在,它只是通知客户端服务器最后接收到的字节是什么。PSH告诉客户端/服务器将字节推送到应用层(字节形成完整的消息)。您习惯的通常场景或多或少如下:
PSH,ACK现在想象一下这些场景:
步骤 4 不会发生(应用程序不会写回任何数据,或者写入时间太长)
=> 操作系统仅使用 确认接收ACK(数据包中不会包含任何数据),如果应用程序稍后决定发送某些内容,则会使用 发送PSH,ACK。
服务器发送的消息/数据太大,无法容纳在一个数据包中:
PSH标志,并且只会有ACK标志PSH,ACK,以通知消息结束。| 归档时间: |
|
| 查看次数: |
24724 次 |
| 最近记录: |