Имам настройка, при която имаме защитна стена между клиент и сървър. Свързвам се с 2 различни сървъра, например A и B, и данните могат да текат във всеки момент от A или от B, но само един по един. Изглежда, че връзката ми със сървъра се прекъсва след всеки 2 часа, 11 минути, 15 секунди . Зададох tcp keepAlive в моето приложение и използвам poco библиотека.
Виждам, че по-долу са tcp keepalive параметри на ниво ядро на моята кутия }
[XYZ@ABC /home]$ cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
[XYZ@ABC /home]$ cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75
[XYZ@ABC /home]$ cat /proc/sys/net/ipv4/tcp_keepalive_probes
9
7200 (2 часа) + 9*75 = (11 минути 15 секунди), някои параметри по-горе и време на прекъсване предполагат, че това се случва поради горните настройки на моята кутия. Повечето от връзките между сървъра и клиента са идеални за най-много периоди (часове), но тогава се очаква данните да идват по всяко време (не е фиксирано). Да кажем, че ако идеалното време на защитната стена е зададено на (30 минути), тогава трябва ли всъщност да намаля своето tcp_keepalive_time до по-малко от 20 минути, така че да има сонда между клиент и сървър и по този начин да попречи на защитната стена да види това като идеална връзка и действително да прекрати връзката ?
Моето разбиране е, че дори ако връзката е идеална, параметърът tcp_keepalive_time ще попречи на защитната стена да затвори връзката до този период от време или в идеалния случай трябва да бъде по-малко от идеалното време за изчакване на защитната стена, така че защитната стена да вижда прехвърлянето на пакети между двата сървъра (проба за поддържане на активността, извършена от клиента и получено потвърждение от сървъра) и не се опитва да затвори връзката?
Благодаря