답변:
TCP "keepalive"는 모든 운영 체제에 존재하지 않는 기능입니다. TCP 표준 자체가 아니며 신뢰할 수 없습니다. RC1122가 지정하지만 다음과 같이 명시 적으로 명시합니다.
구현자는 TCP 구현에 "keep-alives"를 포함 할 수 있지만이 방법은 보편적으로 받아 들여지지는 않습니다. 연결 유지 기능이 포함 된 경우 응용 프로그램은 각 TCP 연결에 대해 연결을 켜거나 끌 수 있어야하며 기본적으로 꺼져 있어야합니다.
더 중요한 :
데이터가 포함되지 않은 ACK 세그먼트는 TCP에 의해 안정적으로 전송되지 않습니다. 결과적으로 연결 유지 메커니즘이 구현 된 경우 특정 프로브에 응답하지 않는 연결을 연결 끊기로 해석해서는 안됩니다.
TCP keepalive는 TCP 프로토콜을 특별한 방식으로 사용하여 데이터가 첨부되지 않은 중복 ACK를 보냅니다. 사물은 : 당신은 그것을 사용할 수 있다고 믿을 수 없습니다. 또한 일부 방화벽은 TCP 연결 유지를 필터링합니다.
BGP가 제대로 작동하려면 keepalive (메시지를 얼마나 자주 보내는가)에 대한 특정 타이머를 구현하고 안정적으로 전송 되는 피어를 응답하지 않는 것으로 선언 한 후 유지하는 방법이 필요합니다 . 따라서 BGP는 TCP keepalive에 비해 많은 오버 헤드 (19 바이트)가 아닌 자체 keepalive 메시지를 사용하고 있습니다.