Protocolul de inițiere a sesiunii

SIP (Session Initiation Protocol)
Familie: Familia de protocol Internet
Zona de operare: Managementul sesiunilor de streaming
Port: 5060
5061 ( criptare TLS )
SIP în stiva de protocol TCP / IP :
cerere ÎNGHIŢITURĂ
transport UDP TCP
Internet IP ( IPv4 , IPv6 )
Acces la retea Ethernet
Autobuz cu token
Token
ring
FDDI ...
Standarde: RFC 3261 (SIP, 2004 )

Session Initiation Protocol ( SIP ) este un protocol de rețea pentru configurarea, controlul și care se termină o comunicare sesiune între doi sau mai mulți participanți. Protocolul este, printre altele, specificat în RFC 3261 . În telefonia IP , SIP este un protocol utilizat frecvent.

funcționalitate

Spre deosebire de H.323 , care provine din ITU-T , SIP a fost dezvoltat de IETF . H.323 poate fi numit ISDN peste IP într-un mod foarte simplificat . Deși acest lucru a permis producătorilor de sisteme de telefonie, în special, să schimbe comunicarea către rețelele IP relativ rapid și ușor, pe de altă parte, punctele tari și punctele slabe ale rețelelor IP nu au fost luate în considerare suficient. Acest lucru este evident mai ales în legătură cu NAT , traducerea adreselor de rețea, care este necesară mai ales pentru firewall-uri și rețelele clienților finali (de exemplu, routerele DSL ), care poate fi realizată numai cu eforturi mari cu H.323.

Designul SIP, pe de altă parte, se bazează pe Protocolul de transfer hipertext (dar nu este compatibil cu acesta) și este semnificativ mai potrivit pentru rețelele IP. Structura SIP vă permite să adăugați cu ușurință noi extensii fără ca toate dispozitivele implicate să le înțeleagă. De asemenea, este păstrat mai general: în timp ce H.323 este destinat doar telefoniei, orice tip de sesiune poate fi gestionat cu SIP. „Sarcina utilă” a sesiunii, adică fluxurile de date efective care trebuie transmise, poate fi orice flux care poate fi transmis printr-o rețea. Domeniul principal de aplicare este în transmisia audio și video, unele jocuri online folosesc și SIP pentru a gestiona transmisia.

Semnalizare SIP.svg

Pentru a efectua un apel pe Internet , aveți nevoie de mai mult decât de SIP, deoarece servește doar pentru a conveni sau a negocia modalitățile de comunicare - datele reale pentru comunicare trebuie schimbate folosind alte protocoale adecvate. În acest scop, Protocolul de descriere a sesiunii ( SDP , RFC 4566 , traducerea din „ Session Description Protocol ” în engleză nu este utilizat în mod obișnuit) este adesea încorporat în SIP pentru a negocia detaliile transmiterii video și / sau audio. Dispozitivele își comunică reciproc ce metode de transmisie video și audio pot utiliza (așa-numitele codecuri ), ce protocol doresc să utilizeze pentru aceasta și la ce adresă de rețea doresc să trimită și să primească.

Prin urmare, această negociere media nu este o parte directă a SIP, ci se realizează prin încorporarea unui alt protocol în SIP. Această separare a sesiunii și a negocierii media este unul dintre avantajele SIP, deoarece permite o mare flexibilitate în sarcina utilă acceptată: De exemplu, dacă un producător dorește să utilizeze SIP pentru o aplicație specializată, el poate proiecta propria sa negociere media pentru aceasta, dacă unul nu are deja un protocol există.

În telefonia prin Internet, Protocolul de transport în timp real ( RTP , protocolul german de transport în timp real , RFC 3550 ) este utilizat pentru transmiterea mass-media . SIP negociază sesiunea aici, SDP încorporat negociază detaliile media, iar RTP este apoi protocolul care transmite în cele din urmă fluxurile video și audio.

Adresele participanților sunt scrise în format URI , care este, de asemenea, utilizat în e-mailuri și adrese WWW . O astfel de adresă de participant urmează de obicei una dintre următoarele trei scheme:

  • Conexiune SIP necriptate: sip:user@domain.
  • Conexiune incriptata SIP: sips:user@domain.
  • Număr de telefon :, tel:nummerde exemplu tel:+49-69-1234567. Această schemă este utilizată în principal de dispozitivele care oferă o interfață la rețeaua telefonică „normală” și pot fi convertite într-un URI SIP, dacă este necesar, de exemplu sip:+49-69-1234567@domain.

