как увеличить размер окна TCP в Android для FTP?

Я пытаюсь разработать простой ftp-клиент, используя библиотеку ftp4j с открытым исходным кодом для Android. Я хотел знать, могу ли я каким-либо образом изменить/увеличить размер окна 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;
}

Спасибо


person user1720839    schedule 02.05.2013    source источник


Ответы (1)


Вы сделали это. Установка размера буфера приема определяет максимальное окно приема. Но платформа может свободно увеличивать или уменьшать запрошенный размер. Проверьте его после того, как вы установили его, чтобы увидеть, какое значение дало вам ядро.

195232 вполне приличный размер. Нет никаких преимуществ в том, чтобы делать его больше, чем произведение пропускной способности на задержку.

person user207421    schedule 05.05.2013
comment
после установки значения он дает мне 1048576, а размер окна в журнале wireshark по-прежнему равен 195232. Но когда я загружаю тот же файл в том же сетевом состоянии с помощью стороннего приложения (и FTP), размер окна увеличивается примерно до 1060833. Я я не могу понять, как он увеличивается для другого приложения, и для моего приложения, независимо от того, какое значение я установил, оно просто остается на уровне 195232 - person user1720839; 05.05.2013