R EDES - 3 I NGENIERA T CNICA I NFORMTICA D E S ISTEMAS Autor: Gil Cabezas, Jess i!"#i$a%&u$o'es( Curso "))*+")), -ol.er al /01i$e 2 3 NDICE D E C ONTENIDOS 2' INTROD4CCI5N 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 7 "' PROTOCOLO RTP 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 7 "'2' 8u0$io0a9ie0to 6'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 7 "'"' E0$abeza1o RTP ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' : "'7 As;e$tos 1e se#uri1a1 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ! 7' PROTOCOLO RTCP 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ! 7'2' 8u0$io0a9ie0to 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ! 7'" Ti;os 1e ;a<uetes RTCP 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ! 7'7' E0$abeza1o RTCP ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' = :' 4SO DE PROTOCOLO RTP > RTCP 6''''''''''''''''''''''''''''''''''''''''''''''''''''''' * ?' PROTOCOLO RTSP 6'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 2) ?'2' 8u0$io0a9ie0to 6''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 2) !' @I@LIOGRA83A 6'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 2" -ol.er al /01i$e " 2' INTROD4CCI5N El protocolo RTP Real-time Transport Protocol(, <ue e0 es;aAol es Protocolo de Tranporte en t!e"po real sur#iB $o0 la i1ea 1e $rear u0 protocolo epec#$!co ;ara la #ra0 de"anda de rec%ro en t!e"po real ;or ;arte 1e los usuarios' Al#u0os 1e estos re$ursos so0 la 9si$a, .i1eo$o0Cere0$ia, .i1eo, teleCo0/a e0 I0ter0et D 9Es a;li$a$io0es 9ulti9e1ia' EstE $or"ado con&%nta"ente $o0 el protocolo RTCP RTP Control Protocol(, es 1e$ir, Proto$olo 1e Co0trol RTP, $uDa Cu0$iB0 ;ri0$i;al es proporc!onar "ecan!"o de real!"entac!'n ;ara i0Cor9ar sobre la $ali1a1 e0 la 1istribu$iB0 1e los 1atos ' E0 2,,! se ;ubli$a e0 el RFC ())* el estE01ar 1el ;roto$olo RTP' "' PROTOCOLO RTP "'2 84NCIONAMIENTO El ;roto$olo RTP se estable$e e0 el epac!o de %%ar!o D se e%e$uta, ;or lo #e0eral, sobre +DP, Da <ue ;osee "enor retardo <ue TCP' Por ta0to $o0 4DP se #a0a ,eloc!dad a $a9bio 1e sa$riCi$ar la $o0Ciabili1a1 <ue TCP oCre$e' Debi1o a Fsto, RTP 0o #ara0tiza la e0tre#a 1e to1os los ;a<uetes, 0i la lle#a1a 1e Fstos e0 el i0sta0te a1e$ua1o' La Cu0$iB0 bEsi$a 1e RTP es "%lt!ple-ar ,ar!o $l%&o de dato en t!e"po real en %n olo $l%&o de pa.%ete +DP, ;u1iF01ose e0.iar ta0to a u0 solo 1esti0o u0i$ast( o 9lti;les 1esti0os 9ulti$ast(' Los pa.%ete on n%"erado 1e la si#uie0te 9a0era: se le asi#0a a $a1a ;a<uete u0 09ero 9aDor <ue su a0te$esor' Esto serE til ;ara <ue la a;li$a$iB0 cono/ca ! 0a $allado al12n pa.%ete o no en la tran"!!'n' Si Ga Calla1o, al 0o te0er u0 $o0trol 1e Clu%o, 1e errores, 1e $o0Cir9a$io0es 1e re$e;$iB0 0i 1e soli$itu1 1e tra0s9isiB0, la "e&or opc!'n e la !nterpolac!'n 1e los 1atos' Otra $ara$ter/sti$a 9uD i9;orta0te ;ara las a;li$a$io0es 1e $o0te0i1o 9ulti9e1ia e0 tie9;o real es el t!"e-ta"p!n1 marcacin del tiempo(' La i1ea es ;er9itir <ue el ori#e0 aso$ie u0a 9ar$a 1e tie9;o $o0 la ;ri9era 9uestra 1e $a1a ;a<uete' Las "arca de t!e"po on relat!,a al !n!c!o del $l%&o, ;or ta0to, solo i9;orta las 1iCere0$ias e0tre 1i$Gas 9ar$as 1e tie9;o' Co0 este ;la0tea9ie0to, el det!no es $a;az 1e al"acenar %n pe.%e3o 4%$$er e ir re;ro1u$ie01o $a1a 9uestra el 09ero eHa$to 1e 9ilise#u01os 1es;uFs 1el i0i$io 1el Clu%o red%c!endo lo e$ecto de la $l%ct%ac!'n D si0$ro0iza01o 9lti;les Clu%os e0tre s/' -ol.er al /01i$e 7 "'" ENCA@EIADO RTP El enca4e/ado de lo pa.%ete RTP $o0siste e0 3 pala4ra de 35 4!t D al#u0as eHte0sio0es: PRIMERA PA6A7RA8 9er: : $a9;o .ersiB0 " bits( P: i01i$a si el ;a<uete se Ga relle0a1o a u0 9lti;lo 1e : bDtes' El lti9o bDte 1e relle0o i01i$a $uE0tos bDtes se a#re#aro0' 2 bit( ;: i01i$a si GaD u0 e0$abeza1o 1e eHte0siB0' 2 bit( CC: i01i$a $uE0tos or/#e0es 1e $o0tribu$iB0 estE0 ;rese0tes, 1e ) a 2? : bits( M: es u0 9ar$a1or es;e$/Ci$o 1e la a;li$a$iB0, 0or9al9e0te u0 9ar$a1or 1e i0i$io2 bit( T!po de car1a 2t!l: i01i$a $uEl es el al#orit9o 1e $o1iCi$a$iB0 <ue se Ga utiliza1o= bits( N%"ero de ec%enc!a: $o0ta1or <ue se i0$re9e0ta e0 $a1a ;a<uete RTP e0.ia1o 2! bits( SEG+NDA PA6A7RA8 Marca de t!e"po: i01i$a $uE01o se $reB la ;ri9era 9uestra e0 el ;a<uete' 7" bits( TERCERA PA6A7RA8 Ident!$!cador de or!1en de !ncron!/ac!'n: i01i$a a $uEl Clu%o ;erte0e$e el ;a<uete' Es el 9Fto1o ;ara 1e 9ulti;leHar+1e9ulti;leHar .arios Clu%os 1e 1atos e0 u0 solo Clu%o 1e ;a<uetes 4DP' 7" bits( Por lti9o, los Ident!$!cadore de or!1en de contr!4%c!'n, e0 $aso 1e <ue GaDa, se utiliza0 $ua01o los 9ez$la1ores estE0 ;rese0tes e0 el estu1io' E0 ese $aso, el 9ez$la1or es el ori#e0 1e si0$ro0iza$iB0, D los Clu%os <ue se 9ez$la0 se lista0 e0 esta ;alabra' -ol.er al /01i$e : 2.2.1 TIPO DE CARGA TIL Pa!load" A $o0ti0ua$iB0 se 9uestra0 1os tablas $o0 los ;osibles ti;o 1e $ar#a til, es 1e$ir, el al#orit9o 1e $o1iCi$a$iB0 aso$ia1o' A%d!o 9!deo -ol.er al /01i$e ? "'7 ASPECTOS DE SEG4RIDAD RTP %$re ,%lnera4!l!dade al i#ual <ue otros ;roto$olos' Por e%e9;lo, u0 usuario ata$a0te ;o1r/a a%tent!car de $or"a $ala 1ire$$io0es 1e re1 1e ori#e0 o 1esti0o, ca"4!ar el enca4e/ado e i0$luso ca"4!ar el al1or!t"o de cod!$!cac!'n' 4tiliza01o el ;roto$olo RTP !n % protocolo de control RTCP, los $a9;os CNAME D NAME ;o1r/a usarse ;ara a%tent!car a otro %%ar!o' Debi1o a estas .ul0erabili1a1es e0tre otras, es !"portante a4er %no c%anto apecto de e1%r!dad ;ara Ga$er u0 uso 9Es res;o0sable 1el ;roto$olo' RTP es usa1o a$tual9e0te e0 la tele$on#a 9oIP, lla9a1as teleCB0i$as a tra.Fs 1e I0ter0et' Por ta0to, la $a;tura 1e ;a<uetes RTP es u0 pro4le"a para la !nte1r!dad de la con,erac!'n 1ebi1o a las .ul0erabili1a1es e0 se#uri1a1' El te9a 1e .ul0erabili1a1es D a#u%eros e0 se#uri1a1 estE sie01o u0 te"a de act%al!dad 1ebi1o a los ;roble9as <ue ;la0tea0 ;ara los usuarios' 7' PROTOCOLO RTCP 7'2 84NCIONAMIENTO El ;roto$olo RTCP e co"ple"entar!o a RTP D le bri01a a Fste u0 "ecan!"o de control' 4tiliza +DP por el p%erto ad<acente si#uie0te al ;uerto <ue se utiliza ;ara RTP' El ;roto$olo RTCP se basa e0 la ;eriB1i$a tra0s9isiB0 1e ;a<uetes 1e $o0trol a to1os los ;arti$i;a0tes e0 sesiB0 oCre$iF01ole !n$or"ac!'n o4re la cal!dad de lo dato 1istribui1os ;or la Cue0te' El ;roto$olo subDa$e0te 1ebe ;ro.eer 1e la 9ulti;leHa$iB0 1e los 1atos D 1e los ;a<uetes 1el $o0trol' Por ta0to, la $%nc!'n pr!"ord!al 1e RTCP es la 1e ;ro.eer u0a real!"entac!'n de la cal!dad 1e ser.i$io' 7'" TIPOS DE PAJ4ETES RTCP SR !n$or"e de e"!or(: $o0%u0to 1e esta1/sti$as 1e tra0s9isiB0 D re$e;$iB0 <ue ;ro.ie0e0 1e ;arti$i;a0tes <ue so0 e9isores a$ti.os' RR !n$or"e del receptor(: $o0%u0to 1e esta1/sti$as <ue ;ro.ie0e0 1e ;arti$i;a0tes <ue so0 sBlo re$e;tores' SDES decr!pc!'n de $%ente(: estE0 $o9;uestos 1e .arios ele9e0tos, i0$lui1o el CNAME' Co0stituDe0 la Ktar%eta 1e .isitaL 1e la Cue0te' 7=E "ena&e de $!n(: ter9i0a la sesiB0' APP: Cu0$io0es es;e$/Ci$as 1e u0a 1eter9i0a1a a;li$a$iB0' -ol.er al /01i$e ! 7'7 ENCA@EIADO RTCP El enca4e/ado RTCP tie0e 35 4<te D estE 1i.i1i1o e0 3 /ona: PRIMERA >ONA8 9 i01i$a la .ersiB0' " bits( P i01i$a si el ;a<uete se Ga relle0a1o a u0 9lti;lo 1e : bDtes' El lti9o bDte 1e relle0o i01i$a $uE0tos bDtes se a#re#aro0' 2 bit( RC es u0 $o0ta1or 1e i0Cor9es e0 el ;a<uete' ? bits( PT es la $ar#a til M ")) ;ara SR '* bits( 6on1!t%d 1el re;orte'2! bits( SSRC <ue lo ori#i0a' 7" bits( SEG+NDA >ONA8 NTP t!"eta"p: 9ar$a 1e tie9;o NTP' !: bits( RTP t!"eta"p: 9ar$a 1e tie9;o RTP' 7" bits( Conteo de pa.%ete e0.ia1os 1es1e el i0i$io 1e la sesiB0 ;or el e9isor' 7" bits( Conteo de 4<te e0.ia1os 1es1e el i0i$io 1e la sesiB0 ;or el e9isor'7" bits( -ol.er al /01i$e = TERCERA >ONA8 Co0%u0to 1e RR, u0o ;or $a1a Cue0te es$u$Ga1a $o0 la si#uie0te i0Cor9a$iB0: SSRC-n: 09ero 1e la Cue0te $uDo Clu%o se a0aliza' 7" bits( Fracc!'n ;er1i1a * bits(' N2"ero a$u9ulati.o 1e pa.%ete perd!do ": bits(' EHte0siB0 1el n2"ero de ec%enc!a "? alto rec!4!do 7" bits(' Inter,alo de la ,ar!ac!'n de retardo' Se trata 1el tie9;o 1e trE0sito relati.o e0tre los 1os ;a<uetes 1e 1atos D es $al$ula1o ;ara $a1a ;a<uete 1e 1atos re$ibi1o ;or la Cue0te SSRCN0' 7" bits(' Marca de t!e"po 1el lti9o i0Cor9e 1e e0./o 7" bits(' Retardo 1es1e el lti9o i0Cor9e 1e e0./o 7" bits(' :' 4SO DE PROTOCOLO RTP > RTCP Co9o se Ga i1o eH;li$a01o a0terior9e0te, D 1e u0a 9a0era resu9i1a: 40a $%ente@e"!or #e0era utiliza el ;roto$olo RTP ;ara #e0erar ;a<uetes 1e $o0te0i1o "%lt!"ed!a <ue serE0 1iCu01i1os ;ara u0 re$e;tor u0i$ast( o .arios re$e;tores 9ulti$ast(' El $o0te0i1o 9ulti9e1ia serE #e0era1o e0 u0 $l%&o de pa.%ete +DP <ue serE e0.ia1o al re$e;tor o receptore' A su .ez Fstos #e0era0 ;a<uetes utiliza01o el ;roto$olo RTCP <ue 9a01arE0 i0Cor9a$iB0 sobre la cal!dad 1e los 1atos 1istribui1os ;or la Cue0te D aDu1arE a ele#ir el i0ter.alo 1e tie9;o a1e$ua1o D a si0$ro0izar los Clu%os Au1io D .i1eo ;or e%e9;lo(' E0tre los e9isores D los re$e;tores ;ue1e Gaber " ti;os 1e 0o1os: Me/clador: Re$ibe .arios ;a<uetes RTP, los $o9bi0a D e0./a otro 0ue.o $o0 u0 0ue.o SSRC 1el 9ez$la1or(, i0Cor9a01o 1e los SSRCs ori#i0ales $o9o CSRCs Co0tributi0# SRC(, Cue0tes $o0tributi.as' Trad%ctor: Oa$e ree0./o 1e ;a<uetes tras 9o1iCi$arlos' -ol.er al /01i$e * Po1e9os .er u0 e%e9;lo 1o01e u0 e"!or tran"!te ,!deo < a%d!o, utiliza01o el "e/clador a " re$e;tores <ue utiliza0 u0 trad%ctor ;ara 1e$o1iCi$arlos' Co9o se ;ue1e obser.ar e0 el es<ue9a 1es1e el e9isor se 9a01a0 los ;a<uetes RTP a los re$e;tores, D los ;a<uetes RTCP ta0to a e9isor $o9o re$e;tores a 9o1o 1e control del $l%&o < cal!dad' -ol.er al /01i$e , ?' PROTOCOLO RTSP El ;roto$olo RTSP Real-Time #treamin$ Protocol(, es u0 ;roto$olo 4aado en te-to e !ndepend!ente del protocolo de tranporte <ue ;er9ite realizar u0 $o0trol re"oto 1e sesiB0 1e tra0s9isiB0 9ulti9e1ia <ue ;er9ite: Re$u;erar u0 1eter9i0a1o 9e1io 1e u0 ser.i1or I0.itar a u0 ser.i1or 1e 9e1ios a u0a 9ulti$o0Cere0$ia Grabar u0a 9ulti$o0Cere0$ia E0 2,,* se ;ubli$a e0 el RFC 535A el estE01ar 1el ;roto$olo RTP' ?'2 84NCIONAMIENTO El ;roto$olo re$uer1a e0 1iseAo, e0 ;arte, a OTTP' E"plea +R6 ;ara la tra0s9isiB0' Se 9a01a u0 "ena&e e ol!c!t%d a u0a 4RL e0 u0 ;a<uete TCP' PLAY rtsp://video.example.com/conf1/video1 RTSP/1.0 CSeq: Session: 1!"#$ Ran%e: smpte&0:10:00' El ser.i1or 1e 9e1ios 1arE u0a rep%eta e0 u0 ;a<uete TCP' RTSP/1.0 00 () CSeq: Session: 1!"#$* Ran%e: smpte&0:10:00'0:0:00 RTP'+nfo: ,rl&rtsp://video.example.com/conf1/video1- seq&1!1!1!-rtptime&"#$"#$"#$ Los 9e0sa%es ;ri0$i;ales 1e soli$itu1 <ue se ;ue1e0 9a01ar ;ue1e0 ser 1el ti;o: SET+P: El ser.i1or asi#0a re$ursos D estable$e u0a sesiB0 RTSP' P6A=: E9;ieza la tra0s9isiB0 1e 1atos' PA+SE: Detie0e te9;oral9e0te la tra0s9isiB0' TEARDOBN: Libera los re$ursos D ter9i0a la sesiB0 RTSP' -ol.er al /01i$e 2) El es<ue9a 1e Cu0$io0a9ie0to 1e RTSP es el si#uie0te: -ol.er al /01i$e 22 !' @I@LIOGRA83A Gtt;:++es'PiosPea'0et+$o0te0ts+i0ter0et+rt$;';G;7 Gtt;:++QQQ'9o0o#raCias'$o9+traba%os77+tele$o9u0i$a$io0es+tele$o9u0i$a$io0es7'sGt9l Re1es 1e Co9;uta1ores: A' Ta0e9bau9 Te9a " R RealRTi9e Tra0s;ort Proto$ol I0Cor9a$iB0 Au1io.isual e0 Re1es 1e Or1e0a1ores R 40i.ersi1a1 ReD Jua0 Carlos Gtt;:++QQQ'Ca<s'or#+rC$s+rC$"7"!'GGt9l Gtt;:++QQQ'Ca<s'or#+rC$s+rC$2**,'Gt9l -ol.er al /01i$e 2"