LINUX.ORG.RU

Ускорить ретрансмиты TCP SYN

 ,


1

2

Есть клиентское ПО, оно пытается установить TCP соединение с сервером. У клиентов иногда бывают проблемы с сетью, и система долго устанавливает соединение. Основная проблема в том что в случае если до сервера не дошел первый SYN пакет система отправляет следующий с некоторой задержкой, 3й пакет отправится еще с большей задержкой, и ретрансмит интервал очень быстро вырастает до 10 секунд и более. Можно ли както через ioctl,setsockopt (или еще как) задать максимальное время ретрансмита для сокета (скажем максимум 2 секунды, чтобы каждые 2 секунды система слала SYN пакет) ?

★★★★

Не знаю как убрать увеличение задержки(может быть без изменения кода и нельзя). Можно сделать по другому: Есть такой параметр net.ipv4.tcp_syn_retries. Количество повторов syn пакетов. Можно выставить его в минимум(0, наверное) и просто самому пытаться переподключаться.

urquan
()
Последнее исправление: urquan (всего исправлений: 1)
Ответ на: комментарий от urquan

Проблема в том что мне не нужно изменять поведение для всей системы, мне нужно изменить эти параметры для какогото конкретного сокета в моем ПО. Вчера порылся в инете и исходниках ядра - похоже что стандартными параметрами никак :(

НО зато нашел интересный солюшен, народ навешивается сбоку на интерфейс и грабит трафик (SYN пакеты), потом просто сам их ретрансмитит по своему таймеру в дополнении к системным ретрансмитам - вобщем костыль еще тот но реконектится самому тоже не хорошо (на реально медленных канал бывает не успевает устанавливатся соединение хотя связь есть).

zaz ★★★★
() автор топика
Ответ на: комментарий от vel

Эсли ограничить время конекта до 2х секунд то там лезут другие проблемы на каналах с большим пингом.

zaz ★★★★
() автор топика
Ответ на: комментарий от zaz

А вы знаете сколько на этом соединении будет ping? Сам алгоритм то вполне удовлетворяет вашим условиям, если ping большой, то ответят хотя бы на второй-третий SYN, если малый - на первый. Если потерялся пакет, то не понятно, это просто сбой или канал просел. Время ретрансмита сбрасывается при успешном ретрансмите.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.