Criptare și securitate

Prin separarea sesiunii și mass-media, ambele fluxuri de date pot fi, de asemenea, criptate independent unul de celălalt. SIP poate fi criptat folosind protocolul TLS , cunoscut și sub numele de SIPS, iar fluxul media (date vocale) poate fi, de asemenea, criptat folosind protocolul SRTP . Orice combinație a acestora este posibilă, dar nu are sens în ceea ce privește criptarea sigură.

Pentru o criptare sigură, ambele fluxuri de date (adică sesiunea și media) trebuie criptate în același timp. Cheile simetrice ale fluxului media sunt schimbate prin SDP (adică SIP) și, prin urmare, ar putea fi atacate printr-un SIP necriptat. Deși cheile simetrice ale TLS sunt schimbate la începutul sesiunii, mecanismele certificatelor SSL au efect aici , în care cheile simetrice sunt la rândul lor criptate de cheile asimetrice ale certificatelor SSL.

Deoarece o transmisie printr-un protocol de rețea fără conexiune are mai mult sens cu SIP, un omolog TLS bazat pe UDP, care se bazează pe TCP, a fost proiectat cu DTLS . Cu toate acestea, în prezent este implementat doar de o stivă SIP (ReSIProcate).

Elemente de rețea

Înregistrare SIP UA pe registratorul SIP cu autentificare prin autentificare
Fluxul de apel prin serverul de redirecționare și proxy
Stabiliți o conexiune cu B2BUA
  • Agent utilizator
Agentul utilizator este o interfață pentru utilizator care afișează conținut și primește comenzi. Un telefon SIP este, de asemenea, un agent de utilizator SIP care oferă funcțiile tradiționale de apelare ale unui telefon, cum ar fi apelarea, răspunsul, respingerea și oprirea.
  • Server proxy
Un server proxy este o interfață de comunicație într-o rețea. Funcționează ca un intermediar ( rutare ) care, pe de o parte, primește întrebări pentru a stabili apoi o conexiune cu o altă parte prin propria adresă. Sarcina lui este să se asigure că solicitările sunt direcționate către utilizator. Procurările sunt, de asemenea, necesare pentru a impune ierarhia.
  • Server de înregistrare
Serverul de înregistrare servește ca punct central de comutare în arhitectura de sistem a SIP. Preia înregistrarea cererilor pentru domeniul pe care îl prelucrează. Procesează una sau mai multe adrese IP pentru un anumit URI SIP, care sunt transmise prin protocolul SIP.
  • Redirecționare server
Serverul de redirecționare eliberează serverul proxy. Transferă informațiile de rutare direct clientului agent de utilizator. Creează redirecționări pentru a putea contacta cererile primite într-un set alternativ de URI-uri. Serverul de redirecționare permite trimiterea invitațiilor de sesiune SIP către domenii externe.
  • Controlorul frontierei sesiunii
Un controler de bordură de sesiune este o componentă de rețea pentru cuplarea sigură a rețelelor de calculatoare cu cerințe de securitate diferite. Acesta servește ca nod mijloc între agentul utilizator și serverul SIP pentru diferite tipuri de funcții, inclusiv suport pentru traducerea adreselor de rețea (NAT)
  • Gateway
Un gateway poate interfața o rețea SIP cu alte rețele, cum ar fi rețeaua publică de telefonie, care utilizează diferite protocoale sau tehnologii.
  • B2BUA
B2BUA - (în engleză agent utilizator back-to-back, literal: agentul utilizator „back to back”) este un middleware atât în ​​fluxul de date SIP, cât și în RTP. În raport cu clienții SIP, un B2BUA se comportă ca un server agent utilizator pe o parte a conexiunii și ca un client agent utilizator pe cealaltă. Este logic să poți manipula fluxurile de date.
B2BUA este specificat în RFC 3261 .
Exemple pentru aplicație:
  • Gestionarea apelurilor (inclusiv facturare, redirecționare apel, oprire automată)
  • Asocierea diferitelor rețele (în special adaptarea diferitelor dialecte ale protocoalelor, în funcție de producător)
  • Ascundeți structura rețelei (inclusiv adrese private, topologia rețelei)
