关于TCP/IP编程中的保活—keepalive

保活即keepalive。

一、保活种类

1、应用层保活:灵活

2、TCP协议栈层保活:在多数系统的TCP协议栈实现中,保活是系统级的,而不是单独针对每个连接的,

所以使用此种保活会影响整个系统上TCP连接行为,要慎用;另外协议栈保活在应用死锁或有其它异常

时还能收发,此时用来做判断可能会出现误判;

3、还有第三方软件保活(此和极为少见)。

二、保活的作用:

1、告诉连接对端,我还存活,防止对端关闭连接(有些Server设计为一定时间没有接收到客户端数据

时会踢掉客户端,此时保活可以防止被Server端踢掉);

2、检测连接是否可用(不可用时就可以断开连接,减少资源占用);

3、某些路由器或防火墙在某个连接一定时间上没有数据往来时会断掉此连接,此时保活就可以在连接被

路由器/防火墙断开前,激活连接,防止连接被断掉;

三、保活的缺点:

1、占用带宽

2、对于收费网络,带来额外的费用

3、设置不合理的保活时间,对于网络状况不好的情况,容易使一个好的连接被释放

你可能感兴趣的:(TCP/IP,Socket)