140 likes | 272 Views
Progetto di RETI DI CALCOLATORI L-S Prof. Antonio Corradi Presentazione di: Mirko Colleluori 169783 A.A. 2006-2007. SUPPORTO AL MEDIA-OVER-IP. Obiettivi. Con il seguente progetto si intende individuare le componenti essenziali dell’intera
E N D
Progetto di RETI DI CALCOLATORI L-S Prof. Antonio Corradi Presentazione di: Mirko Colleluori 169783 A.A. 2006-2007 SUPPORTO AL MEDIA-OVER-IP
Obiettivi Con il seguente progetto si intende individuare le componenti essenziali dell’intera teoria che fa da supporto al VoIP e sviluppare un supporto software che dia corpo al concetto di Voice over IP. Applicazioni: • Telefonia su IP (VoIP) e servizi telefonici supplementari • Video comunicazione (video conference, operator services) • Sistemi di notifica di eventi (subscribe/notify) • Sistemi di messaggistica (instant messaging, presence services) • Simulazioni interattive distribuite e giochi interattivi • Misurazioni e controlli in remoto (video surveillance) Obiettivi: • User Location • User Availability • User Capabilities • Session Setup • Session Management • Data Transmission/Reception • QoS Monitoring • Altro (Sequence Numbering, Time Stamping)
Tecnologie e Strumenti • RTP / RTCP (IETF - RFC 3550 e 3551): • Java Media Framework (JMF v1.1) • SIP - Session Initition Protocol (IETF - RFC 2543 e 3261) • Jain-Sip 1.1 APPLICAZIONE JAIN SIP RTP RTCP JMF TCP UDP IP • SCELTE PROGETTUALI • SIP: si occupa di trovare e stabilire una connessione tra gli utenti, • specificando le caratteristiche della comunicazione grazie al SDP, • Session Description Protocol presente nel body del messaggio • RTP: permette di inviare lo stream dei pacchetti della voce • RTCP: controlla la QoS della trasmissione
Architettura Generale APPLICATION LEVEL SUPPORTO SIP RTP REGISTER PRESENCE 3PCC P2P STREAMING COMPONENT LEVEL SIP Register SIP Presentity SIP Party RTP Console SIP Registrar SIP Watcher SIP TPCC CORE LEVEL SIP Core RTP Core
Core Level: RTP/RTCP RTP Packet: Java Media Framework (JMF v1.1): javax.media.rtp.*; javax.media.rtp.rtcp.*; javax.media.rtp.event.*; ReceiveStream Streaming RTP SenderStream RTP Manager TimeStamp SSRC CSRC Numerazione Statistics getGlobalTransmissionStats() getGlobalReceptionStats() RTCP Reports • OBIETTIVI • inizializzare e avviare • la partecipazione in una sessione • rimuovere flussi individuali • creati da un’applicazione • chiudere l’intera sessione • QoS monitoring QoS Monitoring Participants getAllParticipants() getRemoteParticipants() getActiveParticipants() getPassiveParticipants() Events Pattern Observer SessionEvent RemoteEvent evt SendStreamEvent evt ReceiveStreamEvent evt Package: media.mediaoverip.rtp.core
Core Level: SIP API JSR 32 Jain-Sip (J2SE): javax.sip.*; javax.sip.address.*; javax.sip.header.*; javax.sip.message.*; SIP Message Modello a eventi: invite ack options bye cancel register Response Event Request • OBIETTIVI • formattazione del messaggio SIP • invio/ricevere i messaggi • gestione transazioni con timeout, • gestione stati e ciclo di vita. Setup Function createListener() getInstance() SIP Listener SIP Packet: SIP Factory eventRegistration createStack() createProvider() SDP URI SIP Stack SIP Provider Network Proprietary SIP Stack Package: media.mediaoverip.sip.core
Component Level: RTP Console • OBIETTIVI • Transmissione RTP: 1 transmitter • Ricezione RTP: 1 receiver • User Location (static) • File transfer (web-cam emulation) • QoS monitoring RTP Events RTP Participants QoS Monitoring User Location Transmission/ Reception Statistics Package: media.mediaoverip.rtp.console
Component Level: SIP Register & Presence • OBIETTIVI • informare il SIP server della • localizzazione dell’utente • notifica dello stato (publish/subscribe) SIP Watcher SIP Register SIP Presentity SIP Registrar Registration Protocol Presence Protocol Registration Information Presence Information SUBSCRIBE REGISTER 200 OK 200 OK “Available” NOTIFY CANCEL Register Registrar 200 OK 200 OK NOTIFY “NOT Available” Watcher Presentity 200 OK Package: media.mediaoverip.sip.register/registrar Package: media.mediaoverip.sip.watcher/presentity
Component Level:SIP Third Party Call Control Protocollo di negoziazione mediata: • OBIETTIVI • negoziazione fra due end-system che non si conoscono (Party): • mediatore (Tpcc) che coordina lo scambio di informazioni RTP RTP Console RTP Console SIP Party SIP Party INVITE SDP (from 2) 200 OK 3 6 2 5 ACK SDP (from 4) 4 200 OK SIP INVITE no SDP ACK 1 SIP Tpcc Package: media.mediaoverip.sip.tpcc Package: media.mediaoverip.sip.party
Third Party Call Control:Sequence Diagram (1) SIP Listener SIP Party A SIP Factory SIP Provider Client Transaction Dialog A Dialog B SIP Party B 1. CREATE INVITE inviteA new 2. CREATE TRANSACTION new 3. SEND REQUEST listener, A 4. INVITE offerA 5. 200 OK offerA 6. CREATE INVITE inviteB new 7. CREATE TRANSACTION new 8. SEND REQUEST listener, B 9. INVITE offerA 10. SEND ACK offerB 11. 200 OK offerB 12. SEND ACK
Third Party Call Control:Sequence Diagram (2) SIP Listener SIP Party A SIP Factory SIP Provider Client Transaction Dialog A Dialog B SIP Party B body = offerB 13. CREATE INVITE inviteC 14. CREATE TRANSACTION transactionC 15. SEND REQUEST offerB 16. RE-INVITE offerB 17. 200 OK offerB 18. SEND ACK RTP RTP
Caso di Studio:Operator Service (1) SERVICE OPERATOR REGISTRATION SIP Registrar SIP Register SIP Watcher PRESENCE SIP Presentity • Entità: • Register, Operator, Client • Regole: • Il Service deve fornire gli strumenti a Client e Operator per registrarsi al servizio • Il Service deve monitorare lo stato di Client e Operator • Operator deve monitorare i Client inviatigli dal Service, Client manifesta (notifica) il suo interesse a essere servito • Operator gestisce il rendez-vous tra coppie di Client (user/expert) • I Client devono comunicare attraverso streaming audio/video 1 SERVICE CLIENT REGISTRATION SIP Registrar SIP Register 2 SIP Watcher PRESENCE SIP Presentity 1 2 OPERATOR CLIENT SIP Watcher PRESENCE SIP Presentity 3 SIP Tpcc TPCC SIP Party 4 CLIENT CLIENT P2P STREAMING RTP Console RTP Console 5
Caso di Studio:Operator Service (2) CLIENT OPERATOR SIP Registrar SIP Register SIP resentity SIP Tpcc SERVICE Fattorizzando: • SUPPORTO: • Architettura modulare come • “ossatura” del servizio • Cosa manca ? • Scelta deployment distribuito • Coordinamento dei componenti • per realizzare l’application logic • di ciascuna entità SIP Register SIP Party SIP Presentity SIP Watcher RTP Console SIP Watcher SERVICE • Vantaggi: • Distribuzione di un’entità su più nodi • complessità (overhead) load balancing • Replicazione “modulare” • fault tolerance • Flessibilità, Estendibilità • SIPProxy SIPRedirect SIP Register SIP Register SERVICE SIP Watcher SIP Proxy SERVICE
Riferimenti • Session Initiation Protocol (SIP): • http://www.cs.columbia.edu/sip • SIP RFC 3261 (RFC3261) • http://www.faqs.org/rfcs/rfc3261.html • http://rfc.sunsite.dk/rfc/rfc3261.html • RTP: RFC 1889 (RFC1889) • http://www.faqs.org/rfcs/rfc1889.html • http://rfc.sunsite.dk/rfc/rfc1889.html • “Jain SIP Tutorial, Serving the Developer Community”, PhelimO’Doherty (Sun Microsystems), MudumbaiRanganathan (NIST) • “Sip Tutorial”, progetto GEMINI, Josè Soler Lucas (COM) • “The Session Initiation Protocol (SIP)”, Henning Schulzrinne, Dept. of Computer Science, Columbia University, New York • Java Media Framework (JMF): • http://java.sun.com/products/java-media/jmf/ • “Una applicazione multimediale di rete basata su un framework di classi Java”, tesi di laurea di Silvia Summa, 2000 • Wikipediahttp://it.wikipedia.org