Está en la página 1de 11

Laboratorio#6ImplementacindeservidoresTCPyUDP

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.

Etiqueta #Muestras Media Mediana Mn

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

También podría gustarte