Upload
carlos-brito
View
639
Download
3
Embed Size (px)
Citation preview
CAPA 4TransporteMODELO OSI
Es el 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.
La tarea de esta capa es proporcionar un transporte de datos confiable y económico de la maquina de origen a la maquina destino.
¿De que se encarga el nivel o capa de transporte?
La meta final de la capa de transporte es proporcionar un servicio eficiente, confiable y económico a sus usuarios.
El hardware o software de la capa transporte que se encarga del trabajo se llama entidad transporte, la cual puede estar en el núcleo del SO, en un proceso independiente, en un paquete de biblioteca o en la tarjeta de red.
Servicios * Servicios que proporciona a capas superiores
Hay dos tipos de servicio en la capa transporte:
ORIENTADO A LA CONEXIÓN NO ORIENTADO A LA CONEXIÓN
En el servicio orientado a la conexión consta de 3 partes: establecimiento, transferencia de datos y liberación.
En el servicio no orientado a la conexión se tratan los paquetes de forma individual.
El servicio de transporte es parecido al servicio en red, pero hay algunas diferencias importantes. La principal, es que, el propósito del servicio de red es modelar el servicio ofrecido por las redes reales, con todos sus problemas.
Las redes reales pueden perder paquetes, por lo que generalmente el servicio no es confiable. En cambio, el servicio de transporte(orientado a la conexión) si es confiable.
* Primitivas del Servicio de Transporte
Claro que las redes reales no están libres de errores, pero ése es precisamente el propósito de la capa de transporte: ofrecer un servicio confiable en una red no confiable.
Otra diferencia entre la capa transporte y la de red es a quien van dirigidos sus servicios. El servicio de red lo usan únicamente las entidades de transporte.
Las primitivas de un transporte sencillo serían:
LISTEN: Se bloquea hasta que algún proceso intenta el contacto.
CONNECT: Intenta activamente establecer una conexión.
SEND: Envía información. RECEIVE: Se bloquea hasta que llegue una
TPDU de DATOS. DISCONNECT: Este lado quiere liberar la
conexión.
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 mando 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.
Elementos de los protocolos de transporte* Direccionamiento
En Internet, estos puntos terminales se denominan puertos, pero usaremos el término genérico de TSAP (Punto de Acceso al Servicio de Transporte
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.
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.
El problema viene cuando la red puede perder, almacenar, o duplicar paquetes. El principal problema es la existencia de duplicados retrasados. Esto puede solucionarse de varias maneras (ninguna es muy satisfactoria).
Establecimiento de una Conexión
Pero la solución seria más fácil si los paquetes viejos se eliminaran de la subred cada cierto tiempo de vida.
Para ello podemos utilizar las siguientes
técnicas:
Un diseño de subred Restringido. Colocar un contador de saltos en cada
paquete. Marcar el tiempo de cada paquete.
Hay dos estilos de terminación de una conexión:
Liberación asimétrica y 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.
La liberación simétrica trata la conexión como dos conexiones unidireccionales distintas, y requiere que cada una se libere por separado. La liberación asimétrica es abrupta y puede resultar en la perdida de datos. Por lo que es obvio que se requiere un protocolo de liberación más refinado para evitar la perdida de datos.
Liberación de una Conexión
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. Sin embargo, con un servicio de red confiable son posibles otros arreglos.
En particular, si el emisor sabe que el receptor siempre tiene espacio de buffer, no necesita tener copias de las TPDUs que envía.
Control de flujo y almacenamiento en buffer
Sin embargo, si el receptor no garantiza que se aceptará cada TPDU que llegue, el emisor tendrá que usar buffers de todas maneras.
En el último caso, el emisor no puede confiar en la confirmación de recepción de la capa red porque esto sólo significa que ha llegado la TPDU, no que ha sido aceptada.
La multiplexión de varias conversaciones en conexiones, circuitos virtuales o enlaces físicos desempeña un papel importante en diferentes capas de la arquitectura de red. En la capa de transporte puede surgir la necesidad de multiplexión por varias razones.
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
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
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.
Recuperación de Caídas
Internet tiene dos protocolos principales en la capa de transporte, uno orientado a la conexión y otro no orientado a la conexión. El protocolo no orientado a la conexión es el UDP y el orientado es el TCP.
UDP(Protocolo de Datagramas de usuario)Este protocolo proporciona una forma para que las aplicaciones envíen datagramas IP encapsulados sin tener una conexión.
Protocolos de transporte de internet
TCP (protocolo de control de transmisión)
Se diseñó específicamente para proporcionar un flujo de bytes confiable de extremo a extremo a través de una interred no confiable.
Una interred difiere de una sola red debido a que diversas partes podrían tener diferentes topologías, anchos de banda, retardos, tamaños de paquete… TCP tiene un diseño que se adapta de manera dinámica a las propiedades de la interred y que se sobrepone a muchos tipos de situaciones.
UDP es un protocolo no orientado a conexión. Es decir cuando una maquina A envía paquetes a una maquina B, el flujo es unidireccional. La transferencia de datos es realizada sin haber realizado previamente una conexión con la maquina de destino (maquina B), y el destinatario recibirá los datos sin enviar una confirmación al emisor (la maquina A).
Esto es debido a que la encapsulación de datos enviada por el protocolo UDP no permite transmitir la información relacionada al emisor. Por ello el destinatario no conocerá al emisor de los datos excepto su IP.
Diferencias entre UDP y TCP
TCP contrariamente a UDP, el protocolo TCP está orientado a conexión. Cuando una máquina A envía datos a una máquina B, la máquina B es informada de la llegada de datos, y confirma su buena recepción.
Aquí interviene el control CRC de datos que se basa en una ecuación matemática que permite verificar la integridad de los datos transmitidos.
El campo de puerto tiene una longitud de 16 bits, lo que permite un rango que va desde 0 a 65535, pero no todos estos puertos son de libre uso. Veamos algunas normas sobre ellos:
El puerto 0 es un puerto reservado, pero es un puerto
permitido si el emisor no permite respuestas del receptor. Los puertos 1 a 1023 reciben el nombre de Puertos bien
conocidos, y en sistemas Unix, para enlazar con ellos, es necesario tener acceso como superusuario.
Puertos*Rango de Puertos
Los puertos 1024 a 49151 son los llamados Puertos registrados, y son los de libre utilización.
Los puertos del 491552 al 65535 son
puertos efímeros, de tipo temporal, y se utilizan sobre todo por los clientes al conectar con el servidor.
La importancia de la apertura de estos puertos viene dada porque muchos programas de muy diferente tipo los utilizan, y necesitan tenerlos abiertos y, en el caso de redes, correctamente asignados. En general, cualquier programa o servicio que necesite comunicarse necesita un puerto (o varios) por el que hacerlo. Los más habituales (y conocidos) son:
Importancia de la apertura de los puertos
- 20 (TCP), utilizado por FTP (File Transfer Protocol) para datos - 21 (TCP), utilizado por FTP (File Transfer Protocol) para control - 25 (TCP), utilizado por SMTP (Simple Mail Transfer Protocol) - 53 (TCP), utilizado por DNS (Domain Name System) - 53 (UDP), utilizado por DNS (Domain Name System) - 67 (UDP), utilizado por BOOTP BootStrap Protocol (Server) y por
DHCP - 68 (UDP). utilizado por BOOTP BootStrap Protocol (Client) y por DHCP - 69 (UDP), utilizado por TFTP (Trivial File Transfer Protocol) - 80 (TCP), utilizado por HTTP (HyperText Transfer Protocol) - 88 (TCP), utilizado por Kerberos (agente de autenticación) - 110 (TCP), utilizado por POP3 (Post Office Protocol) - 137 (TCP), utilizado por NetBIOS (servicio de nombres) - 137 (UDP), utilizado por NetBIOS (servicio de nombres) - 138 (TCP), utilizado por NetBIOS (servicio de envío de datagramas) - 138 (UDP), utilizado por NetBIOS (servicio de envío de datagramas) - 139 (TCP), utilizado por NetBIOS (servicio de sesiones) - 139 (UDP), utilizado por NetBIOS (servicio de sesiones)
- 143 (TCP), utilizado por IMAP4 (Internet Message Access Protocol) - 443 (TCP), utilizado por HTTPS/SSL (transferencia segura de páginas
web) - 631 (TCP), utilizado por CUPS (sistema de impresión de Unix) - 993 (TCP), utilizado por IMAP4 sobre SSL - 995 (TCP), utilizado por POP3 sobre SSL - 1080 (TCP), utilizado por SOCKS Proxy - 1433 (TCP), utilizado por Microsoft-SQL-Server - 1434 (TCP), utilizado por Microsoft-SQL-Monitor - 1434 (UDP), utilizado por Microsoft-SQL-Monitor - 1701 (UDP), utilizado para Enrutamiento y Acceso Remoto para VPN
con L2TP. - 1723 (TCP). utilizado para Enrutamiento y Acceso Remoto para VPN
con PPTP. - 1761 (TCP), utilizado por Novell Zenworks Remote Control utility - 1863 (TCP), utilizado por MSN Messenger
Un puerto se puede abrir a dos niveles, a nivel del sistema y a nivel salida de comunicación.
A nivel del sistema se trata de autorizar en el
Firewall el tráfico por un determinado puerto. A nivel salida de comunicación se trata
básicamente de configurar un enrutador, o Router para que dirija el tráfico de un puerto determinado a un terminal especificado.
Ahora veamos una serie de consideraciones de carácter general que se deben tener en cuenta a este respecto:
- Antes de abrir un puerto debemos ser plenamente conscientes de los riesgos que esto supone.
- En un router, un puerto solo se pude redirigir a un terminal
(IP) concreto. En el caso de tratarse de un programa que tenga que estar instalado en más de un ordenador de la red, se debe configurar el/los puertos del programa de forma que sean diferentes en cada una de las instalaciones.
- Debemos asegurarnos de que un puerto que vayamos a
abrir queda operativo a ambos niveles. De nada nos sirve asignar un puerto en el router si luego nos lo cierra el Firewall.
- En conexiones de red con IP controlada por DHCP uno de los problemas que se presentan a nivel router es la asignación de la IP privada que este sistema haga en un momento dado a un ordenador. Cuando trabajamos con puertos asignados en un router es conveniente configurar las IP de forma manual en los terminales.
Para ello lo mejor es configurar en el router un rango
de DHCP que cubra los posibles equipos no asignados de forma manual que puedan tener que conectarse a nuestra red. Es aconsejable que este rango sea lo más ajustado posible, y a ser posible que comience por un número no demasiado bajo. Luego asignamos a nuestros equipos direcciones IP por debajo del rango asignado a DHCP.
UDP
TCP
Referencias:
http://es.wikipedia.org/wiki/Capa_de_transporte
http://www.monografias.com/trabajos/protocolotcpip/protocolotcpip.shtml
http://www.cs.famaf.unc.edu.ar/~gabriel/Teaching/Redes/files/transporte_2.pdf
http://www4.uji.es/~al019803/tcpip/paginas/CapaTransporte.htm
Jorge Luis Delgado Páramo