Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Infraestructuradecomunicaciones
AnaMaraCrdenas(
am.cardenas926
),AndreaNavas(
a.navas380
)
201213021201125090
UniversidaddelosAndes,Bogot,Colombia
Fechadepresentacin:Octubre11de2015
1.
Introduccin
Enelsiguienteinformesepresentareldesarrollodeimplementacionesdeservicios
soportadosporprotocolostantoTCPcomoUDP.Paraelservicioseutilizaruna
arquitecturaclienteservidordondeelclienteestarimplementadoenJavayel
servidorenJava.Paralaejecucindelservicioseasumirquetantoelservidorcomo
elclienteestnenunamismaredylaIPdelservidorascomolospuertosdondese
exponeelserviciosonconocidosporelcliente.Deigualmaneraseasumequeel
clienteconoceladireccinmulticastendondeobtenerloscanalesdestreaming.
Encadaunodeloscasosserealizarunanlisisdeldesempeoycapacidaddeun
serviciosegncadaprotocolo.Elinformebuscarrelacionarlainformacinobtenida
sobreeldesempeoconlaarquitecturadesarrolladaparalaaplicacinyparael
servidorascomolosprotocolosqueseutilizaronenlaspruebas.Elinformetambin
buscaraproximarseaescenariosdepruebaqueseanefectivosparamedirtantoel
desempeocomolacapacidaddelservidor.
2.
DesarrolloServidoryclienteTCPyUDP
2.1.
Estructuradelprograma
Figura2.1.1Estructuradelservidor
Figura2.1.2Estructuradelcliente
Enlasgrficas2.1.1y2.1.2semuestralaimplementacindelclienteydelservidor.
ElServidorcuentacon3clases:
TCPThread
sonlosthreadsdeTCPqueseabrenpor
cadaclienteparaprestarlosserviciosdeautenticacinydesubidadevideos.
StreamingChannel
esunthreadconunadireccindemulticastquehaceunloop
infinitoparaelstreamdelvideodelcanalasignadoaladireccin.
ChannelSelector
es
unthreadqueestenviandoatravsdeuncanalmulticastlasdireccionesdelos
canalesdisponibles.SeactualizacadaNsegundosconodoslosvdeossubidosporlos
usuariosycrealos
StreamingThreads
necesarioscadavezqueunusuariosubeun
video.
Elclienteposeeunaestructuramssencillayaqueimplementaenunasolaclasetanto
lassolicitudesdeTCPparaautenticarysubirvideoscomodeUDPpararecibirel
streamingyrenderizarelvideo.
3.
Pruebassobrelosservidores
3.1.
PruebasTCP
Enelservidorseimplementunafuncionalidadadicionalquepermiteresponder
inmediatamentealrequestde
hello
paramedireltiempoderespuestadelservidor.
Enestecasoeltiempodeesperaenlacolasevemanifestadoenlagrficadeltiempo
derespuestayaqueeltiempodeprocesamientoesnfimo.Paraelcasodelas
pruebasdeTCPsellevacaboconJMETERelsiguienteescenariodepruebas:
Figura4.1.1escenariodepruebasdeTCP
SedeterminunRAMPUPde1000msyserealizaronpruebascon10,50,
100,200y300threadsdeacuerdoaloestipuladoenlagua.
Comomuestreadoresseagregaronunagrficadetiempoderespuesta,reporte
dearbolyreporteagregado,
TiemposdeRespuesta:
10threads:
50threads:
100threads:
200threads:
300threads:
Trasobservarlosresultadosdelatablasepuedeobservarqueeltiempomximode
esperasealterasignificativamentealaumentarelnmerodethreadslocualindica
quelacapacidaddelservidorsepuedeverrebasadaalaumentarestos.Sinembargo
sepuedeobservarqueel%deerrores0yaque300esunnmeromuypequeode
threadscomopararebasarlacoladelservidor.
Mx
%Error
Rendimiento Kb/sec
Muestrea
dorTCP
10
0 10.97694841 0.04287870472
Muestrea
dorTCP
50
30
0 48.59086492 0.1898080661
Muestrea
dorTCP
100
53
0 241.5458937 0.9435386473
Muestrea
dorTCP
200
57
0 160.1281025 0.6255004003
Muestrea
dorTCP
300
11
105
0 86.88097307
0.339378801
3.2.
PruebasUDP
Enelservidornofuenecesariodeunafuncionalidadadicionalyaqueelstreaming
decanalespermitievaluareltiempoderespuestadelservidorparaelcasodela
descargadeunpaquetesencillo(loscanalesdisponiblesenelservidor).Paraelcaso
delaspruebasdeTCPsellevacaboconJMETER(atravsdeunpluginque
permiterealizarpedidosymuestreodeUDP)elsiguienteescenariodepruebas:
10threads:
50threads:
100threads:
200threads:
300threads:
AlanalizarlatabladeresultadosdelosrequestUDPsepuedeobservarqueel
incrementodeltiempodeesperaporunpaqueteporcadathreadesmenorqueen
TCPestoesfcilmenteexplicablegraciasalusodemulticastqueseveraafectado
porgrannmerodethreadssoloenlamedidaenlaqueestosllegaranasaturarlared
yaqueelservidornorequierealocarmemoriaparaelprocesamientodeestos.El
porcentajedeerroraligualqueenTCPes0yaqueelnmerode
threads
esmuy
pequeocomoparasaturarlaredoelservidor.
Etiqueta
#Muestras
Media
Mediana Mn
Mx
%Error
Rendimiento
jp@gcUDP
Request
10
11.0619469
jp@gcUDP
Request
50
13
49.16420846
jp@gcUDP
Request
100
14
98.23182711
jp@gcUDP
Request
500
42
25.89063795
jp@gcUDP
Request
300
54
359.4536305
3.3.
Comparacinderesultados
4.
Anlisisaplicacionesdelmercado
4.1.
Proteccincontraunataqueded
enegacindeservicio
Unataquededenegacindeservicioconsisteen
anattackthatrendersanetwork,
host,orotherpieceofinfrastructureunusablebylegitimateusers..Theattacker
establishesalargenumberofhalfopenorfullyopenTCPconnections
1.Dada
estadefinicinresultaevidentequelavulnerabilidadseencuentraenelservidor
TCPenelcualsepuedenrealizarrequestsTCPalservidorconelfindequeeste
aloqueespacioenmemoriaparalainformacindelsocket.Paraelcasodeesta
implementacintambincuentanlosrecursosdestinadosalacreacindeunthread
paraatenderalasolicitud.
ExistenotrostiposdeataqueDOScomoinundarlaredylaexplotacinde
vulnerabilidadesdelservidor.Elprimerorequeriraderedundanciaderedeslocual
sepuedelograrconvariasinstanciasdelservidorubicadasenredesdistintaslocual
noestenelscopedellaboratorio.Enelsegundosebuscaqueeldesarrollodel
servidornocuenteconvulnerabilidadesdeimplementacinquepuedanser
explotadas.
Paraelprimercasoquesemencionsedeterminqueunatacanteesunclienteque
abreunaconexindeTCPparaloginysinembargoestaconexinseencuentra
vaca.Elservidorcierratodaslasconexionesquecontieneninformacinderegistro
J.Kurose&K.Ross,
Computernetworking
.6.Ed.UnitedStates:Pearson,2013.
demaneraqueslolosclientesquesedeseenautenticarpuedantenerunthready
unaconexindecontrolabiertaconelservidorTCP.Adicionalmentesemodific
elfirewallparaimpedirlosICMPecho,queseutilizanconelcomandoPINGy
TRACEROUTE.Conestamedidaseevitaquesesaturealservidorconunagran
cantidaddemensajesICMP,degradandoelserviciooimpidiedoqueusuarios
legtimosloutilicen.
Sepodraconsiderarlanecesidaddereplicarlosservidoresyutilizarun
balanceadordecargacomoposiblesolucinarquitecturalparaaumentarla
capacidaddelservidorencasodequeelnmeromnimodethreadsfueramucho
mayora300peroparalasespecificacionesdellaboratoriosemuestraenel
porcentajedeerrordelassolicitudesquelacapacidadactualesmsquesuficiente.
4.2.
AnlisisdelasmedidasdedesempeorealizadasalservidorTCP
Anlisisdelcomportamientodeltiempodeespera(media)delservidorTCPen
relacinconelnmerodethreads:
Comosepuedeobservarenlagrficaamedidaqueelnmerodeclientes
conectadossimultneamentealservidorenuntiempodeterminado(
rampup
)
aumentasepuedeobservarunincrementoeneltiempomediodeesperaquetienen
losclientes.Estosecorrespondeconlateorayaquesedeberanproducirmayores
tiemposdecola(enestecasotodoeltiempoestrepresentadoporeltiempodecola
yaqueparalaspruebaselservidornorealizaprocesamientoalguno).
Sepuedeobservartambincomoeltiempomximodeesperaaumentaaunquese
presentandatosconaltavarianzadebidoalreducidonmerodeexperimentos.
Elcasodelporcentajedeerror(siempre0)puededarsegraciasalospocosthreads
nosuficientesparasaturarelservidorsinembargoseesperara,enteora,que
mientrasmssaturadoestuvieraelservidorelporcentajedeerroraumente.
4.3.
LoginconUDPystreamingconTCP
SisehicieraloginconUDPexistiralaposibilidaddequeseperdieranlospaquetes
odequenollegaraunusuarioconsucorrespondientecontraseasinoladeotro
usuario.Seranecesarioenviartodalatupladeusuarioycontraseaenunmismo
paqueteparaevitarinconsistencias.Normalmenteseesperaqueunloginest
implementadosobrealgntipodeprotocolosegurocomoSSLperoestoslosera
posibleenTCP.PorlotantounaimplementacinenUDPnosloharanecesario
manejarenelclienteoenelservidorlaprdidademensajes(yaqueunclientesle
importaquesepierdalainformacindesuautenticacin)sinoquetambin
impediralaimplementacindeprotocolosmsseguros,
Paraelcasodelstreamingseranecesariotenerunaconexinconcadaclientepara
cadacanallocualharamuchomscostosoelservicioparaelservidorquetanslo
mandarlospaquetesdevideoatravsdeUDP.Seramuchomsdifcilparael
servidormantenerel
streaming
paravariosclientes.TCPtambinesmuchoms
lentoqueUDPlocualharaquelaexperienciadelusuarioqueestviendoelvideo
sevieraafectadaconunvideoqueprobablementeseinterrumpaconstantementea
pesardenotenerprdidasnideaudionideimagenestonoesdeintersparael
usuarioyaquedichasprdidasenelcasodeUDPpuedenserdifcilmente
percibidasoignoradasporelusuario.
5.
Conclusiones
5.1.
Paraimplementarproteccincontraataquesdedenegacindeservicioes
necesariotenermecanismosredundantesyaquepormsquesepueda
reconocerunatacanteentrminosdesocketsTCPbasuralosrecursos
consumidosporabrirunaconexinyasonbastantesignificativosdepors.
5.2.
5.3.
5.4.
Sepudoobservaralolargodellaboratorioqueelnmerodethreadsque
atiendeelservidorafectasignificativamentemsalosserviciossoportadospor
TCPquealosserviciossoportadosporUDP.
Sepodraconsiderarlanecesidaddemanejarunbalanceadordecargaapartir
delaestimacindelporcentajedeerrorapartirdeundeterminadonmerode
clientes.Sinembargo,dadoqueenestelaboratorionosealcanzunnmero
declientesqueaumenteelporcentajedeerrorestenmeroesdesconocido.
Graciasalmulticastsepuedeenviardemaneramseficienteelstreamingde
videoavariosclientesdemanerasimultneasincomprometerunagran
cantidadderecursosporpartedelservidor.
Bibliografa
6.
1.
J.Kurose&K.Ross,
Computernetworking
.6.Ed.UnitedStates:Pearson,2013.
2. Xuggler,stremingvideo.[Enlnea][Citadoel:10deOctde2015.]
http://www.xuggle.com/xuggler/
3. Cisco,Multicastaddressing[Enlnea][Citadoel:10deOctde
2015.]
http://www.cisco.com/c/en/us/products/iosnxossoftware/ipmulticast/index.html
4. TheChromiumProject.QUIC,amultiplexedstreamtransportoverUDP.[Enlnea][Citado
el:10deOctde2015.]
https://www.chromium.org/quic