Message Session Relay Protocol

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Message Session Relay Protocol (MSRP) v počítačových sítích je protokol pro přenos sérií souvisejících instantních zpráv v rámci komunikační relace. Relaci vytvoří aplikace instanciací pomocí protokolu Session Description Protocol (SDP) přenášeného protokolem Session Initiation Protocol (SIP) nebo jinou metodou pro Rendezvous komunikaci.

MSRP protokol je definován v RFC 4975[1]. MSRP zprávy mohou být rovněž předávány pomocí mezilehlých uzlů (zprostředkovatelů), vrstevníky, pomocí relay rozšíření definovaných v RFC 4976[2].

MSRP se používá v rámci RCS, zejména pro instant messaging, přenos souborů a sdílení fotografií.

Struktura protokolu[editovat | editovat zdroj]

MSRP má podobnou syntaxi jako ostatní textové protokoly vytvořené organizací IETF jako SIP, HTTP a RTSP:

  • každá zpráva může být žádost nebo odpověď
  • pro adresování se používá URI
  • zpráva obsahuje záhlaví a tělo, které může nést jakýkoli typ dat, včetně binárních informací.

MSRP je mnohem jednodušší než protokol SIP. První dvě hlavičky musí být To-Path a From-Path a poslední musí být Content-Type, což významně snižuje složitost analyzátorů. Zpráva musí končit sedmi pomlčkami ("-"), následuje identifikátor transakce, který musí být v prvním řádku, následované pokračovacím jednoznakovým příznakem a konec řádku (CRLF). Tento poslední řádek na konci zpráv umožňuje velmi jednoduše najít hranici zprávy. MSRP není definováno pro skupinu nespojovaných protokolů jako je UDP, takže je jistota, že odpověď na žádost dorazí stejným spojením. MSRP také využívá spolehlivý charakter transportní vrstvy, to znamená, že zaručuje doručení a zachovává pořadí zpráv, což výrazně zjednodušuje design protokolu.

V MSRP URI se používá schéma "msrp" nebo "msrps", autoritu definovanou v RFC 3986, která je držitelem IP / jméno domény a případně i port, volitelný identifikátor relace, informaci o transportním protokolu a další volitelné parametry. Například:

msrp://atlanta.example.com:7654/jshA7weztas;tcp

  • msrp je schéma
  • atlanta.example.com:7654 je autorita
  • jshA7weztas je identifikátor relace
  • tcp je transportní protokol

Použití v SIP[editovat | editovat zdroj]

MSRP může být použito v rámci SIP relace:

  • pro instant messaging v režimu one-to-one nebo one-to-many
  • pro přenos souborů pro přílohy
  • pro sdílení fotografií (např. Image Share) na základě předchozího dojednání schopností mezi uživatelskými koncovými body

MSRP relace je vytvořena pomocí SIP modelu Nabídka-odpověď[3]. Média typ pro SDP řádek m je message a protokol je buď TCP/MSRP pro MSRP po TCP nebo TCP/TLS/MSRP pro MSRP po zabezpečeném TLS. MSRP URI je specifikováno v atributu path.

Příklad úplného SDP podle RFC:

   v=0
   o=alice 2890844526 2890844527 IN IP4 alice.example.com
   s= -
   c=IN IP4 alice.example.com
   t=0 0
   m=message 7394 TCP/MSRP *
   a=accept-types:text/plain
   a=path:msrp://alice.example.com:7394/2s93i9ek2a;tcp

Skutečnost, že MSRP obsahuje adresu a port a současně je v c-řádku adresa a v m-řádku port je příčinou nejasností. Obecně platí, že pokud se media typ v řádcích c a m liší pro popis adresy, ale MSRP RFC uvádí, že tato informace je ve skutečnosti určena v MSRP path. To může způsobit, že některá zařízení nastaví relaci nesprávně, zejména B2BUA může požadovat změnu cesty pro každou MSRP zprávu mezi různými zařízeními. K překonání tohoto problému RFC draft[4] mění způsob, jakým zařízení porovnávají MSRP cesty. Místo porovnávání celé cesty se mají porovnávat pouze identifikátory relace. Tento přístup zjednodušuje mnoho skutečných scénářů a zlepšuje celkovou interoperabilitu mezi zařízeními v síti.

Implementace[editovat | editovat zdroj]

Obecná open-source protokolová knihovna je realizována v následujících programovacích jazycích:

Pro relay část existuje také open source implementace v Pythonu [2].

Reference[editovat | editovat zdroj]

  1. RFC 4975, The Message Session Relay Protocol (MSRP), B. Campbell (Ed.), R. Mahy (Ed.), C. Jennings (Ed.), The Internet Society (September 2007)
  2. RFC 4976, Relay Extensions for the Message Session Relay Protocol (MSRP), C. Jennings (Ed.), R. Mahy (Ed.), A. B. Roach (Ed.), The Internet Society (September 2007)
  3. RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP), IETF, The Internet Society (2002)
  4. draft-ietf-simple-msrp-sessmatch Connection Establishment for Media Anchoring (CEMA) for the Message Session Relay Protocol, IETF, SIMPLE working-group (June 2011)
  5. [1] Archivováno 22. 3. 2013 na Wayback Machine MSRP Java peer library

V tomto článku byl použit překlad textu z článku Message Session Relay Protocol na anglické Wikipedii.

Související články[editovat | editovat zdroj]