Practic, un B2BUA poate fi extins într-un proxy cu un gateway media integrat.

Mesaje SIP

Clienții și serverele implicate într-o sesiune SIP își trimit reciproc cereri („solicitări” în limba engleză) și răspund la acestea folosind coduri de răspuns („răspunsuri” în engleză).

Solicitări SIP

RFC 3261 definește șase cereri: ÎNREGISTRARE, INVITARE, ACK, ANULARE, BYE și OPȚIUNI.

Coduri de stare SIP

1xx - Provizional
Informații preliminare privind starea că serverul efectuează acțiuni ulterioare și, prin urmare, nu poate trimite încă un răspuns final.
2xx - De succes
Solicitarea a avut succes.
3xx - redirecționare
Aceste mesaje informează despre o nouă adresă de contact a părții apelate sau despre alte servicii care permit stabilirea conexiunii cu succes.
4xx - Solicitați eșecuri
Mesajul anterior nu a putut fi procesat.
5xx - Eșecuri de server
Un server implicat în transmisie nu a putut procesa un mesaj.
6xx - Eșecuri globale
Serverul a fost contactat cu succes, dar tranzacția nu are loc.

distribuție

SIP este deja acceptat în multe dispozitive de la diferiți producători și pare să se dezvolte în protocolul standard pentru Voice over IP ( VoIP ). SIP a fost, de asemenea, selectat de Proiectul de parteneriat de generația a treia (3GPP) ca protocol pentru suport multimedia în comunicațiile mobile 3G ( UMTS ). Specificația Rețelei de generație următoare (NGN) de la Institutul European de Standarde în Telecomunicații (ETSI) al grupului de proiecte Servicii și Protocoale convergente de telecomunicații și Internet pentru TISPAN se bazează, de asemenea, pe SIP.

Avantaje și dezavantaje

Unul dintre avantajele SIP este că este un standard deschis care a devenit acum foarte răspândit. Deoarece serverele SIP sunt distribuite , un atac afectează doar furnizorul respectiv și nu întreaga telefonie comutată prin SIP. Un alt avantaj al SIP este abilitatea de a modifica o sesiune deja stabilită. Pentru a face acest lucru, un alt mesaj INVITE cu noile proprietăți de sesiune SDP este pur și simplu trimis către cealaltă parte din cadrul sesiunii. În acest fel, un mediu nou poate fi adăugat sau un mediu existent poate fi modificat sau eliminat. Mesajul corespunzător este denumit și o cerere de REINVITARE.

Un dezavantaj al SIP este că folosește RTP pentru a transmite datele vocale . Porturile UDP utilizate pentru aceasta sunt atribuite dinamic, ceea ce face dificilă utilizarea SIP în legătură cu firewall-uri sau Network Address Translation (NAT, RFC 2663 ), deoarece majoritatea firewall-urilor sau routerelor NAT nu pot atribui porturile atribuite dinamic conexiunii de semnalizare. Un remediu pentru această problemă este utilizarea STUN (Session Traversal Utilities for NAT), care recunoaște și pătrunde în routerele NAT, dar și alte protocoale precum IAX (InterAsterisk eXchange). Prin utilizarea protocolului STUN, se determină adresa IP și portul cu care firewall-ul NAT sau routerul NAT se îndreaptă spre exterior (adică pe internetul public). O metodă mult mai simplă de a ocoli această problemă este ca serverul proxy sau abonatul apelat să acceseze direct adresa IP și portul utilizat în antetul IP, astfel încât mecanismul NAT să funcționeze din nou chiar și fără un server STUN. IAX combină semnalizarea și datele media pe o conexiune UDP. La fel ca H.323, IAX este un protocol binar, deci depanarea este mai dificilă decât SIP. În plus, IAX este doar în faza de standardizare.

O metodă IETF mai recentă pentru rezolvarea problemei traversării NAT este Interactive Connectivity Establishment (ICE), care este deja susținută de unii clienți SIP și poate fi instalată de obicei prin actualizarea firmware- ului.

