2600 SkimonHertz

SPIEGAZIONE DEL PROTOCOLLO SIP, VoIP Phreaking

« Older   Newer »
  Share  
SkimonHertz
view post Posted on 29/12/2010, 04:49     +1   -1




SPIEGAZIONE DEL PROTOCOLLO SIP

SIP è un protocollo semplice ed efficiente utilizzato per gestire la segnalazione telefonica su Internet; include la negoziazione già nel primo contatto con l’altra parte terminale.
Il chiamante invia una richiesta INVITE con i tipi di media supportati nel corpo del messaggio.
Ciò riduce in maniera significativa i ritardi caratteristici di altri protocolli (H323).
Un’altra caratteristica nativa di SIP consiste nel suo supporto alla personal mobility.
Un utente può cioè generare o ricevere chiamate su ogni terminale in ogni luogo.
Inoltre SIP opera con altri protocolli come RSVP e RTP per riservare risorse e inoltrare i contenuti multimediali.
Lo scopo di SIP è comunque strettamente limitato a stabilire le sessioni fra chiamante e le altre parti terminali. Ovvero è assolutamente indipendente dai protocolli utilizzati per il trasporto e il controllo del multimedia.
Questo approccio astratto rappresenta uno dei cardini della semplicità ed eleganza di SIP.
Il protocollo realizza una totale separazione tra cosa significhi una sessione e cosa significhi stabilirne una.
SIP si occupa di stabilire, oppure modificare, oppure terminare una sessione, ma tale sessione potrebbe essere di natura qualsiasi, un game multiplayer, un canale voce, o una video conference.
Così pure la decisione di strutturare i messaggi SIP come testo ha profonde implicazioni.
Il testo è umanamente leggibile.
Il testo è flessibile: Interpretare del testo richiede un certo grado di intelligenza riguardo al parsing - ciò rende le applicazioni più robuste e facili da fare evolvere.
Del resto, il text processing rappresenta il nucleo della maggior parte delle applicazioni del mondo Internet di oggi.
Perciò si è deciso che SIP usasse messaggi di testo composti di caratteri ISO UTF-8, utilizzando inoltre la sintassi HTTP 1.1.

SIP URI
Le entità SIP vengono identificate attraverso SIP URI (Uniform Resource Identifier). Un SIP URI si presenta nella forma sip:username@domain. ad esempio. sip:[email protected]. Vale a dire che un SIP URI consiste di una parte username e di una parte domainname separati da un carattere @. Sono pertanto simili a degli indirizzi mail.
E’ ad esempio possibile utilizzare lo stesso URI per l’email e le comunicazioni SIP, e tali URI sono facili da ricordare.

Elementi che utilizza e definisce una rete SIP:
UAC (User agent client): client terminal che inizia la segnalazione SIP.
UAS (User agent server): server terminale che risponde alla segnalazione SIP proveniente dallo UAC.
UA (User Agent): SIP network terminal (telefono SIP, oppure gateway verso altre reti), comprende UAC e UAS.
Proxy server: riceve le richieste di connessione dallo UA e le trasferisce ad un altro proxy server se la particolare destinazione non è di sua competenza.
Redirect server: riceve le richieste di connessione e le rinvia indietro al richiedente includendovi informazioni sulla destinazione anziché inoltrarli direttamente.
Location Server: riceve le richieste di registrazione dallo UA ed aggiorna il location database.
Tutte le sezioni server (Proxy, Redirect, Location) sono tipicamente disponibili su di una singola macchina fisica chiamata genericamente proxy server, la quale risulta responsabile della gestione del database dei clients, dell’avvio, della gestione e terminazione delle connessioni, e dell’instradamento delle chiamate.
Sebbene nella configurazione più semplice sia possibile utilizzare solamente due user agents purchè siano in grado di inviarsi direttamente messaggi SIP, una tipica rete SIP contiene generalmente più di un unico tipo di elementi.
Gli elementi SIP di base sono User Agents, Proxies, Registrars e Redirect Servers.
Si noti che tali elementi sono spesso solamente entità di tipo logico. È spesso conveniente posizionarli insieme, per ottenere migliori performances, ma queto dipende dalla particolare implementazione e configurazione che si intende ottenere.

Vediamo più in dettaglio gli elementi indicati sopra:

