Če je SIP (Session Initiation Protocol) razmeroma hitro opravil s skupino protokolov, združeno pod »dežnikom« H.323, se mu Skype kot eden od konkurentov na področju internetne telefonije uspešno upira. Zavedati se moramo, da se je SIP (www.ietf.org/rfc/rfc3261.txt) pred leti pojavil kot odgovor organizacije IETF (Internet Engineering Task Force) na precej okorno okolje H.323, ki se je razvijalo v okviru združenja ITU ( International Telecommunication Union) oziroma njegovega sektorja za standardizacijo (ITU-T). Ker je SIP nastajal v okviru internetne skupnosti, je jasno, da je s svojo preprostostjo (podoben je protokolu HTTP) laže reševal težave prehoda prek omrežij oziroma različnih vrst opreme (npr. požarnih zidov) ter omogočal dodatne funkcionalnosti in storitve, medtem ko je H.323 dejansko v IP-svet prevedena ISDN-signalizacija. SIP lahko zato uporabimo kot osnovo za komunikacijo tako v zaprtih omrežjih kot tudi prek javnega internetnega omrežja. Kljub nekaterim pomembnim razlikam med omrežji H.323 in SIP pa med njimi vlada določena sorodnost. Ne glede na poimenovanje posameznih komponent (npr. H.323-vratar, SIP-proxy …) lahko hitro ugotovimo, da je pri SIP-u uporabljena arhitektura tipa odjemalec-strežnik, ki ga loči od v zadnjih letih priljubljenih omrežij P2P (peer-to-peer).

Z naraščanjem omrežij raste tudi kompleksnost, pogosto se zmanjšuje njihova skalabilnost in poveča se možnost za morebitne težave. Tudi arhitektura tipa odjemalec-strežnik, ki jo uporabljajo pri SIP-u ni izjema. Smiselno bi bilo torej izvesti decentralizacijo, zato se je smiselno ozreti po morebitnih drugačnih rešitvah. Pri večjem številu uporabnikov se pojavljajo tudi vprašanje upravljanja in konfiguriranja omrežja ter morebitni varnostni zadržki (beri: še enkrat zanesljivost). Eden od možnih odgovorov so omrežja P2P, ki razmeroma solidno delujejo kot različni servisi za izmenjavo datotek, število njihovih uporabnikov pa je vsak dan večje. Prvo vprašanje, ki se postavlja, je, ali so omrežja P2P sploh primerna za časovno kritične aplikacije, kot je prenos govora in slike. Skypov zgled nam kaže, da z njegovo uporabo največkrat ni težav, žal pa ostaja dejstvo, da so razvijalci Skype naredili kot »zaprt protokol«, medtem ko je SIP odprt.

ZNAČILNOSTI OMREŽIJ P2P

Preden nadaljujemo, si oglejmo še nekatere značilnosti omrežij P2P. Ta so definirana kot logična omrežja, ki nastanejo na podlagi povezave vozlišč z enako storitvijo oziroma aplikacijo. V primerjavi z arhitekturo odjemalec-strežnik ima lahko pri komunikaciji P2P vsako vozlišče (node oziroma peer) vlogo strežnika in odjemalca. To pomeni, da lahko vsako vozlišče, ki je v vlogi odjemalca, nastopa kot strežnik za odjemalce drugih vozlišč.

