У меня есть настройка, где у нас есть межсетевой экран между клиентом и сервером.Я подключаюсь к 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 будет препятствовать тому, чтобы брандмауэр закрывал соединение до этого периода времени, или в идеальном случае он должен быть меньше идеального времени ожидания брандмауэра, чтобы брандмауэр видел передачу пакетов между двумя серверами.(проверка активности, выполненная клиентом, и подтверждение, полученное с сервера) и не пытается закрыть соединение?
Спасибо