2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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).
11. 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.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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
17. 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.
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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:
25. - 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)
26. - 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
27. 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.
28. 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.
29. - 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.