Omrežja P2P lahko v grobem razdelimo na dve skupini. V prvi skupini nimamo jasno definirane logične strukture (nestrukturirani sistemi. Pri zahtevi po določeni storitvi/viru, se zahteva posameznega vozlišča prenese na vse njegove sosede. Tovrstna omrežja P2P sodijo v tako imenovano prvo generacijo. Takšen način za naše potrebe (prenos govora) ni učinkovit, zato si poglejmo še drugo skupino, pri kateri je logična struktura (strukturirani sistemi) urejena in so značilna za drugo generacijo. Nekatera vozlišča v omrežju so zmogljivejša po strojni opremi in tvorijo »hrbtenično«povezavo tako imenovanih supervozlišč (super nodes). Ta vozlišča vzdržujejo mehanizem DHT (Distributed Hash Table, ki jih gradijo le supervozlišča) za izmenjavo informacij – v njem imajo posamezna vozlišča z viri unikaten ID-naslov. Zdaj vozlišča običajno ne komunicirajo prek svojih sosedov temveč z informacijami, ki jih dobijo prek supervozlišč. Tovrstni mehanizem je uporabljen tudi pri omrežju Skype. Edina od »konstant« omrežij P2P je njihova spremenljivost. Ker se uporabniki v omrežju ves čas prijavljajo, uporabljajo posamezne storitve in se čez čas odjavijo, je potrebno posamezne spremembe ustrezno obdelati.

Iz navedenega in praktičnih izkušenj lahko ugotovimo nekaj prednosti omrežij P2P pred konceptom odjemalec-strežnik, ki ga uporabljamo pri SIP-u. Prva je velika skalabilnost, saj lahko vsako novo vozlišče v omrežju deluje tudi kot strežnik, hkrati pa posamezni odjemalci niso vezani na konkretne strežnike oziroma njihove »redundance«. V omrežju P2P lahko dobi uporabnik (vozlišče) odgovor od katerega koli supervozla, zato je takšno omrežje tudi bistveno robustnejše kot pri uporabi SIP-a.

PREDNOSTI ZDRUŽEVANJA

Iz navedenega je torej smiselna uporaba koncepta P2P pred klasično arhitekturo, ki se uporablja pri SIP-u, seveda pa to ne pomeni, da SIP v celoti zavržemo. Na voljo imamo dve možnosti. Prva je uporaba SIP-a s P2P-jem. V tem primeru uporabimo P2P za izvedbo SIP-a (location services), druga možnost pa je uporaba SIP-a za prenos prometa P2P. V luči novih dejstev se lahko lotimo sprememb, zavedati pa se je treba, da moramo še naprej zagotoviti uporabo protokolov, ki smo jih vajeni iz obeh omrežij, ter da mora biti še vedno ohranjena dosežena funkcionalnost. Seveda pa lahko v novem omrežju vpeljemo funkcionalnosti, ki jih do zdaj nismo bili vajeni.

Ko SIP uporablja P2P, je ena od možnosti ta, da klasično SIP-ovo lokacijsko storitev (location service) nadomestimo s protokolom P2P. Zato bo namesto sporočila »register« nov odjemalec (P2P), ki deluje v vlogi agenta SIP, poskrbel za vnos URI/URL v DHT. Povezovanje delov omrežja je lahko izvedeno prek omrežja P2P. Če bi se odločili za drugo možnost (P2P prek SIP-a), bi sporočilo »register«ostalo nespremenjeno in bi ga glede na novo naravo omrežja le modificirali/razširili. V tem primeru je dejansko SIP nadgrajen s prometom P2P, kar pomeni, da posebnih sprememb na ravni samega SIP-a ne potrebujemo. Koristno povezovanje konceptov SIP in P2P lahko vidimo tudi v ideji prijave uporabnika. Prijava se izvede s prej navedenim ukazom »register«, ki smo ga vajeni iz SIP-a, hkrati pa se izvede tudi prijava P2P. S prvo prijavo lahko izvedemo povezavo v strežnik SIP, z uporabo mehanizma P2P pa lahko izvedemo poizvedbo o bližnjem supervozlu ali morebitnem izpadu tega (izpad registracije).

Za konec si oglejmo še primer kako izvedemo klic. Ko želimo izvesti klic, najprej preverimo, ali morda naslova klicane osebe ni v predpomnilniku (cache). Če želenega podatka v njem ne najdemo, se izvršita hkrati poizvedba SIP (ki smo je vajeni) in poizvedba P2P (uporaba DHT). Po znanem ponoru povezave se vpleteni supervozel odloči, ali bo deloval. Za uporabnike, ki so za požarnim zidom ali NAT-om, deluje kot supervozel SIP proxy strežnik, v drugih primerih pa bi posredoval sporočilo »invite« naslednjemu vozlišču (strežnik redirect). Po vzpostavljeni povezavi se vzpostavi neposredna komunikacija med končnima točkama, kot smo tega vajeni.

V PRAKSI PA …

V praksi smo že priča različnim izvedbam povezave P2P in SIP (npr. Damaka – www.damaka.com). Treba bo tudi odgovoriti na določena vprašanja, povezana z varnostjo, na primer: kje so supervozli in kdo jih bo vzdrževal, anonimnost uporabnikov, uporaba šifriranja, varovanje pred različnimi vrstami napadov … Treba bo izvesti tudi najrazličnejša optimiranja, saj časovni zamiki (delay) niso zanemarljivi. Kakorkoli že, povezovanje mehanizmov P2P in SIP je nesporno dobra popotnica za nova omrežja.

Moj mikro, September 2008 | Marko Koblar