Está en la página 1de 5

Matías Baeza Graf #29654

2021

Clase 5 – Redes II 2021

CAPA DE TRANSPORTE

Es una capa muy al alcance de la mano. Es la primera capa que ve a toda la red como una caja negra.
Esta trabaja extremo a extremo. Si un proceso A de un host A quiere comunicarse con un proceso B de
un host B, la capa de transporte solamente está en los hosts. No ve nada de red o enlace. Les brinda
servicios a los procesos que se quieren comunicar entre sí.

Se dice que la primera función de la capa de transporte es ofrecer comunicación proceso a proceso. Al
estar en los extremos, les brinda servicios a los procesos que se quieren comunicar entre sí. Tiene una
interfaz con la aplicación. Sucede la
multiplexación y demultiplexación. Es decir
que se colectan datos de múltiples
procesos. En una computadora, hay muchos
procesos, y normalmente una sola tarjeta
de red. Esto quiere decir que todos los
procesos utilizan esa misma tarjeta de red.
O sea que, de la capa de transporte para
abajo, el flujo de datos es uno solo. En el
lado del receptor, justamente sucede la demultiplexación. Es decir, que viene un flujo de datos y esta
capa tiene que identificar que segmentos pertenecen a qué procesos. El paradigma de comunicación
proceso a proceso más frecuente es cliente-servidor. En este, claramente la funcionalidad del cliente y el
servidor no son iguales. Otra alternativa es Peer to Peer (P2P) en la cual ambas alpicaciones son iguales.
La capa de transporte tiene las mismas funciones en ambos casos.

Los puntos de acceso al servicio TSAP


(Transport Service Access Point) son los
nodos que están en la interfaz
transporte-aplicación, y en el caso de
transporte, tienen una función
relevante, porque tienen una
identificación, la cual termina siendo la
dirección de transporte. Los TSAPs
están asociados a entidades de la capa
de aplicación, llamadas procesos, que
usan los servicios de transporte. Sobre
TSAP se arma el esquema de
direcciones de la capa de transporte. Es
decir que cada TSAP tiene un direccionamiento que es el direccionamiento de capa 4. En contraposición,
en la capa de red, el esquema de direcciones lo armabamos con IPs (cuando se usa TCP/IP), donde cada
dirección IP estaba asociada a una interfaz hacia el medio de comunicación.
Matías Baeza Graf #29654
2021

En capa 4 las unidades de protocolos se llaman segmentos. Como en toda capa, estos segmentos tienen
un encabezado de capa 4 sumado a los datos que vienen de la capa 5 o de aplicación. Estos segmentos
son la carga util de los datagramas que vimos en capa 3. Cuando la capa 4 quiere enviar un segmento al
otro extremo le pide servicios a la capa 3.

Para que la comunicación extemo a extremo sea posible debemos definir e identiifcar:

- Host local
- Proceso local
- Host remoto
- Proceso remoto

Para poder identificar los procesos primero tengo que identificar sus hosts. Luego necesito una
identificación única de los procesos dentro de sus hosts. El host local y el host remoto se definen
mediante direcciones IP. Para identificar únicamente a los procesos utilizamos TSAP (Las direcciones IP
son NSAP, Network Service Access Point) Si les asignamos un solo TSAP a cada proceso, esto equvaldría
a identificar a ese proceso dentro del host. Entonces si yo sumo la IP + TSAP puedo identificar
únicamente a cada proceso. Recordemos que cada proceso tiene su PID dentro de sus hosts, sin
embargo, no puedo usar el PID para identificar el proceso y resolver el problema de direccionamiento
porque el PID no está estandarizado, es decir que cada SO usa como identificador lo que quiere, y si
queremos lograr conectividad completa necesitamos un direccionamiento estándar para todos los SOs.
Entonces le damos IDs únicos a los TSAPs. Entonces, si sumamos la IP del host mas la identificación que
le doy al TSAP, voy a poder identificar a cada proceso de manera unívoca.

En TCP/IP, los TSAPs se denominan puertos y se identifican con números enteros comprendidos entre 0
y 65535. Es decir que se tienen 16 bits para identificar puertos. Entonces en cliente-servidor, el
programa cliente se define mediante un número de puerto usualmente elegido al azar. Sin embargo, el
proceso o programa servidor, por más que también se define mediante un numero de puerto, este
número no se puede elegir al azar. TCP/IP decidió utilizar números de puerto universales para los
servidores, que se denominan números de puerto “bien conocidos”. Podemos decir que el conjunto de
números de puertos disponibles para los servidores es totalmente distinto al conjunto de números de
puertos disponibles para los clientes. Entonces el rango de números que el SO del cliente va a usar para
hacer la selección al azar de puerto está disociado del rango de numero de puerto usado para los
procesos servidores.

A continuación, vamos a ver un ejemplo orientado a la


conexión. Un proceso servidor de correo se enlaza con el
TSAP 1522 en el host 2 (192.168.0.1) para esperar una
llamada entrante. Si el servicio que brinda la capa 4 es
orientado a la conexión, cuando el cliente se levanta,
solicita una conexión. En este caso, un proceso de
aplicación en el host 1 (10.0.0.1) quiere enviar un mensaje
de correo, por lo que se enlaza con el TSAP 1208 y emite
una solicitud CONNECT. Esta solicitud especifica el TSAP
1208 en el host 1 (10.0.0.1) como el origen y el TSAP 1522
Matías Baeza Graf #29654
2021

en el host 2 (192.168.0.1) como destino. El proceso de aplicación envía el mensaje de correo. El servidor
de correo responde para decir que entregará el mensaje. Se libera la conexión de transporte.

