ホームページ >よくある問題 >心拍の仕組みとはどういう意味ですか?

心拍の仕組みとはどういう意味ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-06-28 15:22:183922ブラウズ

ハートビート機構とは、接続の正当性を確保するために、相手に自分が生きていることを知らせるためのカスタム構造体[ハートビートパケット]を定期的に送信する仕組みで、ハートビートと同様に一定時間ごとに送信されます。 。

心拍の仕組みとはどういう意味ですか?

#ハートビート メカニズムの意味:

ネットワーク内のデータの送受信はすべてオペレーティング システムの SOCKET を使用して行われます。が実装されています。しかし、このソケットが切断されている場合、データの送受信時に間違いなく問題が発生します。しかし、このソケットが引き続き使用できるかどうかを判断するにはどうすればよいでしょうか?これには、システムに

ハートビート メカニズム を作成する必要があります。

関連する学習の推奨事項:

PHP 初心者からマスターまでのプログラミング

実は、

TCP はすでにハートビートと呼ばれるメカニズムを実装しています。ハートビートを設定すると、TCP は一定時間 (たとえば、3 秒に設定) 内に設定した数 (たとえば、2 回) のハートビートを送信します。この情報は、定義したプロトコルには影響しません。 . .いわゆる「ハートビート」とは、相手に「オンライン」であることを知らせるために、カスタム構造(ハートビートパケットまたはハートビートフレーム)を定期的に送信することです。リンクの有効性を確認するため。

いわゆるハートビート パケットとは、クライアントが定期的に単純な情報をサーバーに送信し、私がまだそこにいることを伝えるものです。このコードでは、固定メッセージを数分ごとにサーバーに送信し、サーバーは受信後に固定メッセージで応答します。サーバーが数分以内にクライアント メッセージを受信しない場合、クライアントは切断されたとみなされます。

たとえば、通信ソフトウェアを長期間使用していなかった場合、その状態がオンラインかオフラインかを知りたい場合は、ハートビートパケットが必要となり、定期的にパケットを送受信する必要があります。契約送信者: クライアントまたはサーバーのどちらか、より便利で合理的な方になります。通常はクライアントです。サーバーは定期的にハートビートをポーリングして送信することもできます。

ハートビートパケットハートビートパケットと呼ばれる理由は、クライアントがまだ生きていることをサーバーに伝えるためにハートビートのように一定時間ごとに送信されるためです。実はこれは接続を長く維持するためであり、このパケットの内容については特に規定はないが、一般的には非常に小さなパケット、あるいはヘッダのみの空のパケットである。

TCP メカニズムには、TCP オプションであるハートビート パケット メカニズムがあります。システムのデフォルト設定は 2 時間のハートビート頻度です。ただし、マシンの停電、ネットワーク ケーブルの抜き差し、ファイアウォールの切断などは検出できません。また、ロジック層は断線への対応がそれほど容易ではない可能性があります。

一般的には、生き続けるためだけであればまだ大丈夫です。

ハートビート パケット 一般に、論理層で空のパケットを送信することで実装されます。次のタイマーは、一定の時間間隔で空のパケットをクライアントに送信し、クライアントは同じ空のパケットをフィードバックします。サーバーは、クライアントが送信したフィードバック パケットを一定の時間内に受信できない場合、サーバーは判断することしかできません。オフラインだと言いました。送信または受信するだけです。結果がゼロの場合は、オフラインであることを意味します。

ただし、

長時間接続では、長時間データ交換が行われない場合があります。理論上、この接続は常に接続されていますが、実際には、中間ノードに障害があるかどうかを知るのは困難です。さらに悪いことに、一部のノード (ファイアウォール) は、一定期間内にデータのやり取りがない接続を自動的に切断します。

現時点では、長い接続を維持し、存続させるためにハートビート パケットが必要です。切断を認識した後、サーバー ロジックは切断後のデータをクリーンアップして再接続するなど、いくつかの作業を実行する必要がある場合がありますが、これは必要に応じてロジック層によって当然行われます。一般に、ハートビート パケットは主にキープアライブや長時間接続の切断処理に使用されます。一般的なアプリケーションの場合、判定時間は 30 ~ 40 秒が比較的適切です。要件が非常に高い場合は、6 ~ 9 秒に設定します。

心拍の仕組みとはどういう意味ですか?

以上が心拍の仕組みとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。