心跳包通常是客户端每隔一小段时间向服务器发送的一个数据包,通知服务器自己仍然在线并传输一些可能有必要的数据。因按照一定的时间间隔发送类似于心跳,所以叫做心跳包事实上为了保持长连接,至于包的内容是没有特别规定的,不过一般都是很小的包或者只是包含包头的一个空包。
TCP协议会向对方发一个带有ACK标志的空数据包(KeepAlive探针)对方在收到ACK包以后,如果连接一切正常应该回复一个ACK;如果连接出现错误了(例洳对方重启了,连接状态丢失)则应当回复一个RST;如果对方没有回复,服务器每隔多少时间再发ACK如果连续多个包都被无视了,说明连接被断开了
“心跳检测包”是属于TCP协议底层的检测机制,上位机软件只是解析显示网口的有用数据包收到心跳包报文属于TCP协议层的数據,一般软件不会将它直接在应用层显示出来所以看不到。以太网中的“心跳包”可以通过“以太网抓包软件”分析TCP/什么是tcp/ip协议议层的數据流看到报文名称”TCP Keep-Alive”。
一些比较可靠的以太网转串口模块都有心跳包的检测,比如致远电子的ZNE-100TL模块配置“心跳包检测”间隔时間设为“10”秒,使用一款”wireshark”的抓包软件来实际查看下TCP/什么是tcp/ip协议议层“心跳包”数据
}