Beruflich Dokumente
Kultur Dokumente
ElprotocoloIP Descripcingeneral Clasesdedirecciones.Subredesymscaras Modelodeniveles.LapilaIP.EquivalenciaconlapilaOSI Niveldered ProtocoloIP Elproblemadelafragmentacin Protocolosauxiliares ProtocoloICMP ProtocoloARP ProtocoloRARP Niveldetransporte Conceptodepuerto ProtocoloUDP ProtocoloTCP Niveldeaplicacin LaestructuraclienteservidorenIP Elencaminamiento Protocolosdeencaminamiento
Pgina1de30,alas1:25del18/09/aa
ElprotocoloIP
ElprotocoloIP.
Descripcingeneral. AunquemuchagenteestconectadaaInternetpocaseparaapensarcomoes posiblequesuordenadorseacapazdeentenderseconotroquenisiquierasabecomoes yqueseencuentraalotroladodelmundo. Estoesposiblegraciasaquetodoslos ordenadoresconectadosaestaredhablanunlenguajecomn,unaespeciedelingua franca,cuyonombreTCP/IPesposiblequetambinloconozcanmuchos,peroque pocossabenloqueesrealmente. TCP/IP, el conjunto de protocolos que es el fundamento de Internet, es la denominacinquerecibeunafamiliadeprotocolosdiseadoparalainterconexinde ordenadores,independientedesuarquitecturaydelsistemaoperativoqueejecuten,de la tecnologausadaabajonivelparaconexinyqueproporcionaunaconectividad universalatravsdelaredconreconocimientodeextremoaextremo. NacidelanecesidaddeconseguirdentrodeARPA,semilladeInternet,los objetivoscitadosanteriormente,ygraciasalaexpansindeInternetsehaconvertidoen unestndardehechodebiendopartedesugranpopularidadalhechodeirincorporado dentro de los sistemas operativos Unix, a su independencia del fabricante, a estar soportadoenmltiplestecnologasyaquepuedefuncionarenmquinasdecualquier tamao. En1969DARPA(DefenseAdvancedResearchProjectsAgencedeE.E.U.U.) fund ARPANET, red experimental formada por una serie de ordenadores que se conectaban mediante la utilizacin de un sistema de conmutacin de paquetes experimental,funcionandoenprincipiolossistemasenunarelacinclienteservidor, perosedecidimstardeimplementarunprotocolodeigualaigual,querecibiel nombredeprotocolodecontroldered(NCPNetworkControlProtocolo). AmedidaqueARPANETfuecreciendosurgilanecesidaddesimplificarel procesodeinterconectarmuchostiposdiferentesdeordenadoresporloqueseplante el objetivo de desarrollar un mtodo de interconexin que cumpliese dos premisas fundamentales: pudiese conectar muchos tipos diferentes de ordenadores y pudiese funcionarsobremuchosmediosdetransmisindiferentes. En1973,BobKahndeDARPAyVintonCerfdelaUniversidaddeStanford empezaroneldesarrollodelgrupodeprotocolosProtocolosdecontroldetransmisin (TCPTransmisinControlProtocol),completadoensumayorpartehacia1978cuando recibi el nombre actual TCP/IP (Transmisin Control Protocol / InternetProtocol) debidoalanecesidaddedividirelprotocoloTCPendos:unoorientadoalaconexin (TCP)yotrono(IP).
Pgina2de30,alas1:25del18/09/aa
ElprotocoloIP
Afinalesdelosaos70hubounintentofallidoparaintegrarTCP/IPdentrode losprotocolosOSI,perosugrandifusinactualhadadolugaraquesearealmenteel estndardeinterconexinenlugardelOSI. Clasesdedirecciones.Subredesymscaras. IPtrabajaconcasitodoslosprotocolosderedesderealocalyextensa,usando unesquemadedireccionamientoindependientedelesquemadedireccionesdelared. CadanodoenunaredIPtieneunadireccinnumricade4bytes(32bit).Esta direccinsesuelerepresentarporcuatronmerosentre0y255separadosporpuntos,y tienedospartes,laprimeracomenzandoporlaizquierdarepresentalared,ylasegunda representaalnodoenella. Lalongituddecadaunadelaspartesnoesfijasinoque dependedeladireccin.AtendiendoaestadiferencialasdireccionesIPseclasificanen cincoclases.Tambinhayquehacerconstarquedentrodelnmerodenodo,haydos especiales,elquetienetodoslosbitsa0querepresentaalaredyelquetienetodoslos bitsa1querepresentaatodoslosnodos. VeamosunejemplodedireccinIPenlosdosformatos,numricoybinario: 115.8.3.45==01110011000010000000001100101101 Aunque las direcciones en formas de secuencia de bit son perfectamente entendidas por las mquinas, y su traslacin numrica nos las hacen fcilmente manejablesparanosotros,sondifcilesderecordar;ademsdequesilamaquinase muevedered,sudireccinvara.Seramsfcilparanosotrosreferirnosaellaporun nombre, yquenuestroordenador averiguase ladireccin. Estoes loque haceel servicio de traduccin de nombre, servicio implementado en la Internet como un serviciodedirectoriodistribuidoyjerarquizadoenelqueestnregistradoslosnombres ydireccionesdemquinasdeformaqueapartirdeunopodemosencontrarelotro.Esta traduccinserealizadeformaautomticaporlamayoradelosprogramasclientesde servicios que usamos en INTERNET, aunque existen herramientas especficas para interrogaralserviciodeDNSqueveremosalhablardeformamsextensadelmismo. Comohemosdichoexisten5clasesdedireccionesquesecaracterizanporel valordelosbitsmssignificativosdelapartedeladireccinquecorrespondealared: DireccionesdeclaseA.Secaracterizanportenera0elprimer bit del campo de red que tiene una longitud de 8 bit, correspondiendo los otros 24 a la direccin del nodo. Las direcciones correspondientes van de la 0.0.0.0 a la 127.255.255.255porloquehay128redesdeclaseAqueyaestn todasasignadasenINTERNET.Lared10estareservadapara crearredesocultasdentrodelasorganizaciones,redesquenoson visiblesparaelrestodelaINTERNET.
Pgina3de30,alas1:25del18/09/aa
ElprotocoloIP
Direcciones de clase B. Se caracterizan por tener los dos primerosbitdelcampoderedconlasecuencia10ylalongitud delmismoesde16bitaligualqueladelcampodenodo.Las direcciones correspondientes van de la 128.0.0.0 a la 191.255.255.255. Lagranmayoradeestas16.384redesestn yaasignadasporloqueesdifcilconseguiruna.Dentrodeeste rango,desdela172.16.0.0ala172.31.0.0estnreservadasparala construccinderedesocultas.
128.0>191.255 Partedered 10XXXXXXXXXXXXXX Partedenodo XXXXXXXXXXXXXXXX
DireccionesdeclaseC.Secaracterizanporteneruncampode redde24bitdelongitudquecomienzapor110correspondiendo 8bitaladireccindelnodo.Lasdireccionescorrespondientes van de la 192.0.0.0 a la 223.255.255.255 de las que de la 192.168.0.0 a la 192.168.255.0 estn reservadas para redes ocultas.PortantodeclaseCexisten2.097.152redes.
192.0>223.255 Partedered 110XXXXXXXXXXXXXXXXXXXXX Partedenodo XXXXXXXX
Direcciones de clase D. Se caracterizan porque su direccin comienza con la secuencia de bit 1110 y corresponden a las direcciones desde la 224.0.0.0 a la 239.255.255.255. Estas direcciones reciben el nombre de multicast y en ellas desaparecenelconceptodered.Cadaunanodesignaaunnodo sinoaungrupodenodo. Unpaquetedirigidoaunadireccin multicastenentregadoatodaslasmquinasquecomponenel grupo. DireccionesdeclaseE. Secaracterizanporquesudireccin comienza con la secuencia 1111 y van de la 240.0.0.0 a la 255.255.255.255. Sondireccionesespeciales,reservadaporla
Pgina4de30,alas1:25del18/09/aa
ElprotocoloIP
IANAysoloestasignadala255.255.255.255quecorrespondea todaslasmquinasconectadaaunsoportefsico. DeloindicadoanteriormentesepodradeducirqueunadireccinIPidentificaa una mquina lo que no es verdad siempre. Si tenemos un encaminador que est conectado a dos redes, cada una de las puertas tiene una direccin IP distinta y pertenecienteacadaunadelasredes.AquladireccinIPidentificaalapuertadel nodoenlared.PortantopuedenexistirnodosconmuchasdireccionesIP. Dentro de las direcciones posibles existen algunas que son consideradas especialesyquesignificanalgodistintodeladireccindeunnodo: Direccincontodoslosbita0queidentificaalpropionodoyque slopuedeusarseenelarranquedelsistema. Direccincontodoslosbitdereda0queidentificaalnodoenla propiaredyqueslopuedeusarsetambinenelarranquedel sistema. Direccin con todos los bit a 1, conocida como direccin de difusinderedlocal,yquepermiteenviarunmensajeatodoslos nodosdeunaredlocal,estnonoenlamismaredIP. Direccin con todos los bit del campo de nodo a 1, llamada direccindemultidifusinlimitadaalapropiaredIP,quepermite enviarunsolopaqueteatodoslosnodosdelaredIPdelnodo emisor. Direccin 127.x.x.x, llamada de bucle local, utilizada para pruebas y comunicacin entre procesos en la mquina local. Cualquier paquete enviado a esta direccin ser entregada al propionodoporelmduloipsinenviarnadaalared.
ElmtododedireccionamientodeInternetasignaacadaredfsicaunaredIPde algunadelasclasesanteriores.Estetipodeasignacintienedosproblemas:elprimero ocasionadoporelcrecimientoespectaculardeInternetqueda lugar aquenohaya suficientesnmeroderedesparaasignar.Porotrolado,siaunareddeslocinco equipos le asignamos una red de clase C completa estamos desperdiciando 250 direcciones. Pararesolverestosdosproblemasseutilizanlassubredes.Lassubredesnacen demodificarconceptualmenteelformatodeladireccinipquepasadeser<direccin dered><direccindelnodo>aser<direccindered><direccindesubred><direccin denodo>dondeelcamposubredseobtienetomandounapartedeladireccindelnodo. Estadivisin,enlaquesealteraslolapartelocaldeladireccinpermiteestablecerun direccionamientojerrquico,permitiendolagranflexibilidaddeestemtodoquecada
Pgina5de30,alas1:25del18/09/aa
ElprotocoloIP
redfsicapuedaescogersupropiasubred,quedeberserlamismaparatodoslosnodos conectados.Veamosunejemplodecmoserealizaestadivisin: Consideremosunencaminadorconcuatropuertasacadaunadelascualesest conectadalasubred3.1.0.0,3.2.0.0,3.3.0.0,3.4.0.0.SiconsideramoslareddeclaseA 3.0.0.0 la direccin 3.1.0.1 tendra como parte de red [00000011] y de nodo [000000010000000000000001].Encambiosiconsideramoslamismadireccincomo partedelasubred3.1.0.0lapartederedesahora[0000001100000001]yladenodoes [0000000000000001].Demaneraanlogafuncionaparalasotrassubredes. Enelejemploanteriorhemosvistoqueladivisinensubredessehacetomando elprimerbytedelapartededireccindenodocomodireccindesubred,peroestono esnecesariohacerlosiempreas:podemosdividirendostrozoscualesquieraelcampo dedireccindenodo.Hemosdetenerencuentaquedecadaunadelassubredesque seobtienenperdemosdosdirecciones,lasquetienenodoslosbitaceroqueidentificaa lasubred,ylaquetienetodoslosbita1. Las posibilidades de particin explicada anteriormente hacen necesario un mtodoparaquelosalgoritmosdeencaminamientopuedandistinguirlasdospartesde ladireccin.Estemecanismo,llamadomscara,esuncampode32bitqueseaadaa ladireccinIPquesiempreestformadoporungrupodebita1queidentificalaparte dereddeladireccinIPyotrogrupodebita0querepresentalapartedenododela direccinIP.Enelejemploanteriorlasmscarasparalared3.0.0.0consideradacomo unareddeclaseAes11111111000000000000000000000000 mientrasquesila consideramos dividida en subredes la mscara es 11111111 11111111 00000000 00000000. Estarepresentacinbinariadelasmscarasesincmodaporloquesesuele emplear una notacin decimal semejante a la de las direcciones IP. As las dos mscarasanterioresseranahora255.0.0.0y255.255.0.0quesecorrespondenconlas mscaras genricas para redes de clase A y B respectivamente. La mscara correspondientearedesdeclaseCes255.255.255.0. Latabladeequivalencia entre notacinbinariaydecimaldemscaras es la siguiente:
00000000 10000000 11000000 11100000 11110000 11111000 11111100 11111110 11111111 0 128 192 224 240 248 252 254 255
Pgina6de30,alas1:25del18/09/aa
ElprotocoloIP
Unaherramientamuycmodaparacalcularsubredesydatosrelativosaellas, como direccinde red, direccin de difusin, nmero de nodos, direccines de los nodos,etc.eselprogramaparaWindowsIPsubnetCalculatorqueseincluyeeneste cdrom. Modelodeniveles.LapilaIP.EquivalenciaconlapilaOSI. El conjunto de protocolos TCP/IP funciona con una estructura de niveles, apoyndoseunosenotros,delamismaformaenquelohacenlosdistintosnivelesdel modeloOSI.SinembargoenelcasodeTCP/IPlosnivelesqueexistensonslotres,y encadaunodeellospuedeexistirmsdeunprotocolo. La siguiente tabla nos da una idea de la organizacin de la pila IP y su comparacinconlapilaOSI.
Aplicacin Presentacin Sesin Transporte Red Enlace Fsico SNMP,FTP,SMTP,TELNET,DNS,HTTP,NTP
TCP,UDP,ICMP,BOOTP IP,ARP,RARP
Tenemos que tener en cuenta que debido a las condiciones puestas en su desarrolloconrespectoalmododetransmisinquenotienenivelfsiconideenlacede datosapoyndoseenlosestndaresexistentesparalasdiferentestecnologas. UnavisinmsclaradelajerarquadefuncionesdelosprotocolosTCP/IPse venenelsiguientediagrama:
Pgina7de30,alas1:25del18/09/aa
ElprotocoloIP
Vamosaestudiarahoralosdistintosprotocolosexistentesporcapassibien,en el caso de los protocolos que se pueden consideran pertenecientes a la capa de aplicacin,slohablaremosdeaquellosquenosetratanenotrapartedeestecurso.
Niveldered.
ProtocoloIP. DentrodelnivelderedelprotocolobsicoeselIP(InternetProtocol),queesun protocolodecomunicacinsinconexin,queproporcionaunserviciodedatagramas. IPseocupadelatransmisindelosdatagramasenfuncindelasdirecciondedestino quevaincorporadaenlacabeceradelmismo. Dos son las funciones bsicas que implementa el protocolo IP: el direccionamientoylafragmentacin. Medianteeldireccionamiento,elprotocoloIPsabeencontraruncaminoparael datagramaafindequellegueasudestino.Paraelloestimplementadonosloenlos nodosfinales,sinotambinenlosencaminadoresqueadicionalmenteestnprovistode mecanismosparatomardecisiones sobreelenrutamientodelosdatagramas. Para conseguir este encaminamiento el IP debe encapsular los datos entregados por el protocolodenivelsuperiorponindoleunacabecerapropiaenlaquelosdatosms importantessonlasdireccionesdeorigenydestino;elprotocoloencapsulado,necesario parasaberaquienentregarelpaqueteenlamquinadedestino,yaquecadaprotocolo denivelsuperiorgeneraeinterpretasupropioformatodecabeceraylosdatagramasno sonintercambiables,siendotambinfuncindeestosprotocoloselreordenamientoyla verificacin de perdidas de datagramas que pueden ocurrir ya que Ip maneja la congestinconeldescartededatagramas;yelcdigodeverificacindelcontenidode lacabecera(Checksum)yslodelacabeceraporqueesmseficazqueelprotocolode nivelsuperiorgenereyverifiqueelcdigocorrectordelosdatos,yaquedeestaforma el trfico de los datagramas en la red es mucho ms gil porque el cdigo de verificacindeIphayquerecalcularloenelpasoporcadaencaminador. Lasegundafuncin,lafragmentacindelosdatagramasesnecesariayaque comolospaquetespuedencircularporredesdistinta,condistintostamaosmximosde paquete(MTU,MaximunTransmissionUnit),puedesernecesariosutroceadoenotros mspequeos. LaestructurageneraldeunadatagramaIpeslasiguientedondecadaunadelas filasrepresentaunapalabrade32bit:
Vers HeaderLength Identification Timetolive Protocol SourceIPaddress Pgina8de30,alas1:25del18/09/aa TypeofService Flags TotalLength Frangmentoffset Headerchecksum
ElprotocoloIP
Veamosahoraladescripcindecadaunodeloscampos:
Vers(Versin).Estecampotienecuatrobitdelongitudeindicalaversin delprotocolo,habitualmentetieneelvalorde4quecorrespondeaIPversin 4. HeaderLength(Longituddelacabecera).Estecampo,tambindecuatro bitdelongitudindicaeltamaodelacabeceramedidoenpalabrasde32bit, pudiendo tener un valor mnimo de 5 que corresponde a una cabecera correcta sin el campo opciones (que puede no estar presente) con una longitudde160bit,siendo64octetoslalongitudmximaquepuedetener. TypeofService(Tipodeservicio).Campode8bitdelongitudqueindica como debe ser tratado el datagrama. Est estructurado de la siguiente manera:
Prioridad D T R
Elcampoprioridad,de3bit,cuyovaloroscilaentre0(prioridadnormal)y7 (controldered)permitealnodoremitenteindicarlaimportanciadelpaquete. Aunque la verdad es que la mayora de los programas y de los encaminadoresnohacenancasodelvalordeestecampo,conceptualmente es importante al permitir priorizar los paquetes segn su contenido: por ejemplo las rdenes de control antes que los datos. Adems permite tambinimplementaralgoritmosdecontroldecongestinquenosevean afectadosporlamismacongestin. Los siguientes tres bit indican la calidad del transporte solicitado por el datagrama:elprimero,D,indicaunretardobajo(lowdelay),elsegundo,T, unaaltatasedepaquetesporsegundo(Througput)yeltercero,R,solicita unaaltafiabilidad,quenosedescartenpaquetes(Reliability). Estosbit constituyen una ayuda al encaminamiento cuando existen caminos alternativos.
Pgina9de30,alas1:25del18/09/aa
ElprotocoloIP
Flags(Marcador,semforo,bandera).Estecampodetresbitdeloscualesel primero debe ser 0 ofrece informacin sobre la fragmentacin del datagrama.Aselsegundobitdelcampo(DF)indicasieldatagramapuede fragmentarse,valor0,ono,valor1.Eltercerbit(MF)indicasielactuales elltimotrozodeundatagrama,valor0,osihayms,valor1. Fragmentoffset(Situacindelfragmento).Estecampotienetrecebitde longitudeindicaelnmerodeoctetosacontardesdeelcomienzodelcampo dedatosdeldatagramaoriginalhastaelpuntodondequehayquecolocarel campodedatosdelfragmentoenqueseencuentra. Elvalordelcampo vienedadoenmltiplosde8octetos. Timetolive (TTL,tiempodevida). Losochobitdelcampoindicanen segundoscuantotiempoestautorizadoeldatagramaacircularporlared,y suutilidadesevitarquelosdatagramasestneternamentecirculandoporla redsilastablasderutasnoestncorrectasysigueuncaminoencrculos. El procedimiento que se sigue para esto es: cuando un nodo pone un datagramaenlared,leasignauntiempomximodevida,ycadanodoque proceseeldatagramadebedecrementaresevalorhastaquesea0,momento enelquedeberserretiradodelared. Estadecrementacinserealiza restando1alcampoalpasarporunencaminadorobienalmacenandolahora local de llegada al encaminador y comparndola con la del momento de envo restndole del campo la diferencia en segundos entre las horas anteriores. Protocol (Protocolo).Campodeochobitqueindicaqueprotocolodealto nivelhacreadoelcontenidodelcampodatos.Laasignacindelosvalores alosprotocolossehaceporlaIANAyalgunosvaloresexistentesson:1para ICMP,6paraTCP,17paraUDP. HeaderChecksum(Cdigoverificadordelacabecera).Campode16bit querepresentaunvalorcalculadoporelnodoorigenapartirdelcontenido delacabecerayqueserrecalculadonuevamenteporelnodoreceptorpara verificarquelacabeceraseharecibidocorrectamente. SourceIPAddress(Direccindeorigen).Campode32bitqueindicala direccinIpdelnodoemisordeldatagrama. Destination IP Address (Direccin de destino). Campo de 32 bit que indicaladireccinIpdelnodoaquienvadirigidoeldatagrama.
Pgina10de30,alas1:25del18/09/aa
ElprotocoloIP
IPoptions(OpcionesdeIP).Campodelongitudvariableyopcionaldentro delacabeceradeldatagrama.Tieneunaestructuravariable,yaquedentro delpuedenirvariasopciones,cuyaestructuratambinesvariable.Debe terminarconelcampofindeopcinqueesunoctetocontodossusbita cero. Como hemos dicho la estructura de cada una de las opciones es variableperotodastienenunprimeroctetollamadocdigodeopcincuya estructuraeslasiguiente: Elprimerbitdelcampoeselllamadobitdecopiaycuandoesta1 indicaquelaopcindebesercopiadaencadaunodelostrozosenquese puededividireldatagrama.Siesta0debersercopiadasloenelprimer trozo. Los siguientes dos bit constituye la llamada clase de opcin que puedeser00paraindicar datagrama ocontrol dered,o10paraindicar medidaycontroldeerroresestandoansindefinirlosvalores01y11. Los siguientes cinco bit forman el campo nmero de opcin e identificalaopcinrequerida. Entrelasposiblesopcionesquesepuedenincluirestn:
-
Sinopcin.Clase0,nmero1.Delongitudunoctetoysuele usarseentreotrasopcionesparaalineamientos.Debesercopiada encasodefragmentacin. Seguridadyrestriccionesdeacceso. Clase0,nmero2. De once octetos de longitud, est dividida en varios campos, que incluyenniveldeseguridad,restriccionesdeacceso,etc.. Opcinderegistrodelaruta.Clase0,nmero7.Delongitud variable,seutilizaparacrearunatabladelosencaminadorespor losquepasaelpaquete.Laestructuradelaopcines: dondeelcampodelongitudindicalalongitudtotaldelaopcin,y el campo puntero indica la situacin del primer campo de direccinlibre. Encadacampodireccinseanotacadaunodelasdirecciones delosencaminadoresporlosquepaseeldatagrama,listaqueser entregadaalnododestinoporsiprocedeanalizarla.Sielespacio reservadoalasdireccionesnoessuficientenoseanotarnlas direcciones de los ltimos encaminadores por donde pas el datagrama.
Cdigo Longitud Puntero Direccin1 ltimadireccin
Pgina11de30,alas1:25del18/09/aa
ElprotocoloIP
Opcindeencaminamientoprefijado.Clase0,nmero9.De longitudvariablepermiteprefijaruncaminoparaeldatagramaen la red. Si el encaminamiento es estricto, el datagrama debe seguirexactamentelarutaprefijadaenvindoseunmensajede error al nodo origen si no es posible, mientras que en el encaminamiento aproximado se permite pasar por varios encaminadoresentrelosindicadosendoselementosconsecutivos delalistadedireccionesentregadas. Opcinderegistrodetiempos.Clase2,nmero4.Funciona de manera similar a la de registro de ruta aadiendo a cada registrodedireccin,lafechayhora(universal)expresadaen milisegundos a partir de la media noche. Si no es posible obtener la hora indicada anteriormente se usa la hora local, marcandoconun1elbitmssignificativodelcampo. Findeopciones.Clase0,nmero0.Indicadaanteriormente.
Porltimoserellenaelrestodelacabeceraconbitacerohastaquesulongitud medidaenbitllegueaunmltiplode32. Elproblemadelafragmentacin. Hemosdichoantesquecadatecnologaderedsoportauntamaomximopara lastramasqueaproximadamenteesde1500octetosparaethernet,4500paraFDDIy 8000paraFrameRelay. Cuandoundatagramaiprecorreelcaminoentreelnodo emisoryelreceptoreshabitualquepasepordiferentesredesconMTUdiferentesy normalmentemenorqueeltamaodeldatagrama.Paraquepuedapasaratravsde ellaesprecisofragmentareldatagramaentantostrozoscomoseanecesario,siempreen trozoscuyalongitudenoctetosseamltiplodeocho(longitudenbitmltiplode64), rellenandoconbitaceroelltimofragmentosiespreciso.Todoslostrozosllevanuna cabeceraqueesprcticamentecopiadeladeldatagramaoriginal,aexcepcindelbit MFdelcampoflagqueser1entodoslostrozosmenosenelltimo,ydelcampo offsetfragmentquecontieneladireccindelocteto,dadoenmltiplosde8,apartir del cual deben ponerse los datos que vienen en este trozo en el rea de datos del datagramaoriginal. Hayquesignificarqueesteprocedimientodefragmentacinnoocurreunasola vez en el momento de enviar el datagrama desde el nodo origen, sino que puede reiterarsecadavezquepaseporunnuevoencaminador,ascomoquealsertratado cadanuevofragmentocomoundatagramaindependienteypodercadaunollegarasu destinoporuncaminodiferente,losnivelesdefragmentacinpuedenserdistintos,es decir,quealfinalalnodoreceptorpuedellegareldatagramaoriginalenmuchostrozos ydediversostamaos.Paraqueesteprocesofuncionebien,losencaminadoresdeben
Pgina12de30,alas1:25del18/09/aa
ElprotocoloIP
sercapacesdecalcularlosvaloresdelcampooffsetfragmentdelosnuevostrozos teniendoencuentaelvalordelmismocampoeneltrozooriginal. Ladescripcinexactadelospasosdelafragmentacines: 1. SecompruebaelflagDFparaversiesposiblefragmentarlo.Sinoesasse descartaeldatagrama. 2. Losdatossondistribuidosenlostrozosnecesarios,siempreconlongituden octetosmltiplode8yrellenadoelltimotrozosiespreciso. 3. Seleaadeunacabeceraacadatrozo,copiadeladeldatagramaoriginal salvoelflagMFqueseponea1salvoenelltimofragmento,elcampo offsetfragmentquesecalculaparacadatrozo,ysegneltipodeopciones queaparezcaneneldatagramaoriginal,secopiaranonoalostrozosypor ltimoserecalculaelcdigodeverificacindecadacabecera. 4. Setransmitencadaunodelostrozoscomodatagramasipindependientes. Tenemos ahora el problema subsiguiente para el nodo receptor: como recomponercorrectamenteeldatagramaoriginalapartirdelostrozos.Enprimerlugar tenemosquetenerencuentaquenotodoslostrozosvanallegarjuntosyenordenpor loqueloprimeroqueesnecesariofijareseltiempoquevamosaestaresperandosinos falta algn trozo. Este tiempo mximo de espera, llamado tiempo de ensamble (Reassemblytime)esdeterminadoporeladministradordelaredyempiezaacontaren elmomentoenqueelnodoreceptorrecibeelprimertrozoysitranscurresinhaber recibido la totalidad de los trozos el datagrama completo se descarta, de la misma maneraqueserecibealgntrozocorrupto. Unasegundacosaatenerencuentaesqueelnodoreceptornosabelalongitud realdeldatagramahastaquenoserecibeeltrozoquellevaelflagMFa0,calculando aquelvalorapartirdelvalordelcampooffsetfragmentyelvalordelcampolongitud deltrozoltimoconlasiguientefrmula: (offsetx8)+longitud=longitudtotaldeldatagramaenoctetos Parareensamblarlaporcindedatosdeldatagramaoriginal,elnodoreceptor cuandorecibeelprimertrozopreparaunbuffercolocandoestetrozoenlaposicin indicadaporelcampooffsetdelmismoyassucesivamente. Unavezreconstruidoeldatagrama,elmduloIppasalosdatosalprotocolode nivelsuperiorcorrespondiente.
ProtocolosAuxiliares. Cuando hemos estudiado anteriormente el protocolo IP hemos visto que en determinadoocasionesserealizabaelenvodemensajesalnodoemisorparaindicar
Pgina13de30,alas1:25del18/09/aa
ElprotocoloIP
unaincidencia. Estatarea,ademsdealgunaotra, esrealizadaporelmdulode protocoloICMP. Porotraparte,cuandotransmiteunatramasobreunared,elmdulofsicono puededirigirlaaladireccinipdedestino,sinoaunadireccinfsicadelaredenque seencuentre.Noshacefalteportantounaherramientaquerelacionelasdirecciones fsicasenlareddeunnodoconsudireccinip.Estaherramientaestconstituidapor losmdulosdeprotocolosARPyRARP. ProtocoloICMP. Como hemos dicho el protocolo IP no tiene ningn mecanismo para enviar mensajesdeerroresenlastransmisionesdedatos. Losrecursosparaestatarealos pone el Protocolo para Mensajes de Control de Internet (ICMP Internet Control Message Protocol), que se utiliza para informar de errores en el proceso de los datagramas y proporciona los recursos necesarios para el trfico de mensajes administrativosydeestado,siendousadotambincomoherramientadediagnstico. ElprotocoloICMP,cuyonmeroasignadoesel1,utilizaIPdirectamenteydebe estarimplementadocomounsubconjuntodelpropioprotocoloIPennodosfinalesy encaminadoresysusmensajessongeneradoyprocesadosporelpropioTCP/IPyno porlasaplicacionesdeusuarios. AntesdeempezaraverendetallelastramasdeICMPdebemoshacernotarque: ICMP es un usuario de IP. Los paquete ICMP van encapsulados en datagramasdeIPyasuvezIPdebeusarICMP. ICMPinformadeerroresenlosdatagramasdeIPperonodeerroresenlos paquetesICMP. SiIP usadatagramas fragmentados,ICMP informasolodeerrores enel primertrozorecibido. ICMPpermiteenviarinformacindecontrolsobrelared. Los mensajes de error son enviados al nodo emisor del datagrama y no indicanqueencaminadorcauselproblema.
Tipo(8bit) Cdigo(8bit) Cdigodeverificacin(16bit)
VeamosahoracualeslaestructuradeunpaqueteICMP:
Parmetros(32bit) Informacin(variable)
Pgina14de30,alas1:25del18/09/aa
ElprotocoloIP
Losposiblesvaloresdelcampotiposon: 0 3 4 5 8 11 12 13 14 15 16 17 18 Respuestadepeticindeeco Destinoinalcanzable Controldeflujo Redireccin Peticindeeco Tiempoexcedido Parmetrosininteligibles Peticinderegistrodetiempo Respuestaderegistrodetiempo Peticindeinformacin Respuestainformativa Peticindemscaradedireccin Respuestaconmscaradedireccin
Vamosaverdeunaformamsampliaalgunasdeellas. Peticindeecoyrespuesta.Esunaherramientaqueseusaparadeterminarel estadodelared. SepuedeenviarunapeticindeecoacualquierdireccinIPyla llegadadelarespuestaimplicarqueelnodoquecontestaestactivoyaccesibleenla red.AniveldeusuarioesteservicioseconocecomoPING,nombredelaordenque hay que dar para usarlo en mquinas unix, dos y otros, y de las opciones correspondientesdelasutilidadesCyberkityNetlabparamquinasWindows. ElformatodelautilidadPingenunamquinaUnixeselsiguiente: pingqvccountiwaitpesquemastamaodireccion donde: q indicaquenodsalidasintermediasysloelresumenfinal. vindicaquenosdinformacinaccesoria. ccountindicaelnmerodepaquetesaenviar. iwaitindicaeltiempoquedebetranscurrirentreelenvodedospaquetes consecutivos. pesquemaindicaquecaracteresdebencomponerelpaquete stamaoindicaeltamaodepaquete direccinindicaelnombreodireccindelnodoalqueseenvalapeticinde eco.
Pgina15de30,alas1:25del18/09/aa
ElprotocoloIP
Alfinalpingnosdaunaestadsticadeusoquetienelaformasiguiente:
nombredelnodo nmerodepaquetestransmitidos,nmerodepaquetesrecibidos,porcentajedepaquetesperdidos. Roundtripmin/avg/max=tiempomnimoderespuesta/tiempomedioderespuesta/tiempomximoderespuestams.
Redireccin.Servicioutilizadoporlosencaminadoresparaenviarinformacin derutasaotrosencaminadoresonodosterminales.Esenviadoporunencaminadoral emisordeundatagramaquelehallegadocuandoexisteunarutamejor. Elcampo parmetrosllevaladireccindelencaminadorrecomendadoyelcampoinformacinla identificacin del datagrama recibido, indicando el campo cdigo que tipo de redireccinserecomienda: 0 1 2 3 redireccionardatagramasparaunared redireccionardatagramasparaunnodo redireccionardatagramasparauntipodeservicioyred redireccionardatagramasparauntipodeservicioynodo
Pgina16de30,alas1:25del18/09/aa
ElprotocoloIP
12
Nodonoalcanzableparaeltipodeservicio
Controldeflujo.Seenvaporpartedelosencaminadoresonodosreceptores al nodo emisor cuando los datagramas se reciben ms rpidamente que pueden ser procesadosysedescartan.Elcampoinformacinllevalacabeceraylosprimeros64 bitdeldatagramadescartado. Tiempoexcedido.Seenvaestemensajecuandoexpireltiempodevidade undatagrama,cdigo0,ocuandoexpiraeltiempodeemsambledefragmentos,cdigo 1. Elcampodeinformacinllevalacabeceraylosprimeros64bitdeldatagrama descartado. Parmetrosininteligibles. Enviadoporelnodoreceptoraunencaminador cuandonopuedeprocesarlacabeceradeldatagrama.Enelcampoparmetroseenva unpunteroalbytequeocasionelproblemaenelprocesoyenelcampoinformacinla cabeceradeldatagramadescartadoysuprimeros64bit. Registrodetiempos.Seusaporlosencaminadoresparestimarlostiemposde trnsitodelosdatagramasatravsdeunared.Laestructuradelpaquetees:
Tipo(8bit) Cdigo(8bit) Cdigodeverificacin(16bit) NmerodeSecuencia(16bit) Identificacin(16bit)
Dondeloscamposdetiemposestnenmilisegundostranscurridosapartirdel tiempoGMT. Losvaloresdeloscamposidentificacinynmerodesecuenciason empleadosporelnodoemisorparaasociarpeticionesconrespuestas.Elcampotiempo deenvoesrellenadoporelnodoemisorjustoantesdeenviareldatagrama,elcampo tiempoderecepcinesrellenadoporelnodoreceptornadamsrecibirelpaqueteyel campotiempodereenvorellenadoporelnodoreceptorenelmomentodedevolverel datagrama. Peticindeinformacinyrespuesta.Permiteaunnodoindentificarlareda laqueestunido.Elnodoenvaalaredundatagramaconloscamposdedireccin fuenteydestinovacosyunservidorautorizadoledevuelveeldatagramaconambos camposrellenos. Peticindemscaraderedyrespuesta.Usadoporunnodoparaobtenerla mscaradesubredempleadaenlaredalaqueseestconectado,peticinquepuedeser enviadadirectamenteaunencaminadorobienmedianteundatagramadedifusin.
Pgina17de30,alas1:25del18/09/aa
ElprotocoloIP
ProtocoloARP Cuandounnodoestconectadoaunaredtieneunadireccinfsicaalaque debendirigirsetodaslastramasderedquedebarecibirestenodo.Portantocuandoun datagramadebeserenviadoaunadireccinip,debeserencapsuladoentramasdered conladireccinfsicadedestino.ElmduloARPesquienrealizaestatraduccinde direccionesyparaellotieneunastablasdondeseguardanasociadaslasdireccionesipy fsicas. Enestatabla,paracadadireccinIPsemantieneloscuatrocampossiguientes: ifIndexquecontienelapuertafsicaparaelinterfazpordondeseaccedea estadireccin. Physicaladdressquecontieneladireccinfsicaenlared. IpaddressquecontieneladireccinIpcorrespondiente. Mappingtypequepuedetenerunodelossiguientesvalores: 1=otro 2=invlido 3=dinmico 4=esttico
Cuandoesprecisoenviarundatagramaaunadireccinip,primerosebuscaen latablaanterior.Sinoest,elmduloARPenvaunmensajededifusinatodalared (cuya estructura depende del tipos de red), llamado peticin ARP, que contiene la direccinipalaquehayqueenviareldatagrama.Siunadelasmquinasreconocela direccinIPenelpaquetecomosuyadevuelveunarespuestaARPconsudireccin fsica al nodo emisor, que anotar esta direccin en la tabla de cache ARP y seguidamenteenviarlosdatagramas. ProtocoloRARP El protocolo RARP (Reverse Address Resolution Protocol) trabaja como su nombreindicadeformainversaalprotocoloARPyesutilizadoporlasestacionesque noconocensupropiadireccinIPparasolicitarinformacindeservidordeinformacin RARP. Laestructuradelpaquete,aligualqueenprotocoloARP,dependedeltipode redempleadoysufuncionamientoessimilar:elnodoemiteunpaquetededifusin (broadcast) en la red que es interceptado por el servidor RARP y posteriormente devueltoconlainformacinsolicitada. Estemododeactuacines adecuadocuandolos nodosdelarednopueden mantenerinformacinfiabledeconfiguracin,bienporimposibilidadfsica(mquinas diskless)oporfaltadefiabilidaddelpropietariodelnodo.
Pgina18de30,alas1:25del18/09/aa
ElprotocoloIP
Niveldetransporte.
Conceptodepuerto LosprotocolosdeInternetpermitenqueenunordenadormuchosprocesosde usuariosecomuniquenconelexteriorsimultneamente.Necesitamosunmtodopara identificar el proceso que debe recibir los datos que nos llegan por el canal de comunicacin.Paraello,lasinterfacesdelasaplicacionesdeusuarioconelprotocolo detransporteseidentificanasmismosconunnmero(enterode16bit)queesloque seconocecomopuerto. Portantopodemosdefinirunpuertocomounidentificador quepermitealosprotocolosentrenodosidentificaralosprotocolosdealtoniveldelos queserecibenyalosqueseentreganlosmensajes. CmoseidentificaentoncescadaprocesoanteTCP/IP?Porladireccinipdel nodo y elnmerodepuertopor elquesecomunicaconTCP/IP. Estaparejade nmeros constituyen asociados un identificador llamado socket. Por tanto, una conexin en TCP/IP est definida entre dos socket, pudiendo cada uno estos estar compartidospormsdeunaconexin. Otracaractersticaatenerencuentadelos puertos es que se usan asociados a un determinado protocolo de transporte (TCP, UDP),porloqueelmismoidentificadorsepuedereferiradistintoprocesodeusuario segneltransporteutilizado. Cuandounclientequiereaccederaunrecursodeunservidordebeconocerno sloladireccinipdelnodo,sinotambinelpuertoasociadoalrecurso.Parahacer conocida esta informacin, determinado puertos con identificador menor de 255 (valoresqueestnreservadosparaserviciosmientrasqueelrestosondeusolibre)han sidoasociadosarecursospredeterminadosdelosquelosmshabitualesson:
20 21 23 25 53 69 79 80 110 139
FTPDATA FTP TELNET SMTP DOMAIN TFTP FINGER HTTP POP3 NETBIOSSS
TransferenciasdedatosenFTP ControlenFTP Serviciodeterminalremoto EstafetadecorreoSMTP ServiciosdelDNS Transferenciasdeficheros Serviciodeconsultadeusuarios ServiciosdeWWW Serviciodebuzonesdecorreo ServiciodesessiondeNETBIOS(WINDOWS)
Pgina19de30,alas1:25del18/09/aa
ElprotocoloIP
ProtocoloUDP No est claro si UDP (User Datagram Protocol) debe ser visto como un protocolodetransportenoorientadoalaconexinosimplementecomounainterfazde usuario al protocolo IP. No le aada a ste ms fiabilidad ni control de flujo ni recuperacindeerroresyslosirveparamantenerinformacinsobrelossocketusados enlaconexin,porloquepodraparecerqueesunprotocoloorientadoalamismapero noincluyeningunadelasposibilidadesdestosyslousaelconceptodepuertopara redirigirlosdatagramasalaaplicacinadecuada,usndoseporaquellosprocesosde usuarioquenonecesitanlosrecursosmsampliosdeTCP,comoTFTP,SNMP,etc. LaestructuradelpaqueteUDPeslasiguiente:
SourcePort(16bit) DestinationPort(16bit) Length(16bit) Checksum(16bit) Datos(variable)
Veamosahoraladescripcindeloscampos:
Sourceport(Puertodeorigen). Identificaporquepuertohaenviadola aplicacinemisoraelpaqueteytieneelvalor0sinoseusa. Destinationport(Puertodedestino). Identificaelproceso(puerto)que recibirlainformacinenelnododedestino. Length (Longitud). De valor mnimo 8, indica la longitud total del paquete. Checksum(Cdigodevierificacin).Utilizadoparaverificarelcontenido delpaquete.
ProtocoloTCP. CuandohablamosdeIPyUDPvimosqueestosprotocolosnoproporcionaban serviciosorientadosalaconexin,conlafaltaderecursosqueelloimplica.Paradar esteservicioorientadoalaconexin,requeridopormuchosprocesosdeusuario,seusa elprotocoloTCP(TransmissionControlProtocol). TCPesunprotocoloorientadoalaconexinqueproporcionafiabilidad,control deflujoyrecuperacindeerrores;protocolopuntoapuntoquesuministraunaconexin lgicaentreparesdeprocesos,identificadoscadaunodeellosporunsocket,utilizando losnmerosdepuertosdestoscomocomunicacinconlosprocesosdenivelsuperior. TCPtienesimilitudesalniveldetransportedeOSIymuchasdesuspropiedades hansidoincluidasenlaclase4dedichotransporte.Aunquehabitualmenteseusacon IP,TCPpodraoperarconotrosprotocolos. Qu caractersticas tiene TCP? En primer lugar, al estar orientado a la conexin,esresponsableantelosprocesosdeusuariosdelflujodeinformacinentre los dos puntos a travs de la red, haciendo aparecer esta tarea ante ellos como si transmitieranlosdatoscarcteracarcter(streamoriented),enelmismoordenenque
Pgina20de30,alas1:25del18/09/aa
ElprotocoloIP
fueron enviados aunque, en su funcionamiento interior, deba agrupar los datos en segmentosordenadosparasutransmisinsobreIP.Cuandoelmduloreceptorrecibe un paquete, comprueba que no ha recibido datos daados y enva un mensaje de confirmacin positiva (ACK) al emisor y en caso contrario descarta el segmento e informaalmduloTCPemisorparasuretransmisin. Tambindebedescartarlos posiblesdatosduplicadosquepuedarecibiryrealizarlareordenacindelossegmentos quepuederecibirdesordenados. TCPdeberealizartambinelcontroldeflujo.Paraelloelmduloreceptorva informandoalmduloemisordelacantidaddeoctetosquepuederecibirsinproblemas encadalapsodetiempo,medianteunmecanismollamadoventadadeslizante(Window sliding)queveremoscondetallemsadelante. A fin de utilizar ms eficientemente los recursos disponibles TCP ofrece la posibilidad de multiplexacin entre distintos procesos de usuario, transmisin simultneaenlosdossentidos(fullduplex)ylaposibilidaddeespecificarnivelesde seguridad y prioridad para las comunicaciones, as como un mecanismo llamado graceful close que asegura que la conexin no se cierra hasta no haber recibido confirmacindelarecepcindetodoslosdatosenviados. VeamosahoracualeslaestructuradelsegmentoTCP. SourcePort(16bit) DestinationPort(16bit) Sequencenumber(32bit) Acknowledgmentnumber(32bit)
Dataoffset (4bit)
Reserved (6bit)
U A P R S F R C S S Y I G K H T N N
Checksum(16bit) Options(Variable)
Data(Variable) Elsignificadodeloscamposes:
SourcePort(Puertodeorigen).Identificaalproceso(puerto)deorigen. DestinationPort(Puertodedestino). Identificaalproceso(puerto)de destino. Sequencenumber(Nmerodeorden). Nmerodeordendelbyteque identificalaposicininicialdelosdatosdelsegmentoconrespectoalflujo debytesoriginaldelemisor. Acknowledgmentnumber. Indicaelnmerodeordendelbytequeel receptorespera.
Pgina21de30,alas1:25del18/09/aa
ElprotocoloIP
Data offset (Desplazamiento de los datos). Indica la longitud de la cabeceradeTCPmedidaenpalabrasde32bit. Reserved.Camporeservadoparafuturousoquedebellevartodossusbita 0 Flags.Lossiguientesseiscampossonindicadoresparasolicitarservicioso marcarlavalidezdeotroscamposdelacabecera. Sudescripcinesla siguiente: URG:Sitienevalor1elcampoUrgentPointeresvlido. ACK:Sitieneelvalor1elcampoAcknowledgmentnumberesvlido. PSH:Sitieneelvalor1elsegmentorequiereunPUSH. RST:Sitieneelvalor1reinicializalaconexin. SYN:Sitieneelvalor1sincronizalosnmerosdesecuencia. FIN:Sitieneelvalor1elemisorllegalfinaldelflujodecaracteres.
Window (Ventana). Indica el nmero de octetos que el receptor podra aceptar. Checksum(Cdigodeverificacin).Seusaparaverificarlacorreccinde losdatoscontenidosenelsegmentoincluidalacabecera. UrgentPointer(Punteroadatosurgentes).Estecampo,vlidoslosiel URGestaa1,indicadondeenelflujodebytesestnlosdatosconsiderados urgentes,quecadaimplementacintratardemaneradiferente. Options (Opciones). Un campo para implementacin de opciones que funcionademanerasimilaracomolohaceelcampoopcionesdeldatagrama IP. Cadaopcintienetrescampos,unoctetoquecontieneelcdigode opcin,uncampoqueindicalalongituddelaopcinyeltercercampoque incluyelosvalorespropiosdelaopcin. Las tresopciones disponibles actualmentesonfindelistadeopciones,cdigo0,sinoperacin,cdigo1,y longitudmximadelsegmento,cdigo2. Padding.Rellenodebitaceroparacompletarpalabrade32bit.
Vamosaverconunejemplocomoseasignanlospuertos: SupongamosqueunnodoAquierecomunicarseconotronodoB.Paraellole enva un segmento TCP donde el campo Destination port lleva el valor del puerto (proceso)conelquequierecomunicarseporejemploel25.ElcampoSourceportque indicaquepuerto(proceso)quiereestablecerlaconexinespuestoporelnodoorigen, supongamos700.SupongamosahoraqueotroprocesodelnodoAquiereestablecerde nuevounaconexinconelnodoByelmismoproceso25. Seenviarunnuevo segmentodesdeelnodoAalnodoBconelmismovalordelcampoDestinationPort
Pgina22de30,alas1:25del18/09/aa
ElprotocoloIP
peroconotrovalordelcampoSourcePort,porejemplo701.Supongamosahoraque otronodoCestableceunaconexinconelnodoByelpuerto25yqueusacomopuerto deorigentambinel701. Vemosquetresprocesoscompartenelmismopuertodedestinograciasala capacidaddemultiplexacindelprotocoloTCP,perocontodasestasconexionesactivas elnodoCdebesabercorrectamentediferenciarlasafindenoenviardatoscruzados, paraellotieneencuentalosiguiente.Lasdosprimerasconexionessediferencianenel puerto origen del segmento mientras que la segunda y tercera se diferencian en la direcciniporigendeldatagrama.Todaestainformacin,ademsdealgunaotra,es necesariaguardarlaparapoderrealizarcorrectamentetodoelprocesodeconexin,y estosehaceguardandoparacadaunadeellaselllamadoTCB(Transmissioncontrol block)dondesealmacenalossocketlocalyremoto,lospunterosalosbufferdeenvoy recepcin, los punteros a la cola de retransmisiones, los valores de seguridad y prioridadparalaconexin,elsegmentoactualyunaseriedevariablesqueretienen valoressobrelosnmerosdesecuenciaparaelenvoyrecepcindedatos. SepermitenenTCPdosformasdeestablecerlaconexin:aperturapasivay aperturaactiva. Enlaaperturapasivaunprocesodenivelsuperior(normalmenteu servidor)ordenaalTCPyalsistemaoperativoqueesperelallegadadeunaconexin desdeunsistemaremoto. Cuandorecibeestapeticinelsistemaoperativocreauna identificacindondeelsocketremotoes0,loquelepermiterecibirllamadasdesde cualquierusuario. Enlasegundaformadeconexin,elprocesodenivelsuperior designaunsocketespecficoconelquesevaaestablecerlaconexin. Paramantenerlainformacinsobrelasconexionesqueestnactivasseusala TPCconnectiontabledondeparacadaconexinexisteunafilaconlassiguientescinco columnas: Connectionstatedondesemantieneesestadoactualdelaconexin. LocalAddressquecontieneladireccinIPlocalparacadaconexin. LocalPort,puertolocalusadoporlaconexin RemoteAddressdireccinIPdelnodoremotoconelqueestestablecidala conexin Remoteportpuertousadoenelnodoremotoparalaconexin.
Para controlar la transmisin de informacin entre nodos e impedir que la llegada un excesivo nmero de octetos colapse la capacidad de proceso del nodo receptor,TCPusaunmecanismollamadodeventanadeslizanteycuyofuncionamiento vamosaverconunejemplo: ConsideremosunmduloTCPqueesttransmitiendodatosaotroB. Enel mduloAllamamosventadadeenvoalamximacantidaddeoctetosquepuedeenviar almduloBsinrecibirunaconfirmacinderecepcin.Dependiendodesucapacidad
Pgina23de30,alas1:25del18/09/aa
ElprotocoloIP
Por otro lado, como TCP no tiene una confirmacin negativa de los datos transmitido,necesitaunmecanismoparasabercuandotienequeretransmitirlosdatos. Paraellosefijauntiempodeespera,pasadoelcualseretransmiteelsegmentoantes enviado. Elvalordeestetiempodeesperanoesfijo,sinoquesecalculautilizandoun algoritmoadaptativo,dependientedelaimplementacin,yenfuncindelosretardosde lospaquetesanteriores. Protocolosespeciales. Dentrodeestegrupovamosaconsiderardosprotocolos:elBootp(Booststrap Protocol)yelIGMP(InternetGroupManagementProtocol). ProtocoloBootstrap. ElprotocoloBootp(oprotocolodearranque),sepuedeconsiderarqueacta comounaversinmsampliadelprotocoloRARP. Esusadopormquinasqueno conocensudireccinIPalarrancarparaobtenernoslostadeunservidorapropiado, sinotambinotrosdatoscomoficherosdearranque,deconfiguracin,etc. BootpusadatagramasIPparaobtenersudireccinyhacelacargadeficheros usandocomoprotocoloUDP.LadescripcindelpaqueteBootpeslasiguiente:
Type HeaderType HLength Hopcount TransactionId Seconds Padding ClientIPAddress ResponseIPAddress ServerIPAddress GatewayIPAddress ClienteHardwareAddress(16Octetos) ServerHostName(64Octetos) BootFileName(128Octetos) VendorSpecificArea(64Octetos)
Ladescripcindeloscamposeslasiguiente:
Pgina24de30,alas1:25del18/09/aa
ElprotocoloIP
Type (Tipo): Campo de un byte que identifica si el paquete es una solicitudounarespueta. HeaderType (Cabecera): Campodeunbytedetamaoqueidentificael tipodedireccindehardware. HLength(Longituddeladireccinhardware):Campodeunbytequemide lalongituddeladireccinhardwareenoctetos. Hopcount (Contadordesaltos):SeutilizacuandoelprotocoloBOOTPse utilizaatravs devariosencaminadores,aumentandoelcontadorenuno cadavezquepasaporunencaminador. Transaction id (Identificador de transacciones): Se utiliza para asignar respuestasalassolicitudes. Seconds(Segundos):Seutilizaparacalculareltiempotranscurridodesdeel envo de la solicitud hasta la recepcin de la respuesta. Longitud dos octetos. Padding(Relleno):Bitacerosparacompletara4octetos. Client ip address (Direccin IP del cliente): Puesta a 0 si el cliente no conocesudireccin.32bit. ServerIPaddress (DireccinIpdelservidor): Puestaporelclientesila conoce. Siesdistintade0,sloelservidorespecificadorespondeala peticin. GatewayIPaddress (DireccinIPdelencaminador): Puestaa0porel clienteyrellenadaporelencaminadorqueobtienelasolicitud. ServerHostName(Nombredelservidor):Campoopcional. Bootfilename(Nombredelficherodearranque):Elclienteloponeacero oindicaunnombregenrico.Elservidorlosustituyeporlarutacompleta alficherodearranque. Vendorspecificarea (reaespecficadelfabricante):Dependientedela implementacin.
ElprotocoloIP
Tambinseusaesteprotocoloparapropagarinformacindedireccionamiento enredesmulticast.
Niveldeaplicacin.
Lamayoradelosprotocolosimportantesquepodemosconsiderardelacapade aplicacinseestudiaenotrospuntosdelcursoporloqueaqunoslimitaremosauna meraenumeracin.Entreellosestn:
LaestructuraclienteservidorenIp. Sabemosqueunservidorescualquierprogramaqueofertaunservicioatravs delared,mientrasqueunclienteesunprogramaqueenvaunapeticinaunservidory esperaunarespuesta.Tambinsabemosqueeltrminoservidorsepuedeextenderala mquinaqueofertaelservicio.Vamosaverdeunaformaelementalcomofuncionala arquitecturaclienteservidorenTCP/IP. Un programa servidor en un nodo TCP/IP comienza su ejecucin antes de recibircualquierpeticinesperandostasenunpuertopredeterminado,reservadopara el servicio, conocido por las aplicaciones clientes y normalmente est aceptando peticionesyenviandorespuestasindefinidamente. Elclientesinembargoreservaparalacomunicacinunpuertoaleatorioyqueno estusadoactualmente,yportantodiferenteencadapeticin. Los servidores pueden ser de dos tipos: secuenciales y concurrente. Los primerosatiendenlaspeticionesdeunaenunasiendoelsistemaoperativoelencargado degestionarlascolasdelasmismas. Los servidores concurrentes, que son aquellos capaces de atender mltiples peticionesdeformasimultneas,tienenunaestructuramscomplicada:estnformados por un procesomaestroquees elencargadoderecibirlas peticiones porelpuerto predeterminado,yquecuandorecibeunapeticindeunclientecreaunprocesoesclavo que establece una nueva conexin con el cliente para atender la peticin; una vez satisfecha sta el proceso esclavo termina, mientras el proceso maestro se queda siempreenestadodeespera.
Pgina26de30,alas1:25del18/09/aa
ElprotocoloIP
Elencaminamiento Recibeelnombredeencaminamientoelprocesodeelegiruncaminoporelque enviarundatagramaipasudestino.Elencaminamientoesrealizadoporlospropios nodosfinalesdelaredipyporunaspasarelasespecializadasllamadasencaminadores (Routers). EstaspasarelaspuedensercualquiernodoqueincorporelapilaTCPI/IP completa. Losencaminadoresseencuentranconectadosnormalmenteavariasredes fsicayhacendepasoentreellas.Paraellotienenloquesellamantablasderutas quesonlistasdelasredesalasquesepuedeaccederatravsdecadaunadesus conexiones. Elencaminamientopuedeserdedostipos:directooindirecto. Elencaminamientodirectoeselqueseproducecuandotantoelnodoemisor comoelreceptorseencuentranenlamismared,loqueaveriguaelemisorcomparando lapartedereddesupropiadireccinipconladireccindedestinodeldatagramaipa enviar.Elnodoemisordebeencapsulareldatagramaenunatramafsica,averiguarla direccinderedcorrespondientealadireccinipdedestinomedianteelprotocoloARP yenviarlatramacorrespondientedirectamentealdestinatario.Esteencaminamiento directoseproducesiempreenelmomentodeentregadeldatagrama. Elencaminamientoindirectoesmscomplicadoyseproducesiemprequeel nododestinonoseencuentraenlamismaredipqueelnodoemisor.Enestecaso,ste debeenviareldatagramaaunodelosencaminadoresalosquetieneaccesoensured fsicaparaqueesteasuvezloreenveasudestinooaotroencaminadorsiaquelnose encuentraenningunadelasredesalasestconectado.Tenemoselproblemadesaber aqueencaminadorsedebeenviareldatagramaloqueseresuelveconsultadolatablade rutasquetienecadanodo.Enestastablasderutasseguardanparejascompuestaspor direccionesderedesydelencaminadoralquehayqueenviareldatagramaparaque lleguehastaella.Hayquehacerconstarquetambinpuedenhaberrutasanodos. Paraevitarquelastablasderutas,quepuedenserestticas,esdecir,quese escribenenunficherodelnodoporeladministrador,odinmicas,esdecir,queelnodo lasvaaprendiendodelosencaminadoresseandemasiadograndes,sepuedeutilizarla tcnica de la ruta por defecto, que consiste en poner una entrada diciendo a que encaminador se deben enviar todos los datagramas dirigidos a redes de las que no conocemosrutasdeacceso. Cmo funcionan los encaminadores? Cuando un encaminador recibe un paquetecompruebaenprimerlugarsivienedirigidoal,esdecir,siladireccinipde destinocoincideconalgunadelasdireccionesdesusconexionesared;sinoessteel caso, comprueba si la parte de red de la direccin ip de destino del paquete se correspondeconlasdelasredesalasqueestconectadoyenestecasolaenvapor encaminamientodirectoenlaformamencionadaantes.Sinoocurreas,consultasus tablasderutaparaversilareddedestinoapareceenellas,enviandoencasoafirmativo eldatagramaalencaminadorcorrespondiente.Encasonegativo,sitieneunarutapor
Pgina27de30,alas1:25del18/09/aa
ElprotocoloIP
defectoenvaeldatagramaalencaminadorindicadoysino,descartaeldatagramay envadevueltaunpaqueteICMPconelcdigoderedinalcanzable. Protocolosdeencaminamiento(Routingprotocols) Hemosdichoanteriormentequelosencaminadorestienentablasderutaspara determinarelmejorcaminoquedebeseguirelpaqueteparallegarasudestino.Aqu nosquedaporcontestaradosposiblespreguntas:Cmoseaveriguaelmejorcamino? Cmosecomunicaalosdemsencaminadores? Las tablas de rutas se pueden rellenar de forma esttica, es decir, el administrador del nodo o encaminador escribe todas la direcciones de red y su correspondienteencaminadorasociado,obienlarutapordefectoparatodaslasredes. Estclaroqueesteprocedimientonotieneencuentatodaslasposiblesvariacionesdela redypodradarseelcasodequeelmejorcaminoaunaredenelmomentodeescribirla tablanolofueseenotroinstante,oinclusoestuviesecortadoimpidiendoelenvode datagramasadicharedaunquetuvisemosuncaminoalternativo. Poresoparecemejorquelosencaminadoresaprendiesencualessonloscaminos alasdistintasredesyselocomunicasenentreellosyalosdistintosnodosdelared. Estoeslatareaquedesempeanlosprotocolosdeencaminamiento(rountingprotocols). Losprotocolosdeencaminamientopuedenserdedostipos:devectordistancia ydeestadosdelosenlaces. Losencaminadoresqueutilizanunprotocolodevectordistanciainformanasus homlogosconectadosalasmismasredesqueellosdndolescuentadelasredesalas quesoncapacesdeaccederysudistanciaaellas,empezandoporaquellasalasque estndirectamenteconectadosconloquetodaslasrutassevantransmitiendoatodos losencaminadores. Cuandounencaminadorrecibeunainformacindeestetipola almacenaensupropiatabladerutasincrementandoladistanciarecibidaconelvalorde sudistanciaalencaminadoredelquelaharecibido. Losprotocolosbasadosenlosestadosdelosenlacesusanotroscriteriosenlugar delasdistanciasparaelclculoderutas,criteriobasadosenfactoresdeltipodeservicio (TOS),quesondefinidosporlosadministradoresderedyquepuedenincluircriterios comoretrasos,anchosdebandaydisponibilidad.Seescogeentonceslasrutasenla Internetenbasealaposibilidaddequelosencaminadoresyredesporlasquesepuede pasarpuedanproporcionarlosserviciosrequeridos. Algunos protocolos de este tipo usan mtodos dinmicos para actualizar las tablas de rutas reflejando el trfico en los enlaces y la disponibilidad de los encaminadores. Otrosprotocolosusanmtodosmsestticosysloactualizansus tablasderutascuandoseproducencondicionesdefallosenlosenlacesquedanlugara uncambiodetopologaenlared.
Pgina28de30,alas1:25del18/09/aa
ElprotocoloIP
GGP(GatewaytoGatewayProtocol),protocolodeltipovectordistancia usado en los primeros aos de la internet y que apenas se usa en la actualidad. RIP(RoutingInformationProtocol), esunprotocolodeencaminamiento desarrolladobastantedespusdeGGPybasadotambinenvectordistancia, del que existen dos versiones I y II soportando esta ltima manejo de subredes. Rip escoge una ruta para un destino entra varias posibles asignadoacadaunadeellasuncosteenfuncindelosencaminadoresporlo que deba pasar y esta informacin es enviada cada cierto tiempo (normalmentecada30segundos)alosdemsencaminadoresalosquetenga accesodirectamente.Ademsdelaumentodetrficoqueocasionaestepaso de rutas, RIP tiene problemas para detectar los posibles lazos en la transmisinderutasascomoelhechodenoautentificarlosintercambiosde maneraobligatoria,loquepuedeprovocarproblemasdeseguridad. HelloProtocol, protocolosimilaralRipsalvoqueelcostedelasrutases medidoporelretardoenlaentregadelospaquetes. OSPF(OpenShortestPathFirst), protocolobasadoenelestadodelos enlaces, e incluye entre sus capacidades direccionamiento de subredes y encaminamientodetipodeservicio.Estconsideradocomounprotocolo adaptativoydinmicoqueproporcionaunastablasderutasestablesenun cortoperiododetiempo. LasredesesOspfseencuentranagrupadasen reasquepuedenestnocultasparalosotrasyqueseagrupanensistemas autnomos.Distinguecuatrotiposdeencaminadores:internalroutersque secaracterizanporquetodaslasredesconectadasaestosestnenelmismo rea;bordersroutersqueestodoencaminadorquenoesuninternalrouter; backbonerouterqueesunencaminadorconinterfacesaltroncaldelsistema autnomoyBoundaryrouter,encaminadoresqueintercambianinformacin conotrossistemasautnomos.
Para ver que ruta sigue un datagrama desde nuestro nodo hasta un determinado destino podemos usar la utilidad Traceroute en mquinas unix o las opcionesequivalentesdelasutilidadesCyberkityNetlabenmquinasWindows. LautilidadtracerouteenmquinasUnixtieneelformatosiguiente: nombre tracerouteFdInvf ttliinterfacemnmerosdireccinwtiempo donde: Nombreeselnombreodireccindelnodoalquesetrazalaruta.
Pgina29de30,alas1:25del18/09/aa
ElprotocoloIP
fttlponeeltiempodevidainicialparaelprimerpaquetequeseenva. Factivaelbitdeimpedirfragmentacin. dactivaelrastreo. i interface indica el interface de red cuya direccin se usa como direccinfuentedelpaquetedesalida. IusaICMPenlugardeUDP. mnmeroeselmximonmerodeencaminadoresporlosquesetraza laruta. nnohaceresolucininversadenombres. sdireccinponeladireccinfuentedelpaquetedesalida. vdalamximainformacin. wtiempoeselmximotiempodeesperaparalarespuesta.
Pgina30de30,alas1:25del18/09/aa