12

ハートブリードバグまで、ハートビートについて聞いたことがありません。これと ping の違いは何なのか、接続を管理するためのシグナルが他にあるのかどうか (データ パッケージではない) を知りたいです。

4

1 に答える 1

17

厳密に言えば、ping とは、ICMP ECHO 要求を使用して宛先コンピューターに到達できるかどうかを確認することを指します。ネットワークをテストしますが、ターゲット コンピューターが他の特定のサービス リクエストに有効に応答できるかどうかはテストしません (ping はできるが、機能的にダウンしているコンピューターを見たことがあります。OS カーネルは、ping に応答します。は起動していましたが、すべてのユーザー プロセスが停止していました)。

ただし、この用語は、対象のマシンが有用な作業を実行できるかどうかを確認できるように、対象のプロトコル内で行われることが多い、相手側が稼働しているかどうかをクライアントが開始するあらゆる種類のチェックをカバーするように拡張されています。

通常、ハートビートは、サービスが通知を定期的に別の場所にプッシュする場所であると考えていました (クライアントによって要求されるのではなく)。ハートビート モニターは、ハートビート信号がしばらくないかどうかを検出し、それが発生した場合に「緊急 CPR」を適用する (つまり、サービスを再開する) という考え方です。ハードウェアのウォッチドッグ タイマーに似ています。

私は ping とハートビートを補完的なものと考えています。1 つはクライアントがサービスが稼働しているかどうかを知るためのものであり、もう 1 つはサービス プロバイダーがサービスが稼働しているかどうかを知るためのものです。(プロバイダーは ping を使用でき、おそらく Nagios のセットアップを介して使用しますが、ハートビートは少し異なるもの (特に内部タイマー) を監視し、実装するのにかなり安価なので、使用しない理由はありません。)


皮肉なことに、Heartbleed バグは、私が ping メカニズムであると考えていたものにありました。しかし、それはSSL Heartbeat Extensionの (誤った) 実装に基づいているため、そう呼ばれています。用語は、乱用されるために存在することがあまりにも多い…</p>

于 2014-04-20T14:29:37.033 に答える