Lo que podemos observar es que el proceso cliente le tiene que decir a transporte, con quien se quiere
comunicar, o con quien quiere establecer una conexión si es orientado a conexión o a quien le quiere
mandar datos. Entonces cuando el cliente la pide servicios a la capa 4 ya le tiene que indicar cual es el
proceso remoto, el cual se va a identificar con la IP del host remoto con el TSAP del proceso. Entonces el
cliente, de antemano debe conocer no solo la IP sino que también el número de puerto asociado al
proceso remoto con el cual se quiere comunicar. En nuestro caso, el cliente de correo tiene que saber
en qué host se encuentra el servidor de correo con el cual se quiere comunicar y particularmente dentro
de este host en que número de puerto está prestando servicios el servidor de correo.

¿Pero cómo sabe el proceso de usuario del host 1 que el servidor de correo está conectado al TSAP
1522? Hay varias posibilidades. Una es que el servidor se haya enlazado por muchos años con ese TSAP
entonces todos los usuarios de la red aprendieron esto. Este es un modelo en el que los servicios tienen
direcciones TSAP estables y se listan en archivos en lugares bien conocidos como puertos bien concidos.

Una alternativa es que haya un proceso especial “portmapper”, el cual escucha en un puerto conocido
(cumple con la condición anterior) el cual todos los clientes conocen. Los demás procesos escuchan en
puertos no conocidos. Entonces cuando un proceso quiere ser localizado por el portmapper, debe
registrarse con el este a través del nombre del servicio, que va a ser la manera del cliente de identificar
al proceso servidor. El cliente le va a preguntar al portmapper, cual es el puerto del servicio (nombre con
el que se identificó el proceso p1 en el portmapper. El cliente consulta por este nombre), y el
portmapper le va a responder con el número de puerto de p1. Entonces el proceso cliente se va a poder
contactar con el proceso p1 porque ya conoce su TSAP. Es mucho menos usado porque tiene problemas
de seguridad.

Otra alternativa es tener lo que se


llama un servidor de procesos
(EJEMPLO). Esta sirve cuando hay
procesos con poca demanda. Por
más que haya procesos asociados
con puertos bien conocidos,
también se tienen procesos con
poca demanda. Por ahí se tienen
100 procesos servidores cada uno
con su puerto, y apenas una vez por
día alguien le pregunta algo a cada
uno de estos procesos, los cuales al
estar activo consumen recursos. El
servidor de procesos manda a dormir a estos y se pone a escuchar en todos los puertos de los procesos
dormidos. Si llega una solicitud para uno de estos puertos, el servidor despierta al proceso
correspondiente al puerto, así este atiende la solicitud, para luego volver a dormir. En UNIX el demonio
servidor se llama inetd. La idea del servidor es usarlo solo para los puertos con poco uso.
Matías Baeza Graf #29654
2021

Cabe destacar que solo a los procesos que utilizan los servicios de la capa de transporte se les asigna
un puerto. Si yo abro una ventana de mi navegador no va a requerir un puerto. Cuando empiezo a
navegar en internet el escenario cambia. Lo que pasa es que muchas aplicaciones que parecería que no
utilizan la red, cuando se abren verifican si hay actualizaciones disponibles, en cuyo caso se establece
una conexión y se le asigna un número de puerto. Después de verificar las actualizaciones el número de
puerto vuelve a estar libre.

RANGOS ICANN

El ICANN es el
organismo internacional que administra los puertos, y divide los 65536 existentes en tres grupos:

1) Los puertos bien conocidos son los que van del 0 al 1023 y están controlados por el IANA y ya
asignados a servicios. Estos están ocupados. Por ejemplo, el 443 es utilizado por HTTPS, el 22
por SSH y el 25 SMTP. Estas son las aplicaciones que utilizan estos puertos. Estas han utilizado
estos puertos toda la vida porque desde el inicio, los puertos del 0 al 1023 se reservaron para
que estas aplicaciones que son todas servidores utilicen siempre el mismo número de puerto.

2) Los puertos del 1024 a 49151, llamados registrados o registrables no están preasignados por el
IANA, sino que son asignados por el IANA para el servicio específico a petición de una entidad
solicitante. Se llaman puertos registrados. Se utilizan cuando quieres que tu servicio aparezca
como bien conocido. Imaginando que nosotros escribimos una DBMS (DataBase Managment
System) y queremos que la gente se la pueda bajar, y queremos que este por defecto escuche
siempre en el mismo puerto. Esto se puede aplicar a cualquier aplicación novedosa del tipo
cliente servidor, y que queramos que nuestro servidor tenga siempre un puerto como si toda la
vida lo hubiera tenido y todos los clientes de antemano ya sepan. Entonces los puertos libres de
este rango tienen la posibilidad de ser asignados para aplicaciones nuevas. La idea es que
como cliente cada vez que te quieras conectar a un servidor, sepas en que puerto escucha este
de antemano, como si fuera en un puerto bien conocido.

3) Todos los puertos que van del 49152 a 65535 se llaman dinámicos o privados. No se los controla
ni registra. Se los puede utilizar para conexiones cortas donde el alojamiento del puerto es
temporal.

La identificación de un proceso va a estar


formada por la combinación de IP y numero de
Matías Baeza Graf #29654
2021

puerto. Entonces cada punto extremo queda determinado por la dirección IP, el puerto y el protocolo de
transporte que se está utilizando. Esta asociación se denomina socket o dirección de transporte.

También podría gustarte