SIP: protokół otwartej komunikacji (1)
- Dariusz Niedzielewski,
- 13.09.2010, godz. 09:47
Zalety protokołu komunikacyjnego SIP dostrzegają już zarówno małe firmy, jak i wielkie przedsiębiorstwa, gdzie dotychczas silną pozycję zajmował standard H.323. W dobie dynamicznego rozwoju systemów VoIP, unified communications (UC) oraz konieczności zapewnienia kompatybilności rozwiązań wielu dostawców, uniwersalność i prostota SIP skazuje wręcz ten protokół na sukces.
Niełatwa droga do celu
SIP (Session Initiation Protocol) jest protokołem warstwy aplikacji, służącym do inicjowania, zrywania oraz zmiany sesji komunikacyjnych między terminalami (obecnie najczęściej -wykorzystywany do realizacji połączeń Voice over IP). Protokół został zaprojektowany przez Henninga Schulzrinne'a na Uniwersytecie Columbia, a jego standaryzacją zajęła się w sierpniu 1999 r. grupa MMUSIC (Multiparty Multimedia Session Control), działająca w ramach IETF. Pierwsza wersja zalecenia (o numerze 2.0) otrzymała nazwę RFC 2543. Dalsze rozszerzenia dotyczące samego protokołu zapisano w dokumencie RFC 3261, a w opracowaniu RFC3329 zawarto wytyczne odnośnie do sposobu negocjacji wyboru metod zabezpieczeń między punktami końcowymi terminali. Inżynierowie Internet Engineering Task Force wciąż rozwijają SIP, w czym chętnie pomagają wiodący dostawcy infrastruktury telekomunikacyjnej. Według prognoz ABI Research, w 2012 r. połowa klientów firm telekomunikacyjnych będzie korzystać przynajmniej z jednej usługi bazującej na protokole SIP.
Zobacz również:
- Ruszyły testy satelitów Starlink działających w trybie „direct-to-cell”
- Z tych powodów wiadomości SMS powinny przejść na emeryturę
. RtTP (Real-time Transfer Protocol) - do transmisji danych w czasie rzeczywistym i uzyskiwania informacji o realizacji mechanizmów Quality of Service;
. RtSP (Real-time Streaming Protocol) - do sterowania przesyłem danych multimedialnych (streaming);
. MGCP (Media Gateway Control Protocol) - do kontroli ruchu między bramami medialnymi i sieciami PSTN;
. SDP (Session Description Protocol) - do opisu parametrów sesji.
Zaletą SIP jest także współpraca z innymi protokołami IETF w celu zestawienia np. większych sesji multimedialnych czy połączeń wideokonferencyjnych.
. INVITE - służy do zapoczątkowania wywołania przez zaproszenie użytkownika do sesji;
. ACK - potwierdza odebranie odpowiedzi na żądanie INVITE;
. CANCEL - anulowanie żądania trwającego;
. BYE - zakończenie wywołania przez UAC;
. REGISTER - rejestrowanie agenta użytkownika;
. OPTIONS - odpytanie o możliwości serwera i jego funkcje.
Krótkie know-how
Komunikacja w sieci SIP może odbywać się zarówno w najprostszym układzie peer-to-peer, jak i w architekturze klient-serwer. Ta ostatnia wymaga zdefiniowania kilku pojęć, które pomogą zrozumieć, w jaki sposób nawiązywane są sesje za pomocą SIP. Po stronie użytkownika wyróżniamy: agenta SIP (User Agent Client; UAC), czyli telefon IP lub aplikację na komputerze oraz urządzenie pośredniczące, które może działać jako klient i serwer (User Agent Server; UAS). Rolą UAS jest odpowiadanie na zapytania SIP wysyłane przez UAC.
1xx - wiadomości informacyjne o odebraniu żądania;
2xx - odpowiedzi pozytywne, mówiące o zaakceptowaniu żądania;
3xx - przekierowanie, realizacja wymaga dalszych działań;
4xx - odpowiedzi błędnych żądań;
5xx - błąd serwera, żądanie nie mogło zostać zrealizowane;
6xx - błąd systemowy, żądanie nie może być zrealizowane przez żaden serwer.
Sposób komunikacji SIP między klientem a serwerem wprost wynika z architektury samego protokołu i jego podobieństwa do specyfiki żądań i odpowiedzi HTTP. Adresowanie zasobów sieciowych w SIP, co należy rozumieć, jako zidentyfikowanie np. użytkownika danej usługi, grupy użytkowników, konkretnej skrzynki pocztowej (e-mail), numeru telefonu w tradycyjnej sieci PSTN lub sieci IP, realizowane jest za pomocą identyfikatora URI (Uniform Resource Indicator). SIP URI jest ciągiem znaków ułożonych analogicznie do adresu e-mail (nazwa użytkownika@nazwa hosta).
Warto w tym miejscu zaznaczyć, że używany przez protokół HTTP identyfikator URL (Uniform Resource Locator) nie jest tożsamy z URI, mimo łudząco podobnych nazw. Oba terminy są obecnie używane wymiennie, co stanowi jednak duże uproszczenie. URL określa jedynie miejsce, w którym dany zasób jest dostępny, natomiast jego rodzaj określa URI. W pewnym sensie URI jest elementem nadrzędnym wobec URL - często jest tak, że URI jest tożsame z URL, ale nie musi być to regułą.
Informacje o charakterze zestawianej sesji (głos, wideo, dane) są przekazywane za pomocą wspomnianego już protokołu SDP (Session Description Protocol) oraz SAP (Session Announcement Protocol). Wiadomości SDP określają, jakie możliwości muszą mieć terminale końcowe do poprawnego zrealizowania połączenia. Za pomocą SAP można natomiast poinformować większą liczbę użytkowników o otwieranej sesji (telekonferencje, wideokonferencje, telewizja internetowa itp.).
Druga część artykułu: SIP: bezpieczeństwo (2) - tutaj.
O SIP czytaj też tu.
SIP (cz. 2): bezpieczeństwo