0

我正在尝试使用适用于 android 的开源 ftp4j 库开发一个简单的 ftp 客户端。我想知道是否有任何方法可以更改/增加数据传输的 tcp 窗口大小。我尝试更改数据套接字上的接收缓冲区大小,但是当我检查 Wireshark 日志时,窗口大小根本没有改变,它保持在 195232 左右。

    protected Socket tcpConnectForDataTransferChannel(String host, int port) throws IOException {
    Socket socket = new Socket();
    int size = (1024*1024);
    socket.setSoTimeout(readTimeout * 1000);
    socket.setSoLinger(true, closeTimeout);
    socket.setReceiveBufferSize(size);
    socket.setSendBufferSize(size);
    socket.connect(new InetSocketAddress(host, port), connectionTimeout * 1000);
    Log.d(TAG,String.valueOf(socket.getReceiveBufferSize()));
    return socket;
}

谢谢

4

1 回答 1

0

你已经做到了。设置接收缓冲区大小决定了最大接收窗口。但是平台可以自由地向上或向下调整请求的大小。设置后检查它以查看内核给您的值。

195232 是一个相当不错的尺寸。使它比带宽延迟产品更大没有任何优势。

于 2013-05-05T00:36:05.393 回答