【发布时间】:2012-04-19 13:43:02
【问题描述】:
我有一个设备可以非常快地向 Windows XP 操作系统发送具有 1440 字节有效负载的 TCP 数据包。我将 TcpAckFrequency 设置为 0,即在收到包后立即发送 ACK。 我编写了一个 Java 应用程序,它在线程中读取套接字:
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in.read(charArray, 0, 720);
我的问题是 Windows 缓冲区在收到一些 (50-60) 数据包后变满,然后发送一个 DUP ACK 会减慢通信速度。
我不明白为什么它会变满,因为我总是读取缓冲区?
【问题讨论】: