Tomasz Sterna <to...@xiaoka.com> writes: > jabberd2 has support for application layer keepalives. > > See io.keepalive [1][2] options. > Setting this up will flush single whitespace character over the wire > when the connection dangs idle. This triggers the TCP layer connection > validation.
Great - thanks very much for that pointer. > Having said that, I am running my server without both application layer > and TCP keepalives turned on and see no issues with dangling > connections. I run two jabberd2 servers. One of them is not behind a buggy firewall and does not have dangling connections. However, I'm not sure anyone is using a phone. > But.. I had them a lot, when my server was behind a buggy Cisco router > doing NAT. It was dropping idle connections from its NAT table without > telling anyone, so later when mobile network closed a connection it > silently dropped RST packets not knowing who to NAT them to. This was > causing a lot of dangling connections on my server. This is probably more or less the issue, and if so I can't fix it. Are you saying that a cell provider tracks TCP state and when the data connection is lost sends RST packets for open connections? I hadn't realized that, but it seems obviously sensible if a little bit of a layer violation.
signature.asc
Description: PGP signature