Задача: Есть ли нестабильный линк, при этом весьма шикорий. Он весьма часто теряет пакеты (при это происходит именно потеря, скажем 2-60% за секунду, однако сам канал активен (на это время не линк полностью не пропадает). Иногда канал может упасть на пару минут. Необходимо, что TCP делал много попыток перепослать недошедшие пакеты с МАЛЫМ интервалом (около 0.2 секунды, т.к. у линка очень малая латентность) перепосылки пакетов, либо вообще слал дубликаты постоянно (канал куда шире, чем необходимый траффик).
Контролировать количество попыток отправки можно через tcp_retries1, tcp_retries2, tcp_syn_retries, tcp_synack_retries, tcp_fin_timeout, tcp_keepalive_intvl, tcp_keepalive_probes
Однако, это нужно будет только для того, чтобы избежать разрыва соединения (по достижению определенного количества попыток) при перепосылке пакетов с небольшим интервалом времени (из-за малого интервала перепосылки попытки исчерпаются очень быстро, что этими переменными и можно поправить).
Однако, нужно также изменить время таймаута подтверждения. Согласно RFC 2988bis он составляет 1 секунду (раньше был RFC 1122 на 3 секунды).
Согласно посту http://serverfault.com/questions/295390/how-can-i-tune-the-initial-tcp-retran... в ядре ( ./include/net/tcp.h ) TCP_TIMEOUT_INIT следует поменять его значение на меньшее (можно ли указать дробное значение? 0.1, например?).
Однако, моё внимание привлекают также близлежащие параметры TCP_RTO_MAX и TCP_RTO_MIN, и, в особенности, параметр TCP_TIMEOUT_FALLBACK. Также непонятно, зачем нужен TCP_RESOURCE_PROBE_INTERVAL.
Тут ( http://stackoverflow.com/questions/1232249/setting-tcp-retransmission-timeout... ) вообще предлагают играть с параметром TCP_WINDOW_CLAMP
Тут ( http://stackoverflow.com/questions/5907527/application-control-of-tcp-retrans... ) вообще пишут про какой-то непонятный TCP_USER_TIMEOUT.
Также существует патч, но полный смысл его мне не ясен: http://www.spinics.net/lists/netdev/msg164645.html
Подскажите, что же нужно править для решения моей задачи?
Обсуждения:
http://fixunix.com/tcp-ip/555894-question-about-tcp-retransmission-timeout.html
http://www.linuxquestions.org/questions/linux-networking-3/tcp\ip-ack-timeout...
Статья IBM: http://www.ibm.com/developerworks/aix/library/au-lowertime/index.html
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от zolden
Ответ на:
комментарий
от ktulhu666
Ответ на:
комментарий
от zolden
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум tcp сервер, select и таймаут (2024)
- Форум Привышение разрешения (2010)
- Форум Дублирование (2012)
- Форум tcp/udp/OTHER сервер: таймауты, закрытие коннектов (2024)
- Форум Можно ли в TCP сервере выходить по таймауту. (2010)
- Форум TX packets - откуда errors и overruns в ipconfig? (2009)
- Форум дублирование контента (2012)
- Форум дублирование todo'шек. (2012)
- Форум Дублирование линков (2015)
- Форум Дублирование функционала (2013)