Capa de Red | Capa 3 OSI Ene 26, 2012 | Administracion de Sistemas | 3 Comentarios La capa de red (capa 3 OSI) define el enrutamiento y el envío de paquetes entre redes. La función de la capa de red es transferir datos desde el host que origina los datos hacia el host que los usa, a través de varias redes separadas si fuera necesario. La capa de red del modelo OSI proporciona el enrutamiento de mensajes y determina si el destino de estos es la capa 4 (Transporte) o la capa 2 (Enlace de Datos). La Capa de red o Capa 3 de OSI provee servicios para intercambiar secciones de datos individuales a través de la red entre dispositivos finales identificados. Para realizar este transporte de extremo a extremo la Capa de red utiliza cuatro procesos básicos: direccionamiento encapsulamiento enrutamiento desencapsulamiento Durante la encapsulación en el host origen, un paquete IP se construye en la Capa de red para transportar el PDU de la Capa 4. Gracias a esto, el paquete puede llevar una PDU a través de muchas redes y muchos routers.Para ello, las decisiones de envío están basadas en la información del encabezado del paquete IP. Nociones importantes que debemos conocer sobre Capa de red Ningún paquete puede ser enviado sin una ruta. Los routers y otros dispositivos de networking, almacenan estas rutas en las tablas de enrutamiento, y las usan para determinar dónde enviar los datos. Los routers en su tabla de enrutamiento tienen tres características principales: – red de destino – próximo salto – métrica Un router toma una decisión de reenvío para cada paquete que llega a la interfaz del gateway. Este proceso de reenvío es denominado enrutamiento. El enrutamiento se hace paquete por paquete y salto por salto. El router hará una de tres cosas con el paquete: – Enviarlo al router del próximo salto – Enviarlo al host de destino – Descartarlo Podemos usar el Enrutamiento estático o el Enrutamiento dinámico. Algunos protocolos de la capa de red Algunos protocolos de la capa de red son: IP (IPv4, IPv6, IPsec) OSPF IS-IS ARP, RARP RIP ICMP, ICMPv6 IGMP DHCP Internet Protocol o IP (en español Protocolo de Internet) es un protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados. El protocolo de IP es la base fundamental de Internet. Porta datagramas de la fuente al destino. El nivel de transporte parte el flujo de datos en datagramas. Durante su transmisión se puede partir un datagrama en fragmentos que se montan de nuevo en el destino. Las principales características de este protocolo son: Protocolo orientado a no conexión. Fragmenta paquetes si es necesario. Direccionamiento mediante direcciones lógicas IP de 32 bits. Si un paquete no es recibido, este permanecerá en la red durante un tiempo finito. Realiza el ¨mejor esfuerzo¨ para la distribución de paquetes. Tamaño máximo del paquete de 65635 bytes. Sólo se realiza verificación por suma al encabezado del paquete, no a los datos que éste contiene. El protocolo de Internet proporciona un servicio de distribución de paquetes de información orientado a no conexión de manera no fiable. La orientación a no conexión significa que los paquetes de información, que será emitido a la red, son tratados independientemente, pudiendo viajar por diferentes trayectorias para llegar a su destino. El término no fiable significa más que nada que no se garantiza la recepción del paquete. Clases de direcciones IP Se dividen de acuerdo a la cantidad de bytes que representan a la red. Clase A En una dirección IP de clase A, el primer byte representa la red. El bit más importante (el primer bit a la izquierda) está en cero, lo que significa que hay 2 7 (00000000 a 01111111) posibilidades de red, que son 128 posibilidades. Sin embargo, la red 0 (bits con valores 00000000) no existe y el número 127 está reservado para indicar su equipo. Las redes disponibles de clase A son, por lo tanto, redes que van desde 1.0.0.0 a 126.0.0.0 (los últimos bytes son ceros que indican que se trata seguramente de una red y no de equipos). En binario, una dirección IP de clase A luce así: 0 Xxxxxxx Xxxxxxxx Xxxxxxxx Xxxxxxxx Red Equipos Clase B En una dirección IP de clase B, los primeros dos bytes representan la red. Los primeros dos bits son 1 y 0; esto significa que existen 214 (10 000000 00000000 a 10 111111 11111111) posibilidades de red, es decir, 16.384 redes posibles. Las redes disponibles de la clase B son, por lo tanto, redes que van de 128.0.0.0 a 191.255.0.0. En binario, una dirección IP de clase B luce así: 10 Xxxxxx Xxxxxxxx Xxxxxxxx Xxxxxxxx Red Ordenadores Clase C En una dirección IP de clase C, los primeros tres bytes representan la red. Los primeros tres bits son 1,1 y 0; esto significa que hay 221 posibilidades de red, es decir, 2.097.152. Las redes disponibles de la clases C son, por lo tanto, redes que van desde 192.0.0.0 a 223.255.255.0. En binario, una dirección IP de clase C luce así: 110 Xxxxx Xxxxxxxx Xxxxxxxx Xxxxxxxx Red Ordenadores Clasificación de las direcciones IP IP pública Es la dirección IP con la que nos identificamos al conectarnos a otras redes (Internet). Esta IP nos la asigna nuestro proveedor ISP, y no tenemos control sobre ella. A su vez puede ser de dos tipos diferentes: IP estática Es cuando tenemos una dirección IP fija asignada. Este tipo es poco utilizado, carece de interés para el usuario doméstico y además los proveedores ISP suelen cobrar un suplemento por ellas. IP dinámica Es la utilizada habitualmente. Nuestro proveedor ISP nos asigna al conectarnos a la red (Internet) una dirección que tenga disponible en ese momento. Esta dirección cambia cada vez que nos desconectamos de Internet y nos volvemos a conectar. IP privada Es la dirección IP de cada equipo (Introducción en los Microordenadores|ordenador o cualquier elemento que se conecte a través del protocolo TCP/IP) de nuestra red. Al contrario de lo que ocurre con la IP pública, la IP privada sí que la asignamos nosotros, aunque se puede asignar de forma automática (mediante DHCP). Principalmente son utilizadas las comprendidas en el RFC 1918. Dirección IP Una dirección IP es un número que identifica de manera lógica y jerárquicamente a una interfaz de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo de Internet (Internet Protocol), que corresponde al nivel de red o nivel 3 del modelo de referencia OSI. Dicho número no se ha de confundir con la dirección MAC que es un número físico que es asignado a la tarjeta o dispositivo de red (viene impuesta por el fabricante), mientras que la dirección IP se puede cambiar. Las direcciones IP se pueden expresar como números de notación decimal: se dividen los 32 bits de la dirección en cuatro octetos. El valor decimal de cada octeto puede ser entre 0 y 255 [el número binario de 8 bits más alto es 11111111 y esos bits, de derecha a izquierda, tienen valores decimales de 1, 2, 4, 8, 16, 32, 64 y 128, lo que suma 256 en total, 255 más la 0 (0000 0000)] . En la expresión de direcciones IPv4 en decimal se separa cada octeto por un carácter único ".". Cada uno de estos octetos puede estar comprendido entre 0 y 255, salvo algunas excepciones. Los ceros iniciales, si los hubiera, se pueden obviar (010.128.001.255 sería 10.128.1.255) . Es habitual que un usuario que se conecta desde su hogar a Internet utilice una dirección IP. Esta dirección puede cambiar al reconectar, y a esta forma de asignación de dirección IP se denomina una dirección IP dinámica (normalmente se abrevia como IP dinámica) . Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados, generalmente tienen una dirección IP fija (se aplica la misma reducción por IP fija o IP estática); es decir, no cambia con el tiempo. Los servidores de correo, dns, ftp públicos, servidores web, necesariamente deben contar con una dirección IP fija o estática, ya que de esta forma se facilita su ubicación. Las máquinas tienen una gran facilidad para manipular y jerarquizar la información numérica, y son altamente eficientes para hacerlo y ubicar direcciones IP. Sin embargo, los seres humanos debemos utilizar otra notación más fácil de recordar y utilizar; tal es el caso URLs y resolución de nombres de dominio DNS . Los protocolos de transmisión de los paquetes de datos Una vez establecida la base de la comunicación por parte de los protocolos de la capa de enlace, se requieren otros protocolos que permitan que los paquetes de datos lleguen a las aplicaciones correspondientes. Partiendo del modelo OSI, este proceso se lleva a cabo en la capa de transporte o capa 4. Para ello, cada pila posee también sus propios protocolos. Para la familia de protocolos de Internet estos son, en especial: TCP (Transmission Control Protocol) o protocolo de control de la transmisión UDP (User Datagram Protocol) o protocolo del datagrama del usuario TCP, al igual que IP, también es considerado el estándar para las conexiones de red, por lo menos desde el gran éxito de Internet, y, en la mayoría de los casos, se construye sobre IP directamente, lo que origina que se hable a menudo de redes TCP/IP. Como protocolo orientado a la conexión, TCP presupone una conexión existente entre los participantes para poder transportar el paquete de datos, garantizando la transmisión fiable de los datos en tanto que los paquetes llegan íntegros y en el orden correcto al destinatario. Para hacer esto posible, el protocolo añade a los paquetes de datos información adicional como un número de secuencia o una suma de verificación (checksum), además de otro tipo de datos. UDP es su equivalente en la familia de protocolos de Internet para la transmisión simple y rápida de paquetes pequeños sin conexión. Aunque las conexiones UDP no garantizan que el paquete llegue a su destinatario, la reducción de los datos de gestión (información adicional en el encabezado) otorga una mayor velocidad a aquellas transferencias de datos en las cuales se pueda tolerar algún error de transmisión. Es por este motivo que UDP se utiliza en el streaming de vídeo y audio, en peticiones al DNS, así como en conexiones VPN (Virtual Private Network). Como la familia de protocolos de Internet, hay otras pilas de protocolo que también cuentan con protocolos de transmisión específicos construidos sobre sus protocolos de red y que, en gran parte, se asemejan mucho a TCP. Las redes Novell, por ejemplo, ofrecen el protocolo SPX en la capa de transporte. En el caso de la pila de AppleTalk, la transmisión de los paquetes tiene lugar con ayuda del ATP (AppleTalk Transaction Protocol). Protocolo de control de transmisión (en inglés Transmission Control Protocol o TCP) es uno de los protocolos fundamentales en Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.1 Muchos programas dentro de una red de datos compuesta por redes de computadoras, pueden usar TCP para crear “conexiones” entre sí a través de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto. TCP da soporte a muchas de las aplicaciones más populares de Internet (navegadores, intercambio de ficheros, clientes FTP, etc.) y protocolos de aplicación HTTP, SMTP, SSH y FTP. Objetivos de TCP[editar] Con el uso de protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias al de acuse de recibo -ACK- del protocolo TCP) independientemente de las capas inferiores. Esto significa que los routers (que funcionan en la capa de red) sólo tienen que enviar los datos en forma de segmentos, sin preocuparse con el monitoreo de datos porque esta función la cumple la capa de transporte (o más específicamente el protocolo TCP). Información técnica[editar] TCP es usado en gran parte de las comunicaciones de datos. Por ejemplo, gran parte de las comunicaciones que tienen lugar en Internet emplean TCP. Funciones de TCP[editar] En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de red (IP) y la aplicación. Muchas veces las aplicaciones necesitan que la comunicación a través de la red sea confiable. Para ello se implementa el protocolo TCP que asegura que los datos que emite el cliente sean recibidos por el servidor sin errores y en el mismo orden que fueron emitidos, a pesar de trabajar con los servicios de la capa IP, la cual no es confiable. Es un protocolo orientado a la conexión, ya que el cliente y el servidor deben anunciarse y aceptar la conexión antes de comenzar a transmitir los datos a ese usuario que debe recibirlos. Características del TCP[editar] Permite colocar los segmentos nuevamente en orden cuando vienen del protocolo IP. Permite el monitoreo del flujo de los datos y así evita la saturación de la red. Permite que los datos se formen en segmentos de longitud variada para "entregarlos" al protocolo IP. Permite multiplexar los datos, es decir, que la información que viene de diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda circular simultáneamente. Por último, permite comenzar y finalizar la comunicación amablemente. Formato de los segmentos TCP[editar] En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman "segmentos". El formato de los segmentos TCP se muestra en el esquema segmento TCP. Funcionamiento del protocolo en detalle[editar] Las conexiones TCP se componen de tres etapas: 1. Establecimiento de conexión (3-way handshake) 2. Transferencia de datos 3. Fin de la conexión. Para establecer la conexión se usa el procedimiento llamado “negociación en tres pasos” (3-way handshake). Para la desconexión se usa una “negociación en cuatro pasos” (4way handshake). Durante el establecimiento de la conexión, se configuran algunos parámetros tales como el número de secuencia con el fin de asegurar la entrega ordenada de los datos y la robustez de la comunicación. Protocolo de transferencia de archivos Ir a la navegaciónIr a la búsqueda «FTP» redirige aquí. Para otras acepciones, véase FTP (desambiguación). Protocolo de transferencia de archivos Familia Familia de protocolos de Internet Función Transferencia de archivos Puertos 20/TCP DATA Port 21/TCP Control Port Ubicación en la pila de protocolos Aplicación Transporte FTP TCP Red IP Estándares FTP: RFC 959 (1985) Extensiones de FTP para IPv6 y NATs: RFC 2428 (1998) [editar datos en Wikidata] El Protocolo de transferencia de archivos (en inglés File Transfer Protocol o FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo. El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos. Para solucionar este problema son de gran utilidad aplicaciones como SCP y SFTP, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico. Introducción a FTP El protocolo FTP es, como su nombre lo indica, un protocolo para transferir archivos. La implementación del FTP se remonta a 1971 cuando se desarrolló un sistema de transferencia de archivos (descrito en RFC 141) entre equipos del Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology). Desde entonces, diversos documentos de RFC (petición de comentarios) han mejorado el protocolo básico, pero las innovaciones más importantes se llevaron a cabo en julio de 1973. Actualmente, el protocolo FTP está definido por RFC 959 (protocolo de transferencia de archivos (FTP) - especificaciones). La función del protocolo FTP El protocolo FTP define la manera en que los datos deben ser transferidos a través de una red TCP/IP. El objetivo del protocolo FTP es permitir el intercambio de archivos entre equipos remotos, de una manera eficaz e independientemente del sistema de archivos utilizado en cada equipo. Protocolo de transferencia de hipertexto Ir a la navegaciónIr a la búsqueda Protocolo de transferencia de hipertexto Familia Familia de protocolos de Internet Función Transferencia de hipertexto Última versión 2.4.391 Puertos 80/TCP Ubicación en la pila de protocolos Aplicación HTTP Transporte TCP Red IP Estándares RFC 1945 (HTTP/1.0, 1996) RFC 2616 (HTTP/1.1, 1999) RFC 2774 (HTTP/1.2, 2000) RFC 7540 (HTTP/2, 2015) [editar datos en Wikidata] El Protocolo de transferencia de hipertexto (en inglés: Hypertext Transfer Protocol o HTTP) es el protocolo de comunicación que permite las transferencias de información en la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. HTTP es un protocolo sin estado, es decir, no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de sesión, y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado. El protocolo HTTP El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP. La especificación completa del protocolo HTTP 1/0 está recogida en el RFC 1945. Fue propuesto por Tim Berners-Lee, atendiendo a las necesidades de un sistema global de distribución de información como el World Wide Web. Desde el punto de vista de las comunicaciones, está soportado sobre los servicios de conexión TCP/IP, y funciona de la misma forma que el resto de los servicios comunes de los entornos UNIX: un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de conexión de los clientes Web. Una vez que se establece la conexión, el protocolo TCP se encarga de mantener la comunicación y garantizar un intercambio de datos libre de errores. HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL. Etapas de una transacción HTTP. Para profundizar más en el funcionamiento de HTTP, veremos primero un caso particular de una transacción HTTP; en los siguientes apartados se analizarán las diferentes partes de este proceso. Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos: Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web. El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor,… El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información. Se cierra la conexión TCP.