HSMS와 타이머

HSMS와 타이머

HSMS와 타이머

한눈에 보기

HSMS는 단순 전송 수단이 아니라 SECS/GEM 통신의 바닥입니다. 상위 메시지 시나리오가 잘 보여도, 그 아래 HSMS 세션이 불안정하면 실제 연동은 안정적일 수 없습니다.

HSMS를 한 장으로 보기

direction: right

secs: "SECS-II\n메시지 내용"
hsms: "HSMS\n세션과 전송 규칙"
tcp: "TCP/IP\n연결 기반"
ops: "운영 정책\n타이머 / 재접속 / Linktest"

secs.style.fill: "#f7f3ff"
hsms.style.fill: "#eef6ff"
tcp.style.fill: "#fff4e8"
ops.style.fill: "#f7fff2"

secs -> hsms: "실어 나름"
hsms -> tcp: "연결 사용"
hsms -> ops: "운용 규칙 적용"

가장 먼저 이해할 항목

  • active / passive 연결
  • Select 절차
  • Data 절차
  • Linktest 절차
  • Separate 절차
  • T3, T5, T6, T7, T8 타이머

HSMS-SS가 일반적인 이유

일반적인 장비 연동에서는 HSMS-SS가 가장 많이 쓰입니다.

  • SECS-I replacement 용도에 잘 맞습니다.
  • active side와 passive side 역할이 분명합니다.
  • 복잡한 다중 세션 선택을 다루지 않습니다.
  • 통신 종료는 보통 Separate로 처리합니다.

연결 절차를 순서로 읽는 방식

shape: sequence_diagram

Active Side -> Passive Side: "TCP Connect"
Active Side -> Passive Side: "Select Request"
Passive Side -> Active Side: "Select Response"
Active Side -> Passive Side: "Data Message"

이 흐름을 이해하면 통신 수립 장과의 경계도 분명해집니다.

Select, Linktest, Separate를 역할별로 읽는 방식

Select

  • 의미: 이 TCP 연결을 실제 HSMS 세션으로 사용하겠다는 확인입니다.
  • 해석: Data Message를 주고받기 위한 출발점입니다.

Linktest

  • 의미: selected 상태에서 링크 생존 여부를 확인하는 control 절차입니다.
  • 해석: 장시간 유휴 상태에서도 세션이 살아 있는지 확인하는 데 의미가 큽니다.

Separate

  • 의미: 현재 HSMS 통신을 종료하겠다는 선언입니다.
  • 해석: 정상 종료, 재연결 전 명시적 종료, 세션 종료 의사 표시로 읽는 편이 좋습니다.

타이머를 상태 카드처럼 읽는 방식

T3

  • 의미: Data reply timeout
  • 실무 해석: 요청을 보낸 뒤 언제 응답 실패로 판단할 것인가

T5

  • 의미: 재접속 분리 시간
  • 실무 해석: 너무 공격적인 재연결 루프를 막기 위한 완충 시간

T6

  • 의미: control timeout
  • 실무 해석: Select, Linktest 같은 control 절차가 얼마나 오래 열려 있을 수 있는가

T7

  • 의미: connection idle timeout
  • 실무 해석: TCP 연결 후 HSMS 절차가 시작되지 않은 채 얼마나 오래 방치될 수 있는가

T8

  • 의미: intercharacter timeout
  • 실무 해석: 메시지 수신 중 바이트 간 간격이 너무 길 때 실패로 볼 것인가

타이머를 한 장으로 묶어 보기

타이머 무엇을 보는가 운영 관점 질문
T3 데이터 응답 언제 요청 실패로 볼 것인가
T5 재접속 간격 얼마나 쉬고 다시 붙을 것인가
T6 control 절차 Select/Linktest를 얼마나 기다릴 것인가
T7 연결 후 유휴 연결만 된 채 방치된 세션을 언제 실패로 볼 것인가
T8 수신 지연 메시지 수신 중 비정상 지연을 언제 실패로 볼 것인가

타이머는 단순 숫자가 아니라 언제 연결을 포기하고 복구 절차로 넘어갈지를 정하는 운전 정책입니다.

장애를 볼 때의 확인 순서

  1. TCP 연결이 실제로 살아 있었는가
  2. HSMS selected 상태였는가
  3. Select / Linktest / Separate 중 무엇이 열려 있었는가
  4. T3, T6, T7, T8 중 무엇이 걸렸는가
  5. 재연결 후 상위 GEM 초기화가 다시 필요한가

관련 문서