session initiation protocol (sip) - tti.unipa.it _reti_l.s/sip.pdf · sip 3 università di palermo...
TRANSCRIPT
SIP 1
Universitàdi Palermo LA
SessionInitiationProtocol(SIP)
SIP 2
Universitàdi Palermo LA
Outline
SIP functionality and architecture
Signalling generalities
Signalling in packet networks
SIP generalities
SIP components
SIP-T
SDP
SIP 3
Universitàdi Palermo LA
Signalling generalities
La PSTN risale al 1876
Negli anni si è però evoluta ed arricchita di servizi
Fondamentalmente basata su una architettura a commutazione di circuito
Architettura della PSTN utilizza due piani funzionali distinti:
� Piano di trasporto a commutazione di circuito
� Piano di controllo
Piano di trasporto formato (oggi) da autocommutatori di livello 5 e di livello 4
Piano di controllo formato da un complesso di nodi e database
Il piano di controllo gestisce il comportamento degli autocommutatori
del piano di trasporto e fornisce tutti i servizi della PSTN
SIP 4
Universitàdi Palermo LA
Architettura PSTN
STP
SCP
ServiceNode
Control plane
Transport plane
SIP 5
Universitàdi Palermo LA
Next Generation Telephone Systems
Successiva generazione di sistemi telefonici basata sulle tecnologie di Internet
In Internet assenza di un vero e proprio piano di controllo
La rete Internet carica di molti problemi da risolvere
Sistemi telefonici di nuova generazione faranno uso
di reti private basate sulla tecnologia di Internet
Possibili per un periodo transitorio soluzioni miste
SIP 6
Universitàdi Palermo LA
Problemi della VoIP
1. Trasporto della segnalazione di chiamata su una rete packet switching
2. Controllo della QoS
3. Costruzione di una rete PSTN/VoIP
Coesistenza per lungo periodo della PSTN e VoIP
Serve pur sempre un sistema di segnalazione
Internet è best effort ma in telefonia si vuole una garanzia di qualità
Anzi volendo fornire un complesso molto più ricco di servizi serve
un sistema di segnalazione dotato di più ampie potenzialità
SIP 7
Universitàdi Palermo LA
Converged Network
SCP
ServiceNode Control plane
Transport plane
Residential/AccessGateway
STP
VoIP/PSTNGateway
Routed Data Network
VoIP Control Network
PVC
Dynamic, routed path
Trunk line
SS7 line
Other link
SIP 8
Universitàdi Palermo LA
Signalling in packet networks
H.323(H.225/H.245)
SIP
Troppo complesso e pesante per essere scalabile
e non sufficientemente flessibile a adattabile
Semplice, flessibile e scalabile anche a
grandi scenarii
Si deve dire però che – a poco a poco – è diventatocomplesso quasi tanto quanto H.323
SIP 9
Universitàdi Palermo LA
Architettura H.323
SIP 10
Universitàdi Palermo LA
Confronto SIP-H.323
SIP H.323Un componente di un sistemadi comunicazioni
Una suite completa ed integratadi protocolli di comunicazione
Protocollo flessibile integrabilecon altri protocolli (IETF)
Sistema integrato e chiuso(ITU-T)
Progettato come protocollo di WAN Progettato come protocollo di LAN
Diversi concetti derivato da HTTP Componenti derivati da protocolliITU-T
Implementazione facile Implementazione complessa
SIP 11
Universitàdi Palermo LA
SIP generalities
SIP è parte della Internet multimedia conferencing architecture, un set
di protocolli che possono essere usati per fornire servizi multimedia
SIP 12
Universitàdi Palermo LA
SIP generalities (2)
L’edizione attuale di SIP è la 2.0, definita nella RFC 3261
la quale ha aggiornato la precedente RFC 2543
Molte altre RFC come la 3312 definiscono varie estensioni e dettagli
SIP opera a livello Sessione
SIP fa uso del paradigma client/server
SIP è basato su un modello di transazione
� Ha una struttura request-response
SIP è simile ad HTTP e condivide alcune delle sue idee progettuali:
� È leggibile dagli uomini
SIP 13
Universitàdi Palermo LA
Layered Structure
Una transaction è una richiesta trasmessa da una client transactiona una server transaction, insieme a tutte le risposte a quella richiesta
trasmesse all’indietro dalla server transaction alla client transaction
SIP è un protocollo a strati, con tre layers
� Syntax ed Encoding layer
� Transaction layer
� Transport layer
SIP può utilizzare come protocollo di trasporto TCP, UDP o SCTP
SIP 14
Universitàdi Palermo LA
Layered Structure (2)
Il transaction layer gestisce la ritrasmissione dell’application-layer,
l’abbinamento dei response alle request, e i timeout dell’application layer
Il transport layer definisce come un client invia delle request e riceve dei
response e come un server riceve delle request e invia response sulla rete
Il syntax ed encoding layer si trova al livello più basso della struttura di
SIP e il suo encoding è specificato con la BNF grammar
Ciascun elemento SIP contiene i due layer più bassi, mentre non tutti
contengono il transaction layer
SIP 15
Universitàdi Palermo LA
Various features
SIP è un protocollo text based ed usa il set di caratteri UTF-8
che è uno dei tre formati di codifica UNICODE
Due tipi di messagi SIP:� Request� Response
Request inviati dai client ai server
Response inviati dai server ai client
I due tipi di messaggi vengono distinti tra loro in base alla struttura
della loro prima linea (start line)
SIP 16
Universitàdi Palermo LA
Applicazione operante sul sistema terminale che contieneun UAC ed un UAS. Lo UAC invia le request SIP ed operacome agente di chiamata per l’utente. Lo UAS riceve lerequest e restituisce le response da parte dell’utente
SIP Logical Entities
AAA server
User Agent
Proxy server
Registrar server
Redirect server
Intermediario che agisce come Server e come Clientper servire le request presentate dai client o per inoltrarle
Locator server
Media server
Authentication, Authorization, e Accounting
Accetta le request SIP ed invia al client un response dideviazione contenente l’indirizzo del server successivo.Non viene coinvolto nelle successive fasi di segnalazione.
Consente ad un user di cambiare l’address a cui è
contattabile. Un client invia al Registar una request
Elabora le request (provenienti da redirect o proxyserver) per fornire informazione circa la posizione
Noti come Media Gateway e controllabili variamente
SIP 17
Universitàdi Palermo LA
Proxy Server
Opera a beneficio degli UAC per facilitare l’instaurazione delle sessioni
Un proxy server può essere stateful o stateless
Se stateless è un semplice elemento per il forwarding
Se stateful
ST = Server TransactionCT = Client Transaction
SIP 18
Universitàdi Palermo LA
Proxy Server
Redirect Server Location Service
1
2, 3
4 7
89
101112
Media Transport Protocol
5, 6
Proxy ServerProxy Server Proxy Server
SIP 19
Universitàdi Palermo LA
Location Server
Database
UpdatesResponse
Query
Componente che frequentemente è soltanto logico
Riceve gli updates dal Registrar server
Scambia queries e responses con il registrar server
SIP 20
Universitàdi Palermo LA
Registrar Server
SIP User Agent
Registrar Server
Location Server
Register RequestRegister ReplyNon-SIP Protocol
SIP 21
Universitàdi Palermo LA
Redirect Server
Elemento usato quando il Proxy server riceve una richiesta di
connessione verso un host fuori dalla rete coperta
Redirect ServerSIP request
RedirectedURI
SIP 22
Universitàdi Palermo LA
User Agent
SIP 23
Universitàdi Palermo LA
Funzionalità di SIP
SIP supporta 5 funzioni fondamentali
� User location: Identificazione del sistema terminaleda usare per la comunicazione
� User availability: Determinazione della disponibilità della partechiamata ad accettare la comunicazione
� User capabilities e QoS: Determinazione dei media e dei valorida usare per i diversi parametri
� Session setup: Ringing, impostazione dei parametridi sessione ad entrambe le estremità
� Session management: Compreso il trasferimento e la chiusuradelle sessioni, la modifica dei parametridi sessione e la richiesta di servizi
SIP 24
Universitàdi Palermo LA
SIP Logical Entities (2)
Componenti chiave: User Agent, Proxy server e Redirect server
Un physical device può avere le funzionalità di una o più logical entities
Frequentemente un Proxy server è anche Registrar, Locator e Media server
SIP 25
Universitàdi Palermo LA
Architectural Model
PrivateIP Network
PublicIP Network
SIP UA
UAS
UAC
RedirectServer
ProxyServer Registrar
LocationServer
SIP UA
UAS
UAC
SIP 26
Universitàdi Palermo LA
Layout
Nel caso più semplice si ha
SIP 27
Universitàdi Palermo LA
Scambio di messaggi
Semplificando all’estremo, si ha lo scambio di messaggi:
SIP 28
Universitàdi Palermo LA
SIP Messages
Protocollo SIP basato su un modello di transazione Request/Response
simile ad http
Transazione formata da una Request che invoca un particolare
metodo o funzione sul server ed almeno una Response
SIP usa diversi metodi
INVITEACK
BYECANCEL
OPTIONS
REGISTER
UPDATEPRACK
INFOINVITE RE-INVITE
NOTIFY
SUBSCRIBEUNSUBSCRIBEMESSAGE
REFERPUBLISH
SIP 29
Universitàdi Palermo LA
Request e Response
I due tipi di messaggio SIP – request e response – sono distintitra loro in base alla struttura della start line, che è rispettivamenteuna request line o una status line
Ambedue i tipi di messaggi SIP sono formati da:
� Una Start line
� Uno o più campi header
� Una linea vuota che indica la fine dei campi di header
� Un message body opzionale
La start line, le linee dello header e la linea vuota devonoessere terminate da un CRLF
SIP 30
Universitàdi Palermo LA
SIP Request Message
INVITE sip:[email protected] SIP/2.0 Request line: Method type, request URI(SIP addres of called party), SIP version
Via: SIP/2.0/UDP 63.48.57.12:9918; branch=z9.. SIP version, Transport protoco, IP-addr:portl
Contact: <sip:[email protected]:9918> SIP URI che può essere contattata
From: Alice A. <sip:[email protected]> Utente che origina la request
To Bob b. <sip:[email protected]> Utente invitato, come specificato all’origine
Call-ID: [email protected] ID globally unique di questa call
CSeq: 1 INVITE Command sequence. Identifica la transazione
Subject: Lunch today
Content-type: application/SDP
Soggetto e/o natura della call
Tipo del body (in questo caso SDP)
Max-Forwards:70 Massimo numero di proxies o gateways
SIP 31
Universitàdi Palermo LA
SIP Request Message (cont)
O=Alice 53655765 2353687637 IN IP4 128.3.4.5 Owner/creator e session identifier,session version, address type e address
S=Call from Alice Oggetto della sessione
C=IN IP4 alice_ws.radvision.com Informazioni circa la connessione
M=audio 3456 RTP/AVP 0 3 4 5 Descrizione del media: type, port, possibiliformati che il caller vuole ricevere e inviare
v=0 Versione di SDP
Content-Length: 182 Numero di bytes nel body
Linea vuota di fine degli header SIP
SIP 32
Universitàdi Palermo LA
Request e Response (2)
Request line Response line
Method Request-URI SIP-Version CRLF
esempio
INVITE sip:[email protected] SIP/2.0
SIP-Version Status-code Reason-phrase CRLF
esempio
SIP/2.0 420 Bad extension
La coppia Request/Response viene considerata come unico elemento di una
transaction SIP
Per questo motivo Request e Respoonse hanno lo stesso formato di intestazione
SIP 33
Universitàdi Palermo LA
Status Codes
La prima cifra dello status-code definisce la classe della Response
1xx – Provisional, searching, ringing, queueing, etc
2xx – Success
3xx – Redirection, forwarding
4xx – Request failure (client mistakes)
5xx – Server failure
6xx – Global failure (busy, refusal, not available anywhere)
I response messages contengono due campi caratteristici
� Status-Code: intero di tre cifre che indica il risultato della richiesta
� Reason-Phrase: fornisce una descrizione testuale comprensibile.
Provisional
Final
SIP 34
Universitàdi Palermo LA
Header Fields
Header field formato da field-name seguito da “:” e field-value
field-name: field-value
Header fields estendibili su più linee facendo precedere ogni linea
aggiuntiva da almeno un SP o un HT
Ordine degli header fields non significativo
Per rapidità di analisi raccomandato porre in testa gli header fields
che devono essere elaborati dai proxy server
Ordine relativo degli header field con lo stesso field-name significativo
Possibile combinare header fields con lo stesso field-name se separati da “,”
SIP 35
Universitàdi Palermo LA
Header Fields (2)
Gli header field in posizioneerrata sono ignorati
Molti header field
Alcuni fondamentali e frequenti
Quattro tipi:
� Generic header
� Entity header
� Request header
� Response header
Call-ID
CSeq
Contact
DateFromRecord-RouteReply-ToRouteServerSubject
Via
Content-TypeContent-Length
To
SIP 36
Universitàdi Palermo LA
Header Fields (3)
From Indica l’iniziatore della request (può essere differentedall’iniziatore del dialogo)
Route Usato per forzare il routing di una request attraversoun elenco di proxy
Date Contiene la data e l’ora
Subject Fornisce un sommario o indica la natura della call
Indica il path seguito dalla request fino ad allora e indicaquello che dovrebbe essere seguito dalle response
Via
Call-ID Stringa, globalmente unica, generata dall’UAC(contiene IP-address o hostname)
To Identifica l’original recipient della request indicato dallouser identificato nel field From. Può non coincidere conlo UAS che elabora la request
SIP 37
Universitàdi Palermo LA
Body
Request e Response possono includere un message body
Interpretazione del body dipende dal metodo della request
e dal response status code
SIP 38
Universitàdi Palermo LA
Metodo INVITE
Il metodo include la descrizione della sessione ed il tipo
di informazioni che si vogliono scambiare
Inizia una sessione
Vengono inviate informazioni circa il chiamante ed il chiamato
nonché circa il tipo di media che si vuole scambiare
SIP 39
Universitàdi Palermo LA
Metodo ACK
Metodo inviato dal client che trasmette il metodo INVITE
ACK è trasmesso per confermare che la sessione è stabilita
Dopo la trasmissione del metodo ACK si possono scambiare i media
SIP 40
Universitàdi Palermo LA
Metodo BYE
Metodo usato per terminare una sessione
Il metodo BYE può essere trasmesso da un uno user qualsiasi
SIP 41
Universitàdi Palermo LA
Metodo CANCEL
Metodo CANCEL usato per annullare una request inviata in precedenza
dal client (pending request come può essere in INVITE)
Questo metodo richiede all’UAS di interrompere la request
e di generare un response di tipo error alla request
CANCEL non produce effetto su una request alla
quale l’UAS ha già dato un response finale
Siccome le request diverse da INVITE ricevono risposta immediata,
mentre INVITE è una request che richiede del tempo, CANCEL
non dovrebbe essere inviato per annullare una request diversa da INVITE
Da usare prima del BYE che terminerebbe la sessione
SIP 42
Universitàdi Palermo LA
Metodo REGISTER
REGISTER è usato da un client per effettuare il login e registrarsi
con un registrar server
SIP 43
Universitàdi Palermo LA
Metodo OPTIONS
Metodo usato per richiedere la capabilities di un server o di altri dispositivi
Può essere utilizzato per controllare la capacità (media supportati)
prima di trasmettere un INVITE
SIP 44
Universitàdi Palermo LA
Authentication
Le funzioni di SIP sono molto critiche per la gestione della rete
In questo modo nessuno può spacciarsi per un altro
L’accesso di un eventuale attacker può provocare gravi danni
È allora opportuno richiedere che gli utenti di SIP si autentichino
prima di svolgere le diverse funzioni di SIP
Ma, non è opportuno richiedere lo stesso livello di autenticazione
per tutti gli utenti e le rispettive funzioni
In ogni modo un attacker può sempre condurre un attacco DoS
SIP 45
Universitàdi Palermo LA
Ricerca del Next Hop
Lo UAC può usare un outbound proxy configurato manualmente
Outbound proxy può anche essere conosciuto alla registrazione
Se la request URI contiene IP-address e portail messaggio può essere inviato direttamente
Diversamente si determina il server SIP del next hop tramite il DNS
Richiesta di un record SRV
Richiesta di un record A
SIP 46
Universitàdi Palermo LA
SIP Address Resolution Steps
SIP 47
Universitàdi Palermo LA
SIP Address Resolution Steps
Il proxy controlla il suffisso del domain.Consulta il location servic, usa il DNS per
localizzare il remote domainIl DNS fornisce l’IP-address del proxy 2
SIP 48
Universitàdi Palermo LA
SIP Address Resolution Steps
UA 2 convalida il il SIP URI nei confrontidegli user attivi per allertare l’interessato
o rifiutare la connessione
SIP 49
Universitàdi Palermo LA
Autenticazione
È possibile richiedere che gli user SIP users si autentichino
fra loro prima che realizzino le varie funzioni SIP
Così nessuno può dichiarare di essere un altro
Ma, se si richiede l’autenticazione per tutte le funzioni,alcune funzionalità di SIP risultano compromesse
SIP 50
Universitàdi Palermo LA
Registration
La registrazione crea dei collegamenti in un location service per unparticolare dominio che associa un address-of-record URI conuno o più contact address
La registrazione comporta l’invio di una request REGISTER ad untipo speciale di UAS conosciuto come un registrar
Un registrar opera come front-end al location service per undominio, leggendo e scrivendo i mapping basati sul contenutodelle request di tipo REGISTER
Questo location service è allora consultato tipicamente dalproxy server responsabile del routing delle request per il domain
Un registrar per un dominio DEVE essere capace di leggere e scriverei dati al location service, e un proxy o un redirect server per queldominio DEVE essere capace di leggere quei dati
SIP 51
Universitàdi Palermo LA
Processo di Registrazione
UA
UA
Registrar LocationService Proxy
alice
bob
cube2214a
acme.com
1) REGISTER
2) Store
sip.acme.com4) Query
5) Response
SIP 52
Universitàdi Palermo LA
Outbound Proxy
Un proxy che riceve delle request da un client, anche se puònon essere il server risolto dalla Request-URI
Tipicamente, uno UA viene configurato manualmente con un outboundproxy, o può conoscerne uno tramite protocolli di auto configurazione
L’outbound proxy è un normale proxy SIP
Voi configurate il vostro client, sia esso un telefono che un software, perusare il proxy per tutte le sessioni SIP, come quando configurate il vostrobrowser Web ad usare un proxy Web per tutte le transazioni Web
In alcuni casi, l’outbound proxy è posto a fianco del firewall ed l’unicopercorso tramite il quale il traffico SIP passa dalla rete interna ad Internet
L’outbound proxy usato da uno UA può essere configuratoautomaticamente con il DHCP
SIP 53
Universitàdi Palermo LA
SIP URI
Una URI SIP o SIPS identifica una resource di comunicazione
Una URI SIP contiene informazione sufficiente per iniziaree mantenere una sessione di comunicazione con la risorsa
Nel caso di una SIP URI, la sua forma generica è:
sip:user:password@host:port;uri-parameters,headers
user: Identificatore di una particolare resource presso l’host indirizzato
password: Una password associata con lo user (opzionale)
host: L’ host che fornisce la risorsa SIP
port: Il numero di porta cui è inviata la richiesta SIP
SIP 54
Universitàdi Palermo LA
SIPS
Dalla RFC 3261:
SIP also provides a secure URI, called a SIPS URI
Una call ad una SIPS URI garantisce che si userà un trasportosicuro e criptato (TL) per il trasporto di tutti i messaggi SIPdal caller al dominio del callee
Un esempio potrebbe essere sips:[email protected]
Da qui in poi, la request è inviata in modo sicuro al callee,Ma con meccanismi di sicurezza che dipendono dalla policydel dominio del callee
SIP 55
Universitàdi Palermo LA
SDP
Session Description Protocol [RFC 2327] è il protocollo utilizzato
nel body del messaggio SIP per specificare l’informazione la codifica
usata in una sessione
Non comprende meccanismi di trasporto e/o negoziazione
Serve a trasferire, in modo definito, le informazioni necessarie ad
un sistema per unirsi ad una sessione multimediale
Le descrizioni di sessione SDP sono di tipo text-based
SIP 56
Universitàdi Palermo LA
SDP (2)
Una descrizione di sessione formata da una serie di linee di testo:
Type = value
Type sempre formato da un solo carattere
Formato del value dipendente dal Type cui si applica
Informazioni a livello di: Session
Media-level
Si applicano all’intera sessione
Si applicano ad un particolaremedia stream
Descrizione di sessione con SDP inizia sempre con l’informazione session-level
SIP 57
Universitàdi Palermo LA
SDP (3)
Prima linea descrizionesession-level
v=0 (SDP version 0)
v=0o=Bob 2890844526 2890842807 IN IP4 131.160.1.112
s=SIP seminar
i=A Seminar on the Session Initiation Protocol
u=http://www.cs.columbia.edu/sip
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
SIP 58
Universitàdi Palermo LA
SDP (4)
m=audio 49170 RTP/AVP 0a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000
Iniziano con una linea m (media line)
m=<media type> <port number> <transport protocol> <media formats>
Linee a (attribute line) trasportano informazioni circa il formato di media
usato, come il clock rate o il numero di canali
Espansioni possibili di SDP
Sezioni media-level formate da linee m e a
SIP 59
Universitàdi Palermo LA
RFC 3227 types
v Protocol versionb Bandwidth informationo Owner of the session and session identifierz Time zone adjustmentss Name of the sessionk Encryption keyi Information about the sessiona Attribute linesu URL containing a description of the sessiont Time when the session is activee E-mail address to obtain information about the sessionr Times when the session will be repeatedp Phone number to obtain information about the sessionm Media linec Connection informationi Information about a media line
SIP 60
Universitàdi Palermo LA
Servizio di Trasporto per SIP
SIP
SCTP TCP UDP
Connection oriented Connectionless
IP
SIP . . .� È indipendente dal trasporto
� Può girare sopra un qualsiasi servizio di trasporto
� Reliable o unrealiable
� Message o byte oriented
SIP 61
Universitàdi Palermo LA
Caratteristiche di Trasporto
YYNFast Retransmit
YYNCongestion Control
YYNTransp. layer frag.
N
N
Y
TCP
YNMultihoming
YYEasier Parsing
NNHead of Line Blocking
SCTPUDP
SIP 62
Universitàdi Palermo LA
SIP-T
SIP-T = Session Initiation Protocol – Telephony
Conosciuto in precedenza come SIP+ o SIP BCP-T
RFC 3372 - Session Initiation Protocol for Telephones (SIP-T)
Context and Architectures
SIP-T definisce l’interwork tra SIP e ISUP
Informazione trasportata con SDP che opera negli ambienti IP e ATM
SIP-T consente una negoziazione diretta tra i gateways
SIP 63
Universitàdi Palermo LA
Scopi di SIP-T
Interworking PSTN-IP
Trasporto su IP dellasegnalazione PSTN
SS7 network
IP networkSIP enabled
MGC 1
Proxy
MGC 2
SS7 network
IP networkSIP enabledMGC
Proxy
SS7 networkIP (SIP) phone
SIP 64
Universitàdi Palermo LA
Approcci di SIP-T
� Due approcci fondamentali:
� Encapsulation
� Translation
SIP 65
Universitàdi Palermo LA
Implementazione di SIP-T
SIP-T richiede fondamentalmente tre Extension
� Estensione del metodo INFO del protocollo base� Gestione di servizi complessi
� Gestioni di eventi nel corso di una chiamata
� Potenziamento di meccanismi di inizio e terminazione
� Aggiunta del tipo MIME� Necessità di incapsulare segnalazioni legacy
� Semplificazione dell’interworking tra varianti
� Mappaggio tra ISUP e SIP