setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof(one));



No tak, poza ustawieniem w kernelu wartości odpowiedzialnych za keepalive'y wypadałoby jeszcze poinformować go, że aplikacja takowych keepalive'ów sobie życzy. Bo dopiero wtedy można cieszyć się z

16:21:22.200164 IP (tos 0x0, ttl 64, id 34075, offset 0, flags [DF], length: 161) 192.168.1.17.35057 > galera.task.gda.pl.5223: P 474849444:474849553(109) ack 4184887380 win 155 <nop,nop,timestamp 9777378 1603506582>
16:21:22.643138 IP (tos 0x0, ttl 58, id 20348, offset 0, flags [DF], length: 52) galera.task.gda.pl.5223 $gt; 192.168.1.17.35057: . [tcp sum ok] ack 109 win 17376 $lt;nop,nop,timestamp 1603560093 9777378>

16:31:22.445311 IP (tos 0x0, ttl 64, id 34076, offset 0, flags [DF], length: 225) 192.168.1.17.35057 > galera.task.gda.pl.5223: P 109:282(173) ack 1 win 155 <nop,nop,timestamp 10377793 1603560093>
16:31:23.107811 IP (tos 0x0, ttl 58, id 20349, offset 0, flags [DF], length: 52) galera.task.gda.pl.5223 > 192.168.1.17.35057: . [tcp sum ok] ack 282 win 17376 <nop,nop,timestamp 1603620117 10377793>

W związku z powyższym, poprzedni wpis traci znaczenie. Swoją drogą keepalive'y powinny być domyślne dla protokołów połączeniowych, bo przecież aplikacje które wyraźnie sobie ich nie życzą mogą je zawsze wyłączyć.

Comments


Comments powered by Disqus