홈으로 돌아가기

SMS용 SOS 프로토콜: 명세

SOS 프로토콜은 상태, 플래그 및 체크섬을 사용하여 SMS를 통해 텍스트 교환을 표준화합니다. 메시지 형식, 유한 오토마톤, 전환 및 오류 처리를 설명합니다. 인터넷 없이 모바일 기기 구현에 적합.

SMS를 위한 SOS 프로토콜: 완전 분석
Advertisement 728x90

SOS 프로토콜: 친밀한 SMS 메시징을 위한 기술 사양

SOS 프로토콜은 SMS를 통한 친밀한 텍스트 기반 소통을 위한 구조와 로직을 정의합니다. 이 프로토콜은 상태, 플래그, 체크섬을 포함한 엄격한 메시지 형식을 사용해 동기화 및 무결성 검증을 보장합니다. 본 문서에서는 메시지 형식, 유한 상태 머신 동작, 오류 처리 방식을 상세히 설명하며, 인터넷 연결 없이도 신뢰성 있는 작동을 가능하게 합니다.

메시지 형식 및 구조

SOS 메시지는 다음 스키마를 따릅니다: SOS-메시지 = 시작태그 "|" 버전 "|" 상태 "|" 세션-ID "|" 플래그 "|" 페이로드 길이 "|" 페이로드 ["|" 체크섬]. 각 필드는 파이프(|)로 구분됩니다.

  • 시작태그: "SOS" — 프로토콜 식별자.
  • 버전: "1" — 현재 버전.
  • 상태: (IDLE, SYNS, SYNR, ESTD, FINW, PRMT, BUSY, SUSP, CLSD, MORE) 중 하나.
  • 세션-ID: 5자리 숫자(1–65535). 세션 내에서 단조 증가.
  • 플래그: "A"(ACK), "F"(FIN), "R"(RST), 또는 공백.
  • 페이로드 길이: 3자리 수(0–160). 페이로드 문자 수를 나타냄.
  • 페이로드: 일반 텍스트. 제어 시퀀스를 포함할 수 있음.
  • 체크섬: 두 자리 16진수(선택 사항).

예시: SOS|1|SYNS|42||12|안녕하세요, 예쁘신 분|3E.

Google AdInline article slot

체크섬 계산 방법

알고리즘:

  • 페이로드를 공백을 제외한 단어 단위로 분할.
  • 단어 길이들을 곱함(페이로드가 비어 있으면 1 사용).
  • 공백 개수를 뺌.
  • 결과를 256으로 나눈 나머지를 구한 후 대문자 16진수로 변환.

이 방식은 모바일 기기에서 흔히 발생하는 SMS 전송 왜곡에도 강한 간결성과 탄력성을 제공합니다.

용어 및 제어 시퀀스

핵심 개념:

Google AdInline article slot
  • 초기 발신자: 첫 번째 메시지를 보내는 당사자.
  • 대상 수신자: 교류를 수락하거나 거부하는 당사자.
  • 상태: 프로토콜 유한 상태 머신의 단계.
  • 제어 시퀀스: 페이로드에 삽입된 감정적·기능적 표시자.

페이로드에서 자주 쓰이는 제어 시퀀스:

| 시퀀스 | 의미 |

|--------|------|

Google AdInline article slot

| Y | 수락 |

| N | 거부 |

| ... | 잠깐 멈춤 |

| :-) | 친근한 암시 |

| ;-) | 장난스러운 은유 |

| :-D | 웃음 |

| ^_^ | 기쁨을 담은 확인 |

| >_< | 당황 |

| ~ | 애매모호함 |

| (.)(.) | 신체적 특징을 암시 |

| ¯\\_(ツ)_/¯ | 불확실함 |

구현체는 이러한 시퀀스를 자동 응답 또는 UI 강화를 위해 해석할 수 있습니다.

프로토콜 상태 머신 및 상태

각 참가자는 독립적인 유한 상태 머신을 유지합니다. 동기화는 상태플래그 필드를 통해 이루어집니다.

상태 목록:

  • IDLE: 초기 상태.
  • SYNS: 초대 메시지에 대한 응답 대기 중.
  • SYNR: 초대 수신 완료; 응답 전송 완료.
  • ESTD: 활성 교류 중.
  • FINW: 종료 확인 대기 중.
  • PRMT: 조기 종료.
  • BUSY: 일시적으로 사용 불가.
  • SUSP: 이상 활동 감지.
  • CLSD: 세션 종료.
  • MORE: FIN 이후 이어짐.

상태 전이 규칙

SOS 메시지 송신/수신 시 발생하는 전이:

  • IDLE → SYNS: SYNS 전송; 10분 후 타임아웃 시 PRMT.
  • SYNS → ESTD: SYNR 수신 + ACK 플래그(A) 수신 시.
  • SYNS → PRMT: 타임아웃 또는 RST 플래그 수신 시.
  • ESTD → FINW: FIN 플래그(F) 전송; 2분 후 타임아웃 시.
  • FINW → CLSD: ACK(A) 수신 시.
  • FINW → MORE: MORE + ACK(A) 수신 시; ESTD로 복귀.
  • 모든 상태 → PRMT: RST 수신 또는 타임아웃 시.
  • IDLE → BUSY: 수신된 SYN에 대해 BUSY 응답 시.
  • SYNR → SUSP: 세션-ID 또는 체크섬 이상 감지 시.

타임아웃 및 제재 정책

  • SYN: 10분 → PRMT.
  • ESTD: ACK 없이 10분 경과 → PRMT.
  • FINW: 2분 → CLSD.
  • MORE: 10분 → CLSD.

제재:

  • PRMT: 30분 차단; 3회 누적 시 7일 정지.
  • BUSY: 재시도 전 15분 대기.
  • SUSP: 즉시 RST 전송 + 24시간 정지.

충돌 처리

활성 세션 중에 새로운 SYN이 도착하면: "세션이 이미 활성화됨"이라는 메시지와 함께 BUSY 응답. 초기 발신자는 IDLE로 복귀. 세션-ID가 단조 증가하지 않으면 SUSP → RST.

핵심 요약:

  • SOS는 체크섬을 내장해 상태 인식 SMS 메시징을 표준화합니다.
  • 동기화(SYNS/SYNR/ESTD)를 완전히 오프라인에서 수행 — 인터넷 필요 없음.
  • 제어 시퀀스를 통해 감정 표현이 풍부하고 자연스러운 교류가 가능합니다.
  • 제재 및 타임아웃 정책으로 스팸, 남용, 프로토콜 오류를 효과적으로 차단합니다.
  • 가벼운 체크섬 알고리즘이 일반적인 SMS 손상에도 견고합니다.

— Editorial Team

Advertisement 728x90

다음 읽기