|
Streaming UDP
1 Protocolul UDP
1.1 Descriere UDP
User Datagram Protocol ( UDP ) reprezinta alaturi de TCP unul dintre cele mai importante protocoale de transport, fiind proiectat de David P. Reed in 1980 si definit in RFC 768. UDP foloseste un model de transmisie simplu fara a necesita un dialoghand-shaking, din aceasta cauza nu garanteaza corectitudinea transmisiunii asa cum o face TCP . Datagramele pot ajunge la destinatie neordonate , duplicate sau chiar lipsa fara sa se observe . Insa tocmai evitarea de a consuma resursele face ca UDP sa fie mai rapid si mai eficient pentru aplicatiile care nu necesita garantarea livrarii pachetelor .
Aplicatiile UDP folosesc datagrame sockets pentru a stabili comunicatii host to host. Spre deosebire de TCP , UDP poate fi utilizat atat pentru transmisiuni broadcast cat si multicast .
1.2 Structura pachetului UDP
In Internet Protocol Suite, UDP ofera o interfata foarte simpla intre Internet Layer si Application Layer. Acesta adauga doar application multiplexing si checksumming din antet ti sarcina utila.
|
Bits 0-15 |
16-31 |
0 |
Port Sursa |
Port Destinatie |
32 |
Lungime |
Checksum |
64 |
Date |
Headerul UDP consta in 4 campuri, Port Sursa si Checksum fiind optionale:
- Port Sursa - acest camp identifica portul expeditor si este setat doar cand se presupune -asteptarea unui raspuns la el. Daca nu este utilizat ar trebui sa fie zero.
- Checksum - cei 16 biti sunt utilizati pentru verificarea integritatii informatiilor din antet si din date.
2 Protocolul RTSP
Real-Time Streaming Protocol stabileste si controleaza unul sau mai multe fluxuri time-synchronized mass-media, cum ar fi audio si video. Actionand ca un "network remote control" pentru servere multimedia.
Nu exista notiunea de conexiune RTSP; in schimb, serverul mentine o sesiune dupa un identificator. O sesiune RTSP nu este legata la un nivel de transport cum este conexiunea TCP, pe durata sesiunii, un client poate deschide si inchide mai multe conexiuni fiabile de transport. Alternativ, poate folosi un protocol de transport cum ar fi UDP.
Stremingul controlat de RTPS poate folosi RTP, dar operatiile asupra RTSP nu depind de mecanismul de transport folosit pentru a transporta informatia. Protocolul este intentionat asemanator cu HTTP/1.1, asfel incat mecanismele de extindere a HTTP in cele mai multe cazuri pot fi, de asemenea, adaugate la RTSP. Cu toate acestea, RTSP difera de HTTP prin:
3.1.1 RTSP introduce un numar de metode si are un protocol de identificare diferit.
3.1.2 Atat clientul cat si serverul RTSP pot initia cereri.
3.1.3 Datele sunt transportate de un protocol diferit.
Protocolul RTSP suporta urmatoarele informatii:
Primirea streamingului de la server:
Clientul poate solicita o descriere. Daca reprezentarea este multicast, descrierea reprezentarii contine adresa multicast si portul. Daca reprezentarea este unicast, clientul va oferi destinatia din motive de securitate.
Invitatia server-ului media la o conferinta:
Un server media poate fi "invitat" sa se alature la o conferinta pentru o inregistrare sau redare media. Acest mod este folositor pentru invatamantul on-line.
Proprietatile protocolului
Extindere:
Metode noi pot fi usor adaugate la RTSP
Securitate:
RTSP utilizeaza mecanismele de securitate web. Toate autentificarile HTTP sunt direct aplicabile.
Independenta transportului:
RTSP poate folosi fie UDP fie TCP ca si protocol de transport.
Multi-Server:
Clientul poate stabili mai multe sesiuni de control pentru fiecare server media. Sincronizarea media se face la nivel de transport.
Controlul dispozitivelor de inregistrare:
Protocolul poate controla ambele aparate de redare si inregistrare, precum si dispozitivele care pot alterna intre cele doua moduri("VCR")
Separarea controlului de streaming si initializarea de conferinte:
Controler-ul de streaming este separat de invitatia unui server media la o conferinta. Singura cerinta este ca protocolul de initiere a conferintei sa furnizeze un identificator.
Proxy si firewall:
Protocolul ar trebui sa fie usor manipulat de catre ambele aplicatii. Firewall-ul poate fi nevoit sa inteleaga metoda SETUP pentru a deschide un port pentru streamingul media.
Controlul serverului:
Daca un client poate initia un stream, trebuie sa fie capabil sa-l si opreasca. Serverul nu ar trebui sa inceapa un stream la client in asa fel incat clientul sa nu-l poata opri.
O cerinta actuala a RTSP este capacitatea multi-client.Totusi, a fost determinat ca o mai buna metoda este de a face un protocol usor extensibil la scenariul multi-client.
Starile RTSP:
* SETUP: Serverul aloca resurse pentru un stream si porneste o sesiune RTSP.
C->S: SETUP rtsp://example.com/foo/bar/baz.rm RTSP/1.0
CSeq: 302 Transport: RTP/AVP;unicast;client_port=4588-4589
S->C: RTSP/1.0 200 OK
CSeq: 302
Date: 23 Jan 1997 15:35:06 GMT
Session: 47112344
Transport: RTP/AVP;unicast;
client_port=4588-4589;server_port=6256-6257
*PLAY and RECORD: Incepe transmiterea datelor printr-un stream alocat de SETUP.
C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0
CSeq: 835
Session: 12345678
Range: npt=10-15
C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0
CSeq: 836
Session: 12345678
Range: npt=20-25
C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0
CSeq: 837
Session: 12345678
Range: npt=30-
*PAUSE: Pauzeaza temporar streamul fara dealocarea resurselor.
C->S: PAUSE rtsp://example.com/fizzle/foo RTSP/1.0
CSeq: 834
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 834
Date: 23 Jan 1997 15:35:06 GMT
*TEARDOWN: Elibereaza resursele asociate unui stream inchizand sesiunea RTSP respectiva.
C->S: TEARDOWN rtsp://example.com/fizzle/foo RTSP/1.0
CSeq: 892
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 892
URL-ul prin care este accesat un server RTSP este de forma:
rtsp_URL = ( 'rtsp:' | 'rtspu:' )Unde abs_path semnifica numele fisierului video precedat de adresa absoluta la care poate fi accesat. Daca portul lipseste sau nu este specificat, se aloca portul 554.
RTSP este un protocol bazat pe text si foloseste ISO 10646 cu setul de caractere codat in UTF-8. Linile sunt terminate prin CTRL. Protocolul bazat pe text face usoara adaugarea de parametri optionali intr-o maniera sigura. Un mesaj de cerere de la client sau server contine metoda care este aplicata resursei, identificatorul resursei si versiunea de protocol folosita. Mesajul de raspuns este similar ca in cazul HTTP fiind inlocuit HTTP-version cu RTSP-version si definirea starilor in loc de cod HTTP.
3 Protocolul RTP
Real-Time
Transfer Protocol este un protocol la nivel de aplicatie. Scopul RTP este
de a furniza functionalitatile necesare transmiterii de
continut in timp real, ca de exemplu informatii despre timp
(timestamp), despre secventionare, despre mecanismele de control pentru
sincronizarea unor fluxuri diferite, etc. RTP nu asigura niciun control de
asigurare a transmisiei la timp sau a calitatii serviciului furnizat.
Pentru asta sunt raspunzatoare protocoalele de nivel transport pe
care se bazeaza RTP (de ex. UDP). Cand facem mentiune la RTP, ne
referim de fapt la cele doua componente ale protocolului: RTP
(transporta date) si RTCP (monitorizeaza calitatea serviciului
si contine informatii de control despre participanti).
Pachetele RTP nu pot fi transmise ca atare prin retele IP. Din
aceasta cauza, ele sunt intai incapsulate in pachete UDP (User
Datagram Protocol), iar apoi in pachete IP. Aceste pachete vor fi transmise
apoi prin diferite medii de comunicare, cu ajutorul altor tipuri de pachete de
nivel legatura fizica.
Structura headerului RTP:
V (2 biti) - versiunea RTP. Aceasta fiind 2 in conformitate cu specificatiile RFC 1889
P (1 bit) - daca acest bit este setat, pachetul contine unul sau mai multi octeti la sfarsit care nu fac parte din informatia utila. Ultimul octet va contine numarul de octeti care trebuie ignorati.
X (1 bit) - daca este setat, headerul este urmat de o extensie de exact lungimea headerului.
CC (4 biti) - contine numarul identificatorilor CSRC ce urmeaza dupa header.
PT (7 biti) - acest camp identifica formatul incarcaturii RTP.
Sequence number (16 biti) - numarul de secventa este incrementat cu fiecare pachet RTP trimis, si poate fi folosit de receptor pentru a detecta pachetele pierdute.
Timestamp (32 biti) - este folosit pentru sincronizarea si calcularea jitterului.
SSRC (32 biti) - campul SSRC identifica sursa de sincronizare. Acest identificator este ales random.
CSRC list (32 biti) - lista CSRC identifica sursele care contribuie la incarcatura utila a pachetului, aceasta continand maxim 15 surse.
4.1 VoIP
VoIP este acronimul pentru Voice over IP, tehnologia prin care vocea umana este transferata printr-o retea bazata pe protocolul IP (Internet Protocol). Intr-o acceptie mai larga, VoIP reprezinta servicii de telefonie prin Internet. Acest tip de telefonie este tot mai intens folosit datorita avantajelor pe care le prezinta. Semnalul vocal analogic este captat de catre un microfon incorporat in aparatul de telefon sau de catre un microfon conectat la placa de sunet a calculatorului. Prin captare, semnalul este esantionat si digitizat intr-o reprezentare numerica. Daca captarea s-a facut cu un calculator si destinatarul foloseste un telefon clasic, atunci acesti biti sunt impachetati, comprimati si trimisi prin protocolul IP catre un gateway (poarta) care face legatura intre Internet si reteaua PSTN. Acest gateway are rolul de interfata intre cele doua retele care folosesc metode diferite de comunicare. Semnalul audio va parcurge deci o parte din drum sub forma de pachete, apoi va intra intr-un circuit dedicat intre un VoIP gateway si destinatar.
In cazul in care comunicarea se face intre
doua telefoane, semnalul parcurge reteaua PSTN, ajunge la un gateway
care va transforma semnalul in pachete si il va trimite prin IP catre
alta poarta, mai apropiata de destinatar. Aceasta va transforma
semnalul inapoi in semnalul original care va fi transportat prin PSTN
catre destinatar. In cazul in care comunicarea
se face intre doua calculatoare, atunci pachetele sunt transmise direct
intre corespondenti.
Utilizarea telefoniei VoIP se face in prezent in trei feluri:
Utilizarea unui telefon clasic: conectarea telefonului se face folosind un adaptor special
ATA (Analogue Telephone Adapter). Acest adaptor are de obicei doua prize: una RJ-45 pentru reteaua Ethernet si una RJ-11 pentru telefonul clasic. Functia acestui ATA este de a conecta telefonul obisnuit al utilizatorului in reteaua furnizorului de servicii VoIP, retea care este la randul ei conectata la Internet. Aceste adaptoare sunt de regula speciale pentru un provider de servicii VoIP si sunt inutile in conjunctie cu alti provideri.
Telefoane IP: acestea sunt telefoane speciale, dar cu asemanare si utilizare identica cu
cele clasice. Diferenta dintre ele este ca telefoanele clasice au o priza RJ-11, pe cand telefoanele IP au o priza RJ-45 (Ethernet). Aceste telefoane, odata conectate in reteaua Ethernet si configurate corespunzator, pot fi folosite pentru apeluri VoIP, deoarece contin in interiorul lor hardware-ul si software-ul necesar pentru aceasta.
Intre doua calculatoare: aceasta este cea mai usoara metoda de utilizare a telefoniei
VoIP. Pentru a comunica intre doua calculatoare, acestea trebuie sa fie echipate cu un soft special, un microfon, difuzoare/casti, o placa de sunet si o conexiune la Internet (sau alta retea locala LAN). Acest tip de telefonie nu necesita contractarea unor servicii speciale, ci se bazeaza pe conexiunea la Internet existenta, care trebuie sa aiba o largime de banda suficienta pentru un asemenea apel.
Exemplu de retea VoIP:
Telefonia VoIP, bazata pe transmiterea vocii sub forma de pachete,
aduce avantaje dar si dezavantaje:
- costul: avantajul major al acestei abordari este costul redus. Reducerea de costuri se datoreaza utilizarii aceluiasi mediu de transport pentru voce si date. Daca o companie are o conexiune la Internet (neexploatata complet), atunci aceasta conexiune poate fi utilizata si pentru transmisia de voce, fara costuri aditionale. O alta reducere de costuri o reprezinta gratuitatea convorbirilor intre utilizatorii VoIP. In general, doar apelurile efectuate intre VoIP si PSTN implica costuri, pe cand apelurile intre utilizatori VoIP nu aduc alte costuri decat costurile conexiunii la Internet. Deoarece conexiunea la Internet este probabil deja existenta sau folosita si in alte scopuri, telefonia VoIP intre utilizatorii ei este considerata gratuita.
- functionalitatea imbunatatita: un alt avantaj important este functionalitatea imbunatatita fata de telefonia clasica. Unele din functionalitatile oferite de catre VoIP sunt dificil sau chiar imposibil de realizat in telefonia clasica. Printre aceste functionalitati se afla posibilitatea de a utiliza un telefon IP oriunde exista o conexiune la reteaua Internet. Aceasta face posibil ca telefonul "fix" sa poata fi luat in calatorii, avand acelasi numar de apel peste tot. De aceasta facilitate beneficiaza cel mai mult agentiile de tip Call Center, care folosesc telefonia VoIP din alte tari decat cea de origine datorita costurilor reduse prin forta de munca mai ieftina.
- servicii suplimentare: datorita
utilizarii unei conexiuni de date partajate, se pot transmite imagini
video, fisiere sau mesaje text in paralel cu apelul. Multe din soft-urile
existente pentru VoIP pun la dispozitie astfel de servicii.
Unele dintre dezavantajele telefoniei IP sunt:
- probleme de implementare: datorita tehnologiei IP, care nu asigura un mecanism pentru asigurarea calitatii (QoS: Quality of Service) si datorita posibilitatii receptiei pachetelor in alta ordine decat au fost trimise, telefonia IP se confrunta cu probleme de tip intarzieri si oscilatii ale calitatii. Interconexiunea intre diferite retele care folosesc tehnologia NAT (Network Address Translation) este de asemenea dificila.
- stabilitate: deoarece legatura la Internet este de obicei putin stabila, atunci cand exista intarzieri datorita congestiei unor noduri ale retelei, serviciul VoIP nu va fi functional. Aceasta problema se observa cel mai des la apelurile de lunga distanta unde apelul traverseaza retelele mai multor ISP cu viteze si probleme diferite.
-apeluri de urgenta: din cauza naturii retelei IP, localizarea geografica a unui utilizator este destul de dificila. Din aceasta cauza este dificil de directionat apelurile de urgenta catre cel mai apropiat centru de urgenta (politie, salvare, pompieri, etc.)
- numere de telefon nestandardizate: spre diferenta de PSTN, telefonia VoIP nu are inca un standard pentru identificarea globala a numerelor de telefon.
Comunicarea dintre doi corespondenti VoIP este controlata si supravegheata prin protocolul SIP sau H.323. Comunicarea in tehnologia VoIP ia forma unui flux de date impachetate (Media Stream). Pentru transmiterea acestor fluxuri de date, care trebuie sa transporte semnale digitale audio si video, a fost creat in 1996 un standard numit Real-time Transport Protocol ( vezi RTP).
Incapsularea se face sub forma:
Sunetele percepute de urechea umana acopera aproximativ spectrul de frecventa dintre 20 Hz si 20 kHz. Pentru a digitiza sunete din acest domeniu de frecventa, avem nevoie de o esantionare de cel putin dublul celei mai mari frecvente, adica 40 kHz, conform teoremei Nyquist. Pe CD-urile audio, muzica este esantionata la 44 kHz, ceea ce le confera calitatea superioara pe care o au. Pentru sunete stereo, avem frecventa de esantionare de 40 kHz, 80.000 de esantioane pe secunda, ceea ce la o precizie de 16 biti per esantion indica o rata de transmisie de 160.000 bytes/sec (156 kbyte/sec). Este evident ca pentru a putea transmite aceste date prin Internet, la o viteza de transmisie relativ constanta, avem nevoie de o latime de banda mare, cerinta care este covarsitoare pentru orice furnizor de servicii Internet.
In primul rand, sunetul inregistrat de la un microfon nu este stereo, deci ar ramane de transmis doar 80.000 bytes/sec. In plus, esantionarea pe 8 biti si nu pe 16, este suficienta pentru a asigura o calitate acceptabila. Asa am ajuns la 60.000 bytes/sec, insa cel mai mare castig este faptul ca vocea umana ocupa doar 4 kHz din spectrul de 22 kHz pe care urechea umana il poate percepe. Din acest motiv, rata de esantionare nu trebuie sa fie 44 kHz, ci doar 8 kHz. Un nou calcul ne arata: 8 kHz * 1 byte pe esantion = 8 kbyte/sec = 64 kbit/sec, ceea ce este latimea de banda a unei linii telefonice clasice digitale (de ex. un canal ISDN). Deoarece pe modemurile clasice rata de transfer maxima este de obicei 56 kbit, au fost inventati algoritmi de compresie a acestor date care aduc rata de transmisie de la 64 kbit/sec la aproape 5 kbit/sec. Evident, toate aceste reduceri ale cantitatii de date transmise implica o scadere a calitatii sunetului transmis.
Dupa cum au aratat rezultatele, transmisia acestei
cantitati de date este fezabila,
ramane insa de aratat cum pot fi trimise datele prin retele IP. Aici intervine protocolul RTP, un protocol la nivel de aplicatie.
Pentru a fi inteligibile, pachetele RTP contin in antetul lor informatii necesare sincronizarii dintre receptie si transmisie. Un receptor va extrage din acest antet informatii privind sursa fluxului de date (un receptor poate primi mai multe fluxuri simultan de la mai multi emitatori), numarul de ordine al pachetului in cadrul fluxului (pachetele trebuie sa fie prelucrate in ordine, chiar daca din cauza retelei se pot pierde unele pachete sau acestea pot fi receptionate in alta ordine decat cea initiala) si informatii exacte despre timpul la care a fost generat pachetul (timestamp-ul este necesar atunci cand pachetele nu sunt transmise in ordinea in care au fost esantionate, ca in cazul codarii MPEG cu cadre interpolate). Incarcatura pachetelor RTP (payload) o reprezinta chiar datele utile ce trebuie transportate. Aceste date pot fi chiar esantioanele preluate din captura audio, dar pot fi si alte informatii cum ar fi DTMF (Dual Tone Multi Frequency). DTMF-urile sunt semnalele audio generate de apasarea unei taste la telefoanele digitale. Aceste tonuri pot fi transmise ca semnale audio mixate in fluxul apelului, sau pot fi trimise ca un simplu identificator al semnalului. Metoda a doua este de preferat pentru ca usureaza mult detectia frecventelor corespunzatoare tastei apasate (mai ales atunci cand codificarea semnalului audio duce la scaderea calitatii si modificarea spectrului de frecventa).
Atunci cand incarcatura pachetelor este chiar informatia audio sau video care constituie fluxul dintre corespondenti, aplicatia trebuie sa asigure o redare cat mai normala prin rearanjarea intr-o perioada cat mai scurta a pachetelor primite. Acest procedeu influenteaza calitatea vocii (cat de bine este inteles corespondentul) si calitatea convorbirii (cat de usor este sa porti conversatia). Aplicatia poate decide cat de mult sa astepte dupa un pachet care intarzie sa apara, insa scopul principal este de a prelucra intr-o ordine corecta cat mai multe astfel de pachete. Deci, cu impact daunator calitatii, aplicatia poate renunta la unele pachete cu scopul de a mentine un flux continuu de date.
Inainte de inceperea comunicatiei, membrii stabilesc conditiile in care se va desfasura comunicarea: ce port-uri vor fi folosite, ce codec-uri se vor utiliza, ce rute vor avea pachetele, etc. Atunci cand fluxul ajunge la receptor, trebuie interpretat conform informatiei din antetul RTP si conform negocierii efectuate prin SIP/SDP. Prelucrarea fluxului de date poate incepe imediat, deoarece receptorul stie dinainte cu ce fel de date are de-a face. Asadar, receptorul trebuie sa decomprime fluxul de date, evident bazandu-se pe algoritmul cu care a fost comprimat, eventual trebuie sa decripteze fluxul daca acesta a fost securizat, apoi sa redea printr-o conversie digital-analogica fluxul audio sau video.
In momentul de fata exista si sunt utilizate intens mai multe protocoale de semnalizare. Unele dintre acestea sunt standardizate de catre organizatii internationale precum IETF (Internet Engineering Task Force) sau ITU (International Telecommunication Union), iar altele sunt protocoale proprietare folosite de catre aplicatiile unor companii comerciale. Cele mai cunoscute protocoale de semnalizare sunt:
Session Initiation Protocol (SIP): standard definit de IETF
H.323: standard definit de ITU-T
Megaco si MGCP: protocoale de control a gateway-urilor multimedia
Skinny Client Control Protocol: protocol al companiei Cisco
MiNET: protocol al companiei Mitel
CorNet-IP: protocol al companiei Siemens
IAX: protocol folosit de catre Asterisk, o centrala
telefonica software open-source
Skype: protocol folosit de aplicatia Skype
Dintre acestea, cele mai populare protocoale folosite astazi sunt SIP
si H.323. Initial, H.323 a fost cel mai raspandit si
utilizat protocol, insa datorita problemelor care apar la utilizarea
H.323 intre diferite retele (rutare prin NAT, probleme cu firewall-uri,
etc.), acest protocol a cedat primul loc protocolului SIP (Session Initiation
Protocol).
Protocolul SIP se adapteaza mult mai bine cerintelor si
problemelor diferitilor utilizatori casnici, motiv pentru care se
bucura de o raspandire tot mai larga. Protocolul H.323 este
folosit acolo unde totul este sub control si supraveghere, ca de exemplu
in cadrul retelelor de voce a diferitelor companii care furnizeaza
servicii VoIP. SIP este asadar util utilizatorilor mici si mijlocii,
dar marile companii de telefonie VoIP folosesc H.323 ca protocol de baza.
Trebuie spus ca in ultimul timp, imbunatatirile aduse
protocolului H.323 (care de fapt este o umbrela peste mai multe protocoale
ca H.225.0, H.245, H.450, H.235, H.239), reduc problemele intampinate de H.323
la traversarea diferitelor retele, ceea ce ar putea readuce utilizarea
acestui protocol in prim plan.
Protocolul SIP este un protocol la nivel de aplicatie (conform nivelelor
protocolului IP), utilitatea sa fiind de a initia, modifica, controla si termina o sesiune interactiva intre doi corespondenti, sesiune care implica elemente multimedia: voce (audio), imagini (video), comunicare (instant messaging), jocuri online, s.a. Protocolul SIP furnizeaza metodele necesare implementarii caracteristicilor pe care le ofera reteaua publica de telefonie (PSTN), ca de exemplu: formarea unui numar, instiintarea unui telefon ca este sunat, auzirea unui sunet de sonerie sau de ocupat, terminarea unui apel, s.a. Reteaua PSTN foloseste pentru aceste functii sistemul de semnalizare SS7 (Signalling System 7), sistem care furnizeaza servicii avansate de telefonie, dar SIP si SS7 sunt diferite ca si concept si implementare. SS7 este un sistem puternic centralizat, functiile de telefonie fiind incorporate si implementate in interiorul companiilor de telefonie, telefoanele utilizatorilor fiind reduse din punct de vedere tehnic la minim. Pe de alta parte, SIP este un protocol peer-to-peer, ceea ce inseamna ca acest protocol are nevoie de o retea de intercomunicare foarte simpla (dar puternic scalabila), "inteligenta" si tehnologia necesara functionarii fiind implementata in punctele extreme ale retelei, adica in telefoanele IP si in soft-urile VoIP. Multe din functiile SIP sunt implementate in punctele terminale ale comunicatiei, pe cand functiile SS7 sunt implementate centralizat, in interiorul retelei. Aceasta abordare diferita se datoreaza probabil radacinilor protocolului SIP, care pornesc din comunitatea IP si nu din industria telecomunicatiilor.
Protocolul SIP, ca si H.323, se foloseste in paralel cu alte protocoale, SIP fiind folosit doar in partea de semnalizare a sesiunii de comunicatie. SIP este purtator pentru protocolul SDP (Session Description Protocol), care este utilizat pentru a descrie continutul media al sesiunii (ce port-uri sunt folosite, ce tip de flux va fi transmis, ce codec trebuie folosit, etc). Fluxul de date audio sau video este transmis prin alt protocol (RTP = Real Time Protocol), separat de pachetele SIP. Din unele puncte de vedere, SIP este asemanator cu protocolul HTTP, care este folosit pentru a accesa si transmite fisiere in World Wide Web. Asemanarile majore dintre cele doua protocoale sunt: orientarea cerere-raspuns, formatul lizibil pentru om si complexitatea redusa. Cu toate ca conceptia initiala a SIP a fost orientata spre simplicitate, dezvoltarile ulterioare au adus SIP la o complexitate asemanatoare cu cea a H.323. Atat SIP, cat si H.323, nu sunt limitate la comunicare prin voce, ci pot media orice fel de comunicare (video, text sau alte metode).
4.2 Video Streaming