USER AGENTS
I punti terminali internet che utilizzano SIP per rilevarsi reciprocamente e per negoziare le caratteristiche di una sessione vengono chiamate User Agents. Gli user agents, di solito, ma non necessariamente, risiedono sul computer di un utente in forma di applicazione, ma potrebbero essere telefoni cellulari, gateway PSTN, PDA, e cosi via.
Ci si riferisce spesso agli User Agents come a User Agent Server (UAS) e User Agent Client (UAC). UAS E UAC sono solamente due entità logiche, e ciascun User Agent è contemporaneamente uno UAS e uno UAC. UAC è la componente dell'User Agent che invia le richieste e riceve le risposte. UAS è la componente dell'User Agent che riceve le richieste ed invia le risposte.
Poichè un User Agent comprende entrambe le componenti, esso si comporta talvolta come UAC e talvolta come UAS.
Per esempio, l'User Agent chiamante si comporta come UAC quando invia una richiesta INVITE e riceve una relativa risposta.
L'User Agent chiamato agisce invece da UAS quando riceve l’INVITE ed invia le risposte.
Ma tale situazione muta quando il chiamato decide di inviare un BYE e porre termine alla sessione. In tal caso l'User Agent chiamato (inviando BYE) agisce come UAC e l'User Agent del chiamante invece come UAS.

PROXY SERVERS
In aggiunta a ciò SIP permette la creazione di una infrastruttura di hosts di rete chiamati proxyservers.
Gli user agents possono inviare messaggi ad un proxy server.
I proxy server costituiscono entità molto importanti nella infrastruttura SIP.
Essi effettuano il routing di un invito a stabilire una sessione coerentemente con la posizione attuale del chiamato, l’autenticazione, l’accounting e molte altre importanti caratteristiche.
La funzione più importante di un proxy server è quella di instradare gli inviti ad una sessione al chiamato, il più direttamente possibile.
L’invito alla sessione di solito traverserà un set di proxies fino a trovarne uno che conosce l’attuale localizzazione del chiamato. Tale proxy inoltrerà l’invito a stabilire la sessione direttamente alla destinazione, la quale declinerà o accetterà tale invito.
Vi sono due tipi base di proxies, quegli stateless e quelli stateful.

STATELESS SERVERS
Gli stateless server semplicemente inoltrano messaggi. Inoltrano i messaggi ciascuno in maniera indipendente dall’altro. Sebbene i messaggi vengano di solito combinati in transazioni, gli stateless proxie non tengono conto delle transazioni.
Gli stateless proxies sono semplici, ma più performanti degli stateful proxies. Possono venire utilizzati come semplici bilanciatori di carico, traduttori di messaggi o routers.
Uno dei difetti degli stateless proxies è che essi sono incapaci di gestire la ritrasmissione di messaggi e di effettuare un routing più avanzato, per esempio grazie al forking.

STATEFUL SERVERS
Gli stateful proxies sono più complessi.
Dopo la ricezione di una richiesta, gli stateful proxies creano uno stato e mantengono tale stato fino alla fine della transazione.
Poichè gli stateful server devono mantenerne lo stato per tutta la durate delle transazioni, le loro performance sono limitate.
L’abilità di associare i messaggi SIP in transazioni fornisce agli stateful proxies alcune interessanti funzionalità Gli stateful proxies possono effettuare il forking, il che significa che dopo la ricezione di un messaggio due o più messaggi dello stesso tipo verrebbero inviati.
Gli stateful proxies possono essere coinvolti nella ritrasmissione per il fatto che conoscono, dallo stato della transazione, se hanno già ricevuto lo stesso messaggio (gli stateless proxies non possono effettuare il controllo dato che non mantengono alcun stato).
Gli stateful proxies possono usare metodi piu’ complessi per trovare un utente. Sarebbe, per esempio, possibile tentare di contattare il telefono d’ufficio dell’utente e, quando non risponda, ridirigere la chiamata al telefono cellulare.
Gli stateless proxies non possono farlo poichè non hanno modo di sapere come la transazione relativa al telefono dell’ufficio si sia svolta.
La maggior parte dei SIP proxies al giorno d’oggi sono stateful ma la loro configurazione è molto complessa. Essi spesso effettuano accounting, forking, certe forme di supporto al NAT traversal. Tutte queste funzionalità richiedono la presenza di uno stateful server.
 
Top
0 replies since 29/12/2010, 04:49   397 views
  Share