TCP/IP를 통해 통신하는 두 가지 구성 요소가 있습니다. 구성 요소 A는 서버/수신기로 작동하고 구성 요소 B는 클라이언트입니다. 두 사람은 최대한 빨리 의사 소통을해야합니다. 언제든지 하나의 연결 만있을 수 있습니다 (이 질문과는 별도 임). 우리 회사의 선임 개발자는 연결을 확실히 유지하기 위해 두 구성 요소 사이에 응용 프로그램 수준의 하트 비트를 사용해야한다고 말했습니다.TCP 연결을 열린 상태로 유지하려면 하트 비트가 필요합니까?
TCP/IP로 연결 상태를 유지할 수 있다고 생각했지만 많은 응용 프로그램간에 하트 비트를 보내는 것은 꽤 일반적인 방법이라고 말하는 수많은 블로그/사이트를 읽었습니다.
구성 요소 A 하트 비트 구성 요소 B의 일부분을 알고 있으므로 구성 요소 B와의 통신 문제 (링크가 작동 중지되었거나 구성 요소 B가 실행되지 않음)가 있으면 지원을 알릴 수 있습니다. 심장 박동이 다른 이유로 필요합니까? 그러한 것을 열어두기 위해 자주 "배관 안에"무언가가 있도록하는 것과 같은 것입니까?
구성 요소 A는 20 초마다 현재 하트 비트 구성 요소 B이고 구성 요소 B로부터 120 초 이내에 아무것도 수신되지 않으면 연결을 닫습니다. 그런 다음 연결이 끊어진 경우 구성 요소 B가 주기적으로 재 연결을 시도한다는 가정하에 연결 수신 대기를 재개합니다. 이것은 성공적으로 작동합니다.
내 질문을 반복하십시오 : TCP/IP 연결을 유지하기 위해 하트 비트가 필요합니까?
이 동작은 구현에 따라 다를 수 있습니까? 이것은 TCP 표준에 지정된 것입니까, 아니면 구현 세부 사항으로 남았습니까? 바라건대 다른 사람도 그 대답을 할 수 있기를 바랍니다. – dss539
구현 세부 사항은 모든 TCP/IP 기반 프로토콜이 전적으로 사용자에게 맡겨져있는 것은 아니므로 말합니다. – Lloyd
예 - TCP/IP로 인한 것이 아니기 때문에 - 연결되지 않은 TCP 연결을 차단하는 경향이있는 방화벽 및 홈 라우터와 같은 다른 하드웨어 또는 소프트웨어가 연결될 수 있으므로 관련 : http://stackoverflow.com/questions/ 3907537/keep-alive-tcp-ip-connected-sockets-over-the-internet-how-how-and-how-much/5149662 # 5149662 – markmnl