Na úvod: Tentokrát jsem pojala svůj článek ve stylu hesla „zpět ke kořenům“, protože jsem chtěla původně psát o něčem jiném, modernějším. Protože to nové, modernější ale používá SIP, zapátrala jsem na Lupě, kolik že toho bylo o SIP napsáno. Sice na mě leccos vypadlo, ale není SIP jako SIP, takže se potvrdily mé obavy: protokolu SIP se Lupa zatím prakticky vyhnula, resp. jsem jej zmiňovala hlavně já v dřívějším pravidelném zpravodajství z dění v internetové komunitě.
I když se podíváme „na kořen moderních interaktivních a multimediálních aplikací“ na Internetu, nepůjdeme do historie nijak daleko. Mimochodem, protože se jedná o základy, musím upozornit všechny čtenáře, že vycházím se své knihy TCP/IP v kostce, pokud by jim text byl snad nějak povědomý. A aby se vše vešlo uceleně do jednoho článku, nezabíhám do podrobností.
SIP: co je a co není
Historie podpory multimediální komunikace v reálném čase na Internetu je velmi krátká. V roce 1996 vznikly základy a začal se vyvíjet nový protokol, který v sobě zahrnul prvky tehdy navrženého protokolu SCIP (Simple Conference Invitation Protocol). Výsledný protokol SIP byl přijat Internetovou komunitou v roce 1999 jako RFC 2543. O jeho rozvoj se stará IETF a SIP Forum.
Protokol pro navazování relací SIP (Session Initiation Protocol; původně RFC 2543, nahrazeno RFC 3261–3265, 3853) je jednoduchý obecný protokol pro navazování interaktivních komunikačních relací mezi dvěma či více koncovými zařízeními v Internetu, která si sám protokol je schopen vyhledat. SIP se používá samozřejmě nejen pro inicializaci, ale i modifikaci a ukončování interaktivních relací (tedy komunikace v reálném čase). Jak název protokolu napovídá, jedná se o protokol relační, ale protože TCP/IP žádnou relační vrstvu nerozeznává, patří SIP mezi protokoly aplikační vrstvy a pracuje nad transportními protokoly UDP (většinou) či TCP.
SIP poskytuje následující služby:
- lokalizace uživatele – určení koncového systému pro danou komunikaci,
- navázání spojení – stanovení parametrů pro volající a i volanou stranu,
- dostupnost uživatele – zjištění (volitelné) dostupnosti volané strany a sledování přítomnosti,
- uživatelské možnosti – určení média a jeho parametrů.
SIP naproti tomu :
- neprovádí management interaktivních relací po jejich navázání,
- neumí zajistit požadovanou kvalitu služby (QoS), protože neumí upřednostňovat nějaký provoz ani rezervovat potřebné síťové prostředky, ale může spolupracovat s protokoly, které se o zajištění QoS mohou postarat (např. RSVP),
- není protokol určený k přenosu velkého objemu dat, jako je třeba HTTP, místo toho přenáší pouze malý objem dat potřebných pro navázání interaktivních relací, kromě toho je ještě schopen přenášet krátké textové zprávy.
SIP podobně jako HTTP nabízí jednoduchý textový formát (na rozdíl od binárních protokolů jako H.323), který je výhodný pro tvůrce aplikací (ve formě SIP servlet). Protože je SIP nedílnou součástí architektury TCP/IP, plně využívá dalších protokolů pro webové aplikace nebo elektronickou poštu, a to je jeho velkou výhodou ve srovnání s H.323 – na poli spolupráce protokolů i její efektivity.
SIP pracuje na principu klient-server. Mezi koncové body, uživatelské agenty (obsahující klienta UAC, UA Client, a server UAS, UA Server), patří uživatelská zařízení jako SIP telefony a PC s klientským softwarem a brány do jiných sítí (zejména brány pro IP telefonii). Servery mohou fungovat jako zástupci (proxy), kdy zastupují klienty při předávání požadavků SIP na další server. Servery mohou podporovat přesměrování (redirect), kdy klienta informují o dalším skoku v síti, kam se má zpráva poslat, a klient nebo proxy následně kontaktuje doporučené zařízení sám. Registraci momentálního umístění klientů zpracovávají registrátoři (registrar), kteří informace o uživatelských agentech aktualizují v serveru umístění (location) nebo databázi.
Adresace v SIP
SIP URL mají různé formy (obecně sip: user@domain
) a mohou obsahovat telefonní čísla.
Příklady: sip:abc@lupa.cz
- adresa počítače uživatele abc v doméně lupa.cz,
sip:+420-212345678@lupa.cz
– telefonní číslo uživatele dosažitelné prostřednictvím brány.
Podpora jak webové adresace, tak telefonních čísel umožňuje IP komunikaci bez větších problémů přecházet mezi telefonní sítí a Internetem. Uživatelé na kterékoli síti tak mohou komunikovat s kýmkoli na telefonní síti nebo na Internetu, aniž by museli vyměnit svá stávající zařízení. IP zařízení s podporou SIP (telefony, počítače) mohou komunikovat přímo, pokud znají URL druhé strany.
Kvalita služby a bezpečnost
SIP podporuje interaktivní aplikace, které jsou typicky závislé na minimálním zpoždění a jeho kolísání u jednotlivých datagramů a jsou citlivé na ztrátu datagramů v zatížené síti. Ty nemusí vystačit pouze s běžnou úrovní služby typu „best effort“, poskytovanou v IP sítích, a mohou vyžadovat konkrétnější a lepší úroveň přenosové služby poskytované sítí. Jedním z důležitých prvků implementace služeb SIP je mapování tříd služby na provoz signalizace a uživatelských dat.
Kvalita interaktivní komunikace v IP síti ale může být dostatečná i v případě standardní úrovně služeb, vše závisí na momentální zátěži sítě a také na šířce pásma přístupu k síti (širokopásmové přípojky k Internetu umožňují mnohdy kvalitu hlasové komunikace na bázi SIP odpovídající kvalitě telefonní sítě).
SIP musí být také zabezpečen z hlediska autentizace a ochrany dat (RFC 3323, 3325, 3329). SIP také musí spolupracovat s bezpečnostními prvky na Internetu, jako je firewall anebo NAT.
SIP pro mobilní a bezdrátové aplikace
SIP má slibnou budoucnost v mobilních a vůbec bezdrátových sítích. Mobilita, kterou umožňuje SIP, je doplňkem na vyšší vrstvě k mobilitě nabízené protokolem Mobile IP (MIP).
Mobilita se může odehrávat na různých úrovních:
- mobilita terminálu – podpora přechodu koncového zařízení mezi (pod)sítěmi, tj. změny místa připojení,
- mobilita personální – podpora mobility samotného uživatele za využití stejné adresy, bez ohledu na typ koncového zařízení,
- mobilita služeb – podpora stejných služeb i za předpokladu pohybu,
- mobilita relací – umožňuje udržení relací i při změně IP zařízení.
SIP podporuje mobilitu uživatelů prostřednictvím předávání požadavků pomocí proxy na místo momentálního výskytu uživatele. Uživatelé mohou informovat server o svém momentálním URL nebo IP adrese odesláním registrační zprávy registrátorovi (registrar). Klienti SIP mohou buď využívat zástupný (proxy) nebo přesměrovací (redirect) server. Proxy server může izolovat nebo schovávat uživatele SIP díky svému zastupování při posílání signalizačních zpráv, protože pro ostatní uživatele zprávy pocházejí od proxy serveru. Při přesměrování se signalizační požadavek pošle SIP serveru, který vyhledá cílovou adresu.
SIP v mobilních sítích lze využít pro následující služby:
- sjednocené předávání zpráv – umožní uživateli kontakt pro okolní svět různou formou (telefon, hlasová pošta, email) na různá koncová zařízení,
- okamžité předávání zpráv (instant messaging) – nástupce SMS (Short Message System),
- služby na základě místa (LBS, Location-Based Service) – služby, které mohou být vyvolány na základě určení místa, kde se právě uživatel nachází.
Proč volit SIP
Základní výhodou protokolu SIP je jeho jednoduchost. Potřebuje jen malý počet zpráv a navíc díky tomu, že umožňuje aplikacím nezávislost na síťové vrstvě, může pracovat nad různými typy sítí. Uživatele lze v síti lokalizovat a komunikovat s nimi bez ohledu na konkrétní koncová zařízení, která právě používají.
Používáte SIP?