Zpět na domů

Protokol SOS pro SMS: specifikace

Protokol SOS standardizuje textovou výměnu přes SMS s použitím stavů, příznaků a kontrolní součet. Jsou popsány formát zpráv, konečný automat, přechody a zpracování chyb. Vhodný pro implementaci na mobilních zařízeních bez internetu.

SOS protokol: úplný rozbor pro SMS
Advertisement 728x90

Protokol SOS: technická specifikace pro textovou komunikaci přes SMS

Protokol SOS definuje strukturu a logiku textové komunikace intimního charakteru prostřednictvím SMS. Využívá striktní formát zprávy se stavovými kódy, příznaky a kontrolním součtem pro synchronizaci a ověření integrity. Tento dokument popisuje formát zprávy, stavy stavového automatu a zpracování chyb, čímž zajišťuje spolehlivý provoz bez nutnosti připojení k internetu.

Formát a struktura zpráv

SOS-zpráva má následující schéma: SOS-message = start-tag "|" version "|" state "|" session-id "|" flags "|" payload-length "|" payload ["|" checksum]. Jednotlivá pole jsou oddělena svislou čárou.

  • start-tag: "SOS" — identifikátor protokolu.
  • version: "1" — aktuální verze.
  • state: jeden ze stavů (IDLE, SYNS, SYNR, ESTD, FINW, PRMT, BUSY, SUSP, CLSD, MORE).
  • session-id: pětimístné číslo (1–65535), monotónně rostoucí pro každou relaci.
  • flags: "A" (ACK), "F" (FIN), "R" (RST) nebo prázdné pole.
  • payload-length: tři číslice udávající délku datové části v znacích (0–160).
  • payload: text s možnými řídícími sekvencemi.
  • checksum: dva hexadecimální znaky (volitelné).

Příklad: SOS|1|SYNS|42||12|Ahoj, kráska|3E.

Google AdInline article slot

Výpočet kontrolního součtu

Algoritmus:

  • Rozdělit payload na slova (bez mezer).
  • Vynásobit délky jednotlivých slov (pokud je payload prázdný, výsledek je 1).
  • Odečíst počet mezer v payloadu.
  • Vzít zbytek po dělení 256 a převést do hexadecimálního formátu.

Tato metoda zajišťuje jednoduchost i odolnost proti poškození dat na mobilních zařízeních.

Klíčové pojmy a řídící sekvence

Základní pojmy:

Google AdInline article slot
  • Iniciátor: strana, která pošle první zprávu.
  • Cílový uživatel: strana, která zprávu přijme nebo odmítne.
  • Stav: fáze běhu protokolového automatu.
  • Řídící sekvence: emocionální nebo funkční označení v rámci payloadu.

Řídící sekvence v payloadu:

| Sekvence | Význam |

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

Google AdInline article slot

| Y | Souhlas |

| N | Odmítnutí |

| ... | Pauza |

| :-) | Dobrovolný, přátelský náznak |

| ;-) | Hravý, lehce provokativní podtext |

| :-D | Smích |

| ^_^ | Radostné potvrzení |

| >_< | Rozpačitost |

| ~ | Mnohoznačnost, neurčitost |

| (.)(.) | Náznak fyzických atributů |

| ¯\\_(ツ)_/¯ | Neurčitost, rezignace |

Implementace mohou tyto sekvence automaticky rozpoznávat a reagovat na ně odpovídajícím způsobem.

Protokolový automat a stavy

Každá strana udržuje vlastní konečný automat. Synchronizace probíhá prostřednictvím polí state a flags.

Stavy:

  • IDLE: Počáteční stav.
  • SYNS: Čekání na odpověď na pozvání.
  • SYNR: Pozvání přijato, odpověď odeslána.
  • ESTD: Aktivní komunikace.
  • FINW: Čekání na potvrzení ukončení.
  • PRMT: Předčasné ukončení.
  • BUSY: Dočasně nedostupný.
  • SUSP: Podezřelá aktivita.
  • CLSD: Relace ukončena.
  • MORE: Pokračování po ukončení (FIN).

Přechody mezi stavy

Přechody vyvolané událostmi (odeslání/příjem SOS-zprávy):

  • IDLE → SYNS: odeslání SYNS, časový limit 10 minut.
  • SYNS → ESTD: příjem SYNR + příznak A.
  • SYNS → PRMT: vypršení časového limitu nebo příjem RST.
  • ESTD → FINW: nastavení příznaku F, časový limit 2 minuty.
  • FINW → CLSD: potvrzení A.
  • FINW → MORE: odpověď MORE + A, návrat do ESTD.
  • Libovolný stav → PRMT: příjem RST nebo vypršení časového limitu.
  • IDLE → BUSY: odpověď BUSY na SYN.
  • SYNR → SUSP: anomálie v session-id nebo chybný checksum.

Časové limity a sankce

  • SYN: 10 minut → PRMT.
  • ESTD: 10 minut na potvrzení ACK → PRMT.
  • FINW: 2 minuty → CLSD.
  • MORE: 10 minut → CLSD.

Sankce:

  • PRMT: blokace na 30 minut; po třech incidentech na 7 dní.
  • BUSY: čekání 15 minut.
  • SUSP: odeslání RST + blokace na 24 hodin.

Řešení kolizí

Při aktivní relaci při příjmu SYN: odpověď BUSY s textem „relace již probíhá“. Iniciátor se vrátí do stavu IDLE. Porušení monotónnosti session-id vede do stavu SUSP a následně k odeslání RST.

Klíčové body:

  • SOS standardizuje SMS-komunikaci se stavovým řízením a kontrolním součtem pro maximální spolehlivost.
  • Umožňuje synchronizaci prostřednictvím SYNS/SYNR/ESTD bez připojení k internetu.
  • Řídící sekvence zjednodušují emocionální výměnu a interpretaci záměru.
  • Sankce a časové limity efektivně brání spamu a anomálním chováním.
  • Jednoduchý kontrolní součet je odolný vůči typickým zkreslením při přenosu SMS.

— Editorial Team

Advertisement 728x90

Číst dál