TEMA 7 Redes de datos: TCP/IP e Internet 1.- Introducción a la conmutación de paquetes 1.1.- La multiplexión estadística: STDM Para fuentes de datos que transmiten de forma discontinua, como es habitual en las aplicaciones informáticas, la multiplexión estática, ya sea TDM1 o FDM2, resulta ineficiente. En periodos de inactividad de los canales de entrada, se desperdicia la capacidad reservada para los mismos en el enlace de salida, lo que es aplicable también a fuentes de tasa de bit variable. La multiplexión estadística se basa en que ciertas fuentes no generan tráfico de forma continuada, lo que permite aprovechar los periodos de inactividad de una fuente para transmitir los datos generados por otra que en ese instante se encuentre activa. Los slots disponibles en el canal de salida se asignan de forma dinámica a los canales de entrada en función de la demanda, lo que permite disminuir el régimen binario a la salida del multiplexor, que resulta menor que la suma de las capacidades máximas de los canales de entrada. Si todos los canales de entrada transmitieran a su tasa máxima, no habría sitio suficiente en la trama de salida, por lo que algunos datos deberán esperar en una memoria (buffer) un slot libre en la siguiente trama. Por ello este tipo de transmisión es adecuada para fuentes que generan información de forma discontinua y aplicaciones poco sensibles al retardo, como es habitual en transmisiones de datos. 0 1 1 0 1 1 0 0 1 1 010011 0 0 Rb1 = Rb2 = Rb3 = 1 Rb = 2 Trama: 2 time slot bit/s (bit) La ventaja de la multiplexión estadística consiste en su ganancia en multiplexión, que sería la diferencia de régimen binario a la salida con respecto a TDM, expresada en tanto por ciento. Por ejemplo, si tenemos 10 canales de entrada cada uno con un régimen binario de 8 kbps, y que generan tráfico en media únicamente un 75% del tiempo, 1 Time Division Multiplex 2 Frequency Division Multiplex • Un multiplexor TDM necesitaría un régimen binario de salida de 8 x 10 = 80 kbps • Un multiplexor STDM podría atender el tráfico con un régimen de salida de 8 x 0.75 x 10 = 60 kbps, lo que supone una ganacia del 25%. Como desventajas figuran la aparición de retardos variables en la transmisión (dependiendo del estado de las memorias de espera y la demanda de tráfico del resto de canales en ese instante), e incluso la posibilidad de pérdida de información si los búffers de almacenamiento se desbordan. Los multiplexores estadísticos son, en general, equipos más complejos que los multiplexores TDM, puesto que existen múltiples configuraciones en función de la posición de las colas (búffers), su gestión, y su tamaño. Así mismo presentan características avanzadas, como políticas de prioridad a las entradas, compresión de datos, detección de la velocidad de los terminales... 1.2.- La conmutación de paquetes En las redes de conmutación de paquetes, la información a transmitir es troceada en paquetes que serán enviados a la red. Cuando un paquete llega a un nodo de red, éste decide el enlace de salida por el que debe reenviar el paquete hacia el siguiente nodo (o destino final), bien en función de la dirección destino, de alguna marca que identifique la ruta que debe seguir, etc. Los paquetes transmitidos entre los nodos utilizan el enlace a su máxima capacidad mediante multiplexión estadística. La longitud máxima de estos paquetes se encuentra acotada a fin de evitar que un paquete monopolice mucho tiempo el enlace de salida, y para minimizar la incidencia de errores. En cada canal de salida existen colas donde son almacenados los paquetes a la espera de que les llegue su turno de ser transmitidos, ya que puede existir diferencia entre la tasa a la que llegan paquetes al enlace de salida, y el régimen con el que éste es capaz de servirlos. Al utilizar multiplexión estadística, la conmutación de paquetes permite obtener el mayor rendimiento de los recursos disponibles. Por ello, es especialmente indicada para redes en las que el tráfico es intermitente (a ráfagas), como en el caso de las comunicaciones ente equipos de datos, por ejemplo, transacciones contra bases de datos remotas, consulta de páginas web, etc. Los retardos que sufre en paquete al atravesar la red vendrán dados por los tiempos de almacenamiento y reenvío y el tiempo de espera en cola (término generalmente dominante), todos proporcionales al número de nodos que atraviese el paquete hasta llegar al destino. En general, esos retardos son variables y dependen de la carga de tráfico en la red. Por otra parte, el tamaño de las colas de salida es finito, por lo cual existe una cierta probabilidad de desbordamiento y, en consecuencia, de pérdida de paquetes. Generalmente son los protocolos de nivel superior que están empleando la red los que deben detectar esas pérdidas y solucionarlas mediante reenvío de información o cualquier otra técnica. Además de la información a transmitir, cada paquete transporta unos datos adicionales de control o cabeceras. Éstas permiten identificar al origen y destino del paquete, identificar el número de secuencia del mismo (para facilitar su ordenación en el destino o detectar pérdidas), detectar errores de transmisión, etc. Existen dos modalidades en la conmutación de paquetes: • Circuito Virtual (o orientado a conexión): Todos los paquetes que pertenecen a un mismo flujo de comunicación origen – destino siguen la misma ruta en la red. Para ello, es necesario establecer previamente dicha ruta (equivalente al establecimiento de una conexión). Todos los paquetes llevan una referencia de la ruta que deben seguir, lo que permite que lleguen ordenados al destino. Un ejemplo de este tipo de conmutación la encontramos en las redes ATM3. • Datagrama (o no orientado a conexión): Cada paquete lleva la dirección del destino, y cada nodo de la red decide al recibirlo cúal será el siguiente nodo por el que reenviará el paquete. Permite optimizar el uso de la red, ya que es posible encaminar los paquetes por el enlace menos saturado en cada nodo. Como contrapartida, distintos paquetes pueden seguir diferentes rutas con retardos diversos, lo que puede hacer que lleguen al destinatario desordenados. Un ejemplo de este tipo de conmutación lo encontramos en las redes IP. mensaje 2 3 C 2 1 E 2 3 1 A 2 1 2 1 3 3 2 3 mensaje 1 B D 3 X 1 X 3 1 X 2.- Modelos de Referencia: OSI frente a TCP / IP 2.1.- El modelo de referencia OSI Durante la aparición de los primeros ordenadores, el coste de los recursos computacionales era muy elevado, lo que hiz necesario la separación entre los terminales usuario (ligeros y “tontos”) y el servidor central, donde se ofrecían los servicios. Esta separación conlleva la necesidad 3 Asynchronous Transfer Mode implícita de una red que permita a los terminales acceder a los recursos del equipo central. Las primeras soluciones de red eran propietarias de cada fabricante e incompatibles entre sí, por lo que surgió la necesidad de una normalización. Como resultado, en los años 70, la ISO4 desarrolla un modelo de referencia para la interconexión de sistemas abiertos (OSI5), que proporcionó la base para definir el proceso global de las comunicaciones entre equipos de datos, aceptado por la ITU-T en su recomendación X.200. Podemos resumir las siguientes características generales del modelo OSI: • Cada sistema de comunicaciones se estructura en una serie de niveles o capas. Una capa está formada por módulos especializados o entidades, que realizan parte del proceso global de la comunicación. En OSI se especifican un total de 7 capas. • Cada capa utiliza los servicios ofrecidos por la capa inmediatamente inferior, y ofrece sus propios servicios a la capa inmediatamente superior. • La frontera o interfaz entre dos niveles o capas residentes en el mismo sistema se define en términos de primitivas, que definen completamente el servicio ofrecido. Estas primitivas pueden ser de cuatro tipos: • Petición: utilizada por la capa usuario para invocar una función o servicio de la capa proveedora de servicio. • Indicación: Utilizada por la capa proveedora para notificar que una función ha sido invocada. • Respuesta: utilizada por la capa usuaria para completar la función invocada mediante una primitva de petición previa. • Confirmación: mediante la cual, la capa proveedora confirma que una función previamente invocada se ha completado. Cualquier servicio se ofrece como combinación de estos cuatro tipos de primitivas, que además contendrán un conjunto de parámetros específicos del servicio a ofrecer. Capa N Capa N Connect Request Connect Indication Connect Confirm Connect Response Capa N-1 Capa N-1 N-1 PDU Para ofrecer un servicio, las entidades residentes en una capa dentro de un sistema deben colaborar con sus entidades gemelas, situadas dentro de la misma capa en el sistema remoto. El conjunto de reglas que rigen dicha colaboración se denomina protocolo, y se lleva a cambio mediante el intercambio de unidades de datos de protocolo (PDU6), cada una de las cuales 4 International Standards Organization 5 Open Systems Interconnection 6 Protocol Data Unit consiste en información de control del protocolo (PCI7) y unidad de datos del servicio (SDU8). Tanto la información procedente del usuario final (aplicaciones), como la información de control de los protocolos (intercambiada entre entidades gemelas), necesitan utilizar el mismo medio físico de transporte. Para ello, conforme la información de la aplicación va descendiendo a traves de la torre de capas, cada una de ellas añade su información de control de protocolo en encabezamientos sucesivos. El conjunto resultante se transmite por el canal físico, sufriendo el proceso inverso al llegar al receptor. Cada encabezamiento es utilizado sólo por la capa receptora del mismo nivel de la arquitectura, siendo eliminado después. Los encabezamientos destinados a capas superiores son ignorados por las inferiores, facilitando así el funcionamiento independiente de las distintas capas, así como su evolución por separado. datos datos Capa N+1 datos Capa N+1 datos PCI N+1 PCI N+1 Capa N datos PCI N+1 Capa N PCI N N-PDU datos PCI N+1 PCI N Capa N-1 PCI PCI N+1 N datos Capa N-1 PCI N-1 datos PCI PCI PCI N+1 N N-1 N-1-SDU ... datos ... Capa 1 PCI PCI PCI N+1 N N-1 … datos PCI 1 PCI PCI PCI N+1 N N-1 datos … PCI PCI PCI N+1 N N-1 Capa 1 … PCI 1 PCI 1 Los sistemas que implementan las siete capas se denominan sistemas finales, y tienen todos el mismo nivel jerárquico. Los sistemas que no implementan las siete capas se denominan sistemas intermedios, y generalmente pertenecen a uno de estos de tres tipos: • Repetidores (sólo implementan la primera capa) • Puentes (implementan las dos primeras capas) • Encaminadores (implementan las tres primeras capas) Las funciones básicas de cada nivel son: 7 Protocol Control Information 8 Service Data Unit FÍSICO (Capa 1): Permite la transmisión y recepción de de unidades básicas de información (bits) sobre los canales de transmisión. De esta forma, las capas superiores quedan libres de las funciones propias impuestas por el tipo de medio de transmisión (fibra óptica, cable coaxial...). Entre sus funciones están: • Representación de los bits: codificación a utilizar, características eléctricas de la señal que representa a los ceros y unos. • Sincronismo de bit y tasa de transmisión: base de tiempo común entre transmisor y receptor para permitir una correcta interpretación de la señal recibida. • Aspectos mecánicos: características del medio de transmisióna utilizar, tamaño de los conectores, número de patillas, topología física... • Modo de transmisión: simplex, duplex, semiduplex. Los equipos intermedios que sólo implementan el nivel físico se denominan repetidores. Su misión es conectar subredes que utilizan el mismo nivel de enlace (mismo protocolo, mismo formato de trama, etc), pero distinto soporte físico (por ejemplo: Conectar entre sí dos redes de área local Ethernet, una soportada por cable coaxial, y otra por cable de pares RJ45). Repetidor cable coaxial Cable de pares RJ45 Nivel Físico Ethernet Nivel Enlace ENLACE (Capa 2): Se encarga de la transferencia de bloques básicos de información (tramas) entre sistemas que se encuentran directamente conectados entre sí. El canal de comunicación puede estar compartido or varios usuarios, además de verse afectado por ruidos, por lo que esta capa debe ofrecer a los niveles superiores un enlace fiable punto a punto entre dos sistemas conectados directamente. Las tareas básicas del nivel de enlace son: • Entramado: divide el flujo de bits recibido del nivel superior en tramas. • Control de flujo: previene el desbordamiento en el receptor cuando éste recibe datos a una velocidad menor de a la que son enviados por el transmisor. • Control de errores: mecanismo para detectar y corregir tramas con errores, defectuosas, o perdidas. • Control de acceso: organiza el acceso al medio físico cuando este se encuentra compartido por varios equipos. • Direccionamiento físico: cuando hay varios equipos conectados al mismo medio, debe distinguirse mediante direcciones cuál de ellos es el origen y cuál el destino de las tramas. Los equipos intermedios que sólo implementan las capas 1 y 2 se denominan puentes. Su misión es unir subredes con diferentes niveles de enlace, de forma transparente al nivel de red. (por ejemplo: unir una red Token Ring con una red Ethernet) Red Ethernet Red Token Ring Puente Ethernet Nivel Enlace Nivel Red RED (Capa 3): Se encarga de hacer llegar la información suministrada por la capa superior hasta su destino final, atravesando para ello todos los sistemas intermedios que sea necesario, y eligiendo la ruta adecuada a través de los mismos. La principal tarea es el encaminamiento de los paquetes, que deberán encontrar una ruta eficaz que permita llegar hasta el destino final, utilizando para ellos sistemas intermedios (encaminadores) que unen las distintas subredes. Para llevar a cabo el encaminamiento, debemos poder distinguir a los sistemas de forma unívoca, lo que se realiza mediante la asignación de direcciones de red. Este nivel puede ofrecer un servicio en modo circuito virtual, o bien en modo datagrama. Estas tres primeras capas forman el servicio de red, que ofrece a las capas superiores un canal de comunicación entre sistemas finales con independencia de su ubicación física. Los equipos intermedios que implementan estas tres capas se denominan encaminadores. Su misión es transportar los paquetes desde el punto origen de la red, al punto destino, atravesando cuantos nodos intermedios sea necesario. Red A Red B Encaminador Nivel Red Nivel Transporte TRANSPORTE (Capa 4): Encargada de proporcionar una transferencia fiable y ordenada de todo el mensaje (no sólo de paquetes o partes del mensaje). Para ello debe ocuparse de tareas como el control de flujo o el control de errores de extremo a extremo. Algunas responsabilidades de este nivel son: • Direccionamiento de puntos de servicio: Un sistema final puede tener varios consumidores de servicio (programas o aplicaciones) ejecutándose al mismo tiempo, por lo que habrá que distinguirlas entre sí asignándoles una dirección de punto de acceso al servicio (SAP9) o 9 Service Access Point puerto a cada una de ellas, dentro de ese sistema final. • Segmentación y reeensamblado: Un mensaje de usuario puede ser dividido en segmentos (que son enviados en paquetes distintos), que habrá que re-ensamblar en el extremo receptor. • Control de conexión: El nivel de transporte puede enviar directamente los mensajes o segmentos a su destino de manera independiente (servicio no orientado a conexión), o bien puede requerir que se establezca una conexión previa entre origen y destino antes de comenzar la transmisión, liberándose al concluir la comunicación (servicio orientado a conexión). • Control de flujo y control de errores: La misma misión que en el nivel de enlace, pero en este caso, extremo a extremo. Generalmente, los errores en este nivel se corrigen mediante retransmisiones. El nivel de transporte, junto con las tres primeras capas, forman el denominado bloque de transporte, que se ocupa exclusivamente de aspectos relacionados con la comunicación, y que ofrece a los sistemas superiores una comunicación fiable, transparente y libre de errores entre entidades de niveles superiores. SESIÓN (Capa 5): Ofrece mecanismos para organizar y sincronizar los diálogos entre entidades de aplicación. El control del diálogo facilita que la comunicación entre dos procesos pueda tener lugar en modo semi-duplex o full-duplex, marcando el progreso del diálogo, controlando qué sistema posee el turno para “hablar”... Permite también insertar puntos de sincronismo desde donde retomar el diálogo si éste se interrumpiera por cualquier motivo. PRESENTACIÓN (capa 6): Permite representar la información de una forma independiente de la implementación realizada por los sistemas. La información así representada conforma una serie de datos estructurados (caracteres, enteros, etc), y no simplemente una secuencia de bits que puede ser interpretada de distinta forma por diversos sistemas (por ejemplo: ASCII frente a EBCDIC, big-endian frente a little-endian...). También es responsabilidad del nivel de presentación el cifrado (que permite la privacidad de la comunicación) y la compresión. APLICACIÓN (Capa 7): Proporciona a los usuarios (personas o software) un conjunto de servicios de alicación distribuidos. Asegura la cooperación de los procesos o entidades de aplicación entre sí para ofecer los servicios finales al usuario. Es responsable de la semántica del protocolo intercambiado entre entidades de aplicación. Se encuentran estandarizadas aplicaciones en este nivel como terminales virtuales de red (para acceso a consola de máquina remota), administración y transferencia de información en forma de archivos, correo electrónico, o servicios de directorio para acceso a bases de datos distribuidas. A partir de este modelo de referencia, se desarrollaron las correspondientes entidades y protocolos de cada capa. No obstante, la gran implantación de la red TCP / IP restó protagonismo a dichos protocolos. Aún así, el modelo de referencia sigue siendo válido y utilizado en cualquier arquitectura basada en capas para redes de datos. 2.2.- El modelo de referencia TCP / IP. Comparativa frente a OSI. Poco antes de la aparición del modelo de referencia OSI, se inicia un proyecto encaminado a proporcionar una red de datos robusta de arquitectura distribuida. Dicha red nace en 1977-79 y se denomina ARPA Net. Se inicia en el departamento de defensa de EEUU, y progresivamente va incorporando universidades y entidades públicas, de forma que en 1983 se divide en dos redes: MilNET, con fines militares, y ARPA Net, para propósitos de investigación. Esta última fue creciendo e incorporando nuevos equipos hasta formar lo que hoy conocemos como Internet. Internet se apoya para su funcionamiento en una serie de protocolos abiertos (públicos y gratuitos) conocidos generalmente como TCP / IP. La torre de protocolos TCP / IP está compuesta por cinco niveles: físico, enlace, red, transporte, y aplicación. Los primeros cuatro niveles realizan aproximadamente las mismas tareas que los correspondientes niveles OSI. Sin embargo, las tres últimas capas del modelo OSI están representadas por una única capa de aplicación en el modelo TCP / IP. No existe relación directa entre los modelos OSI y TCP / IP, ya que este último surge anteriormente, aunque ambos emplean el concepto de capas, donde cada protocolo se apoya en uno o varios del nivel inferior. Los niveles físico y de enlace, a los que también se les denomina colectivamente nivel de subred, no se encuentran definidos en este modelo, dejando libertad para la creación y evolución de subredes con diferentes tecnologías. Así, es posible emplear la torre de protocolos TCP / IP sobre cualquier nivel de enlace: redes de difusión como Ethernet, punto a punto como enlaces PPP, etc. El nivel de red ofrece el servicio de transferencia de mensajes extremo a extremo atravesando cualesquiera subredes, utilizando el protocolo IP. Este es un protocolo no orientado a conexión o de modo datagrama, es decir, la ruta que sigue cada paquete depende de las decisiones tomadas por cada nodo en el trayecto. En este nivel existen también otros protocolos auxiliares que realizan tareas específicas, como ICMP10 (que transporta mensajes de control, como notificaciones de destino inalcanzable o control de flujo), IGMP11 (para la gestíon de grupos de difusión), etc El nivel de transporte ofrece dos protocolos: UDP12, un protocolo no fiable y no orientado a conexión, y TCP13, un servicio orientado a conexión y fiable que garantiza el transporte extremo a extremo. Típicamente UDP se utiliza en servicios sensibles al retardo (como el tráfico de audio o vídeo en tiempo real) o aplicaciones sencillas, mientras que TCP se usa en aplicaciones que requieren mayor fiablidad (transferencia de ficheros, navegación web) En el nivel de aplicación se encuentran definidos algunos protocolos como el de transferencia de correo electrónico (SMTP14), transferencia de ficheros (FTP15), transferencia de hipertexto (HTTP16), terminal remoto (telnet), etc. La unidad de datos creada por el nivel de aplicación se denomina mensaje. Estos mensajes se 10 11 12 13 14 15 16 Internet Control Message Protocol Internet Group Management Protocol Unreliable Datagram Protocol Transport Control Protocol Simple Mail Transport Protocol File Transfer Protocol Hyper Text Transfer Protocol encapsularán en datagramas de usuario o segmentos, según se emplee para su transporte UDP o TCP. Estos elementos son encapsulados dentro de datagramas IP, cuya transferencia es responsabilidad del nivel de red. Por supuesto, a su vez los datagramas IP son encapsulados en las tramas correspondientes al nivel de enlace que soporte la torre de protocolos, antes de ser transmitidos por el nivel fisico. 3.- El Protocolo IP 3.1.- Datagramas IP El protocolo IP se encuentra definido en la RFC17 791 del IETF18. Ofrece un servicio de envío de paquetes no orientado a conexión y no confirmado. Dicho servicio se conoce como de tipo “Best Effort”: la red hará lo posible por llevar los paquetes hacia su destino, pero no da garantías, lo que implica que el paquete puede perderse, duplicarse, o llegar fuera de orden, y el nivel de red no detectará estos hechos. Si necesitamos una comunicación fiable entre dos aplicaciones deberán ser el nivel de transporte TCP o el propio nivel de aplicación los que se encarguen de ello. Los paquetes del nivel IP se denominan datagramas, y son de longitud variable (hasta 65.536 bytes). Constan de dos partes: • Campo de datos, donde se encapsulan las PDUs del nivel superior. • Cabecera (denominada PCI en el modelo OSI). Contiene información necesaria para el encaminamiento de los paquetes. Su longitud puede variar entre 20 y 60 octetos. El formato del datagrama IP es: 0 8 VERS HLEN 16 ToS ID TTL 31 LEN IDN Protocol OFFSET Checksum D.O. D.D. OPT Relleno • VERS: versión del protocolo IP utilizada (actualmente, IPv4 o IPv6). • HLEN: longitud de la cabecera (medida en palabras de 4 bytes). • ToS: tipo de servicio para la entrega del datagrama (prioridad, fiabilidad...). 17 Request For Comments 18 Internet Engineering Task Force 3 bit 1 bit 1 bit 1 bit 2 bit Prioridad D T R Reservado • Bits de prioridad: usados en algoritmos de control de congestión • Bit D (Delay): priorizar este paquete para minimizar su retardo • Bit T (Throughput): priorizar este paquete para maximir su caudal. • Bit R (Reliability): priorizar este paquete para minimizar su prob. de pérdida. • LEN: longitud total (incluyendo cabeceras) del datagrama, expresada en octetos. • ID, IDN, OFFSET: relacionados con la fragmentación de datagramas. La máxima cantidad de información que cabe en una trama de nivel de enlace se denomina MTU19. Cuando un datagrama pasa de una red a otra que implementa un nivel de enlace diferente, es posible que la MTU varíe y sea necesario fragmentar el datagrama. • ID: identifica al datagrama, y es el mismo en todos los fragmentos • IDN: es un conjunto de tres bits que indican si el datagrama actual es un fragmento más, o el último (o único) • OFFSET: indica la posición del fragmento dentro del datagrama original. • TTL: tiempo de vida. El sistema origen fija su valor inicial, y cada encaminador lo decrementa. Si su valor llega a cero, el paquete se descarta. De esta manera se evita que un paquete viaje indefinidamente o permanezca eternamente en un bucle. • PROTOCOL: especifica el protocolo de nivel superior que se encuentra encapsulado en la parte de datos del datagrama IP (6 = TCP, 17 = UDP, 1 = ICMP, etc). • CHECKSUM: suma de control sobre los bytes de la cabecera, que permite verificar la integridad de la misma.Debe ser recalculada en cada nodo debido a cambios en el TTL o fragmentación. • DO: Dirección IP del sistema que origina el datagrama. • DD: Dirección IP del sistema destino del datagrama. • OPT: Campo de longitud variable que ofrece una serie de opciones para controlar el encaminamiento. 3.2.- Direccionamiento en IP 19 Maximum Transfer Unit Las direcciones IP identifican a la red y al sistema (equipo) dentro de la red. Las direcciones IPv4 tienen 4 octetos, y están divididas en dos partes: identificador de red, e identificador de equipo dentro de dicha red. Todos los equipos conectados a una misma red comparten el mismo identificador de red. Normalmente se utiliza la notación decimal-punto para representar direcciones IP. Ésta consiste en cuatro números decimales separados por puntos, cada uno de los cuales expresa el valor del correspondiente octeto de la dirección. Así, por ejemplo, 132.4.23.3 o 211.23.76.254 son direcciones válidas, mientras que 321.23.4.21 no lo es, pues el primer número está fuera del rango alcanzable con un octeto (0-255). En función del valor que tome el primer número de la dirección, podemos distinguir cinco tipos o clases de direcciones: • Clase A: Son aquellas que tienen un 0 en el bit más significativo del primer octeto (números menos de 127 en decimal). En estas direcciones, el primer octeto es el identificador de red, y los tres siguientes identifican al equipo. • Clase B: Son aquellas cuyos dos primeros bits más significativos son: 10 (primer número entre 128 y 191). En ellas, los dos pimeros octetos son el identificador de red, los dos siguientes el del equipo. • Clase C: Los tres bits más significativos del primer octeto son: 110 (primer número entre 192 y 223). En ellas, los tres primeros octetos identifican a la red, y el último al equipo. • Clase D: Los cuatro bits más significativos del primer octeto son: 1110 (primer número entre 224 y 239). Son utilizadas para el direccionamiento punto a multipunto (multicast). • Clase E: Los cuatro bits más significativos del primer octeto son: 1111 (primer número entre 240 y 255). Se encuentran reservados para usos futuros. La clase de dirección a utilizar dependerá del número de equipos presentes en una red. Así, no podremos utilizar direcciones de clase C para una red que tenga 500 equipos, pues el identificador de equipo es de sólo un octeto. Cuando un equipo se encuentra conectado a múltiples redes (como ocurre con los encaminadores), deberá tener una IP por cada red que interconecte. Existen algunas direcciones especiales que no pueden ser utilizadas por equipos, como son: • Direcciones de red: Para identificar una red en su conjunto, se usa una dirección IP con el identificador de equipo puesto a cero. Por ejemplo, direcciones como 122.0.0.0 o 193.23.121.0 son direcciones de red. • Dirección de difusión local: Se utiliza para hacer llegar un paquete a todos los equipos conectados a la red, y consiste en la dirección con todos los bits de la parte de equipo puestos a 1. Por ejemplo, 122.255.255.255 o 193.23.121.255. • Dirección de difusión total: Utilizada para hacer llegar un paquete a todos los equipos de todas las redes. Consiste en todos los bits de la dirección puestos a 1 (255.255.255.255). Normalmente los encaminadores no la propagan, con lo cual equivale a la difusión local. • Dirección de bucle local: utilizada para indicar el propio equipo, es cualquiera en la red de clase A con identificador de equipo 127, es decir, 127.XXX.XXX.XXX. Generalmente se suele emplear 127.0.0.1 • Dirección desconocida: utilizada para indicar la entrada por defecto en la tabla de encaminamiento: todos los bits a cero (0.0.0.0). Además de estas direcciones especiales, la RFC 1918 define algunos rangos de direcciones que están reservados para uso privado, es decir, pueden ser utilizados en redes privadas que no necesiten conectarse con el exterior, y está prohibido utilizarlos en redes públicas (internet). Estos rangos son: • Una red de clase A: 10.0.0.0 – 10.255.255.255 • 32 redes de clase B: 172.16.0.0 – 172.31.255.255 • 256 redes de clase C: 192.168.0.0 – 192.168.255.255 La división en clases del espacio de direcciones IP es una división jerárquica rígida. El tamaño de las redes está fijo: las redes de clase C pueden albergar hasta 254 ordenadores (256 direcciones menos la dirección de red y la de difusión local). Las de clase B, hasta 65534, y las de clase A, hasta 16777214. Esto plantea un problema de desaprovechamiento del espacio de direcciones, puesto que, por ejemplo, para alojar una red con 500 ordenadores, es necesario dedicar al menos una dirección de clase B. En este ejemplo, 65.054 direcciones quedarían sin utilizar. Conforme internet iba creciendo, el problema del agotamiento del espacio de direcciones se hizo cada vez más evidente. Como solución a este problema, se planteó una reestructuración del formato de las direcciones IP: En lugar de mantener el viejo esquema de asignación de direcciones por clases, con identificadores de red de tamaño fijo, se utilizan identificadores de red de tamaño variable. Esto es lo que se conoce como direccionamiento sin clases (classless) o CIDR20. CIDR aporta flexibilidad a la hora de especificar la separación entre identificador de red e identificador de equipo. El número de bits correspondientes al identificador de red se selecciona mediante una máscara binaria: los bits pertenecientes al identificador de red están puestos a 1 en dicha máscara, mientras que los bits pertenecientes al identificador de equipo están puestos a cero. Dirección IP Máscara 134.23.133.29 255.255.255.0 10000110 . 00010111 . 10000011 . 0001110 1 11111111 . 11111111 . 11111111 . 0000000 0 Id. de red Id. de host El enmascaramiento permite, mediante la operación lógica AND, extraer el identificador de red a partir de la dirección IP del equipo y la máscara. Por ejemplo, la máscara 255.255.255.0, aplicada a la dirección IP 134.23.133.29, nos ofrece la red 134.23.133.0. Así pues, cualquier dirección IP debe llevar asociada una máscara que nos permita conocer qué parte identifica a la red, y qué parte al equipo. El conjunto (dirección IP, máscara) se suele representar mediante una notación compacta que consiste en especificar la dirección IP y el número de bits de la máscara que están puestos a 1, separados por una barra. Siguiendo el ejemplo anterior, el conjunto de 20 Classless Inter Domain Routing dirección IP 134.23.133.29 y máscara 255.255.255.0 puede escribirse de manera más compacta como 134.23.133.29 / 24. Nótese que, siguiendo el esquema tradicional, una dirección como 134.23.133.29 / 25 pertenecería a una red de clase B, y debería tener un id. de red de 16 bits. CIDR nos permite quedarnos con una “porción” de esa red, de un tamaño más adecuado a nuestras necesidades. También nos permite subdividir un rango en trozos más pequeños, que pueden ser administrados independientemente. Esto facilita la tarea de asignación de direcciones, y el encaminamiento. Red 134.23.133.0 / 24 Internet Red 134.23.133.128 / 25 Red 134.23.133.0 / 25 Red 134.23.133.64 / 26 Red 134.23.133.0 / 26 Por compatibilidad, las máscaras por defecto para las direcciones de clase A, B y C son 255.0.0.0, 255.255.0.0 y 255.255.255.0, respectivamente, y no se suelen emplear máscaras con menos bits puestos a uno que los correspondientes a la clase de dirección (por ejemplo, no es práctica habitual emplear una máscara 255.0.0.0 con una dirección de clase B, puesto que no sería compatible con software o hardware previo a la introducción del CIDR). 3.3.- Integración de redes El protocolo IP se encuentra por encima de los niveles de enlace y físico, por lo que permite la integración de diferentes tipos de tecnología en estos niveles. Podemos clasificar estas tecnologías en dos grandes grupos: LAN: o redes de área local. De alta velocidad, suelen utilizar medios de transmisión propios y tener una extensión limitada. (normalmente a decenas o centenas de metros). El principal organismo normalizador es el IEEE, y entre sus estándares más difundidos figura el Ethernet (802.3), con velocidades desde 100 hasta 1000 Mbps, y su versión inalámbrica WLAN (802.11b/g) En ellos se normaliza tanto el nivel físico como el de enlace. Las tecnologías empleadas en el nivel de subred (enlace y físico) permiten la comunicación directa entre equipos conectados al medio. Generalmente, estos medios tienen topología en bus, por lo que se hace preciso el uso de direcciones físicas (también conocidas como direcciones MAC) para identificar el origen y destino de la trama. Estas direcciones son direcciones hardware asociadas físicamente a cada puerto de la máquina. Ejemplo de red LAN: Ethernet, normalizada en la recomendación 802.3 del IEEE, define el nivel de enlace a emplear sobre diversos medios físicos con topología de bus, así como normaliza dichos medios físicos. Se define el formato y codificación de trama de enlace, se establece el método CSMA/CD21 para el acceso al medio, y se normalizan diversos niveles físicos: cable coaxial, cable de pares, fibra óptica, etc. Puede ofrecer velocidades de transferencia desde 10 Mbps a 10 Gbps. La trama Ethernet tiene el siguiente formato: Preámbulo 8 octetos D.D. 6o D.O. 6o LN DATA 2 o 48-1500 o CRC 4o • Preámbulo + Inicio de trama: Una secuencia de 8 octetos formados por bits 1 y 0 alternados, terminando el último por 11, que permite a transmisor y receptor sincronizarse. • Dirección destino (D.D.) y dirección origen (D.O.). Para direccionar un equipo a nivel de enlace, se emplean direcciones MAC de 6 octetos, globalmente únicas para cada dispositivo ethernet. • Campo Longitud / Tipo. Por motivos históricos, existen al menos dos formatos de trama Ethernet. En uno de ellos, este campo de dos bytes codifica la longitud de la parte de datos. En el otro, este campo identifica al tipo de trama o protocolo de nivel superior que va encapsulado en la parte de datos, y la longitud de la trama se determina por medios físicos. • Campo de datos: de tamaño variable, como mínimo debe ocupar 48 bytes para que la trama tenga un tamaño mínimo de 64 octetos. En caso contrario, se añade relleno. Como máximo, la parte de datos puede ocupar 1500 bytes, de manera que el tamaño total de una trama Ethernet está entre 64 y 1528 octetos. • CRC de 4 octetos para verificar la existencia de errores de transmisión. Cuando la señal en el canal vuelve al estado de reposo, el receptor compara los últimos 4 octetos recibidos con una suma de control calculada sobre el frame. Cuando nosotros, como usuarios, deseamos comunicarnos con una máquina remota a través del protocolo IP, debemos conocer la dirección IP de dicha máquina. De la misma forma, cuando el protocolo IP necesita ponerse en contacto con otra máquina (el destino final del datagrama, o un sistema intermedio que deba encaminarlo), debe conocer su dirección de enlace. En el caso de las redes Ethernet, esta dirección se averigua a través del protocolo ARP22. El protocolo ARP, definido en la RFC 826, permite averiguar la dirección física que se corresponde con una dirección de red, es decir, la dirección MAC Ethernet del dispositivo físico cuya dirección IP conocemos. Es un protocolo petición respuesta: • El equipo origen envía un paquete ARP con su dirección MAC, su dirección IP, y la dirección IP del equipo cuya dirección física pretende averiguar. Este paquete es enviado a 21 Carrier Sense Multiple Access / Collission Detection 22 Address Resolution Protocol. la dirección MAC de difusión, de manera que es recibido por todos los equipos conectados a la misma red física. • El equipo que posea esa IP contesta con un paquete ARP de respuesta, indicando su dirección IP y su dirección MAC. Este paquete ya no se envía a la dirección MAC de difusión, sino directamente al equipo que realizó la petición • Ambos equipos, emisor y receptor, añaden la información que han averiguado a una tabla de caché, llamada tabla ARP. Esta tabla evita que tengamos que realizar este procedimiento cada vez que queramos enviar datos a un equipo cuya dirección MAC ya hemos averiguado antes. B C D E A ARPRESP(MACD,MACA, IPD,IPA) ARPREQ(MACA,DIFUSIÓN, IPA,IPD) WAN, o redes de área extensa, permiten comunicar equipos separados por una gran distancia. Normalmente se alquilan líneas o se contrata el transporte físico a los operadores de redes de telecomunicación, utilizando para ello redes públicas, bien de conmutación de circuitos (RTC, RDSI, GSM) o de paquetes (X.25, FR, ATM...). En el caso de conexiones punto a punto, se suele usar PPP23 como nivel de enlace. Las velocidades de transmisión son sensiblemente inferiores al caso de las LAN, y el coste depende de la distancia y/o la tasa contratada con el operador. Ejemplo de red WAN: Conexión sobre canal telefónico (RTC o RDSI). En estos casos, se establece una conexión física entre los equipos (es decir, se realiza la llamada), y sobre el canal físico se utiliza PPP como nivel de enlace. PPP Es un protocolo diseñado por el IETF para permitir el intercambio de datos entre dos elementos de red unidos por un enlace full duplex que garantice la entrega ordenada de datos en conexiones punto a punto, y se especifica en la RFC 1661. Consta de dos fases: una primera fase de establecimiento del canal, controlada por el protocolo LCP24, y una segunda fase de negociación de los protocolos de red que se van a transportar por el enlace, controlada por el protocolo NCP25. Una vez establecida la sesión PPP, se transmiten tramas de datos, con el siguiente formato: Flag Dir 1 octet 1 o • Ctrl 1o protocolo 2o datos Xo FCS 2ó4o Flag 1o Flag: tanto al inicio como al fin, las tramas PPP incluyen una secuencia fija de bits que 23 Point to Point Protocol. 24 Link control Protocol. 25 Network control Protocol. sirve para identificar los límites de la trama. • Dirección destino: El formato de trama de PPP está basado en el definido por el nivel de enlace HDLC26, regularizado en la norma ISO 3309-1979. Por ello aparece este campo, que en PPP no tiene uso: el enlace es punto a punto, el destinatario del paquete es siempre el otro extremo de la conexión. • Control: un campo que define el tipo de trama y que también es heredado de HDLC. Su valor es fijo. • Protocolo: indica el protocolo de nivel superior que va encapsulado en la trama. • Datos: parte de datos de la trama. Normalmente tiene un tamaño máximo de 1500 bytes, aunque se puede negociar un tamaño mayor al establecer la conexión PPP. • FCS27: Suma de control. Habitualmente tiene un tamaño de 2 octetos, aunque se puede negociar un tamaño de 4 octetos al establecerse la conexión. 3.4.- Encaminamiento Cuando un equipo quiere enviar un datagrama IP a otro, debe tomar la decisión de a qué nodo de la red debe entregar dicho datagrama para hacerlo llegar a su destino. De la misma forma, cuando un equipo recibe un datagrama IP, debe comprobar si la dirección destino del mismo es la suya propia. En ese caso, simplemente extraerá la parte de datos y se la entregará a la capa superior. En caso contrario, se enfrenta al mismo problema: a qué nodo debo reenviar el paquete para hacer que llegue a su destino? Como hemos comentado, la red IP funciona en modo datagrama o no orientado a conexión: cada nodo decide el siguiente salto en la ruta que seguirá el paquete hacia su destino. Si el equipo que envía el datagrama y el que debe recibirlo pertenecen a la misma red (es decir, sus direcciones comparten el mismo identificador de red), la decisión es fácil: mecanismos como ARP nos permiten conocer la dirección de nivel de enlace del destinatario, y hacerle llegar el datagrama directamente a él. Si los dos equipos pertenecen a redes distintas, deberemos valernos de un equipo intermedio o encaminador que interconecte, bien directa o indirectamente (a través de otros encaminadores), ambas redes. Este proceso de toma de decisiones es lo que denominamos encaminamiento, y la forma de decidir el siguiente salto en la trayectoria de un paquete hacia su destino es empleando lo que se conoce como tablas de ruta o de encaminamiento. Una tabla de encaminamiento es, básicamente, una secuencia de pares ( dirección IP destino, dirección siguiente salto ). La dirección destino puede referirse a un sólo equipo, o a una red completa. La dirección del siguiente salto puede identificar la interfaz (enlace de salida) por la que debemos enviar el mensaje, si el destino es directamente accesible, o la dirección IP del encaminador que debemos usar para hacer llegar el datagrama a su destino, en otro caso. El encaminador será un equipo directamente accesible, conectado a nuestra misma red, pues en caso 26 High-level Data Link Control 27 Frame Check Sequence. contrario deberíamos resolver también cómo llegar al encaminador. A la hora de enviar un datagrama a una red no directamente accesible, compararemos la dirección IP destino con todas las entradas de la tabla de encaminamiento, quedándonos con aquella cuyo identificador de red coincida con el de la IP destino. En caso de que haya varias, se elegirá la que tenga el mayor prefijo coincidente, es decir, el identificador de red mayor. Por ejemplo, supongamos un equipo con la IP 170.1.2.3 y las siguientes entradas en la tabla de encaminamiento: IP destino IP encaminador 193.4.5.0 / 24 170.1.1.1 193.4.5.128 / 25 170.1.1.2 Si este equipo desea enviar un datagrama a la IP 193.4.5.129, comparará dicha IP con todas las de la tabla, aplicándole la máscara de cada entrada y comprobando si el identificador de red coincide. En este caso, existen dos entradas, teniendo la primera un id. de red de 24 bits, y la segunda, uno de 25. Por lo tanto, el encaminador usado será el 170.1.1.2, al ser el que corresponde al mayor prefijo coincidente. Para incluir en la tabla de encaminamiento una entrada que se refiera no a una red, sino a un único equipo, se utiliza una máscara 255.255.255.255 o, lo que es lo mismo, / 32 . Para incluir una entrada por defecto, a la que será enviado cualquier datagrama que no encuentre una ruta mejor, se utiliza la entrada 0.0.0.0 / 0. Nótese que cualquier dirección IP concuerda con esta entrada, pero lo hace con la mínima longitud de prefijo coincidente ( 0 ). Por lo tanto, esta entrada sólo se utiliza cuando no hay ninguna otra en la tabla que concuerde con la IP destino. Al encaminador asociado con esta entrada se le denomina encaminador por defecto o ruta por defecto. Por ejemplo, supongamos una red dividida en departamentos como la que se muestra en la figura de abajo: TCP / UDP IP Ethernet IP (IPEth1, IPEth2, IPppp) Ethernet1 Host 1 PPP I.430 Ethernet2 Encaminador A 193.100.0.3 / 25 193.100.0.2 / 25 193.100.0.1 / 25 Enlace PPP 194.0.0.1 / 24 Internet 194.0.0.2 / 24 193.100.0.129 / 26 Red Ethernet 1 Host 5 193.100.0.194 / 26 193.100.0.131 / 26 193.100.0.130 / 26 193.100.0.195 / 26 Encaminador B 193.100.0.132 / 26 Red Ethernet 2 193.100.0.193 / 26 Red Ethernet 3 La tabla de encaminamiento del equipo Host1 en esta red sería: Destino Máscara Sig. salto 193.100.0.0 255255255128 Directo Eth. 1 0.0.0.0 0.0.0.0 193.100.0.1 La tabla del encaminador A sería: Destino Máscara Sig. salto 193.100.0.0 255.255.255.128 Directo Eth. 1 193.100.0.128 255.255.255.192 Directo Eth. 2 193.100.0.192 255.255.255.192 193.100.0.132 / 26 194.0.0.0 255.255.255.0 Directo PPP 0.0.0.0 0.0.0.0 194.0.0.1 / 24 En el siguiente ejemplo veremos el camino que recorrería un datagrama desde el Host1 al Host5. La nomenclatura es la siguiente: Eth ( MACa, MACb, < IP: IPc, IPd > ) representa una trama Ethernet que viaja desde la dir. MAC MACa a la MACb, y que transporta un datagrama IP con la dirección IP origen IPc y la dirección IP destino IPd: Host 1 Encaminador A 193.100.0.3 / 25 193.100.0.1 / 25 Internet 193.100.0.129 / 26 Host 5 Eth ( MAC1, MACa, < IP: IP1, IP5 > ) 193.100.0.194 / 26 Encaminador B 193.100.0.132 / 26 Eth ( MACa, MACb, < IP: IP1, IP5 > ) 193.100.0.193 / 26 Eth ( MACb, MAC5, < IP: IP1, IP5 > ) Por último, el proveedor de servicio responsable del enlace PPP debería incluir en su tabla de encaminamiento una entrada para reenviar los datagramas destinados a la red 193.100.0.0/24 a través del encaminador 194.0.0.2. Las tablas de encaminamiento pueden ser configuradas de forma manual, estática, o puede utilizarse un protocolo de encaminamiento como RIP28 u OSPF29. Este tipo de protocolos intercambian información sobre las rutas, redes y máscaras accesibles por cada encaminador, la 28 Routing Information Protocol 29 Open shortest Path First distancia o número de saltos hacia ellas, etc. y en función a esa información y a unas ciertas métricas o funciones de coste, construyen una tabla de encaminamiento óptima. 3.5.- Mensajes de control IP: El protocolo ICMP El protocolo IP se encarga del transporte de datagramas, pero no de informar sobre errores. Esta tarea se encomienda a un protocolo complementario, ICMP, que asume las tareas de notificación de eventos y control de la red. Por ejemplo, cuando un equipo recibe un datagrama que no sabe cómo encaminar, generalmente le comunica esta circunstancia al emisor mediante un mensaje Destination Network Unreachable (destino inalcanzable) ICMP. Los mensajes ICMP viajan encapsulados en datagramas IP, y son usados por los encaminadores para informar a otros encaminadores, o a los equipos finales, acerca de condiciones de error o de control de la red. Existen varios tipos: destino inalcanzable, TTL excedido, redirección, congestión, etc. Existen mensajes también que se utilizan para verificar la conectividad de la red, como los mensajes de eco (echo) que emplea el comando ping. 4.- Nivel de Transporte: TCP y UDP El objetivo del nivel de transporte es comunicar las aplicaciones entre sí (comunicación extremo a extremo). Utiliza los servicios de red proporcionados por IP, y permite dos mecanismos diferentes: TCP, fiable y orientado a conexión, y UDP. Para permitir la comunicación entre aplicaciones, debemos poder distinguir a los procesos de aplicación que se están ejecutando en un sistema final, lo que se realiza con los puntos de acceso al servicio, que en TCP/UDP se denominan puertos, y son números enteros de 16 bits. En TCP/IP se emplea el paradigma cliente / servidor: una aplicación servidora reserva para sí un puerto (lo que se conoce como enlazado o binding) y espera la recepción de mensajes a través de dicho puerto. La aplicación cliente se enlaza también a un puerto y envía mensajes al servidor, que serán respondidos por éste. El puerto al que se enlaza el servidor debe tener un número conocido a priori por los clientes, números que generalmente son asignados por el IANA30 a los distintos servicios. Por ejemplo, el servicio HTTP tiene asignado el número de puerto TCP 80, el servicio de correo SMTP tiene asignado el puerto TCP 25, el servicio DNS de resolución de nombres de dominio tiene asignado el puerto UDP 53, etc. Generalmente, estos puertos están en el rango 0 – 1024 y son puertos privilegiados (por ejemplo, en linux, sólo las aplicaciones ejecutadas por el usuario root - administrador o superusuario - pueden enlazarse a estos puertos). Por el contrario, los clientes suelen simplemente solicitar al sistema operativo que los enlace al primer puerto que esté libre, generalmente en el rango 1025 – 65535. Los rangos de puertos TCP y UDP son independientes, es decir, es posible tener una aplicación enlazada al puerto TCP 60, y otra totalmente distinta enlazada al puerto UDP 60. 4.1.- UDP 30 Internet Assigned Numbers Association Proporciona un servicio de transporte de datos entre aplicaciones no orientado a conexión. UDP recibe los datos del nivel de aplicación, les añade su cabecera, y los envía directamente al destino dentro de un datagrama IP; el nivel de aplicación es quien deberá encargarse del control de flujo y de errores. El formato de la cabecera UDP es el siguiente: 2 octetos 2 octetos Puerto origen Puerto destino Longitud Checksum • Los puertos UDP origen y destino del datagrama. • La longitud completa del datagrama, incluyendo cabecera, en octetos. • Una suma de control, opcional, tanto de la cabecera como de los datos del paquete. 4.2.- TCP Ofrece un servicio de transporte entre aplicaciones fiable y orientado a conexión. Permiten transmitir un flujo de octetos entre aplicaciones. La información se divide en segmentos, que son enviados en datagramas IP utilizando mecanismos de control de flujo que regulan la velocidad de envío de segmentos en función del nivel de carga de la red. Antes de intercambiar datos de aplicación, es necesario establecer una conexión TCP entre puerto origen y puerto destino. Una vez establecida, se intercambiarán segmentos cuya cabecera tiene el siguiente formato: 4 octetos puerto origen puerto destino número de secuencia número de asentimiento Hlen Reservado Flags Checksum Opciones Ventana Puntero urgente Relleno • Puertos TCP origen y destino • Número de secuencia: número que ocupa el primer byte de este segmento dentro del flujo de octetos que intercambian origen y destino. el número de secuencia no comienza en cero, sino en un valor aleatorio negociado por ambas partes al establecer la conexión. • Número de asentimiento: número de secuencia del próximo byte que espera el emisor del segmento. • HLEN: longitud de la cabecera TCP, medida en palabras de 4 octetos. • Flags: indicadores del tipo de segmento: mensaje de conexión, asentimiento, datos, urgente, etc. • Ventana: tamaño del búffer de recepción del emisor. • Checksum: suma de control del segmento TCP. • Puntero urgente: si el segmento transporta datos urgentes (conocidos también como datos OOB31 o fuera de banda), este campo indica la posición del último byte urgente dentro de la zona de datos. • Opciones: campo opcional que puede no existir. Permite negociar cuestiones como el tamaño máximo de segmento a utilizar. 5.- Nivel de aplicación Existen multitud de aplicaciones que usan la torre de protocolos TCP / IP como servicio de transporte. Los protocolos en los que se basan la mayoría de ellas están normalizados por la principal organización normalizadora de estándares de internet, el IETF. Algunos de estos protocolos de nivel de aplicación son: • DNS: Sistema de nombre de dominio, es una gran base de datos jerárquica y distribuida que permite dar “nombre” a las direcciones IP. Es el servicio encargado de traducir los nombres que recordamos, por ejemplo www.terra.es o www.google.com, a las correspondientes direcciones IP. Utiliza los puertos TCP 53 y UDP 53. • HTTP: Protocolo de transferencia de hipertexto, sustenta el servicio WWW. Utiliza por defecto el puerto TCP 80. • SMTP: Protocolo simple de transferencia de hipertexto, sustenta el correo electrónico. Utiliza por defecto el puerto TCP 25. • FTP: Protocolo de transferencia de ficheros, utiliza por defecto el puerto TCP 21. Existe una versión simplificada, TFTP (trivial FTP) que utiliza el puerto UDP 69. • telnet: Servicio de consola remota, utiliza el puerto TCP 23. • BOOTP, DHCP: Permiten a un equipo configurar dinámicamente, al arrancar, parámetros como su dirección de red, la dirección de sus servidores DNS, etc. Ambos utilizan el puerto UDP 67. • SNMP: Protocolo Simple de Gestión de Red, permite a uno o varios equipos gestores recabar información o enviar órdenes de gestión a los equipos que forman la red. Utiliza el puerto UDP 161. 5.- Bibliografía • Principal: 31 Out of Band • • Stallings, W.; Comunicaciones y redes de computadores, 6ª ed.; Prentice-Hall; 2000. • Andrew S. Tanenbaum, Redes de computadores, Cuarta edición, Prentice Hall, 2003. • James F. Kurose y Keith W. Ross; Redes de Computadores. A top-down approach featuring the Internet; Addison Wesley; 2001. Complementaria: • Andrew S. Tanenbaum, Redes de computadores, Tercera edición, Prentice Hall, 1996. • Piscitello, David M,; Chapin, A. Lyman. Open Systems Networking: TCP/IP and OSI. Addison-Wesley, Massachusetts, 1993 • J. HENSHALL y S. SHAW, "OSI explained. End-to-end computer communication standards", Elllis Horwood, 1990. • M. ROSE, "The open book. A practical perspective on OSI", Prentice-Hall, 1990. • F. Halsall; Data Communications, Computer Networks and OSI. 3a Edición; Adison Wesley • Telecomunication Networks, computers and OSI. F. Haldadel. Addison Wesley (1988).