La red Internet. El modelo TCP/IP. Preparación Oposiciones TIC
La red Internet. El modelo TCP/IP.
1
Preparación TIC- Abril 2004
NOTA PRELIMINAR El presente documento está compuesto por dos partes: 1) Los contenidos incluyen lo necesario para la exposición de los temas, tal y como se exige en el ejercicio de desarrollo de temas. Se trata de la unión de todos los temas relativos al tema del monográfico. Se ha comprobado que la información esté actualizada en la fecha de la publicación. Los tests no se ciñen al contenido de los temas, sino que hay que conocer información adicional, que se incluye en este monográfico. 2) Por último, hay unas preguntas de tests del estilo de las del primer ejercicio de
las oposiciones, relativas al contenido de este monográfico.
La red Internet. El modelo TCP/IP.
2
Preparación TIC- Abril 2004
Contenidos
La red Internet. El modelo TCP/IP.
3
Preparación TIC- Abril 2004
Índice 1. Intro Introducció ducción n ...................... ............................................ ............................................. ............................................. .................................................... ...................................... ........ 5 2. Inter Internet net ..................... ........................................... ............................................. ............................................. ............................................ ................................................ .......................... 6 2.1. Historia y evolución evolución........ ................ ................ ................. ................. ................ ................. ................. ................ ................. ................. ................ ............. ......... .... 6 2.2 Características de Internet............... Internet....................... ................. ................. ................ ................. ................. ................ ................. ................. .............. ...... 7 2.3 Gesti Gestión ón de dominio dominios............ s.................................. ............................................ ............................................ ............................................ ............................. ....... 8 2.4 Organizaciones ........ ................ ................ ................. ................. ................ ................ ................. ................. ................ ................ ................. ................. ............ ........ 10 2.5 Intranet – Extranet – Internet ........ ................ ................. ................. ................ ................. ................. ................. ................. ................. ................ ....... 11 2.6 Servicios básicos de Internet ........ ................. ................. ................. ................. ................. .................. ................. ................. ................. .............. ...... 12 3. El modelo OSI ........ ................ ................. ................. ................ ................ ................ ................. ................. ................ ................ ................ ................. .............. ............. ........... ... 15 4. Modelo TCP/I TCP/IP................... P.......................................... ............................................. ............................................. ............................................. ................................... ............. 21 4.1 Nivel de enlace ........ ................ ................ ................ ................ ................ ................. ................. ................ ................ ................ ................. ................. ............. ......... 22 4.2 Nivel de red red..................... ............................................ ............................................. ............................................ .................................................... .................................. 22 4.3 Routi Routing. ng....................... ............................................ ............................................ ........................................... ........................................... ........................................ .................. 32 4.4 Nivel de transporte ........ ................ ................. ................. ................ ................ ................ ................. ................. ................ ................ ................ .............. ......... ... 33 4.5 Nivel de aplicación ......... ................. ................ ................ ................ ................ ................. ................. ................ ................ ................ ................. .............. ......... 36 5. Infraestructura de acceso a Internet ......... ................. ................. ................. ................. ................. ................. ................. ................ ............... ....... 42 5.1 Arquitectura Arqu itectura de doble firewall con DMZ......... DMZ.................. ................. ................. ................. ................. ................. ................. ............. 42 5.2 Tipos de servidores ........ ................. ................. ................. ................. ................ ................. ................. ................. ................. ................. ................. ............ ....... ... 44 5. Desarrollo de aplicaciones web ........ ................ ................ ................. ................. ................ ................ ................. ................. ................ ................. .........47 47 5.1 Evolución de las aplicaciones ........ ................ ................ ................ ................ ................. ................. ................ ................ ................ ............... ....... 47 5.2 Capa de presentación ........ ................ ................. ................. ................ ................ ................ ................. ................. ................ ................ ................ ............ 48 5.3 Capa de servicio web ........ ................. ................. ................ ................ ................. ................. ................ ................ ................. ................. ................ ............ 50 5.4 Capa de aplica aplicación.......... ción................................ ............................................ ............................................ ........................................... ............................. ........ 51 5.5 Capa de datos. datos...................... .......................................... ........................................... ........................................... .......................................... ............................ ....... 51 5.6 Lenguajes de marca: XML.............. XML...................... ................ ................. ................. ................. ................. ................ ................. ................. .............. ...... 52 5.7 Servicios web ........ ................ ................. ................. ................. ................. ................ ................. ................. ................ ................. ................. ................ ............. ......... .... 55
La red Internet. El modelo TCP/IP.
4
Preparación TIC- Abril 2004
1. Introducción La red Internet ha aparecido en el mundo como un fenómeno que nadie podría haber previsto. Parece increíble que una red diseñada para solucionar los problemas de interoperabilidad de un sector particular, se extendiera de la manera en que lo hizo, hasta tal punto que hoy en día Internet llega a los hogares de personas en los cinco continentes. El aspecto más destacable de esta red es precisamente su universalidad. Esta red es un gran cúmulo de redes que tienen en común algunos aspectos que se han tomado como estándares de facto. No en vano, la red Internet es conocida como La Red de Redes. Internet ha supuesto un cambio, o mejor dicho, una evolución en la forma de pensar acerca de la información. Hoy en día podemos encontrar información de cualquier asunto en cuestión de minutos simplemente buscando en Internet. Esto se debe a la facilidad de publicar la información por parte de cualquier persona física o jurídica, y conseguir que dicha información sea accesible por cualquier persona en cualquier rincón del mundo si tiene un acceso a la red Internet. Asimismo, Internet también presenta una gran vía para la comunicación entre puntos muy distantes en el espacio. Podemos enviar enviar un correo electrónico o incluso mantener una conversación en un chat con amigos en la otra punta del globo. Internet ha hecho que a la hora de comunicarse, de publicar contenidos, de acceder a la información, etc, el factor distancia sea un factor que ya no se tiene en cuenta, un factor que se elimina de la ecuación. El presente documento da una visión completa de la forma en que Internet está construida y funciona. Se explica su nacimiento y su evolución, los conceptos sobre los que está diseñada, la arquitectura sobre la que se sostiene y los estándares que se han impuesto, de manera que se tenga una visión de conjunto desde los niveles más bajos hasta los de más alta abstracción. Además, se explica el peligro que supone para las organizaciones el tener y mantener un acceso a Internet, ya sea para ofrecer servicios o información al público general, o bien para permitir a los propios empleados tener acceso a la red. El último punto del tema trata de dar una visión general sobre la forma en que se implementan contenidos para la web, la estructura software sobre la que se apoyan y las diferentes tecnologías que se utilizan en la actualidad.
La red Internet. El modelo TCP/IP.
5
Preparación TIC- Abril 2004
2. Internet 2.1. Historia y evolución Internet apareció en los Estados Unidos en el ámbito militar. En la década de los sesenta, el departamento de defensa de los EEUU estaba preocupado por la vulnerabilidad de las comunicaciones militares antes posibles ataque a sus centros de control, por lo que decidieron desarrollar una red que pudiese seguir siendo operativa, incuso en el caso de que se quedasen desconectados grandes segmentos de ella. Fruto de esta preocupación, la agencia de investigación de proyectos de defensa ARPA (Advanced Research Project Agency), más tarde llamada DARPA (Defense Advanced Research Project Agency) y perteneciente al Departamento de Defensa (DoD – Department of Defense), conectó varios ordenadores en una nueva red llamada ARPANET. A esta red ARPANET se conectaron muchas Universidades que colaboraban en temas de defensa, por lo que surgió la necesidad de conectar ordenadores de diferentes clases, por lo que en 1983, se implantó el protocolo TCP/IP (Transmisión control Protocol/Internetwork Protocol), que ya permitía conectar cualquier clase de ordenador. DARPA contrató el desarrollo del TCP/IP a la Universidad de Berkeley, que lo incluyó en su UNIX y lo distribuyó gratuitamente con él, con lo que se extendió rápidamente. Surgieron otras redes que adoptaron TCP/IP como protocolo de comunicaciones, dando lugar a las redes denominadas Internet (con minúsculas para distinguirlas de la de DARPA), muchas de las cuales se terminaron conectando el completo a ARPANET. De ARPANET se escindió MILNET, que conectaba instalaciones militares, con lo que ARPANET se dedicó fundamentalmente a Centros de Investigación. Internet es pues la evolución de ARPANET después de la implantación del TCP/IP. A finales de los 80 se creó NSFNet (National Science Foundation Network) para la interconexión de superodenadores con enlaces de alta velocidad con backbone transcontinental. A ella estaban conectadas las redes de varias universidades, y debido a las sucesivas conexiones jerárquicas de otras redes, se acabó convirtiendo en la red “backbone” de Internet. Posteriormente estos nodos fueron sustituidos por los NAP’s (Networdk Access Points), que son los puntos de interconexión a la red Internet.
La red Internet. El modelo TCP/IP.
6
Preparación TIC- Abril 2004
2.2 Características de Internet De Internet se puede decir que es una red que tiene como principales características que la definen: Mundial
En lo referente al ámbito, Internet ha conseguido extenderse a lo largo de los cincos continentes. Abierta
No existen restricciones de conectividad otorgando plena libertad de actuación para la interconexión de redes, exceptuando dos requisitos imprescindibles para su utilización: Utilizar los protocolos TCP/IP. Internet está construida sobre las bases de la arquitectura TCP/IP. Actualmente prácticamente todos los Sistemas Operativos incluyen estos protocolos. Utilizar el Sistema de Nombres de Dominio (DNS – Domain Name System). Los recursos dentro de Internet tienen que ser direccionados de alguna manera, y se ha elegido el protocolo DNS para realizar dicha función. Descentralizada
La red no contiene ningún nodo central que suponga un riesgo crítico por su caída. De hecho, Internet podría seguir funcionando incluso aunque estuviese caída una grandísima parte de la red. Jerárquica.
Se organiza como mínimo en cuatro niveles, que son: Red troncal. Es la espina dorsal de Internet. Está formado por la interconexión de grandes redes de los principales operadores comerciales, redes académicas y de investigación. Redes de proveedores de tránsito y Acceso internacional. Son redes de ámbito geográfico mucho más reducido. Redes de proveedores de acceso local (ISPs) Son redes que están orientadas a dar servicio al usuario final. Generalmente las empresas y particulares contratan accesos a estos ISPs. Redes corporativas y usuarios finales. Redes propias de las organizaciones (empresas e instituciones). Son el nivel inferior de la jerarquía de Internet. Su conexión se realiza a través de un proveedor de Acceso. En lo que se refiere a la estructura física, Internet está compuesto por encaminadotes (routers) que se encargan de redirigir los datagramas IP a sus destinos
La red Internet. El modelo TCP/IP.
7
Preparación TIC- Abril 2004
a través del grafo que representa la red. Cada encaminador o router podría verse como un nodo de la red interconectado en el grafo.
2.3 Gestión de dominios Internet está gestionado mediante una estructura de dominios. Los dominios se definen de manera jerárquica, de forma que los dominios de nivel superior engloban el ámbito de los dominios de nivel inferior. Un nombre completo de dominio se utiliza para identificar un servicio en Internet, y por lo tanto deberá asociarse a una dirección IP. Las direcciones IP son más difíciles de recordar por las personas y además no aportan cierta información intuitiva que sí aportan los nombres de dominio. Se puede decir que las funciones de los nombres de dominio son: Identifican el destino de las comunicaciones mediante una nomenclatura fácilmente identificable por parte de las personas y que además ofrece cierta información acerca del ámbito del destino de la comunicación Identifican la organización, que está especificado en el nombre del dominio. En la mayoría de los casos la organización que presta el servicio querrá ser identificada y se esforzará porque el nombre de dominio tenga la mayor claridad posible. No obstante, esto podría no ser así y el e l nombre de dominio podría no ser demasiado útil a la hora de investigar de qué se trata. Localización de información y servicios en Internet. Los nombres de dominio se han consolidado como algo necesario que facilita la vida al usuario, y ya no se concibe el funcionamiento de Internet sin una estructura de dominios. Se puede decir que las principales ventajas de la gestión de dominios es: Comodidad con respecto a las personas, para las cuales es mucho más fácil de recordar un nombre de dominio que una dirección IP, máxime si hablamos de direcciones IP versión 6. Independencia de las direcciones IP, de manera que si el día de mañana en una organización se realiza una reestructuración del direccionamiento IP, el nombre de dominio seguirá siendo el mismo y por lo tanto los usuarios no tienen por qué enterarse. Independencia con respecto a los cambios de topología en la red o el cambio de ISP (Internet Service Provider). El protocolo que se encarga de la gestión de dominios y su relación con las direcciones IP correspondientes, es DNS (Domain Name System). Este protocolo permite asociar a cada nombre de dominio una dirección IP direccionable en Internet, de manera que los usuarios puedan tener acceso al servicio de dicha dirección IP. También se puede utilizar en el ámbito privado, para redireccionar los recursos en una red privada sin ninguna consecuencia en la red pública. El protocolo DNS funciona mediante la instalación de una serie de servidores que se encargan de recibir y contestar todas las peticiones de direcciones IP. Cada servidor almacena unas tablas en las que se especifica qué dirección IP corresponde a cada zona, y viceversa. Estos La red Internet. El modelo TCP/IP.
8
Preparación TIC- Abril 2004
servidores están repartidos por la red y estructurados de manera jerárquica, de manera que la existencia de cada zona depende de las zonas superiores. Visto de esta manera, se podría pensar en el DNS como una gran base de datos distribuida en la que las peticiones se van redirigiendo hacia los servidores que gestionan las zonas por las que se pregunta, y que son en último término los encargados de resolver. Dada la gran amplitud de dominios que existen, y el hecho de que si no sabe la dirección IP no se puede acceder al recurso, cobra bastante importancia el que está gran base de datos se encuentre siempre sincronizada y además tenga replicación en los datos, de manera que si se cae algún servidor siempre exista por lo menos otro que le respalde y tenga almacenadas las direcciones IP a las zonas que gestionaba el primero. La estructura y funcionamiento del protocolo DNS se verá en profundidad en el punto correspondiente dentro del esquema de la arquitectura TCP/IP. Existen principalmente dos tipos de nombres de dominio dentro de la jerarquía establecida, que son: Geográficos Existe una extensión por cada país, formada por dos letras definidas en el código ISO3166. Ha España le corresponde la extensión .es, que se encuentra actualmente gestionada por la entidad pública empresarial Red.es. Se desea conseguir una extensión .eu para los asuntos de la Unión Europea. Genéricos Existen siete dominios genéricos gestionados por la empresa privada Network Solutions. Estos siete dominios son: .com Para páginas páginas de comercio electrónico. Sin embargo, las páginas páginas .com se han convertido en un cajón desastre donde se incluyen prácticamente a cualquier tipo de página. Esto se debe a la facilidad de conseguir una página de este tipo. .net Cada vez vez se utilizan más dejando un poco a un lado el abuso de las .com .org Para organizaciones de cualquier tipo. .int Para asuntos internaciones. .edu Para el sector de la educación. .gov Para el uso de páginas de gobiernos. .mil Para asuntos militares. En noviembre del año 2000 ICANN crea otros siete nuevos dominios: .museum .name .aero .coop .info .pro .biz
Para museos. Para direcciones web peronales Para la industria d ela avación. Para ooperativas y colectivos. Para competir con los .com Para grupos profesionaelse: médicos, abogados…) Para el sector empresarial.
En lo que respecta al juego de caracteres que puede usarse en los nombres de dominio, por el momento solamente puede usarse el juego de caracteres ASCII básico. Existen peticiones para que sean admitidos nombres de dominio con el juego de caracteres ASCII extendido. La red Internet. El modelo TCP/IP.
9
Preparación TIC- Abril 2004
2.4 Organizacion Organizaciones es Tal como se ha dicho, la gestión de nombres de dominio se rige por una estructura jerárquica, en la que cada dominio ejerce su autoridad sobre todas las zonas que cuelgan de él. Existen una serie de organizaciones relacionadas con este gestión de los nombres de dominio y que es importante conocer.
IANA ISOC (Internet Society) es una organización formada por usuarios, proveedores, fabricantes y gobiernos. Dentro del ISOC estaba el IANA (Internet Assigned Number Authority) que se encargaba de la asignación de recursos: nombres de dominio y gestión de DNS. Actualmente IANA ha desaparecido, y ahora se encarga de la gestión ICANN.
ICANN Se trata de una organización privada sin ánimo de lucro, creada bajo las leyes del Estado de California. Sus siglas provienen de “Internet Corporation for Assigned Names and Numbers”. Es una organización en la que cada usuario tiene el derecho a votar. Las dos principales funciones que desempeña son la de gestionar el sistema de nombres de dominio (DNS) de Internet, por medio de un departamento llamado INTERNIC, y la gestión del servidor raíz de nombres de dominio. Existen otra serie de organizaciones internacionales para la asignación de direcciones IP, como pueden ser RIPE NCC (Reséaux IP Européens Network Corrodination Center), AP-NIC (Asia Pacific Network Information Center) o ARIN (American Registry for Internet Numbers). Además, existen otros organismos preocupados por los procesos de estandarización dentro del mundo de Internet, como pueden ser el W3C (World Wide Web Consortium) ó FIRST (forum of Incidents Response and Security Teams).
RED.ES El organismo público encargado de regular el espacio radioeléctrico era RETEVISION, que pertenecía al Ministerio de Fomento. En el proceso de liberalización de las telecomunicaciones se entregó el nombre de RETEVISIÓN a una de las nuevas empresas formadas, y el nuevo nombre del organismo público pasó a ser Red Técnica Española de TV, más conocida como Red.es. Red.es se crea por Resolución de 10 de febrero del año 2000 como ente público empresarial, recibe dinero de los presupuestos del Estado y pertenece a la Secretaría General de Operadores y Tecnologías de la Información, dentro de la Secretaría Secretaría de Estado de Telecomunicaciones, en el Ministerio de Ciencia y Tecnología. La red Internet. El modelo TCP/IP.
10
Preparación TIC- Abril 2004
Este nuevo organismo público pasó a tener principalmente dos funciones: la gestión del espacio radioeléctrico y la gestión de los nombres de dominio .es. El sistema de asignación de dominios .es se regula en la Orden Ministerial de 21 de marzo del 2000 del Ministerio de Ciencia y Tecnología, modificada por la Orden Ministerial del 12 de julio del 2001. Se busca la confianza de la gente, por lo que los nombres de dominio .es han sido otorgados tras superar una serie de requisitos bastante rígidos en comparación con los nombres de dominio de otros países. Esto permite saber quién está detrás de un nombre de dominio .es con una seguridad alta. Al principio sólo se podía pedir un dominio .es por el nombre de la empresa, después se amplió a las marcas registradas, de modo que una empresa puede tener más de un dominio . es. Se Se requiere que los dominios tengan un mínimo de tres letras (excepto algunos que ya existían, por ejemplo www.pp.es www.pp.es), ), y la sintaxis se relaja. El Ministerio de Ciencia y Tecnología se reserva los nombres genéricos (por ejemplo www.ciudadano.es ó www.trafico.es www.trafico.es), ), aunque en general la decisión sobre la concesión de un nombre de dominio genérico que sea utilizado por una empresa la tiene el ministerio (ej: casa).
2.5 Intranet – Extranet – Internet Es importante diferenciar una serie de conceptos que relacionan el ámbito a que se atiene una red en el marco de las organizaciones. En este sentido podemos diferenciar principalmente tres tipos de redes según los límites que se hayan establecido. Estos conceptos son los de Intranet, Extranet e Internet.
INTRANET Por Intranet de una organización se pueden entender varias cosas. Muchos empleados asocian a la palabra Intranet la página web de la organización a la que pertenecen, y que saben que sólo es accesible desde el interior de la organización. Otras veces se entiende por Intranet la red local instalada en el edificio donde se encuentra la sede desde la que se accede. No obstante, Intranet comprende un concepto más amplio y general. Se entiende por Intranet la red de la organización, incluyendo tanto las diferentes redes locales de cada sede que tenga la organización, como la red de área extensa que interconecta las diferentes sedes o edificios. De esta manera, la Intranet llega a todos los puestos informáticos de la organización (siempre y cuando estén conectados). De todas formas, y dependiendo del contexto context o deberemos entender una cosa u otra, pero siempre teniendo en cuenta que son los empleados de la propia organización para los que en principio se ha creado el concepto de Intranet. Con respecto al ámbito de seguridad, se presupone que nunca vamos a recibir ningún ataque desde nuestra propia Intranet, y por lo tanto el nivel de protección frente a ataques que debemos establecer es bajo.
La red Internet. El modelo TCP/IP.
11
Preparación TIC- Abril 2004
EXTRANET La Extranet de una organización es aquella red que incluye tanto a la propia red (Intranet) como a la interconexión con otras entidades que se relacionan con nuestra empresa, y con las que por lo tanto se tiene establecida una relación de confianza. Podríamos pensar en los colaboradores o en los proveedores de suministros. Por ejemplo, podemos pensar en una gran empresa que vende coches. Para la construcción de los automóviles necesita comprar numerosos elementos de ferretería tales como tornillos, tuercas, chapas, por lo que podría establecer una conexión permanente con otra empresa de tornillos. Además, no estaría mal establecer otra conexión también con las empresas a las que les compre los neumáticos, los cristales, los elementos eléctricos, etc… Estas conexiones de área extensa permiten agilizar los trámites y la gestión con todas las entidades con que se relaciona la empresa, y se presupone que no tienen ningún interés en realizar ningún ataque informático. Debido a la relación de confianza que se tiene con estas entidades externas, pero dado que son organizaciones que están fuera de nuestro ámbito y control, el nivel de seguridad dentro de la Extranet deberá ser un nivel de seguridad medio.
INTERNET Internet es la red mundial, abierta, descentralizada y jerárquica que estamos tratando. Dado que Internet está abierta al público en general, es sin duda la red más peligrosa y con la que más precauciones deberemos tener. Cada vez que establezcamos una conexión a Internet desde nuestra organización tendremos que protegerlo adecuadamente, tanto si es para acceder desde nuestras instalaciones como si es para ofrecer servicios al público.
2.6 Servicios básicos de Internet Son una serie de servicios que permiten al usuario acceder al a información y moverse por Internet sin necesidad de demasiados conocimientos informáticos. Podemos nombrar los siguientes:
Telnet Servicio que se utiliza para la conexión remota a un ordenador, de manera que podemos operar como si nos encontrásemos físicamente en el ordenador remoto, pero en un terminal virtual. Utiliza por defecto el puerto 23 para acceder. Las emulaciones de terminal más corrientes (modo texto) son VT100, VT220 (Modelos de terminal de Digital) y el tn3270 (Modelo de terminal de IBM).
Rlogin
La red Internet. El modelo TCP/IP.
12
Preparación TIC- Abril 2004
Servicio que al igual que Telnet permite conectarse a un ordenador remoto. Desarrollado en un principio para el sistema operativo BSD Unix, después fue extendido a otros sistemas. Aumenta las posibilidades de Telnet, al facilitar información del ordenador del usuario al ordenador remoto.
FTP Servicio que permite explorar e intercambiar ficheros con un servidor ftp remoto, está diseñado para la transferencia de ficheros entre ordenadores. Actualmente existen multitud de aplicaciones FTP que ofrecen una interfaz gráfica. El puerto utilizado por defecto es el 21. En lo que se refiere a la autenticación, permite dos formas de trabajar: Transferencia autenticada: El cliente debe estar dado de alta en el servidor mediante un nombre de usuario y una contraseña. Transferencia anónima: Se suele utilizar para el acceso a ficheros públicos. Como nombre de usuario se escribe la palabra “anonymous” y como contraseña se suele escribir como acto de cortesía la dirección electrónica del que accede al servicio.
Correo electrónico Servicio que permite el envío de de mensajes a través de la red. El envío de estos mensajes es asíncrono, es decir, el emisor envía un mensaje con una dirección de destino, y este mensaje se almacenará en un servidor de correo hasta que el destinatario acceda a este servidor para recuperar el mensaje. Por lo tanto no se requiere conexión simultánea entre ambos participantes. En un principio fue diseñado para el envío de mensajes únicamente, pero posteriormente se la añadió la funcionalidad de incorporar ficheros al mensaje. Lo protocolos más utilizados en el correo electrónico son tres: SMTP (Simple Mail Transfer Protocol) que afecta al envío de mensajes por parte del usuario y la transferencia de estos mensajes entre los servidores; POP-3 (Post Office Protocol, versión 3) para el acceso por parte del usuario desde su ordenador al servidor de correo donde se encuentra su buzón; e IMAP-4 (Internet Message Access Protocol, versión 4) también para el acceso del usuario a su buzón.
News Las news o grupos de noticias son un servicio que permiten al usuario subscribirse a un grupo con noticias y discusiones compartidas sobre un tema determinado. Se utiliza tecnología PUHSH. Por cada grupo de noticias (newsgroup) hay una lista de distribución. Un usuario puede subscribirse a esta lista de distribución y recibirá los mensajes compartidos por ese grupo de noticias.
WWW. La web. La red Internet. El modelo TCP/IP.
13
Preparación TIC- Abril 2004
Inventada en el CERN (Centro Europeo para la Investigación Nuclear) Por Tim Berners-Lee. Su idea fue colocar, en los documentos, lista de referencia que permitieran el enlace con otros documentos. Cada documento recibe el nombre de Página Web. Permite acceder de una forma fácil y muy intuitiva a todas las posibilidades de la red, resultando además, para las organizaciones, una manera atractiva de informar de sus actividades o servicios. Para su funcionamiento, se apoyan principalmente en tres conceptos: HTML. (HyperText Markup Language). Lenguaje de definición de páginas web basado en la utilización de etiquetas o marcas. HTTP. (HyperText Transfer Protocol). Es el protocolo de comunicaciones que permite la comunicación directa entre el navegador de un ordenador (cliente) y el ordenador de la red al que se desea acceder (servidor). HTTP realiza una petición de una página web, y después la recibe, pero no recuerda el estado de las páginas web de una petición a la siguiente. Para acceder a los documentos de la red, utiliza el protocolo DNS para descubrir la dirección IP del destino de la comunicación. HTTP utiliza por defecto el puerto 80, aunque en algunos servidores puede utilizar puertos diferentes (típicamente, 8080). URL. (Universal Resource Locutor). Sistema de localización de recursos. Es la dirección asociada con la dirección IP a través del servicio DNS. La dirección URL tiene una estructura de la siguiente manera:
://://
El puerto se puede colocar también al final de la URL, o incluso no detallarlo, como se suele hacer en la mayor parte de las ocasiones. Si no se especifica el puerto, se considerará el puerto por defecto asociado al protocolo que se está utilizando. Los navegadores actuales tienen como protocolo por defecto http. Otros protocolos son ftp, mailto, …En algunos casos, podría ponerse el usuario y la clave, pero no debería utilizarse por razones de seguridad, ya que nunca debe enviarse una clave en claro.
La red Internet. El modelo TCP/IP.
14
Preparación TIC- Abril 2004
3. El modelo OSI Este capítulo pretende ofrecer una introducción al modelo OSI, de manera que cuando se explique en el siguiente capítulo el modelo TCP/IP se puede entender mucho mejor, y además se pueda comparar con el modelo OSI. Una red de ordenadores es un conjunto de ordenadores autónomos interconectados entre sí. Dos ordenadores están conectados entres sí cuando pueden intercambiar información y son autónomos cuando no existe una relación maestro/esclavo entre ellos. La comunicación entres hosts dentro de una red de ordenadores es un proceso de alto grado de complejidad, de manera que la mayor parte de las redes se han diseñado separando su organización en varias capas (layers). El número de capas y su función difiere para cada tipo de red, pero en todos los casos, el propósito de cada capa es ofrecer sus servicios a la capa superior, ocultando así la complejidad de los niveles inferiores. Cada capa entre en comunicación con la capa correspondiente en la máquina de destino. Así, la capa N de la máquina origen va a dialogar con la capa N de la máquina remota. Las reglas que rigen este diálogo se denominan protocolos. Obviamente, los datos no se transfieren directamente desde la capa N de una máquina a la capa N de la otra. En su lugar, cada capa trasmite los datos más cierta información de control a la capa inmediatamente inferior, hasta que los datos alcanzan la capa 1 o medio físico a través de la cual se transmiten los bits físicamente. En la máquina de destino se produce el proceso contrario. Los datos suben desde la capa 1 a las superiores, y cada capa, se encargar de su parte de la comunicación, interpretando la información de control correspondiente a su capa. Entre cada par de capas adyacentes existe un interface lógica, que define las primitivas y los servicios que la capa inferior ofrece a la superior. El conjunto de capas y protocolos constituye lo que se denomina arquitectura de red. Sirviéndose de estos conceptos teóricos sobre arquitectura de red, la International Standards Organization (OSI) desarrolló una propuesta conocida como ISO OSI (Open Systems Interconnection) Reference model (norma ISO 7498). Habitualmente se denomina el modelo OSI. Los principios utilizados en su diseño fueron los siguientes: Se crea una nueva capa cada vez que se necesita un nuevo nivel de abstracción. Cada capa deber realizar una función bien definida. La función de cada capa debe ser escogida con la idea de definir protocolos estándar en ella. Los límites de las capas deben ser escogidos de forma que minimicen el flujo entre las interfaces. La red Internet. El modelo TCP/IP.
15
Preparación TIC- Abril 2004
El número de capas debe ser suficientemente alto como para abarcar toas las funciones y lo bastante pequeño como para que la arquitectura de red sea manejable. De esta forma, y resumiendo todo lo comentado hasta ahora, a la hora de comprender el modelo OSI se tienen que entender los siguientes conceptos o definiciones: Capa o nivel. Cada una de las segmentaciones lógicas que se realizan en la torre de
comunicaciones que se definen en los dos extremos de la comunicación. Homólogo. Es aquella entidad que se sitúa en el otro extremo de la comunicación al
mismo nivel que la entidad de que se habla. Protocolo. El lenguaje diseñado y acordado para el entendimiento entre dos
homólogos. Se pueden distinguir dos tipos de protocolos: Protocolos orientados a conexión, que son aquellos que antes de enviar cualquier información por el canal de comunicación deben primero establecer una conexión, y al finalizar la transmisión de información realizan una desconexión. Y por otro lado, los protocolos no orientados a conexión, que son aquellos que transmiten la información directamente sin establecimiento previo de conexión. Podríamos poner como ejemplo de transmisión orientada a conexión la realización de una llamada telefónica, y como ejemplo no orientado a conexión el envío de una carta o postal. útile s para Servicios. Son las funciones que una capa N ofrece a la capa N+1 y que son útiles que la capa N+1 pueda desempeñar adecuadamente su trabajo, pero sin enterarse ni comprender los detalles de tales funciones. Service Access Point (SAP). Es el punto por el que la capa N accede a un servicio de la
capa N-1. Proveedor de servicios. Se dice que la capa N es el proveedor de servicios de la capa
N+1. Usuario de servicios. Se dice que la capa N es el usuario de servicios de la capa N-1. Interface. Es el conjunto de definiciones de funciones que el proveedor de servicios
ofrece al usuario de servicios. En la relación que tiene una capa con la capa inferior aparecen ciertas unidades de datos que se pueden definir de la siguiente forma: SDU (Service Data Unit). Se compone de los datos que se desea que sean trasmitidos,
es decir, los datos útiles que una capa pretende hacer llegar a su homólogo. PCI (Protocol Control Information). Se trata de la cabecera que cada nivel incorpora a
los datos que se van a trasmitir. Esta cabecera está definida según el protocolo con el que se va a realizar la comunicación al nivel en que nos encontramos. PDU (Protocol Data Unit). Es la unidad compuesta por la unión de la SDU y de la PCI.
Esta unidad será la que efectivamente se va a transmitir al nivel inferior.
La red Internet. El modelo TCP/IP.
16
Preparación TIC- Abril 2004
ICI (Interface Control Information). Se trata de ciertos datos auxiliares estrictamente
útiles para la comunicación con la capa inferior, pero que no son útiles en el mecanismo de comunicación. IDU (Interface Data Unit). Es la unidad compuesta por la PDU y la ICI que realmente se
transmite a la capa inferior al utilizar un servicio determinado. Se puede observar la forma en que interaccionan estas unidades de datos en el siguiente dibujo:
SDU
PCI
PDU
ICI
IDU
ICI
SDU
Utilizando los principios expuestos, el modelo OSI define siete niveles que funcionan tal y como se ha explicado. Las unidades de datos en cada nivel toman los siguientes nombres: Capa
Punto de Acceso
Service Data Unit
Protocol data Unit
PSAP SSAP TSAP NSAP LSAP
PSDU SSDU TSDU NSDU LSDU
APDU PPDU SPDU TPDU NPDU LPDU
7. Aplicación 6. Presentación 5. Sesión 4. Transporte 3. Red 2. Enlace
La red Internet. El modelo TCP/IP.
17
Preparación TIC- Abril 2004
Vamos a ir describiendo las funciones de cada capa, comenzando por la capa inferior en la torre: Nivel 1: Capa física
Su función es transmitir bits a través del canal de comunicación. Es decir, debe asegurarse de que cuando el emisor envía un bit a 1, el receptor lo reciba como un bit a 1, y no como un bit a 0. Las cuestiones que debe tratar son: voltaje del bit a 1 y a 0, duración del bit, si la transmisión se hace en ambas direcciones, diseño del conector, número de pines de la interface, etc… Normalmente son ingenieros eléctricos los que diseñan esta capa. Nivel 2: Capa de enlace
Su función es transformar las cadenas de bits transmitidos pro la capa física en una línea libre d errores que pueda ser utilizada por la capa de red. La capa física transmite los bits como cadenas sin significado ni estructura. La capa de enlace divide estas “ristras” en unidades de pocos cientos de bytes denominados tramas (frames), y las dota de estrucutr4ua, añadiéndoles información de control (por ejemplo, numeración de tramas) e información destinada a la corrección de errores (CRC). Además puede establecer mecanismo que eviten la recepción de tramas duplicadas y mecanismos de control de flujo para evitar la saturación del receptor. Nivel 3: Capa de red
Realiza el control de operación de la red. Su misión consiste en determinar el camino que deben seguir los paquetes a través de los nodos de la red, es decir, cómo se encaminan (routing). La unidad de transferencia se denomina paquete (packet). La forma de establecer las rutas difiere según la implementación de este nivel. En algunos casos se trata de rutas estáticas establecidas en los nodos intermedios y que no suelen variar. En otros casos son rutas dinámicas que se establecen en función de parámetros de la red basadas en algoritmos dinámicos de enrutamiento. También este nivel debe considerar los problemas de embotellamiento y cómo gestionarlos. Este nivel (junto con los dos inferiores) son los que debe implementar un proveedor de transmisión de datos, y por tanto, en muchos casos el que contiene también mecanismos destinados a la contabilidad y facturación del tráfico de red. Nivel 4: Capa de transporte
Es el primer nivel que establece comunicación extremo a extremo, es decir, que pone en comunicación a las máquinas finales. Su misión fundamental es
La red Internet. El modelo TCP/IP.
18
Preparación TIC- Abril 2004
independizar a posniveles superiores de todos los detalles hardware y software que permiten que la información alcance su destino. Debe proporcionar a la capa de sesión una comunicación fiable y libre de errores. Esto puede parecer que ha sido ya realizado por las capas inferiores, pero, en algunos tipos de red en que no existe mecanismo de conexión en los niveles anteriores esta es la primera capa que puede asegurar la fiabilidad de la transmisión. Otras funciones que puede cumplir la capa de transporte es permitir la multiplexación de varias conexiones de nivel de sesión a través de una única conexión de transporte (si los extremos de la comunicación son los mimos).
Nivel 5: Capa de sesión.
Este nivel se encarga de la comunicación entre usuarios (o aplicaciones). La capa de transporte asegura que las máquinas se comuniquen entre sí, pero el objetivo final es la transferencia de datos entre aplicaciones. Si no existiera esta capa entre dos máquinas sólo podría haber una única conversación. El nivel de sesión debe proporcionar los mecanismos de direccionamiento para permitir comunicar usuarios finales entre sí. Entre sus misiones está también gestionar el diálogo, por ejemplo, permitiendo o no el tráfico simultáneo en los dos sentidos. Es frecuente en los protocolos de este nivel la utilización de testigos que indiquen cuáles es el extremo que tiene el derecho a “hablar”. Otro aspecto que puede tratar este nivel es la sincronización en caso de pérdida de la conexión, para evitar la retransmisión de todos los mensajes enviados hasta el momento. Nivel 6: Capa de presentación.
Realiza determinadas funciones lo suficientemente frecuentes como para que sea necesario darles una solución general. A diferencia de las capas anteriores, la capa de presentación se encarga de la sintaxis y la semántica de la información transmitida. Los extremos de la comunicación deben estar de acuerdo en determinados aspectos para que la comprensión sea posible: tipo de codificación (ASCII, EBCDIC), representación de los enteros (complemento a 1, complemento a 2), cómo se representan los datos en punto flotante, orden los bits (big endian, littl e endian), etc… Otros aspectos que puede tratar esta capa son los relativos a compresión de datos y criptografía. Nivel 7: Capa de aplicación.
En este nivel es donde se desarrollan las funcionalidades específicas que se necesitan una vez que los ordenadores ya pueden aprovecharse de una La red Internet. El modelo TCP/IP.
19
Preparación TIC- Abril 2004
comunicación completa. Normalmente las máquinas se conectan con un objetivo, que se debe plasmar en un programa de ordenador. Esta aplicación implementa las funcionalidades que hacen nos van a servir a los usuarios directamente para realizar nuestro trabajo en las redes. Por ello, es en la capa de aplicación donde se sitúan los protocolos más comunes a la hora de hablar de redes desde el punto de vista del usuario. Estamos hablando de protocolos de transferencia de ficheros, de terminal virtual, de mensajería electrónica, de gestión de red, etc. En general, en este nivel se puede implementar cualquier protocolo que tenga como requisito la interconexión entre varias máquinas, y detallar las particularidades de una aplicación que será directamente utilizada por el usuario.
La red Internet. El modelo TCP/IP.
20
Preparación TIC- Abril 2004
4. Modelo TCP/IP El modelo TCP/IP nació en los Estados Unidos como se ha descrito en el apartado de la historia de Internet. Se trata de un modelo mucho más práctico destinado a su funcionalidad útil y directa, no como el modelo OSI más dirigido a presentar un marco teórico y completo de la interconexión de redes. La red Internet se apoya sobre la arquitectura del modelo TCP/IP, de ahí su extrema importancia en la actualidad. En los próximos puntos vamos a estudiar el modelo TCP/IP en profundidad. El desarrollo del modelo TCP/IP fue previo al del modelo OSI. El origen de esta familia de protocolos fue la red Arpanet, en la cual se desarrollaron los conceptos fundamentales de diseño y gestión de redes. Al igual que el modelo OSI, desglosa el proceso de comunicación en varias capas o niveles, cada una de las cuales tiene atribuida una funcionalidad que ofrece a las capas superiores. Los niveles más bajos, correspondiente a las capas física y de enlace, no están especificados ya que el protocolo se pensó para funcionar sobre cualquier tipo de red. Los protocolos ARP y RARP se encargan de enlazar los sistemas de direccionamiento IP y el de la red física utilizada. La base de la familia de protocolos es el nivel de Red, que implementa un protocolo muy sencillo (Internet Protocol ó IP) de tipo datagrama de forma que se pueda implementar en cualquier tipo de máquina. La arquitectura TCP/IP se estructura en las capas física, de enlace, de red, la de transporte y la capa de aplicación. Si tratamos de hacer una relación entre las capas del modelo OSI y las capas del modelo TCP/IP, se podría decir que tenemos las siguientes semejanzas:
Modelo OSI Nivel 7: Capa de aplicación Nivel 6: Capa de presentación Nivel 5: Capa de Sesión Nivel 4: Capa de transporte Nivel 3: Capa de red Nivel 2: Capa de enlace Nivel 1: Medio físico
Modelo TCP/IP
Capa de aplicación Capa de transporte Capa de red Capa de enlace Medio físico
Algunos autores asocian la capa de Sesión del modelo OSI a la capa de aplicación del modelo TCP/IP, en lugar de a la capa de transporte. La consideración de incluirla en un nivel o en otro depende de cómo se entiendan las funciones de la capa de sesión y de la capa de transporte del modelo TCP/IP. Se puede considerar que la capa de sesión realiza funciones que se salen del ámbito estricto de la capa de transporte, aunque en este caso se considera que se asemeja más a la funcionalidad de la capa de transporte que de aplicación.
En los próximos puntos vamos a revisar los niveles del modelo TCP/IP en detalle. La red Internet. El modelo TCP/IP.
21
Preparación TIC- Abril 2004
4.1 Nivel de enlace La capa de enlace es el interfaz con el hardware de la red. Este interfaz puede proporcionar o no una entrega fiable y puede ser orientada a paquetes o a flujo de bits. TCP/IP no especifica ningún protocolo en esta capa, pero puede utilizar casi cualquier interfaz de red disponible lo que da una idea de la flexibilidad de la capa superior, la capa IP. Ejemplos de protocolo que se pueden utilizar en esta capa son IEEE 802.2, X.25 (que es fiable de por sí), Frame Relay, ATM, FDDI e incluso SNA.
4.2 Nivel de red El nivel de red es el encargado de encaminar los paquetes a través de la red de manera que lleguen a su destino. El nivel de red es la base de la familia de protocolos TCP/IP, que define el protocolo más importante: IP. IP versión 4
IP es un protocolo de conmutación de paquetes muy sencillo, de tipo datagrama, de forma que se pueda implementar en cualquier tipo de máquina. Existen actualmente dos versiones, IPv4 e IPv6. La que todos utilizamos actualmente es la versión 4. La versión 6 es la “siguiente generación”, el futuro de IP, y que ya está comenzando a implantarse en grandes sectores de Internet, aunque todavía queda por esperar hasta que la versión 4 desaparezca, dado que existen numerosos problemas (y algunos nada desdeñables) asociados a este cambio. El tamaño normal de la cabecera es de 20 bytes, aunque puede incrementarse si se utilizan las opciones. El datagrama se divide principalmente en dos partes: La cabecera, y los datos. Vamos a revisar los campos que componen la cabecera de un datagrama IP: Ver: Versión. HL: Longitud de la cabecera en palabras de 4 bytes. Generalmente esta longitud será de 5 (20 bytes), y puede llegar a incrementarse hasta una longitud de 15 palabras (60 bytes). TOS: Tipo de servicio. Se puede especificar con esta opción el comportamiento que debe utilizar el tratamiento del datagrama: Minimiza el retardo, minimiza el caudal, maximiza la fiabilidad, etc…). Longitud Total: Tambado en bytes del datagrama completo (cabecera más datos). El máximo es de 65.536. Id: Se trata de una identificación única para cada datagrama. Este campo está asociado al mecanismo de fragmentación del datagrama. Su valor se copia en todos los cachos que componen el datagrama original. Flags: Son una serie de bits que se utilizan principalmente para labores relacionadas con la fragmentación. El segundo bit del campo se denomina “don’t fragment”. Si La red Internet. El modelo TCP/IP.
22
Preparación TIC- Abril 2004
está activado fuerza un mensaje error si el datagrama deber ser fragmentado y por lo tanto el router lo elimina. El tercer bit indica que el datagrama ha sido fragmentado y contiene más fragmentos posteriores (more fragments). Fragment Offset: Es el desplazamiento del fragmento a partir del datagrama original (en bloques de 8 bytes). El campo longitud total es reajustado al tamaño de cada fragmento. TTL: (Time to Live) Es un campo que se utiliza para procurar de un tiempo de expiración al datagrama. Cada nodo de la red por el que pasa el datagrama decrementa este campo en una unidad. Cuando el valor de este campo llega a 0, entonces el router lo descarta, generando un mensaje de error indicando de tal incidente. Este campo es muy importante dado que evita que un datagrama se quede dando vueltas indefinidamente por Internet. Protocolo: Identifica el protocolo de nivel superior que está utilizando el datagrama IP (TCP, UDP, ICMP, …) Checksum: Suma de control. Permite descubrir si se han producido errores en la cabecera. No tiene en cuenta el campo de información. Opciones. Generalmente se utilizan para pruebas de la red y depuración de errores. Permiten almacenar un registro de rutas, grabación de tiempos de paso por los encaminadotes, etc… Está limitado a un tamaño máximo de 40 bytes. Las direcciones IPv4 tienen una longitud de 32 bits (4 bytes). Normalmente se escriben dividiendo la dirección en cuatro partes: cada uno de los cuatro bytes que la componen. Se escriben las cuatro partes especificadas en notación decimal y separadas por puntos. Por ejemplo:
103.80.47.10 Las direcciones IP tienen dos partes: Red: Especifica la red a la que pertenece la máquina que tiene asignada esta dirección IP. Host: Especifica la estación particular dentro de la red. Normalmente, para diferenciar dentro de una dirección IP la parte de red de la parte de host, se utiliza una máscara. Una máscara es una secuencia de 32 bits (igual largo que la dirección IP), indicando que cuando la máscara tiene un bit a uno en una posición determinada, ese bit en particular en la dirección IP pertenece a la parte de red, y cuando está a cero a la parte de host. Por ejemplo, si la dirección IP 103.80.47.10 tuviera asignada una máscara de red de 255.255.0.0, la parte de red serían sus dos primeros bytes (16 bits) y su parte de host serían los últimos dos bytes (los 16 bits finales). Tipos de redes en IPv4
Existen cinco clases de direcciones IP en la versión 4, de manera que cualquier dirección IP válida pertenece a una de estas clases. Si consideramos las direcciones en formato binario, podemos diferenciarlas de la siguiente manera: Clase A: Son aquellas direcciones que comienzan por un 0. Es decir, son de la forma
0xxx xxxx . xxxx xxxx . xxxx xxxx.
La red Internet. El modelo TCP/IP.
23
Preparación TIC- Abril 2004
En las redes de clase A, la máscara de red es 255.0.0.0. Es decir, el primer byte de la dirección especifica la parte de red, y el resto la parte de host. Esto implica que existirán pocas redes de clase A, pero cada una podrá albergar una grandísima cantidad de nodos. Clase B: Son aquellas direcciones que comienzan por un 1 y van seguidas de un 0. Es
decir, son de la forma 10xx xxxx . xxxx xxxx . xxxx xxxx. En las redes de clase B, la máscara de red es 255.255.0.0. Es decir, los dos primeros bytes de la dirección especifican la parte de red, y el resto la parte de host. Esto implica que existirán más redes de clase B que de clase A, pero que cada una podrá albergar menos nodos. Clase C: Son aquellas direcciones que comienzan por dos 1’s y van seguidas de un 0.
Es decir, son de la forma 110x xxxx . xxxx xxxx . xxxx xxxx. En las redes de clase C, la máscara de red es 255.255.255.0. Es decir, los tres primeros bytes de la dirección especifican la parte de red, y el resto la parte de host. Esto implica que existirán muchísimas redes de clase C, pero cada una de ellas sólo podrá albergar unos pocos nodos. Clase D: Son aquellas direcciones que comienzan por tres 1’s y van seguidas de un 0.
Es decir, son de la forma para multicast.
1110 xxxx . xxxx xxxx . xxxx xxxx. Estas direcciones se utilizan
Clase E: Son aquellas direcciones que comienzan por cuatro 1’s y van seguidas de un
0. Es decir, son son de la forma 1111 0xxx . xxxx xxxx . xxxx xxxx. Estas direcciones están reservadas para fines especiales. La tabla que se presenta a continuación resume el número de nodos que puede albergar cada clase de redes, y el rango de direcciones IP que abarca si traducimos la notación binaria en notación decimal:
Clase A B C D E
Nodos por clase 16.777.216 65.536 2 56 -
Másc scaara 255.0.0.0 255.255.0.0 255.255.255.0 -
Dirección comienzo 0.0.0.0 128.0.0.0 192.0.0.0 224.0.0.0 240.0.0.0
Dirección final 127.255.255.255 191.255.255.255 223.255.255.255 239.255.255.255 255.255.255.255
En realidad, el número de nodos presentado en esta tabla, no es rigurosamente cierto, dado que dentro de cada red siempre se reservan dos direcciones para fines especiales. Estas dos direcciones son: Dirección de red: Es aquella dirección IP que tiene la parte de host con todos los bits puestos a 0. Se utiliza para referirnos a la red en cuestión, sin especificar ningún nodo en particular. Dirección de difusión (broadcast): Es aquella dirección IP que tiene la parte de host con todos los bits a 1. Cuando una estación de una red desea enviar un datagrama a todos los ordenadores de su misma, u otra red, utiliza esta dirección especial, que significa que el destino de la comunicación son todas las máquinas pertenecientes a la red de destino. La red Internet. El modelo TCP/IP.
24
Preparación TIC- Abril 2004
Por lo tanto, el número de nodos que cabría instalar en una red viene dado por 2 elevado al número de bits destinados a la parte de host, menos 2. Número de nodos posibles = 2 n - 2 Donde n es el número de bits destinados a la parte de host en la dirección IP.
Subnetting
El direccionamiento diseñado en la versión 4 del protocolo IP tiene el defecto del agotamiento del número de direcciones, unido al desaprovechamiento de otras direcciones. Se puede poner el ejemplo de una organización que desea implantar cuatro redes distintas, pero cada una no va a tener más de 20 nodos. Para ello debería reservar cuatro redes de clase C, pero en cada una de ellas desaprovecharía 234 posibles direcciones (254 – 20 = 234). Para solucionar en parte este tipo de problemas se ingenió el subnetting. Esta técnica consiste en dividir una red de clase C en subredes, y se basa en la inclusión de un mayor número de bits en la parte de red de las direcciones IP. Por ejemplo, si decidimos que el bit número 25 de la red 102.14.14.0 va a pertenecer a la parte de red, tendríamos que los nodos de la misma clase C podrían pertenecer a una de las dos subredes: A la subred 102.14.14.0000 0000 A la subred 102.14.14.1000 0000 Los tres primeros bytes se han especificado en notación decimal, y el último en notación binaria. Se podrían utilizar más bits para la parte de red, de esta manera, si utilizamos 2 bits más, habremos creado 4 subredes. Si utilizamos 3 bits, habremos creado 8 subredes, y así sucesivamente. Se podría decir que se conoce subnetting como la división de una red en subredes. Para el caso de direcciones públicas, su contratación tiene un coste muy alto. Por esta razón suele ser habitual dividir las redes públicas clase C en subredes más pequeñas. Además, es útil aunque se esté utilizando direccionamiento privado, si por ejemplo sólo se necesita crear una red para 3 ó 4 dispositivos.
Supernetting
El enrutamiento interdominio sin clases (CIDR, descrito en la RFC 1519) responde al problema contrario al subnetting: ¿qué pasa si no tengo suficiente con los 254 hosts de una clase C pero una clase B es demasiado grande? CIDR permite unir varias redes de clase C contiguas, marcando los bits de la máscara de red como máquina (bits a 0): La red Internet. El modelo TCP/IP.
25
Preparación TIC- Abril 2004
Red Máscara
Nodo
104 . 69 . 1000 10 xx 1111 1111 . 1111 1111 . 1111 11 00
. .
xxxx xxxx 0000 0000
Obtenemos 1024 direcciones, restando la de red (todo a 0’s) y la de difusión (todo a 1’s) hay sitio para 1022 hosts.
Direccionamiento IP privado
Normalmente cuando una organización quería direccionar sus máquinas con direcciones que no tuvieran repercusión pública en internet, elegía la primera red de la clase que desease y la utilizaba. Estas direcciones son privadas y sirven para direccionar las estaciones dentro de la red privada (intranet). Para unificar el modo en que se eligen estas direcciones, se ha convenido utilizar ciertas direcciones para uso privado. La RFC 1597 “Asignación de direcciones para Internet privadas” define ciertas redes IP que se pueden usar libremente sin solicitarlas a ningún organismo de asignación de direcciones (IANA para el mundo o RIPE para Europa). Los operadores de comunicaciones tienen orden de no enlutarlas en Internet, de forma que los routers las descartan sin más. Estas direcciones destinadas al direccionamiento privado son:
Clasee Clas A B C
Rang Ra ngoo de di dirrec ecci cion ones es res eser erva vada dass de re rede dess 10.0.0.0 172.16.0.0 a 172.31.0.0 192.168.0.0 a 192.168.255.0
El Grupo de Usuarios de Telecomunicaciones en la Administración (GTA) dependiente del Consejo Superior de Informática hace las veces de RIPE (Réseaux IP Européens) en la Administración, asignando clases B dentro de la clase A reservada para direccionamiento privado. Se desarrolló un plan en el que se pone de manifiesto este direccionamiento: “Plan de direccionamiento e interconexión de redes de área local en la Administración” de octubre de 1996 revisado en marzo de 2003. Algunos ejemplos que se han definido en este plan:
Rango de direcciones IP 10.1.0.0 10.2.0.0 10.3.0.0 10.4.0.0 10.5.0.0 La red Internet. El modelo TCP/IP.
Entidad u organismo Ministerio de Administraciones Públicas Ministerio de Agricultura, Pesca y Alimentación Ministerio de Asuntos Exteriores Secretaría General de Asuntos Sociales Secretaría de Estado de Comercio, Turismo y de la 26
Preparación TIC- Abril 2004
Pequeña y Mediana Empresa (PYMES) Secretaría de Estado de Cultura Ministerio de Defensa
10.6.0.0 10.7.0.0
IP versión 6
Como se ha explicado anteriormente la versión más utilizada de IP es la versión 4. Todavía funciona bien, pero la comunicación de datos ha evolucionado mucho desde los años 70, y se han encontrado ciertos problemas, para los que se han desarrollado todo tipo de soluciones. Algunos de los problemas a que nos referimos son: Agotamiento del espacio de direcciones. Direccionamiento ineficiente. Falta de soporte a la transmisión en tiempo real de vídeo y audio. Necesidad de soporte a las transmisiones con retardo mínimo y reserva de recursos. Falta de soporte integrado al cifrado y autentificación de datos. Para solucionar estas deficiencias surge IPv6. IPv6 es ya un estándar de Internet que modifica el formato y longitud de las direcciones IP. Además presenta un nuevo formato del paquete IP, lo cual tiene algunas implicaciones. Si recordamos, IPv4 estaba muy relacionado con los protocolos de niveles superiores, hasta el punto de que la cabecera IP tiene un campo en el que se especifica el protocolo que está utilizando el datagrama IP. El paso a la versión 6 implica una modificación de los protocolos de nivel superior relacionados, como por ejemplo ICMP, OSPF o RIP. Las principales ventajas de IPv6 sobre IPv4 son: Espacio de direcciones mayor. Las direcciones IPv6 han sido ampliadas a 128 bits. El número de direcciones diferentes que pueden utilizarse es enorme. Teóricamente serían 2128 direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones. Formato de la cabecera IP mejorado Ahora el datagrama IP se compone de una cabecera base a las que se le puede añadir una serie de cabeceras de extensión. Nuevas opciones Con posibilidad de ampliaciones, y que contemplan con mayor preocupación los aspectos relacionados con la seguridad. En lo que respecta al direccionamiento, hemos dicho que la nueva dirección IP se amplía a 128 bits (16 bytes). Los 128 bits se dividen en 8 secciones de dos bytes de longitud cada una. La dirección se expresa en notación hexadecimal separando las secciones con dos puntos. Por tanto, la dirección IP consta de 32 dígitos hexadecimales, separados en grupos de 4 por dos puntos:
A92E:009A:08B1:F001:0092:0001:000A:A100
La red Internet. El modelo TCP/IP.
27
Preparación TIC- Abril 2004
Normalmente, en una dirección IP hay muchos dígitos que son 0. En esos casos, se puede abreviar la dirección omitiendo los ceros al inicio de cada sección. La dirección anterior quedaría como sigue:
A92E:9A:8B1:F001:92:1:A:A100 Con el objetivo de ampliar las posibilidades de Ipv4, se definen las siguientes categorías de direcciones: Unidestino (unicast) Se refieren a un único nodo de la red, concreto. Multidestino (multicast) Se refieren a un conjunto de nodos de la red, de manera que un paquete dirigido a una dirección multidestino debe ser entregado a todos los nodos del grupo. A cualquier destino (anycast) De forma similar a las direcciones multicast, se refiere a un conjunto de nodos de la red, pero con una peculiaridad. Un paquete dirigido a una dirección anycast debe ser entregado solamente a uno de los nodos del grupo. Normalmente se seleccionará el nodo más cercano o más accesible desde el origen. Se elimina el direccionamiento de broadcast. En cuanto a la transición desde Ipv4 a Ipv6, existe una técnica que permite a los hosts y routers tunelar dinámicamente paquetes Ipv6 sobre la infraestructura Ipv4 existente. Los nodos que vayan a utilizar esta técnica recibirán una dirección unicast. En lo que se refiere al formato del paquete en IPv6, éste se compone de una cabecera obligatoria de 40 bytes seguido de lo que se denomina la carga. La carga está compuesta por las cabeceras opcionales de extensión y los datos.
Cabecera base (40 bytes)
Carga (hasta 65.535 bytes)
Cabeceras de extensión
Datos del nivel superior
La cabecera contiene los siguientes campos: Versión (VER). Está compuesto por los primeros 4 bits de la cabecera. En este caso deberá estar especificada la versión 6. Prioridad (PRI). Está compuesta por los siguientes 4 bits y define la prioridad del paquete. Los códigos de 0 a 7 se refieren al tráfico con control de congestión y flujo. Los códigos de 8 a 15 se refieren al tráfico sin control de congestión. En la tabla siguiente se muestran los primeros 8 códigos: La red Internet. El modelo TCP/IP.
28
Preparación TIC- Abril 2004
PRI 0 1 2 3 4 5 6 7
Tipo de tráfico Ningún tráfico específico Tráfico de fondo Tráfico de datos no esperados
Significado Prioridad no definida Ejemplo: noticias El receptor no sabe que le va a llegar la información, y un poco de retardo no importa. Ejemplo: correo electrónico Reservado --Tráfico de gran cantidad Transferencia de grandes volúmenes de de datos esperados datos mietrnas el usuario espera. Ejemplo: http, FTP. Reservado --Tráfico interactivo Ejemplo: TELNET Tráfico de control Ejemplo: Protocolos de encaminamiento (RIP, OSPF…) y de gestión (SNMP).
Etiqueta de flujo: permite ofrecer un tratamiento especial a los paquetes de un flujo de datos (circulación por el mismo camino, uso de los mismos recursos, mismo tipo de seguridad, etc…) Longitud de la carga: Longitud total del datagrama, excluyendo la cabecera base. Cabecera siguiente: código que indica el tipo de cabecera que sigue a la cabecera base.
Código 0 2 6 17 43 44 50 51 59 60
Cabecera siguiente Opción salto a salto ICMP TCP UDP Encaminamiento origen Fragmentación Carga de seguridad cirfada Autenticación Nula Opción de destino.
Límite del salto (hop limit): equivale al campo TTL (Time To Live) de la cabecera IPv4, es decir, indica el número máximo de nodos que atravesará el datagrama antes de ser descartado.
ICMP
ICMP es un mensaje que tiene como misión comunicar los mensajes de error, y además las solicitudes y respuestas entre nodos de la red. Se encuentra definido en la RFC 792. Estos mensajes son enviados dentro de un datagrama IP: La red Internet. El modelo TCP/IP.
29
Preparación TIC- Abril 2004
Encabezado del datagrama IP
Área de datos del datagrama IP
Tipo
Datos ICMP
Dentro de los tipos a los que puede pertenecer un mensaje ICMP, destacan por su importancia los tipos 0 y 8 (Respuesta y solicitud de eco respectivamente), el 11 (tiempo excedido para un datagrama) y el 3 (destino inaccesible):
Código de tipo 0 3 4 5 8 11 12 13 14 15 16 17 18
Tipo de mensaje ICMP Respuesta de eco (Echo Reply) Destino inaccesible (Destination Unreachable) Disminución del tráfico desde el origen (Source Quench) Redireccionar (cambio de ruta (Redirect) Solicitud de eco (Echo Request) Tiempo excedido para un datagrama (Time Exceded) Problema de Parámetros (Parameter Problem) Solicitud de marca de tiempo (Timestamp) Respuesta de marca de tiempo (Timestamp Reply) Solicitud de información (obsoleto) (Information Request) Respuesta de información (obsoleto) (Information Reply) Solicitud de máscara (Addressmask) Respuesta de máscara (Addressmask Reply)
ARP
ARP, cuyas siglas significan “Ardes Resolution Protocol) es un protocolo que sirve para obtener la dirección MAC de una estación una vez que conocemos su dirección IP. Cuando dos máquinas en una red de área local quieren comunicarse, la cabecera del paquete debe ser las direcciones MAC de destino y origen. De este modo, surge el problema de conocer cuál es la dirección de nivel 2 de la máquina, de dirección IP conocida, con la que queremos dialogar. Para resolver este problema se desarrolló el protocolo ARP. Cuando queremos conocer la dirección MAC del ordenador en que nos encontramos es suficiente con interrogar al propio adaptador de red (con el comando ipconfig en Windows 2000, por ejemplo), pero para enviar un datagrama necesitamos conocer también la dirección MAC del ordenador de destino. El protocolo ARP obtiene la dirección MAC correspondiente a una dirección IP.
La red Internet. El modelo TCP/IP.
30
Preparación TIC- Abril 2004
Cada ordenador almacena una tabla ARP donde guarda las asociaciones que conoce entre direcciones físicas y direcciones IP. De esta forma, cuando tiene que enviar un datagrama, consulta esta tabla y busca la dirección MAC asociada a la dirección IP de destino. Una vez conocida la dirección física de destino, procede a enviar los datos por medio del protocolo que se esté utilizando en la red (Ethernet, Token Ring, …). Suele ocurrir que muchas veces la dirección de destino no se encuentra en la tabla, por lo que tiene que preguntar para saber cuál es la dirección MAC que le corresponde. El procedimiento para hacerlo es el siguiente: Envía una trama de “Petición ARP” a todas las estaciones de la red (realiza un broadcast o mensaje de difusión) El protocolo ARP de la máquina destino verifica que el solicitante pide su dirección IP. Emite una trama de “Respuesta ARP” incorporando su dirección MAC e IP. Se recibe la respuesta guardando el resultado en la tabla, pudiendo emitir a partir de entonces datagramas IP. Las tablas ARP reducen el tráfico de la red al evitar preguntas ARP innecesarias. Sin embargo, para evitar incongruencias en la red debido a posibles cambios de direcciones IP o adaptadores de red, se asigna un tiempo de vida de cierto número de segundos a cada entrada de la tabla. De las redes externas sólo tenemos una MAC, la del router que lleva a ellas, por ello a veces todas nuestras comunicaciones funcionan con una sola entrada MAC (si su destino es para estaciones fuera de nuestra red, siempre tendremos la MAC del router que nos lleva de salida). Por contraposición un switch central puede almacenar miles de MAC.
RARP
En ciertas ocasiones surge el problema inverso. Una máquina conoce su dirección MAC pero no le ha sido asignada su dirección IP (por ejemplo, un X-Terminal en el momento de arrancar). Para este tipo de situaciones se creó el protocolo RARP (Reserve Address Resolution Protocol). El funcionamiento es similar al ARP sólo que ahora se requiere que haya una máquina que actúe como servidor de RARP (al contrario que en ARP donde no existe el concepto de servidor, todas las máquinas son iguales). El paquete RARP request lleva como tipo en la cabecera Ehternet el código 0x8035 en lugar del 0x0806 de ARP. El servidor de RARP contiene una tabla con la dirección hardware de cada máquina a la que presta servicio y la correspondiente dirección IP que debe asignarle. Esta dirección va contenida en el paquete de RARP reply.
La red Internet. El modelo TCP/IP.
31
Preparación TIC- Abril 2004
4.3 Routing El router o encaminador es un dispositivo que opera a nivel 3 (nivel de red). Estos dispositivos conforman los nodos de una red, y el objetivo de cada router es determinar qué ruta debe utilizar para reenviar los datagramas, de manera que puedan llegar a su destino. Para ello, los routers se valen de una tabla de enrutamiento, en la que especifica dado un destino concreto a alcanzar, el lugar por donde deben enviar el datagrama. Las entradas de esta tabla de enrutamiento las puede crear manualmente el administrador de red mediante rutas estáticas, o se puede confeccionar a través de procesos dinámicos ejecutados en la red (protocolos de enrutamiento). Después de que el router determina qué ruta debe utilizar, procede a enviar el paquete. Toma el paquete que aceptó en una interfaz de red, y lo envía hacia otra interfaz o puerto que represente la mejor ruta hacia el destino del paquete. El algoritmo básico que utiliza un router para determinar por dónde enviar un paquete que le acaba de llegar es el siguiente:
¿Para mí?
Mantenerlo (host local)
Enviar a través de ARP (Host conectado direcamente)
¿Para mi red?
¿Tengo ruta específica?
Enviar al Gateway (Host remoto)
¿Tengo ruta por defecto?
Enviar al Gateway (Ruta al Host remoto)
Sin ruta
La red Internet. El modelo TCP/IP.
32
Preparación TIC- Abril 2004
Protocolos dinámicos de routing
Los protocolos de enrutamiento utilizan algoritmos que generan tablas dinámicas de enrutamiento en cada nodo de la red. Se pueden clasificar en general según las siguientes características: Protocolos dinámicos de enrutamiento interiores. Se utilizan para encaminar los datagramas dentro de una red privada, de un mismo proveedor. Es decir, todos los routers están bajo un mismo sistema de administración común o autónomo (que no está conectado a través de Internet). Protocolos dinámicos de enrutamiento exteriores. Se utilizan para las comunicaciones entres sistemas autónomos (los diferentes operadores de comunicaciones) a través de Internet. Entre los ejemplos de protocolos exteriores se incluyen el Protocolo de Gateway Fronterizo (BGP) y el Protocolo de Gateway Exterior (EGP). Si fijamos nuestra atención únicamente en los protocolos de enrutamiento interiores, podemos clasificarlos en tres tipos: Protocolos basados en el vector distancia. Estos protocolos se basan en la medición de las distancias en base al número de nodos que tiene que saltar para llegar a su destino, y elige la ruta más corta. El protocolo más común de este tipo es RIP (versión 1 ó 2). Protocolos basados en el Estado del Enlace. Evalúa cada enlace en base a una fórmula en la que se tiene en cuenta la velocidad del enlace y si se desea, también el tiempo de respuesta. El ejemplo más común es OSPF. Protocolos híbridos. Toma ideas de ambos, intentando llegar a un punto de equilibrio con las virtudes de los dos anteriores. El ejemplo más conocido es EIGRP, aunque es un protocolo propietario de la casa Cisco.
4.4 Nivel de transporte La capa de transporte implementa protocolos extremo a extremo, es decir, pretende garantizar una comunicación fiable y sin errores desde el origen hasta el destino, como si en el medio no existiera una red. Esta capa además se encargará de algunas funciones de control de flujo. En el modelo TCP/IP se definen principalmente dos protocolos: El protocolo TCP (Transmisión Control Protocol) Es un protocolo orientado a la conexión con control de errores que se encarga también del control de flujo, y del troceado y reensamblado de flujos (con garantía de secuenciamiento).
La red Internet. El modelo TCP/IP.
33
Preparación TIC- Abril 2004
El protocolo UDP (User Datagram Protocol) Es un protocolo sin conexión (datagrama). No realiza ningún tipo de control de errores, ni garantiza el secuenciamiento de la información, pero es muy rápido. Útil para peticiones aisladas, o transmisión de audio o vídeo.
TCP
Como se ha dicho, TCP es un protocolo orientado a conexión, que ofrece un servicio de flujo (stream) de bytes. Permite establecer una conexión fiable, para lo cual precisa una etapa previa de conexión y una posterior de desconexión a la transmisión de datos. La unidad de información que se transmite se denomina “segmento”. Cuando TCP emite un segmento, mantiene un temporizador esperando su asentimiento por el otro extremo. Si expira el temporizador se reenvía el segmento. Si TCP recibe datos del otro extremo de la conexión, emite un asentimiento. Los segmentos TCP son enviados como datagramas IP, por tanto pueden llegar desordenados. Este problema lo soluciona TCP reordenándolos en el destino. Podría ocurrir asimismo que un segmento TCP llegara duplicado al destino, en este caso TCP eliminaría las redundancias presentadas. Además, TCP proporciona un control de flujo (tamaño de la ventana), adecuando un emisor rápido con un receptor lento. El protocolo TCP se complementa con el protocolo IP de tal manera que el datagrama IP quedaría de la siguiente manera:
Cabecera IP
Cabecera TCP
Datos TCP
Antes de cualquier envío de información, se requiere el establecimiento de la conexión, que se produce como se describe en el diagrama. Para numerar la secuencia de segmentos se inventan unos n y m aleatorios. El mensaje SYNC es una petición de sincronización (inicio de conexión) y el comando ACK es un paquete de reconocimiento: Proceso 1
Proceso 2
Passive Open (espera a una petición) Active Open Send SYNC, seq=n
Receive SYNC
Receive SYN+ACK
Send SYN seq=m, ACK=n+1
Send ACK m+1
Connection established
La red Internet. El modelo TCP/IP.
34
Preparación TIC- Abril 2004
Ahora bien, sabemos que la capa de red transfiere datagramas entre dos ordenadores a través de la red utilizando como identificadores las direcciones IP. La capa de transporte añade la noción de puerto para distinguir entre los muchos destinos dentro de un mismo host. No es suficiente con indicar la dirección IP del destino, además hay que especificar la aplicación que recogerá el mensaje. Cada aplicación que esté esperando un mensaje utiliza un número de puerto distinto: la aplicación está a la espera de un mensaje en un puerto determinado (escuchando por un puerto). Pero no sólo se utilizan los puertos para la recepción de mensajes, también para el envío: todos los mensajes que envíe un ordenador debe hacerlo a través de uno de sus puertos. Por ejemplo, en la transmisión entre el ordenador 190.10,123.9 y el 108.22.100.23, el primero podría utilizar su puerto 1256 y el segundo, el 21. Esto se resume diciendo que una conexión TCP viene definida por un cuarteto: (IP origen, Puerto origen, IP destino, Puerto destino) Cada puerto es un número de 16 bits, por lo que existen 65.536 puertos en cada ordenador. Las aplicaciones utilizan estos puertos para recibir y transmitir los mensajes, pero escogerán unos puertos u otros según unos criterios: Puertos del 0 al 1023. Las aplicaciones servidores utilizan unos números de puerto prefijados: son los llamados puertos well-known (bien conocidos). Estos puertos están definidos en la RFC 1700 y se pueden consultar en http://www.iana.org/assignments/port-numbers http://www.iana.org/assignments/port-numbers.. Puertos del 1024 en adelante. Los números de puerto de las aplicaciones cliente son asignados dinámicamente y superiores al 1024. Cuando una aplicación cliente quiere comunicarse con un servidor, busca un número de puerto libre y lo utiliza. Esto no quiera decir que las aplicaciones deben obligatoriamente seguir estos criterios, pero son los que suelen utilizarse. A la hora de enviar los mensajes, se podrían determinar unos puertos distintos, pero hacerlo de la manera recomendada hace que los sistemas sean más intuitivos. Ejemplos de puertos bien conocidos:
La red Internet. El modelo TCP/IP.
Protocolo
Puerto
ftp-data ftp Telnet Smtp Domain Tftp http Pop3
20/tcp 21/tcp 23/tcp 25/tcp 53/tcp/udp 69/udp 80/tcp 110/tcp 35
Preparación TIC- Abril 2004
UDP
Como se ha mencionado anteriormente, UDP es un protocolo no orientado a conexión, en la que cada operación de salida efectuada por un proceso genera un único datagrama UDP. UDP no ofrece ninguna garantía de secuencia (los datagramas pueden llegar desordenados). Asimismo, tampoco ofrece ninguna garantía de fiabilidad, lo que significa que los datagramas pueden ser incorrectos o simplemente pueden no llegar siquiera. Además, tampoco ofrece ningún mecanismo de control de flujo, por lo que es misión del protocolo de nivel de aplicación el control de flujo y de errores. Entonces, si el protocolo UDP no garantiza nada, ¿por qué es tan útil? Quizás hace unos años las redes eran de tan poca calidad que el control de errores y el control de flujo tenían una importancia capital. Según ha ido avanzando la tecnología, las redes se han vuelto más fiables, y por lo tanto los errores que se producen han disminuido considerablemente. Esto no significa que no haya errores, pero implica que la relación contenida entre el riesgo a perder el datagrama y la velocidad de gestión que se alcanza comienza a ser muy rentable en algunos casos. En la siguiente tabla se puede encontrar un resumen de los protocolos más conocidos que utilizan TCP y los que usan UDP: Protocolos basados en TCP
Protocolos basados en UDP
TELNET (Terminal remoto) FTP (Transmisión de ficheros) SMTP (correo electrónico) http (Páginas web) RPC (ejecución de procesos remotos)
SNMP (gestión de red) BOTTP (arranque remoto) DNS (nombres de dominio) RPC (Ejecución de procesos remotos)
4.5 Nivel de aplicación La capa de aplicación es la más alta en la torre de comunicación que representa el modelo TCP/IP. Por ello, es en esta capa donde se implementan las funcionalidades últimas que se pretenden alcanzar, y que requieren una comunicación entre varios nodos. Todos los niveles inferiores del modelo están diseñados para ofrecer a la capa de aplicación unas funciones últimas de comunicación, y esta capa las utilizará para presentar al usuario final la utilidad que necesita. La red Internet. El modelo TCP/IP.
36
Preparación TIC- Abril 2004
Por lo tanto, en este nivel es donde se recogen los protocolos que ofrecen unas funciones directas al usuario final. Vamos a ver a continuación algunas de ellas. DNS
DNS (Domain Name System) es un protocolo que permite convertir los nombres de las máquinas en direcciones IP y a la inversa. Aparece definido en las RFCs 1034 y 1035. La implementación más utilizada (incluida en las máquinas Solares, AIX y Linux) es la desarrollada en la Universidad de Berkeley: Berkel ey: BIND (Berkeley Intenet Name Domain) La función primera de este sistema es únicamente facilitar la vida a los usuarios de los sistemas, ya que, para comunicarse entre ellos, las máquinas no utilizan nombres sino direcciones IP, mucho más difíciles de recordar para las personas. Los conceptos básicos que hay que asimilar en DNS son los de dominio y jerarquía de la autoridad. Para nombrar a las máquinas se las incluye inclu ye en dominios que a su vez se subdividen en otros dominios. Cada dominio ejerce su autoridad sobre los dominios inmediatamente inferiores formando una estructura jerarquizada en forma de árbol. El nombre de la máquina se forma añadiendo un dominio tras otro empezando por el de mayor rango a la derecha y separándolos por puntos.
Ejemplo:
sandoval.mcyt.es
A nivel de red, DNS sigue el esquema cliente-servidor. Una máquina permanece a la escucha por el puerto 53 (puerto por defecto, aunque recordemos que se podría especificar cualquier otro, lo cual no es recomendable) y los clientes se conectan para hacerles consultas acerca de la correspondencia de direcciones IP. En cada dominio hay un servidor primario, que contiene las tablas maestras para ese dominio y decide los cambios que se pueden producir. Además puede haber también uno o varios servidores secundarios, que contestan peticiones de resolución para ese dominio pero no tienen autoridad para cambiar las tablas, simplemente las copian del servidor primario. Es decir, que dependiendo de la función que realicen los servidores de DNS se pueden dividir en dos grupos: servidores con autoridad sobre el dominio y servidores sin autoridad sobre el dominio: Servidores con autoridad sobre el dominio Son aquellos que al arrancar obtienen una copia física de las tablas de la zona que están sirviendo. Cuando contestan a una petición de resolución indican su condición de “servidores con autoridad sobre el la zona “ (authoritative nameserver) con un bit de la cabecera de DNS (authoritative answer). Dependiendo del mecanismo utilizado para obtener esta tabla se distinguen tres tipos: Primario o maestro Contiene la copia maestra de la tabla en su disco duro. Es el único con autoridad para modificar los datos incluidos en la tabla. Como tal aparece en la tabla dentro del registro SOA
La red Internet. El modelo TCP/IP.
37
Preparación TIC- Abril 2004
(Start of Authority). Además en la entrada debe aparecer un registro del tipo NS con su nombre. Secundario o esclavo Contiene una copia de la tabla que, habitualmente, ha recogido de un servidor maestro (aunque esto no es necesario ya que un servidor esclavo también puede servir tablas). Como servidor secundario reconocido debe tener una entrada como registro del tipo NS. Oculto Son servidores con autoridad (tienen una copia de las tablas) pero que no están reconocidos como servidores esclavos (no tienen entradas NS). En principio, cualquier servidor autorizado puede transferirse las tablas (ya sea del maestro o de algún esclavo) y comportarse como servidor secundario, aunque no esté reconocido como tal dentro del dominio (no tienen una entrada NS). La principal diferencia con un esclavo es que en caso de variación de las tablas por parte del maestro, éste no será informado. Servidores sin autoridad sobre el dominio Son aquellos que conocen la respuesta a la petición de resolución no porque se hayan transferido una copia de la tabla desde un servidor con autoridad, sino porque previamente habían resuelto una petición similar y la respuesta la habían almacenado en caché. Dependiendo de la forma en que han obtenido esta primera respuesta se distinguen dos tipos de servidores: “caché” normales si ellos mismos han conseguido la información (conectándose a la raíz, y descendiendo por las ramas del DNS) o “forwarders” si reenvían la petición a otro servidor que serán el encargado último de resolver. Estos últimos son muy útiles en redes privadas que necesitan resolver direcciones de Internet a través de un único servidor con acceso a la Red. Para cada zona existirá un único servidor primario que tendrá las tablas maestras introducidas a mano por el administrador de la red. Este servidor transmite las tablas a los servidores secundarios declarados (con entrada del tipo NS). Para reducir las incongruencias entre servidores, los servidores secundarios preguntan cada cierto tiempo al servidor del que se descargan las tablas (normalmente será el primario) si ha cambiado algo. En caso afirmativo se descargan la tabla completa de nuevo. Si se perdiera la conexión de los servidores secundarios con el servidor del que se descargan las tablas, pasado un tiempo configurable los servidores secundarios eliminarían sus propias tablas, dejando de esta forma de servidor las direcciones en ellas contenidas.
DHCP
DHCP es un protocolo de nivel de aplicación que permite la asignación dinámica y estática de direcciones IP. Es decir, una estación de trabajo se podría configurar para que no tuviera una dirección IP fija, sino que cada vez que arranca pregunte al sistema mediante DHCP cuál es su dirección IP, y se le asigne una dinámicamente y en el momento.
La red Internet. El modelo TCP/IP.
38
Preparación TIC- Abril 2004
Además, DHCP puede proporcionar también toda la información necesaria para configurar los parámetros de TCP/IP: router por defecto, servidores DNS, etc. Tiene tres componentes básicos: Servidores DHCP (definen rangos de direcciones IP y exclusiones) Clientes DHCP (son los que requieren que se les asigne una dirección IP de forma dinámica). Agentes de reenvío Se puede describir el funcionamiento en que una máquina realiza la petición de una dirección IP y se le asigna por DHCP en cuatro etapas: El cliente DHCP pide una dirección IP mediante un mensaje de difusión (broadcast) en su red. El servidor DHCP ofrece una dirección. El cliente acepta la oferta y solicita la confirmación. El servidor asigna oficialmente una dirección.
SNMP
SNMP es un protocolo de gestión de red que recolecta información. Define agentes que se encargan de colectar esta información y enviarla a la base de información de administración (MIB). Por ello, SNMP representa el lenguaje de comunicación entre los administradores de red y sus agentes distribuidos. Un agente es un proceso concurrente, el cual realiza una acción cuando ocurre un evento. Son subsistemas del administrador que residen en una estación de trabajo u otro dispositivo de red, recogiendo la información y reportándola periódicamente al administrador principal. Las aplicaciones compatibles con SNMP pueden usar esta información para reportar el estado de la red: tráfico, eficiencias, caídas de líneas, etc.
HTTP
El protocolo HTTP sirve para transmitir páginas web a través de la red, es decir, se usa para acceder a la información de la www. El formato de las páginas web vendrá especificado por el lenguaje de etiquetado HTML y otros lenguajes de ampliación. HTTP está basado en el método de petición-respuesta, de manera que una transacción HTTP se divide en cuatro etapas: El navegador abre la conexión HTTP. El navegador envía una petición al servidor. En esta petición se especifica la URL de la página a la que se quiere acceder. El servidor envía la respuesta al navegador. El cliente muestra la página web y cierra la conexión HTTP con el servidor. HTTP es un protocolo de nivel de aplicación que no conserva información de estado, es decir, el protocolo no recuerda nada de una petición a la siguiente. Existen las especificaciones HTTP 1.0 (RFC 1945) y la HTTP 1.1(RFC 2616). En esta última sólo se establece una conexión por cada tipo de elemento existente en la página. Las
La red Internet. El modelo TCP/IP.
39
Preparación TIC- Abril 2004
páginas transmitidas mediante HTTP pueden haber sido generadas bien de manera estática o bien de manera dinámica en el servidor. FTP
FTP es un protocolo que permite la transferencia de ficheros desde el servidor al cliente y viceversa. Se utiliza principalmente para la transferencia de ficheros de tamaño medio y grande, en cualquier formato. Utiliza puertos diferentes según se trata de las operaciones de control o de las operaciones de transmisión tr ansmisión de datos, por lo que mantienen un mínimo de dos conexiones. FTP está basado en el protocolo TCP, es decir, orientado a conexión. Se ha elaborado un protocolo basado en UDP, que por lo tanto no genera las fases de establecimiento y desestablecimiento de una conexión, y que aunque no realiza ninguna comprobación de errores ni de control de flujo es más rápido y más sencillo, llamado TFTP (Trivial FTP).
Correo electrónico
El correo electrónico permite el envío de mensajes de texto de unas cuentas de correo a otras. Para que esto sea posible, se deben definir una serie de servidores de correo se crearán los buzones de cada usuario que utilice el correo. Los mensajes serán enviados al buzón de destino, que será aquel en donde el usuario destino tenga configurado su buzón. Una vez depositado el mensaje en el servidor de correo correspondiente, será labor del destinatario acceder a él para leer el correo. En unas ocasiones podrá descargarse estos correos a su ordenador, y en otros casos estos correos se quedarán en el servidor. Para el envío de correos electrónicos, el protocolo del modelo TCP/IP más utilizado es el SMTP (Simple Mail Transfer Protocol). Este protocolo está definido en las RFC-821, RFC-822, RFC-1049 y RFC-974. SMTP está basado en el principio de entrega extremo a extremo, aunque
algunas implementaciones permiten usar servidores intermedios. Para localizar el servidor al que realizar el envío de mensajes, se utiliza el protocolo DNS. Cada mensaje consta de una cabecera (sobre) y de un contenido. Como se ha dicho, SMTP sirve para enviar correos electrónicos, pero una vez que el correo llega al servidor de correo destino, es el usuario el que voluntariamente y a iniciativa propia debe acceder al servidor para leer el correo. Este acceso no se puede realizar por SMTP, sino que existen otros protocolos para este fin. En particular podemos nombrar POP-3 e IMAP-4. POP-3 se encuentra definido en la RFC-1939, y proporciona un sistema básico
para que un cliente pueda interactuar con el servidor de correo para gestionar un buzón. Se basa en una máquina de estados con tres valores posibles: Autorización. El cliente envía la identificación al servidor.
La red Internet. El modelo TCP/IP.
40
Preparación TIC- Abril 2004
Transacción. El cliente puede ejecutar comandos de escucha, recogida de mensajes y borrado. El cliente debe mandar el comando QUIT para que se pase al estado de actualización. Actualización. En este estado, el servidor actualiza el buzón de correo. IMAP-4 está definido en la RFC-2060 y tiene funciones de cliente y de servidor.
Ofrece una serie de ventajas sobre POP-3 que lo hacen más potente en algunos casos en los que se requiere una mayor funcionalidad. En general, IMAP-4 mantiene los mensajes en el servidor y manda copias a los clientes. Soporta tres modelos de funcionamiento: Offline, la mayor parte del tiempo el cliente se encuentra desconectado del servidor, al que realiza conexiones periódicas para descargar los mensajes. Online, el cliente se encuentra permanentemente conectado al servidor de correo, por lo que los cambios efectuados en local se reflejan directamente en el servidor. Desconectado, mezcla de los dos anteriores. El cliente copia y hace los cambios en local, y posteriormente se vuelcan esos cambios al servidor. Por otro lado, la sesión IMAP-4 puede encontrarse en alguno de los siguientes cuatro estados: No autenticado. En este estado, el cliente envía su identificación al servidor. Autenticado. El cliente selecciona un buzón para trabajar. Seleccionado. Ya se ha establecido la conexión con el buzón. Logout. La conexión se termina a petición del cliente o por algún otro motivo.
La red Internet. El modelo TCP/IP.
41
Preparación TIC- Abril 2004
5. Infraestructura de acceso a Internet Hasta aquí se ha ido describiendo cómo nació Internet, la estructura y los principios en los que está basado, y se ha descrito la arquitectura TCP/IP sobre la que está construido. La universalidad que caracteriza esta red de redes es sin lugar a dudas la característica que hace a Internet una red tan importante hoy en día. Poco a poco se pretende que el mayor número de ciudadanos tengan la posibilidad de acceder a esta red y aprovecharse así de sus ventajas. Es precisamente esa universalidad la que permite que podamos consultar información y acceder a servicios que se encuentran en casi cualquier parte del planeta. Pero esa universalidad tiene otra contrapartida, y es que cualquier persona se puede conectar a Internet para aprovecharse de su potencial y realizar todo tipo de acciones perjudiciales. Cuando en nuestra organización vamos a instalar un acceso a Internet, ya sea para que nuestros usuarios puedan acceder a otros servicios externos, o ya sea porque somos nosotros los que vamos a ofrecer unos servicios al público de Internet, hemos de recordar que esta gran red de redes es la fuente potencial de daño más peligrosa. Al conectarnos a Internet, estamos abriendo una gran brecha de seguridad que tendremos que proteger adecuadamente. Para ello, existen multitud de configuraciones y multitud de mecanismos, aunque actualmente se piensa que lo más apropiado es implantar una protección de seguridad perimetral, también llamada de doble cortafuegos. Por supuesto, cada organización deberá personalizar el diseño de sus sistemas de seguridad, y hacer las variaciones que sean necesarias, pero vamos a ver en este punto cómo sería una estructura tipo.
5.1 Arquitectura de doble firewall con DMZ El cortafuegos (o firewall en inglés) es un software que examina las comunicaciones, aplicando las reglas que se definan sobre el flujo de datos. Estas reglas suelen impedir que ciertos paquetes atraviesen el cortafuegos, según se configure. Lo normal sería impedir de primeras que ninguna comunicación atraviese el firewall, e ir abriendo aquellas que se muestran necesarias poco a poco. En la arquitectura de protección de doble firewall, se establecen dos niveles de cortafuegos de manera secuencial. De esta forma, las comunicaciones que tengan por origen Internet, y como destino la red interna de la organización (y viceversa), deberán superar dos niveles de seguridad consecutivos. La red que se encuentra entre los dos niveles de protección se denomina “zona desmilitarizada” o DMZ. Esta red DMZ, nos va a permitir que instalemos en ella aquellos servidores que deben dar la cara al público. Estos servidores son los más peligrosos, porque al ser el punto principal de acceso por parte de los visitantes de Internet, en un supuesto ataque serían los que primero caerían. Si el servidor accedido de manera fraudulenta
La red Internet. El modelo TCP/IP.
42
Preparación TIC- Abril 2004
estuviera en la red interna, el atacante tendría acceso a dicha red, y por lo tanto nos encontraríamos ante un caso de peligrosidad muy alta. Sin embargo, si el servidor conquistado por el atacante se encuentra en la red intermedia, éste todavía debería proceder a un segundo ataque para acceder a la red interna. Podemos ver esta estructura de seguridad en el siguiente diagrama:
Firewall
Firewall
En la DMZ por tanto sería conveniente instalar todos los servidores “públicos”, entendidos como aquellos que van a albergar servicios públicos, o accesibles desde la La red Internet. El modelo TCP/IP.
43
Preparación TIC- Abril 2004
red Internet. En esta zona desmilitarizada, no deberíamos tener nunca información sensible, ni tampoco cualquier recurso que no sea estrictamente necesario para ofrecer los servicios nombrados. Algunos servicios también se pueden dividir en dos partes, de manera que se coloca un servidor en la DMZ que es el que da la cara, pero cuyas funciones están muy reducidas. Este servidor de front-end es el que realizaría una llamada al segundo servidor, ya colocado en la red interna, y que es el que realmente ofrece el servicio (servidor de back-end). De esta forma se consigue que el servidor crítico no esté accesible de una forma directa desde el exterior. Según qué servicios se pretendan ofrecer, se deberán instalar unos servidores u otros. Existen multitud de tipos, y cada uno puede estar en una máquina dedicada, o conviviendo en la misma máquina con otros.
5.2 Tipos de servidores En este punto se van a enumerar una lista de posibles servidores que se podrían implantar en una infraestructura de acceso a Internet para ofrecer servicios varios. Servidores en la DMZ
Como se ha dicho, estos servidores serán accesibles por los usuarios de Internet, y por lo tanto son los más susceptibles de ser atacados. De hecho, son los primeros que deberían ser atacados en cualquier intento de intrusión. En esta red no debería residir ningún tipo de recurso ni de información sensible. Como ejemplos podríamos nombrar: Servidor web Se encarga de recibir las peticiones HTTP a las páginas web que se ofrecen al público de internet. Por lo tanto, aparecen como el primer punto de contacto con nuestra organización. Una vez que la petición web es recibida por este servidor, se encargará de realizar las funciones necesarias para recuperar la página web solicitada y enviarla al solicitante. Si la página HTML solicitada es estática, y no contiene información transcendental, se podrá permitir su almacenamiento directamente en el servidor. Pero los normal será que el servidor web construya la página HTML apoyándose en peticiones a otros servidores. Servidor front-end de correo Este servidor, al igual que el servidor web anterior, es el encargado de dar la cara directamente al público de internet. Cada vez que se envíe desde internet un mensaje de correo que tenga por destino algún buzón de nuestra organización, este mensaje pasará por el servidor front-end de correo. Una vez recibido el mensaje, y tras realizar las funciones de seguridad que se hayan configurado, el mensaje se reencaminará hacia un servidor web que ya se encuentre en la red interna. En este servidor no deben almacenarse correos, dado que al encontrarse en la red DMZ es susceptible de ataques directos. Servidor antivirus Está siendo cada vez más usual la instalación de un u n servidor de antivirus en la DMZ. Este servidor se puede configurar para escasear diferentes tipos de comunicaciones entre La red Internet. El modelo TCP/IP.
44
Preparación TIC- Abril 2004
internet y nuestra organización. En este sentido, se podría configurar para examinar las descargas FTP, los ficheros adjuntos de los correos, los componentes ejecutables susceptibles de ser descargados en la navegación web y, en general, cualquier elemento que pueda estar infectado por un virus. Es especialmente importante en este punto recordar que el antivirus debe estar permanentemente actualizado, especialmente en los días posteriores al descubrimiento de una vulnerabilidad en los sistemas que tenemos. Sistema de Detección de Intrusiones Se trata de un sistema que monitoriza todo el tráfico de red en busca de unos patrones que se han definido como ataques conocidos. Estos patrones deben haber sido definidos con anterioridad, de manera que en el momento en que el sistema detecta una secuencia en el tráfico de red que coincida con alguno, se genera una alarma. Servidor Proxy Los proxies se utilizan en las organizaciones para configurar el acceso a internet por parte de los usuarios. Cuando un usuario se conecta a internet a través de un proxy, el punto visible desde la red pública es el proxy, que canaliza todas las conexiones. Los proxies además pueden ejercer otras funciones, como por ejemplo la de caché para páginas visitadas, o gestión de los sitios web accesibles. Servidores en la red interna Estos servidores son los que albergan las aplicaciones finales y además los datos asociados. Se supone que jamás serán accesibles directamente desde Internet, sino que serán los servidores de la DMZ los que se conectan a ellos. Podríamos nombrar: Servidor de aplicaciones Un servidor de aplicaciones web es un sistema que gestiona los componentes software que se integran en una aplicación web. Las llamadas a estos componentes se realizarán típicamente desde páginas dinámicas que se encuentran en el servidor web, o también desde otros componentes. Sistema de gestión de bases de datos Generalmente la información es almacenada en sistemas específicamente destinados para ello. Los sistemas de gestión de bases de datos se hacen imprescindibles en cualquier organización, y serán los encargados de almacenar los datos y proporcionar todas las herramientas necesarias para su utilización y gestión. Servidor de correo El servidor de correo es el encargado de almacenar todos los mensajes correspondientes al dominio o dominios que en él se hayan definido. Es importante que este servidor se encuentre en la red interna y suficientemente protegido, dado que el correo se ha convertido en la actualidad en una de las herramientas más importantes, si no la más importante, de trabajo en grupo. Sistema de Información Geográfica Existen multitud de sistemas de información que basan una parte de su funcionamiento en la gestión de información georreferenciada. Los sistemas de información geográfica ofrecen una plataforma muy útil para apoyar el funcionamiento de estos sistemas.
La red Internet. El modelo TCP/IP.
45
Preparación TIC- Abril 2004
Servidor de Workflow Un servidor de Workflow es útil para gestionar el flujo de trabajo o de tareas que se requieren para llevar a cabo un proceso o procedimiento. En este sentido se pueden definir tareas que son requisito de otras, mecanismos de aprobación o validación por parte de personas definidas para ello, y llevar a cabo el seguimiento y control de los hitos por los que se va pasando. Los servidores de workflow han sido ampliamente utilizados en la gestión de expedientes, dado que las funcionalidades que se ofrecen se ajustan en gran medida a la tramitación de un expediente. Gestor documental Los sistemas de gestión de bases de datos almacenan información estructurada, pero en muchas ocasiones es necesario guardar información que se encuentra en otros formatos. Un gestor documental se encarga del almacenamiento y gestión de documentos de cualquier tipo, implementando funcionalidades que apoyen esa tarea como búsqueda, recuperación de documentos, organización, etc. Hay que tener presente que estos sistemas suelen requerir una gran cantidad de espacio de almacenamiento, dada la naturaleza de la información que se guarda. gu arda. Servidor de directorio En otras ocasiones la información que se desea almacenar se ajusta más a las necesidades que cubre un servicio de directorio es decir, información ampliamente consultada que se modifica poco a lo largo del tiempo y que se organiza en una estructura de árbol. Servidor de fechado digital Los servidores de fechado digital se utilizan para garantizar la hora exacta en que se produjo una acción. Además permiten sincronizar otros servidores con una hora única.
La red Internet. El modelo TCP/IP.
46
Preparación TIC- Abril 2004
5. Desarrollo de aplicaciones web
5.1 Evolución de las aplicaciones El desarrollo de aplicaciones que puedan ser utilizadas por varios usuarios simultáneamente ha evolucionado bastante en los últimos veinte años. La filosofía de diseño ha pasado por varias fases, que se han visto caracterizadas por la llegada de nuevos conceptos, así como por cambios en la estructura del mercado de computadores. Se podrían distinguir cuatro fases en la evolución del desarrollo de aplicaciones de este estilo. En un principio se tenían grandes ordenadores a los que se conectaba una serie de terminales con escasa capacidad de procesamiento. En este esquema el ordenador central realizaba la práctica totalidad de la carga del proceso, y los terminales se dedicaban casi exclusivamente a presentar la información. Según fue evolucionando el mercado de los ordenadores de sobremesa y se fueron abaratando los precios, los terminales se vieron sustituidos por ordenadores con una gran capacidad de proceso, de memoria y de almacenamiento. Se comenzaron a desarrollar aplicaciones que tenían dos partes. Una parte se ejecutaba en el servidor de manera centralizada y la otra parte en los equipos de los usuarios. Esta última parte, llamada parte de cliente, podía albergar una capacidad de trabajo considerable. Las dos aplicaciones (aplicación cliente y aplicación servidor) se comunicaban entre sí de una manera específica y predefinida. Esta nueva arquitectura, denominada cliente-servidor demostró tener alguna desventaja. Se requería construir dos aplicaciones, y definir la manera en que se iban a poner de acuerdo. Pero sobre todo, los problemas llegaban a la hora de la instalación y del mantenimiento. Para su puesta en funcionamiento, había que instalar la aplicación cliente en cada uno de los puestos que iban a acceder al servidor. Pero no sólo la primera vez. Cada vez que la aplicación cliente se modificaba por cualquier razón (nuevas funcionalidades, solución de problemas conocidos, o simplemente tareas de mantenimiento preventivo), había que volver a actualizar el software en todos los puestos de cliente. Cuando estos puestos de cliente eran pocos, se podía asumir, pero cuando los puestos de cliente eran muy numerosos, y repartidos por un amplio espectro geográfico, el problema podía llegar a convertirse en insostenible. Con la llegada de Internet, aparecía un nuevo concepto de aplicación central a la que accedían numerosos clientes. El principio de la navegación por el mundo de la WWW era sencillo, pero muy potente: el cliente sólo tiene que instalarse un software muy concreto, y que en principio lo único que hace es interpretar una serie de estándares: el navegador web. Este navegador web puede ser construido por fabricantes distintos, porque su funcionamiento está bien definido por los estándares, y es el único requisito para poder acceder a las páginas de cualquier aplicación web. Con esta nueva filosofía, se combate el problema de las aplicaciones clienteservidor, es decir, la instalación en cliente. El cliente ya no necesita ninguna instalación personalizada, y si la aplicación cambia, sólo se necesita modificar en el servidor. La
La red Internet. El modelo TCP/IP.
47
Preparación TIC- Abril 2004
instalación y mantenimiento de software en los clientes ha sido minimizada, si no eliminada, de manera muy productiva. El mundo del desarrollo web ha ido proporcionando mecanismos para poder desarrollar una parte de presentación muy potente, mediante lenguajes de scripting que se ejecutan en el cliente, utilidades de HTML dinámico, o plug-ins que se descargan automáticamente y se incorporan al navegador. En poco tiempo se distinguieron tres capas bien diferenciadas en la arquitectura de desarrollo web: Capa de presentación. Cuyo elemento más importante es el navegador, y que ha sido dotada de numerosas funcionalidades. Capa de aplicación. Encargada de ejecutar la lógica del negocio, de manera centralizada en el servidor. Capa de datos. Cuyo único objetivo es el almacenamiento y gestión de los datos. Normalmente está representado por un Sistema de Gestión de Bases de Datos. Según ha ido evolucionando el mundo del desarrollo web, la capa de aplicación ha sido particionada en otras capas, según la funcionalidad que se persiga. En este sentido podemos hablar de la arquitectura en N capas como una evolución de la arquitectura en 3 capas. Se dice en N capas, porque es factible descomponer el problema en tantas capas como sea necesario y se considere conveniente, para aislar de manera conceptual los niveles en los que se ejecuta cada aplicación. La aproximación más corriente consiste en dividir la capa de aplicación en otras dos capas: la capa de servicio web, y la capa de aplicación propiamente dicha. En los próximos puntos vamos a estudiar cada una de estas capas con más profundidad.
5.2 Capa de presentación El Navegador
La capa de presentación, como se ha dicho, está principalmente representada por el navegador. El navegador es un programa que se encarga de establecer la conexión con el servidor mediante el protocolo http, recibir las páginas HTML y mostrarlas. Existen multitud de navegadores en el mercado, y en principio podríamos elegir cualquiera de ellos para poder visualizar la mayor parte de las páginas de Internet, aunque a la hora de la verdad algunos fabricantes suelen introducir “mejoras” o particularidades que no son estándar, y que por lo tanto hacen que algunas páginas se muestren de forma distinta dependiendo del navegador que se utilice, e incluso que algunas partes no funcionen. Podemos nombrar el Internet Explorer de Microsoft, el Netscape Navigator Navigator o el Mozilla como los ejemplos más conocidos, aunque existen muchos otros. HTML y DHTML
HTML es un lenguaje de etiquetado que permite construir las páginas web. Mediante HTML, se declara la composición de la página, y la forma en que La red Internet. El modelo TCP/IP.
48
Preparación TIC- Abril 2004
aparecerán los datos en la pantalla. Han aparecido nuevas tecnologías que permiten ampliar la funcionalidad de HTML. Por ejemplo HTML dinámico, ó DHTML. HTML dinámico, ante todo, permite modificar el aspecto o contenido de una página web sin necesidad de cargar una nueva. Permite, por ejemplo, variar el color de fondo de una página, aumentar el tamaño de un texto, variar el color de un botón, hacer aparecer una lista desplegable, mover una figura, etc… Estos cambios se harán de forma dinámica, atendiendo a las interacciones provenientes del usuario. Los navegadores son los encargados de visualizar los cambios de forma autónoma en el equipo del cliente. Lenguajes de Scripting: JavaScript
Además, también se pueden utilizar lenguajes de scripting para aumentar la funcionalidad de la capa de cliente. Los lenguajes de scripting se utilizan para incorporan en las páginas web porciones de código, de forma que puedan ser ejecutadas cuando se lee la página. Algunos lenguajes conocidos de scripting son Javascript, JScript o VbScript. Al ser Javascript el lenguaje basado en un estándar, cualquier navegador debería ser capaz de interpretarlo, no así como ocurre con JScript o VbScript, que son propietarios de Microsoft. JavaScript es un lenguaje de alto nivel, basado en objetos, diseñado para permitir a los programadores Web la generación de documentos Web interactivos de un modo sencillo. Ofrece las características básicas de un lenguaje orientado a objetos sin las complejas realizaciones que acompañan a estos lenguajes como Java y C++. No permite la definición de clases ni la utilización de la herencia. Javascript proporciona un conjunto de herramientas compactas propias que realzan las interacciones entre los usuarios y las páginas HTML. Estas herramientas nos permiten responder a las pulsaciones del ratón, a las entradas de los formularios, a la navegación de la página y a otros eventos. Las respuestas a las acciones de los usuarios pueden ser invocadas sin necesidad de realizar transmisiones por la red. Como la mayoría de los lenguajes de script, JavaScript es interpretado en tiempo de ejecución por el navegador antes de que se ejecute. La desventaja de los lenguajes interpretados es el tiempo que se tarda en ejecutar el código, porque el navegador compila las instrucciones antes de ser ejecutadas, aunque esta desventaja tiene poca importancia debido a la gran potencia de los ordenadores cliente en la actualidad. Las secuencias de código JavaScript se insertan en las páginas HTML: si el navegador es compatible con JavaScript interpretará el código y lo ejecutará. Actualmente se puede decir que todos los navegadores interpretan el JavaScript estándar. Las hojas de estilo
En HTML, si queremos generar documentos con un aspecto homogéneo, para así generar una “imagen de marca” o simplemente ofrecer un aspecto robusto y claro a nuestros documentos, nos vemos obligados a señalar, para cada elemento de nuestras páginas, el tipo de letra, el tamaño, el color y, en fin, todas las características propias del texto. De esta forma, si nuestro servidor dispone de múltiples páginas, esta labor se convierte en algo tedioso que a menudo se obvia por llevar demasiado tiempo. Los estilos aportan una solución a este problema.
La red Internet. El modelo TCP/IP.
49
Preparación TIC- Abril 2004
Aparece un nuevo atributo para las etiquetas de HTML: “STYLE”. Así, en vez de especificar los tradicionales atributos después de la etiqueta, se incluye un único atributo que comprende todos los elementos definibles del texto. Sin embargo, esto no parece ser una gran solución al tema de tener que volver a escribir los etilos una y otra vez. Para solucionarlo, se permite usar una nueva etiqueta en la que se detallan todas las características para un determinado tipo de texto y poder usarlo donde queramos. Para ello se necesita escribir la etiqueta