直到这个心脏病的虫子,我才听说过心跳。我想知道这和ping之间的区别是什么,以及是否有其他信号来管理连接(也就是说,它们不是数据包)。
答案 0 :(得分:15)
严格来说,ping是指使用ICMP ECHO请求查看目标计算机是否可访问。它测试网络,但不测试目标计算机是否能够有效地响应任何其他特定的服务请求(我已经看到了可以ping通但功能正常的计算机;操作系统内核 - 这是响应ping的 - 起来了,但所有用户进程都已死了。
但是,该术语已经扩展到涵盖任何类型的客户端启动的检查,以确定另一端是否已启动,通常在感兴趣的协议内完成,以便您可以查明目标计算机是否能够执行有用的工作
通过心跳,我通常认为它们是服务定期将通知推送到其他地方的地方(而不是客户提示)。这个想法是心跳监视器检测它是否有一段时间没有心跳信号并且如果发生这种情况则应用“紧急CPR”(即重新启动服务)。它类似于硬件中的看门狗定时器。
我认为ping和心跳是互补的:一个是客户端了解服务是否已启动,另一个是服务提供商了解服务是否已启动。 (提供者可以使用ping,并且可能通过他们的Nagios设置,但心跳监视稍微不同的东西 - 特别是内部计时器 - 并且实施起来相当便宜所以没有理由不使用之一。)