Sie sind auf Seite 1von 30

ElprotocoloIP

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

0>127.255 Partedered 0XXXXXXX Partedenodo XXXXXXXXXXXXXXXXXXXXXXXX

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

DestinatinIPaddress IPoptions Datos

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.

TotalLength(Longitudtotal).Los16bitdeestecampoindicanlalongitud totaldeldatagramaquenopuedeexcederde65535octetos(byte,8bit)nise recomiendaseamenorde576octetos. Identification(Identificacin).Campode16bitquecontieneunnmero entero,queidentificaaldatagramadentrodelasecuenciaenquefueemitido

Pgina9de30,alas1:25del18/09/aa

ElprotocoloIP

porelnodoorigen,endefinitiva,elnmerodeordendeldatagramaensu emisinyportantoindispensableparareensamblarlostrozoscuandoun datagramafuefragmentado.

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)

EstaestructuraestincluidadentrodelapartededatosdeundatagramaIPcuyo campoprotocolodelacabecerallevaelvalor1. Lostresprimeroscamposdela estructurasonobligatoriosparatodoslosmensajesICMPmientrasquelosotrosdosson opcionales.

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

Destinoinalcanzable.Mensajeenviadoalemisordeunadatagrama,bienpor unencaminadorparaindicarquenopuedeentregareldatagrama,obienporelnodo receptorparaindicarquenoesposibleentregareldatagramaaunprotocolodenivel superiorsiendodescartadoenamboscasos.Enelcampodeinformacinsedevuelveel encabezadoylosprimeros64bitdeldatagramaquecausaelproblema.Loscdigos posiblesson:


Codigo 0 1 2 3 4 5 6 7 8 9 10 11 Descripcin Rednoaccesible(Erroresderutas) Nodonoalcanzable(Erroresdeentregas) Protocolonodisponible Puertonodisponible Requeridafragmentacinyestdesactivada Rutasfuentesnodisponible Reddedestinodesconocida Nododedestinodesconocido Nodoorigenfueradered Prohibidoelaccesoalareddedestino Prohibidoelaccesoalnododedestino Rednoalcanzableparaeltipodeservicio

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)

Tiempodeenvo(32bit) Tiempodereceptin(32bit) Tiempoderetransmision(32bit)

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

Window(16bit) UrgentPointer(16bit) Padding

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

deprocesodelosdatosrecibidos,elmduloBpuedeampliaroreducirestelmite usandoelcampoWindowdelpaqueteTCPenqueseconfirmalarecepcindelos datos.Siconsideramoselconjuntodedatosatransmitircomounasucesinordenada deoctetosenmduloAtendratrespunterosadistintosoctetosdeestasucesin: Elprimeroapuntaalltimooctetotransmitidoyconfirmado. Elsegundoapuntaalltimooctetotransmitidoperonoconfirmado Elterceroallmitedelaventanadetransmisin,primeroctetoqueyanose puedetransmitiryquesecalculasumandoalsegundopunteroeltamaode laventanadetransmisin.

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.

ProtocoloIGMP. ElIGMP(InternetGroupManagementProtocol)esunprotocolo,extensindel protocoloIP,queseusaporlosmiembrosdeunaredmulticast(dedifusinunoa muchos,comoporejemplolatelevisinporcable,distribucindevdeoconferencias, retransmisindeacontecimientos,etc)paramantenersupertenenciaalgrupomulticast, paralacuallosencaminadoresmulticastenvanmensajesderequerimientodepresencia cadaciertotiempoalosquedebencontestartodoslosnodosdelgrupoyaquesinoson dadosdebajaenl.


Pgina25de30,alas1:25del18/09/aa

ElprotocoloIP

Tambinseusaesteprotocoloparapropagarinformacindedireccionamiento enredesmulticast.

Niveldeaplicacin.
Lamayoradelosprotocolosimportantesquepodemosconsiderardelacapade aplicacinseestudiaenotrospuntosdelcursoporloqueaqunoslimitaremosauna meraenumeracin.Entreellosestn:

Ftpprotocolodetransferenciadeficheros. SMTPprotocolodecomunicacindelasestafetasdecorreo. Telnetprotocolodeemulacindelosserviciosdeterminal. DNSprotocolodelserviciodetraduccindenombres. HTTPprotocolodecomunicacinparaservidoresweb. NTPprotocolodeserviciosdesincronizacindetiempos.

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

Veamos ahora una pequea descripcin de alguno de los protocolos de encaminamientomshabituales:

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

Das könnte Ihnen auch gefallen