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.
체크섬 계산 방법
알고리즘:
- 페이로드를 공백을 제외한 단어 단위로 분할.
- 단어 길이들을 곱함(페이로드가 비어 있으면 1 사용).
- 공백 개수를 뺌.
- 결과를 256으로 나눈 나머지를 구한 후 대문자 16진수로 변환.
이 방식은 모바일 기기에서 흔히 발생하는 SMS 전송 왜곡에도 강한 간결성과 탄력성을 제공합니다.
용어 및 제어 시퀀스
핵심 개념:
- 초기 발신자: 첫 번째 메시지를 보내는 당사자.
- 대상 수신자: 교류를 수락하거나 거부하는 당사자.
- 상태: 프로토콜 유한 상태 머신의 단계.
- 제어 시퀀스: 페이로드에 삽입된 감정적·기능적 표시자.
페이로드에서 자주 쓰이는 제어 시퀀스:
| 시퀀스 | 의미 |
|--------|------|
| 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
아직 댓글이 없습니다.