Progetto di
RETI DI CALCOLATORI L-S
Prof. Antonio Corradi
Presentazione di:
Mirko Colleluori 169783
A.A. 2006-2007
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:
Obiettivi:
 Telefonia su IP (VoIP) e








User Location
User Availability
User Capabilities
Session Setup
Session Management
Data Transmission/Reception
QoS Monitoring
Altro (Sequence Numbering,
Time Stamping)





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)


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
TCP
RTCP
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
JMF
APPLICATION LEVEL
COMPONENT
LEVEL
CORE
LEVEL
SIP
Register
SIP
Presentity
SIP
Party
SIP
Registrar
SIP Watcher
SIP
TPCC
REGISTER
PRESENCE
3PCC
RTP
Console
P2P
STREAMING
SIP Core
RTP Core
SIP
RTP
SUPPORTO
RTP Packet:
Java Media Framework (JMF v1.1):
javax.media.rtp.*;
javax.media.rtp.rtcp.*;
javax.media.rtp.event.*;
Streaming
RTP
RTP
Manager
RTCP
OBIETTIVI
QoS
• inizializzare e avviare
Monitoring
la partecipazione in una sessione
• rimuovere flussi individuali
creati da un’applicazione
• chiudere l’intera sessione
• QoS monitoring
Package: media.mediaoverip.rtp.core
ReceiveStream
SenderStream
Statistics
TimeStamp
SSRC CSRC
Numerazione
getGlobalTransmissionStats()
getGlobalReceptionStats()
Reports
Participants
Events
Pattern
Observer
getAllParticipants()
getRemoteParticipants()
getActiveParticipants()
getPassiveParticipants()
SessionEvent
RemoteEvent evt
SendStreamEvent evt
ReceiveStreamEvent evt
API JSR 32 Jain-Sip (J2SE):
javax.sip.*;
javax.sip.address.*;
javax.sip.header.*;
javax.sip.message.*;
Modello a eventi:
Response
Event
SIP Message
Request
OBIETTIVI
• formattazione del messaggio SIP
• invio/ricevere i messaggi
• gestione transazioni con timeout,
• gestione stati e ciclo di vita.
invite
bye
ack
cancel
options register
Setup Function
createListener()
getInstance()
SIP Packet:
SIP Listener
SIP Factory
eventRegistration
createProvider()
SDP
URI
SIP Provider
SIP Stack
Proprietary SIP Stack
Package: media.mediaoverip.sip.core
Network
createStack()
OBIETTIVI
• Transmissione RTP: 1 transmitter
• Ricezione RTP: 1 receiver
• User Location (static)
• File transfer (web-cam emulation)
• QoS monitoring
RTP Events
User Location
RTP Participants
QoS
Monitoring
Transmission/
Reception
Statistics
Package: media.mediaoverip.rtp.console
SIP Register
OBIETTIVI
• informare il SIP server della
localizzazione dell’utente
• notifica dello stato (publish/subscribe)
SIP Registrar
SIP Watcher
SIP
Presentity
Registration Protocol
Registration Information
Register
Registrar
“Available”
Presence Protocol
Presence Information
Watcher
Presentity
Package: media.mediaoverip.sip.register/registrar
Package: media.mediaoverip.sip.watcher/presentity
“NOT
Available”
Protocollo di negoziazione mediata:
RTP
RTP
Console
RTP
Console
SIP
Party
SIP
Party
INVITE
SDP (from 2)
200
OK
2
INVITE
no SDP
3
5
ACK
SDP (from 4)
SIP
200
OK
6
4
ACK
1
SIP
Tpcc
Package: media.mediaoverip.sip.tpcc
Package: media.mediaoverip.sip.party
OBIETTIVI
• negoziazione fra due end-system
che non si conoscono (Party):
mediatore (Tpcc) che coordina lo
scambio di informazioni
SIP
Listener
SIP
Factory
SIP
Provider
Client
Transaction
Dialog
A
Dialog
B
SIP
Party A
SIP
Party B
1. CREATE INVITE
inviteA
2. CREATE TRANSACTION
new
new
3. SEND REQUEST
listener, A
4. INVITE
offerA
5. 200 OK
6. CREATE INVITE
7. CREATE TRANSACTION
offerA
inviteB
new
new
8. SEND REQUEST
9. INVITE
10. SEND ACK
listener, B
offerA
offerB
12. SEND ACK
offerB
11. 200 OK
SIP
Listener
SIP
Factory
15. SEND REQUEST
Client
Transaction
Dialog
A
Dialog
B
SIP
Party A
inviteC
transactionC
16. RE-INVITE
offerB
offerB
18. SEND ACK
SIP
Party B
body = offerB
13. CREATE INVITE
14. CREATE TRANSACTION
SIP
Provider
17. 200 OK
offerB
RTP
RTP
Entità:
• Register, Operator, Client
Regole:
1. Il Service deve fornire gli strumenti
a Client e Operator per registrarsi
al servizio
2. Il Service deve monitorare lo stato
di Client e Operator
3. Operator deve monitorare i Client
inviatigli dal Service, Client
manifesta (notifica) il suo interesse
a essere servito
4. Operator gestisce il rendez-vous
tra coppie di Client (user/expert)
5. I Client devono comunicare
attraverso streaming audio/video
SERVICE
OPERATOR
SIP Registrar
REGISTRATION
SIP Register
1
SIP Watcher
PRESENCE
SIP Presentity
2
SERVICE
CLIENT
SIP Registrar
REGISTRATION
SIP Register
1
SIP Watcher
PRESENCE
SIP Presentity
2
OPERATOR
CLIENT
SIP Watcher
PRESENCE
SIP Presentity
3
SIP Tpcc
TPCC
SIP Party
4
CLIENT
RTP Console
CLIENT
P2P STREAMING
RTP Console
5
Fattorizzando:
CLIENT
OPERATOR
SIP Registrar
SIP Register
SIP resentity
SIP Tpcc
SERVICE
SIP Party
SIP Presentity
SIP Register
RTP Console
SIP Watcher
SIP Watcher
Vantaggi:
• Distribuzione di un’entità su più nodi
complessità (overhead)
load balancing
• Replicazione “modulare”
fault tolerance
SUPPORTO:
• Architettura modulare come
“ossatura” del servizio
Cosa manca ?
• Scelta deployment distribuito
• Coordinamento dei componenti
per realizzare l’application logic
di ciascuna entità
SERVICE
SIP Register
SERVICE
SIP Proxy
• Flessibilità, Estendibilità
SIPProxy SIPRedirect
SIP Register
SERVICE
SIP Watcher















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”, Phelim O’Doherty (Sun
Microsystems), Mudumbai Ranganathan (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
Wikipedia http://it.wikipedia.org
Scarica

SIP