O altă soluție la problema traversării NAT sunt așa-numitele Application Layer Gateways (ALG). Acestea sunt proxy-uri SIP interconectate care - instalate pe un router NAT sau firewall - asigură transferul lin al semnalizării SIP și al fluxurilor media către îngrijire. Un ALG poate deschide automat porturile necesare pe un firewall pentru apelurile SIP și poate marca fluxurile media RTP cu biți DiffServ . Aceasta înseamnă că pachetele media pot fi transportate cu prioritate mai mare asupra rețelelor IP dacă o rețea acceptă acest lucru. În principiu, Internetul nu oferă nicio prioritate, vezi neutralitatea rețelei

Atunci când utilizați IPv6 ca protocol de transport, NAT nu este în general necesar, ceea ce înseamnă că nu este nevoie să ocoliți problemele tipice NAT. Doar problema firewall-ului rămâne aceeași.

Exemple

O cerere SIP ar putea arăta astfel:   Și un astfel de răspuns SIP :
Linia de start INVITĂ înghițitură: 8495302002@192.168.2.25 SIP / 2.0
Antet Via: SIP / 2.0 / UDP 192.168.3.250:5060; ramură = 1

De la: sip: 8495305005@192.168.2.25; tag = 29ae1249

Max înainte: 70

Către: sip: 8495302002@192.168.2.25

ID apel: 48c7df2a9b4 @ myvoip1

Cseq: 1 INVITĂ

Contact: sip: 8495305005@192.168.3.250

Lungime conținut: 202

Suportat: 100rel

Content-Type: application / sdp

linie goală
corp v = 0

o = Anonim 1234567890 1234567890 IN IP4 192.168.3.250

s = SIGMA este cel mai bun

c = IN IP4 192.168.3.250

t = 0 0

m = audio 6006 RTP / AVP 8 3 0

a = rtpmap: 8 PCMA / 8000

a = rtpmap: 3 GSM / 8000

a = rtpmap: 0 PCMU / 8000

 
Linia de start SIP / 2.0 200 OK
Antet Prin: SIP / 2.0 / UDP 192.168.2.25:5060;branch=z5K8DSbCGCL8593033654

De la: sip: 8495305005@192.168.2.25; tag = 6248550609-457625817474016

Către: sip: 8495302002@192.168.3.251; utilizator = telefon; etichetă = 2e679cbc

ID apel: 6248550609-781762546450147

Cseq: 15 INVITĂ

Contact: sip: 8495302002@192.168.3.251

Lungimea conținutului: 191

Content-Type: application / sdp

linie goală
corp v = 0

o = Anonim 1234567890 7894561230 IN IP4 192.168.3.251

s = SIGMA este cel mai bun

c = IN IP4 192.168.3.251

t = 0 0

m = audio 6006 RTP / AVP 8 0

a = rtpmap: 8 PCMA / 8000

a = rtpmap: 0 PCMU / 8000



Vezi si

Specificații

  • RFC 2543 - SIP (versiune învechită)
  • RFC 3261 - SIP
  • RFC 3265 - Extensie SIP: Notificare specifică eveniment
  • RFC 3515 - Actualizare SIP: Metoda de referință SIP
  • RFC 3665 - Exemple de flux de apel de bază SIP
  • RFC 3581 - Actualizare SIP: Rutare de răspuns simetric
  • RFC 3853 - Actualizare SIP: utilizarea AES în loc de 3DES
  • RFC 4320 - Actualizare SIP: Probleme cu tranzacția SIP Non-INVITE
  • RFC 4916 - Identitate conectată în protocolul de inițiere a sesiunii

literatură

  • Ulrich Trick, Frank Weber: SIP și rețele de telecomunicații. Rețele de generație următoare și multimedia pe IP - în mod specific , De Gruyter Oldenbourg, 2015, ISBN 978-3-486-77853-3

Link-uri web

Dovezi individuale

  1. Utilizarea protocolului de inițiere a sesiunii pentru a construi suport VoIP Context-Aware pentru jocuri în rețea multiplayer (PDF; 283 kB) de Aameek Singh și Arup Acharya
  2. Structura protocolului de inițiere a sesiunii SIP - dimaweb.at, accesat la 14 noiembrie 2013