Kernel的對TCP心跳的設置接口
SO_KEEPALIVE
www.2cto.com
/proc/sys/net/ipv4/tcp_keepalive_*
在TCP link長時間沒有數據通信的時候,
為了防止傻等行為(Client crash),
可以發送一些“hello” TCP包。
目前有兩種方式:
1.創建socket的時候指定SO_KEEPALIVE 屬性,內核為你定個
timer周期性處理(優點是心跳不會丟失,缺點是無法自定義“hello”數據)
2.用戶程序自己在用戶進程內創建一個timer來發送“hello”的TCP包
(優點是可以自定義“hello”數據包,但是當系統負載很大的時候,心跳會紊亂)