480 likes | 676 Views
REDES DE DATOS. INTEGRANTES: LOPEZ APARICIO CESAR V. CAPITULO 6 CAPA DE TRANSPORTE. CAPA DE TRANSPORTE. MODELO OSI. CAPA DE TRANSPORTE. El nivel de transporte o capa transporte es el cuarto nivel del modelo OSI
E N D
REDES DE DATOS INTEGRANTES: LOPEZ APARICIO CESAR V. CAPITULO 6 CAPA DE TRANSPORTE
CAPA DE TRANSPORTE
MODELO OSI CAPA DE TRANSPORTE El nivel de transporte o capa transporte es el cuarto nivel del modelo OSI Encargado de la transferencia libre de errores de los datos entre el emisor y el receptor, aunque no estén directamente conectados, así como de mantener el flujo de la red.
FUNCIONES DE LA CAPA DE TRANSPORTE La tarea de esta capa es proporcionar un transporte de datos confiable y económico de la máquina de origen a la máquina destino, Esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Independientemente de la red o redes fisicas en uso, sin la capa transporte, el concepto total de los protocolos en capas tendría poco sentido.
SERVICIOS DE LA CAPA DE TRANSPORTE • Garantiza la calidad de servicio requerida. • Proporciona primitivas independientes de la • capa de red. • Aislalas capas superiores de la tecnológia, el diseño y las imperfecciones de la subred. • Se pueden tener servicios orientados a • conexiones (confiable) o sin conexiones.
PRIMITIVAS DEL SERVICIO DE TRANSPORTE LISTEN: Se bloquea hasta que algún proceso intenta el contacto. CONNECT: Intenta activamente establecer una conexión. SEND: Envia información. RECEIVE: Se bloque hasta que llegue una TPDU de DATOS. DISCONNECT: Este lado quiere liberar la conexión.
SOCKET BARKELEY Este es otro grupo de primitivas de transporte, las primitivas usadas en UNIX para el TCP. El Berkeley sockets interfaz de programación de aplicaciones (API) comprende una biblioteca para el desarrollo de aplicaciones en el lenguaje de programación C. En general son muy parecidas a las anteriores pero ofrecen más características y flexibilidad.
FUNCIONES SOCKET BARKELEY socket() Crea un nuevo socket. bind() Se utiliza normalmente en el lado del servidor, y asocia una conexioncon una estructura de dirección de socket. listen() Se utiliza en el lado del servidor, y las causas de un salto socket TCP para entrar en estado de escucha. connect() Se utiliza en el cliente. En caso de un socket TCP, hace un intento de establecer una nueva conexión TCP. accept() se utiliza en el lado del servidor. Acepta un intentos recibidos entrantes para crear una nueva conexión TCP desde el cliente remoto, y crea un nuevo socket asociado con el par de dirección de socket de esta conexión.
FUNCIONES SOCKET BARKELEY send() y recv() o write() y read() , o sendto() y recvfrom() , Se utilizan para enviar y recibir datos a / desde una toma de distancia. close() La conexion termina. gethostbyname() y gethostbyaddr() Se utilizan para resolver nombres de host y direcciones. select() Se utiliza para crear una lista de todos aquellos que están listos para leer, listo para escribir, o los errores existentes. poll() Se utiliza para comprobar el estado de un socket
FUNCIONES SOCKET BARKELEY getsockopt() Se utiliza para recuperar el valor actual de una opción particular de conector para el socket especificado. setsockopt() Se utiliza para definir una opción particular de conector para el socket especificado.
ELEMENTOS DE PROTOCOLO DE TRANSPORTE El servicio de transporte se implementa mediante un protocolo de transporte entre dos entidades de transporte. Se encargan del control de errores, la secuenciación y el control del flujo. • DIRECCINAMIENTO • ESTABLECIMIENTO DE UNA CONEXIÓN • LIBERACION DE UNA CONEXIÓN • CONTROL DE FLUJO Y ALAMCENAMIENTO DE BUFFER • MULTIPLEXION • RECUPERACION DE CAIDAS
DIRECCIONAMIENTO Cuando un proceso desea establecer una conexión con un proceso de aplicación remoto, debe especificar a cuál se conectará. (¿a quién mandó el mensaje?) El método que normalmente se emplea es definir direcciones de transporte en las que los procesos pueden estar a la escucha de solicitudes de conexión. En Internet, estos puntos terminales se denominan puertos, pero usaremos el término genérico de TSAP (Punto de Acceso al Servicio de Transporte).
DIRECCIONAMIENTO Los puntos terminales análogos de la capa de red se llaman NSAP (Punto de Acceso al Servicio de Red). Las direcciones IP son ejemplos de NSAPs.
ESTABLECIMIENTO DE UNA CONEXION El establecimiento de una conexión parece fácil, pero en realidad es sorprendentemente difícil. A primera vista, parecería que es suficiente con mandar una TPDU (Unidad de Datos del Protocolo de Transporte) con la petición de conexión y esperar a que el otro acepte la conexión. En este enfoque cada vez que necesitemos una dirección la creamos. Al liberarse la conexión descartamos la dirección y no se vuelve a utilizar. O también asignar una secuencia dentro de los datos transmitidos, pero estos plantean los problemas de que si se pierde la conexión perdemos el orden del identificador y ya no funciona.
CONEXION DE 3 VIAS Cada host establece números de secuencia independientemente. El host que inicia la conexión envia un paquete con su numero inicial de secuencia. El segundo host envia un paquete de confirmación con su número inicial de secuencia. Todos los paquetes, exepto el primero contienen ambos números de secuencia
LIBERACION DE UNA CONEXION La liberación de una conexión es más fácil que su establecimiento. • Hay dos estilos de terminación de una conexión: • Liberación asimétrica • Liberación simétrica. La liberación asimétrica es la manera en que funciona el mecanismo telefónico: cuando una parte cuelga, se interrumpe la conexión.
LIBERACION SIMETRICA La liberación simétrica trata la conexión como dos conexiones unidireccionales distintas, y requiere que cada una se libere por separado. Podríamos pensar en un protocolo en el que el host 1 diga:”Ya termine, ¿Terminaste también?”. Si el host 2 responde “Ya termine también. Adiós”, la conexión puede liberarse con seguridad.
LIBERACION SIMETRICA El primer host envia un mensaje DR e inicia un temporizador. Al recibir un DR, el segundo host envia otro DR como confirmación e inicia otro temporizador. El primer host cierra la conexión y envía un acuse de recibo ACK. Si el host 2 no recibe el ACK cierra la conexión la conexión al llegar a 0 el temporizador Si el host 1 no recibe el DR hace hasta N intentos.
CONTROL DE FLUJO En esta capa lo que se hace es, si el servicio de red no es confiable, el emisor debe almacenar en un buffer todas las TPDUs enviadas, igual que en la capa enlace de datos. En particular, si el emisor sabe que el receptor siempre tiene espacio de buffer, no necesita tener copias de las TPDUs que envía. Sin embargo, si el receptor no garantiza que se aceptará cada TPDU que llegue, el emisor tendrá que usar buffers de todas maneras.
CONTROL DE FLUJO (a) Buffers de tamaño fijo, encadenados. (b) Buffers de tamaño variable encadenados. (c) Un buffer grande circular por conexión
MULTIPLEXION En la capa de transporte puede surgir la necesidad de multiplexión por varias razones. MULTIPLEXION HACIA ARRIBA Por ejemplo, si en un host sólo se dispone de una dirección de red, todas la conexiones de transporte de esa maquina tendrán que utilizarla. Cuando llega una TPDU, se necesita algún mecanismo para saber a cuál proceso asignarla. Esta situación se conoce como multiplexión hacia arriba.
MULTIPLEXION MULTIPLEXIÓN HACIA ABAJO La multiplexión también puede ser útil en la capa transporte para la utilización de circuitos virtuales, que dan más ancho de banda cuando se reasigna a cada circuito una tasa máxima de datos. La solución es abrir múltiples conexiones de red y distribuir el tráfico entre ellas. Esto se denomina multiplexión hacia abajo.
RECUPERACION DE CAIDAS Si los hosts y los enrutadores están sujetos a caídas, la recuperación es fundamental. Si la entidad de transporte está por entero dentro de los hosts, la recuperación de caídas de red y de enrutadores es sencilla. Si la capa de red proporciona servicio de datagramas, las entidades de transporte esperan pérdida de algunas TPDUs todo el tiempo, y saben cómo manejarla. Si la capa de red proporciona servicio orientado a la conexión, entonces la pérdida de un circuito virtual se maneja estableciendo otro nuevo y sondeando la entidad de transporte remota para saber cuales TPDUs ha recibido y cuales no.
RECUPERACION DE CAIDAS Un problema más complicado es la manera de recuperarse de caídas del host. Al reactivarse, sus tablas están en el estado inicial y no sabe con precisión donde estaba. En un intento por recuperar su estado previo, el servidor podría enviar una TPDU de difusión a todos los demás host, anunciando que se acaba de caer y solicitando a todos sus clientes que le informen el estado de todas la conexiones abiertas.
PROTOCOLOS DE TRANSPORTE DE INTERNET TCP Y UDP • TCP (Transmisión Control Protocol) es un protocolo orientado a conexiones. TCP se define en RFCs 793, 1122 y 1323 • UDP (User Data Protocol) es un protocolo sin conexiones. UDP se define en RFC 768 • TCP proporciona una corriente confiable de bytes a través de una internet. TCP se adapta a dinámicamente a las propiedades de la internet y es robusto ante muchos tipos de fallas
MODELO DE SERVICIO TCP • El transmisor y el receptor crean puntos de conexión llamados sockets. La dirección de un socket esta formada por el IP del host y un número de puerto de 16 bits. • Los puertos menores de 256 están reservados para servicios estandar definidos en RFC 1700. • Las conexiones TCP son duplex de punto a punto. El par (socket1, socket2) identifica cada conexión. • Una conexión TCP es una corriente de bytes, no una coriente de mensajes.
EL PROTOCOLO TCP Cada byte en una corriente TCP tiene su propio numero de secuencia de 32 bits. El tamaño máximo de un paquete TCP (segmento) es 65.535 pero cada red puede tener un MTU (MaximumTransfer Unit) por lo que puede ocurrir fragmentación. TCP usa un protocolo de ventana corrediza. TCP es robusto frente a fragmentación, duplicación, paquetes perdidos o fuera de orden, retrasmisiones, etc.
UDP (USER DATA PROTOCOL) Permite enviar datagramas sin necesidad de establecer una conexión. Los puertos de origen y destino cumplen la misma función que en TCP.
FRAGMENTACIÓN DE PAQUETES
Fragmentación de paquetes IP Cuando se tiene un paquete IP y se quiere pasar a la capa de enlace, se le añade la cabecera y el campo de CRC (CyclicRedundancyCheck). Como hay redes que limitan el tamaño máximo de los paquetes que pueden transportar entonces los paquetes se deben fragmentar siguiendo el procedimiento de la figura.
Fragmentación de paquetes IP Si en la cabecera de un paquete IP existe y está activo el bit de "no fragmentación" entonces el paquete no se puede fragmentar. Si se activa la fragmentación los siguientes campos de la cabecera IP se modifican: • El campo posición o desplazamiento que indica a que byte corresponde el primer byte de datos. • El Indicador o bit de mas datos: que vale 1 en todos los fragmentos excepto en el último. • Si un fragmento tiene que volver a fragmentarse y el bit de mas datos ya vale 1, mantendrá este valor en todos los nuevos fragmentos. Si vale 0, tomará el valor 1 excepto en el último fragmento. • El campo longitud de los datos y el campo checksum se calculan para cada fragmento. • El identificador de paquete y el resto de campos conservan el valor que tienen antes de fragmentarse el paquete IP.
Conceptos • MTU (Unidad máxima de transferencia) • Expresa el tamaño en bytes de la unidad de datos más grande que puede enviarse usando un Protocolo de Internet • Posibles Problemas: • Cada vez más redes bloquean todo el tráfico ICMP. • El camino se modifica dinámicamente, cambiando el MTU durante una transmisión. • MSS (Tamaño Máximo de Segmentos) • Es el tamaño más grande de datos que un dispositivo de comunicaciones puede manejar en un único trozo sin fragmentar. • Tiene gran importancia en Internet. • Es establecido automáticamente por el Sistema Operativo.
Fragmentación de paquetes IP El MTU de una red es la mayor cantidad de datos que puede transportar su trama física. El MTU de las redes Ethernet es de 1500 bytes y el de la redes TokenRing 8192 byte. Esto significa que una red Ethernet nunca podrá transportar un datagrama de 1500 bytes sin fragmentarlo. Un encaminador (router) fragmenta un datagrama en varios si el siguiente tramo de la red por el que tiene que viajar el datagrama tiene un MTU interior a la longitud del datagrama. Vemos con el siguiente ejemplo como se produce la fragmentación de un datagrama.
Fragmentación de paquetes IP Transmitir una datagrama IP de 1420 bytes de datos de la Red1 a la Red2
Datagrama IP El esquema de envío en IP es similar al que se emplea en la capa de Acceso a red. En esta última se envían tramas formadas por un encabezado y los datos. En el encabezado se incluyen la dirección física del origen y del destino. En el caso de IP se envían Datagramas, éstos también incluyen un Encabezado y Datos, pero las direcciones empleadas son Direcciones IP.
Formato del Datagrama IP Los Datagramas IP están formadas por palabras de 32 bits. Cada datagrama tiene un mínimo de cinco palabras y un máximo de quince.
Explicación de la Fragmentación • El tamaño máximo de una trama se denomina MTU (Unidad de Transmisión Máxima). • La fragmentación del datagrama se lleva a cabo a nivel de router. • Si el datagrama es demasiado grande para pasar por la red, el router lo fragmentará. • El router enviará estos fragmentos de manera independiente y los volverá a encapsular. • El router agrega información para que el equipo receptor pueda unir los fragmentos en el orden correcto. • Cada datagrama cuenta con diversos campos para su unión: • Campo Margen del Fragmento. • Campo Identificación. • Campo Longitud Total. • Campo Indicador
Enrutamiento IP El enrutamiento IP es una parte integral de la capa de Internet del conjunto TCP/IP. El enrutamiento consiste en asegurar el enrutamiento de un datagrama de IP a través de la red por la ruta más corta. A esta función la llevan a cabo los equipos denominados routers, es decir, equipos que conectan al menos dos redes. Enrutar es el proceso de selección de un camino para el envío de paquetes. La computadora que hace esto es llamada Router
Problemas de la Fragmentación Se tiene un problema para el nodo receptor: ¿Cómo recomponer correctamente el datagrama original a partir de los trozos? No todos los trozos llegan juntos y en orden. Se fija un tiempo máximo de espera para los trozos. El nodo receptor no sabe la longitud real del datagrama.
Ejemplo de Fragmentación de Paquetes • Si un paquete de 2,366 bytes entra en una red Ethernet con un tamaño de MTU por defecto, debe ser fragmentada en dos paquetes: • Primer Paquete • 1,500 bytes de longitud • 20 bytes del encabezado IP • 24 bytes de la cabecera TCP • 1456 bytes son octetos de datos • DF=0 (Fragmentar) • MF=1 (Más fragmentos) • Offset=0 • Segundo Paquete • 910 bytes de longitud • 20 bytes del encabezado IP • 24 bytes de la cabecera TCP • 866 bytes son octetos de datos • DF=0 (Fragmentar) • MF=0 (Último fragmento) • Offset=182