살고 있다, 살아가다; 살려 두다

Keepalive

keepalive(KA)는 한 기기가 다른 기기로 보내어 두 기기의 링크가 작동하는지 확인하거나 링크가 끊어지지 않도록 하는 메시지다.

설명

일단 TCP 연결이 설정되면, 그 연결은 한쪽이 그것을 닫을 때까지 유효한 것으로 정의된다.일단 연결 상태가 되면 무한정 연결 상태를 유지하게 된다.그러나 실제로는 그 연결이 무한정 지속되지는 않을 것이다.대부분의 방화벽 또는 NAT 시스템은 일정 기간 동안 아무런 활동도 하지 않은 경우 연결을 종료한다.Keep Alive 신호는 비활성 상태로 인해 연결을 닫지 않도록 중간 호스트를 속이는 데 사용할 수 있다.한 호스트가 더 이상 수신하지 않을 수도 있다(예: 애플리케이션 또는 시스템 충돌).이 경우 연결은 종료되지만 ``"는 안 된다."FIN은 지금까지 파견된 적이 있다.이 경우 KeepAlive 패킷을 사용하여 연결을 조회하여 연결이 여전히 정상인지 확인할 수 있다.

keepalive 신호는 종종 미리 정의된 간격으로 전송되며, 인터넷에서 중요한 역할을 한다.신호가 전송된 후 회신이 수신되지 않을 경우 링크는 다운된 것으로 간주되며 링크가 다시 상승할 때까지 미래 데이터가 다른 경로를 통해 라우팅된다.유지 신호는 인터넷 기반구조로 연결이 보존되어야 한다는 것을 나타내는 데 사용될 수도 있다.keepalive 신호가 없으면 중간 NAT 지원 라우터는 시간 초과 후 연결을 끊을 수 있다.

유일한 목적은 작동하지 않는 링크를 찾거나 보존되어야 하는 연결을 표시하는 것이기 때문에, 보존 메시지는 짧고 대역폭을 많이 사용하지 않는 경향이 있다.그러나 이들의 정확한 형식과 사용 용어는 통신 프로토콜에 따라 달라진다.

TCP keepalive

TCP(Transmission Control Protocol) keepalive는 선택적 기능이며, 포함된 경우 반드시 off로 디폴트해야 한다.[1]keepalive 패킷은 데이터를 포함하지 않는다.이더넷 네트워크에서, 이것은 최소 크기(64바이트[2])의 프레임을 만든다.keepalive와 관련된 세 가지 매개변수가[3] 있다.

  • keepalive 시간은 공회전 상태에서 두 keepalive 전송 사이의 지속시간이다.TCP keepalive 기간은 구성할 수 있어야 하며 기본적으로 2시간 이상으로 설정되어 있다.
  • keepalive 간격은 이전 keepalive 전송에 대한 승인이 수신되지 않는 경우, 두 번의 연속 keepalive 재전송 사이의 지속시간이다.
  • keepalive 재시도는 원격 종료를 사용할 수 없다고 선언하기 전에 수행해야 하는 재전송 수입니다.

두 개의 호스트가 TCP/IP를 통해 네트워크를 통해 연결되었을 때, TCP Keepalive 패킷을 사용하여 연결이 여전히 유효한지 확인하고, 필요한 경우 종료할 수 있다.

TCP를 지원하는 대부분의 호스트도 TCP Keepalive를 지원한다.각 호스트(또는 피어)는 응답을 요청하는 TCP 패킷을 주기적으로 그것의 피어에게 보낸다.일정 개수의 keepalive가 전송되고 응답(ACK)이 수신되지 않으면 송신 호스트는 그것의 끝에서 연결을 종료한다.TCP Keepalive 시간 초과로 인해 연결이 종료되고 다른 호스트가 결국 이전 연결에 대한 패킷을 보내는 경우, 연결을 종료한 호스트는 다른 호스트에 이전 연결이 더 이상 활성화되지 않음을 알리기 위해 RST 플래그가 설정된 패킷을 전송한다.이것은 다른 호스트가 새로운 연결이 설정될 수 있도록 연결의 끝을 종료하도록 강제할 것이다.

일반적으로 TCP Keepalive는 유휴 TCP 연결 시 45초 또는 60초마다 전송되며, 순차 ACK 3개를 놓친 후 연결이 끊어진다.이는 호스트에 따라 달라진다. 예를 들어 Windows PC는 7200,000ms(2시간) 후에 첫 번째 TCP Keepalive 패킷을 보낸 다음 1000ms 간격으로 5 Keepalive를 전송하여 Keepalive 패킷에 대한 응답이 없을 경우 연결을 끊는다.

높은 층에 보관

TCP keepalive는 선택사항이기 때문에, 다양한 프로토콜(예: SMB[4], TLS[5])은 TCP 위에 그들 자신의 keep-alive 기능을 구현한다.무연결 프로토콜(예: UDP를 통한 OpenVPN)[6]을 통해 세션을 유지하는 프로토콜이 자체 keep-alive를 구현하는 것도 일반적이다.

기타 용도

HTTP keepalive

하이퍼텍스트 전송 프로토콜은 "Connection" 헤더에서 "Keep-Alive"라는 키워드를 사용하여 추가 메시지를 위해 연결을 열어두어야 한다는 신호를 보낸다(HTTP 1.1에서는 기본값이지만 HTTP 1.0에서는 각 요청/응답 쌍에 대해 새로운 연결을 사용하는 것이 기본값이었다).[7]비슷한 이름에도 불구하고 이 기능은 전혀 관련이 없다.

기타 장치

"키핑-얼라이브" 장치는 배터리가 분리되거나 교체될 때 차량 내 장치의 배터리 전압을 유지하기 위해 자동차 수리 시 주로 차량의 12V 전원 콘센트에 소형 배터리를 꽂아 사용한다.일반적인 애플리케이션은 차량 수리 중에 차량의 라디오 또는 기타 장치가 "코드" 모드로 전환되는 것을 방지하는 것이다(보안 잠금).일반적으로 9볼트 배터리와 같은 낮은 전압원은 목적에 충분하다.

전기 시계는 정전 시 시간 및 기타 설정을 유지하기 위해 배터리로 구동되는 유지 회로가 있는 경우가 많다.일부 전자기기는 사용자가 배터리를 교체할 때 휘발성 메모리를 유지하기 위해 콘덴서 회로를 사용한다.

참고 항목

참조

  1. ^ Braden, Robert T. (October 1989). "Requirements for Internet Hosts - Communication Layers". IETF. Retrieved November 8, 2013.
  2. ^ 3.1.1 Packet format. IEEE Standard for Ethernet, 802.3-2015 – section one. 2016. p. 108. doi:10.1109/IEEESTD.2016.7428776. ISBN 978-1-5044-0078-7.
  3. ^ "Using TCP keepalive under Linux". tldp.org. Retrieved 2016-07-29.
  4. ^ "Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concepts and Methods". IETF. March 1987. Retrieved June 18, 2015.
  5. ^ Williams, Michael; Tüxen, Michael; Seggelmann, Robin (February 2012). "Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension". IETF. Retrieved June 18, 2015.
  6. ^ "OpenVPN manual page". Retrieved June 18, 2015.
  7. ^ "HTTP Keep Alive discourse by Jim Driscoll". Archived from the original on 2010-08-13.