web-dev-qa-db-ja.com

tcp_keepaliveアプリケーションはLinuxに依存していますか?

http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/index.html によると、カーネルキープアライブ機能はOSレベルで発生し、アプリケーションが明示的に呼び出す必要はありません。 。ただし、カーネル機能を実際に利用するには、アプリケーションが(SO_KEEPALIVEを使用して)それを呼び出す方法についても読みました。

ここで> 発信接続のLinuxでキープアライブオプションが機能しない

誰かが明確にしてくれませんか?

ありがとう!

1
Davis

明示的にオンにしない限り、アプリケーションソケットでは発生しません。さらに、それは 明確に述べられている TCP Keepalive HOWTO:

キープアライブのサポートは、カーネルで構成されている場合でも、Linuxのデフォルトの動作ではないことに注意してください。プログラムは、setsockoptインターフェイスを使用してソケットのキープアライブ制御を要求する必要があります。キープアライブを実装するプログラムは比較的少ないですが、このドキュメントで後述する手順に従って、ほとんどのプログラムにキープアライブサポートを簡単に追加できます。

3
poige