>  기사  >  하트비트 메커니즘은 무엇을 의미하나요?

하트비트 메커니즘은 무엇을 의미하나요?

藏色散人
藏色散人원래의
2020-06-29 09:44:333344검색

하트비트 메커니즘은 연결의 유효성을 보장하기 위해 상대방에게 자신이 아직 살아 있음을 알리기 위해 정기적으로 사용자 정의된 하트비트 패킷을 보내는 메커니즘입니다. 소위 하트비트 패킷은 클라이언트가 정기적으로 보내는 간단한 메시지입니다. 내가 아직 살아 있다고 서버에 알리는 것이 전부입니다.

하트비트 메커니즘은 무엇을 의미하나요?

하트비트 메커니즘은 연결의 유효성을 보장하기 위해 상대방에게 아직 살아 있음을 알리기 위해 정기적으로 사용자 지정 구조(하트비트 패킷)를 보내는 메커니즘입니다.

개념 소개

네트워크에서 데이터를 주고받는 일은 운영체제의 SOCKET을 사용하여 구현됩니다. 하지만 이 소켓이 끊어지면 데이터를 보내고 받을 때 확실히 문제가 발생하게 됩니다. 하지만 이 소켓을 계속 사용할 수 있는지 확인하는 방법은 무엇입니까? 이를 위해서는 시스템에 하트비트 메커니즘을 생성해야 합니다. 실제로 TCP는 이미 하트비트라는 메커니즘을 구현했습니다. 하트비트를 설정하면 TCP는 일정 시간(예: 3초로 설정) 내에 설정한 하트비트 수(예: 2회)를 전송하며 이 정보는 정의한 프로토콜에 영향을 주지 않습니다. . 소위 "하트비트"는 사용자 정의 구조(하트비트 패킷 또는 하트비트 프레임)를 정기적으로 전송하여 상대방에게 "온라인"임을 알리는 것입니다. 링크의 유효성을 보장하기 위해.

하트비트 패킷이라고 불리는 것은 클라이언트가 정기적으로 간단한 정보를 서버에 보내 내가 아직 거기에 있음을 알리는 것입니다. 이 코드는 몇 분마다 고정된 메시지를 서버에 보내는 것입니다. 서버는 이를 수신한 후 고정된 메시지로 응답합니다. 서버가 몇 분 내에 클라이언트 메시지를 받지 못하면 클라이언트는 연결이 끊어진 것으로 간주됩니다. 예를 들어 일부 통신 소프트웨어를 오랫동안 사용하지 않는 경우 해당 소프트웨어의 상태가 온라인인지 오프라인인지 알고 싶다면 하트비트 패킷이 필요하고 정기적으로 패킷을 보내고 받습니다. 계약 발신자: 클라이언트 또는 서버 중 더 편리하고 합리적인 쪽이 될 수 있습니다. 일반적으로 클라이언트. 서버는 주기적으로 하트비트를 폴링하고 보낼 수도 있습니다. 하트비트 패킷을 하트비트 패킷이라고 부르는 이유는 클라이언트가 아직 살아 있음을 서버에 알리기 위해 하트비트처럼 정해진 시간마다 전송되기 때문입니다. 사실 이는 긴 연결을 유지하기 위함이다. 이 패킷의 내용은 특별한 규정은 없으나 일반적으로 아주 작은 패킷이거나 헤더만 들어 있는 빈 패킷이다.

TCP 메커니즘에는 TCP 옵션인 하트비트 패킷 메커니즘이 있습니다. 시스템 기본 설정은 2시간 하트비트 빈도입니다. 그러나 시스템 정전, 네트워크 케이블 분리 또는 방화벽 연결 끊김은 감지할 수 없습니다. 더욱이 논리 계층은 연결 끊김을 처리하기가 쉽지 않을 수 있습니다. 일반적으로 말해서, 단지 당신을 살려두는 데 사용된다면 괜찮습니다. 하트비트 패킷은 일반적으로 논리 계층에서 빈 패킷을 전송하여 구현됩니다. 다음 타이머는 특정 시간 간격으로 빈 패킷을 클라이언트에 보내고 클라이언트는 동일한 빈 패킷을 다시 피드백합니다. 만약 서버가 일정 시간 내에 클라이언트가 보낸 피드백 패킷을 받지 못하면, 확인 오프라인이라고 하더군요. 그냥 보내거나 수신하세요. 결과가 0이면 오프라인 상태라는 뜻입니다.

그러나 장기간 연결하면 오랫동안 데이터 교환이 없을 수 있습니다. 이론적으로는 이 연결이 항상 연결되어 있지만 실제로는 중간 노드에 장애가 있는지 알기 어렵습니다. 더 나쁜 점은 일부 노드(방화벽)가 일정 기간 내에 데이터 상호 작용이 없는 연결을 자동으로 끊는다는 것입니다. 이때 긴 연결을 유지하고 활성 상태로 유지하려면 하트비트 패킷이 필요합니다. 연결 해제를 학습한 후 서버 로직은 연결 해제 후 데이터를 정리하고 다시 연결하는 등 몇 가지 작업을 수행해야 할 수 있습니다. 물론 이는 필요에 따라 로직 계층에서 자연스럽게 수행됩니다. 일반적으로 하트비트 패킷은 긴 연결의 연결 유지 및 연결 해제 처리에 주로 사용됩니다. 일반적인 용도의 경우 판단 시간은 30~40초 정도가 비교적 좋다. 요구 사항이 매우 높으면 6~9초로 설정하세요.

위 내용은 하트비트 메커니즘은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.