Direccionamiento

Otra características de la capa de transporte es que se requiere algún modo de direccionar o identificar de manera única cada conexión (el par de nodos interlocutores) o los paquetes que forman parte de una misma transmisión.

En TCP/IP es una dirección IP y un número de puerto por cada nodo, en ATM es una par AAL-SAPs, y en general le llamaremos TSAP o PAST (Transport Service Access Point o Punto de Acceso al Servicio de Transporte). Los mismos puntos en la capa de red se llaman NSAP o PASR (Network Service Access Point o Punto de Acceso al Servicio de Red).

Los paquetes de control de flujo, de retransmisión de paquetes, etc. que intercambian dos entidades de la capa de transporte se llaman TPDU o UDPT (Transport Protocol Data Unit o Unidades de Datos del Protocolo de Transporte). Son paquetes especiales en cuanto que no tienen ningún significado para las capas física, de enlace, de red, de sesión, de presentación ni para la aplicación, solamente le importan a la capa de transporte porque con ellos van a efectuar las operaciones pertinentes a esta capa del modelo.

En nuestros programas de sockets, aprendimos que el direccionamiento de la capa de transporte (TCP) se especifica por un socket que consiste de una dirección IP y de un número de puerto que en nuestro caso fue el 50,000. En la comunidad de Internet, existen puertos que ya están reservados para ciertos servicios y hay otros puertos que se pueden usar a discreción por el programador de aplicaciones de red. Por ejemplo, el servicio TELNET se ofrece en el puerto 23, FTP en el 20 y 21, NetNews en el 119, SMTP en el 25, WWW en el 80, etc.

Por otro lado, es muy común que al programar en red se utilicen, en lugar del IP, el nombre del nodo al cual se desea conectarse, lo cual requiere que exista un mecanismo de resolución que nos entregue la dirección IP para el nombre especificado. Esa resolución la realiza el Servicio de Nombres de Dominios (DNS Domain Name Service), el cual revisaremos en la sección 8.8.2.

Para que quede una idea clara de las necesidades de direccionamiento único en la capa de transporte, observer en programa de sockets el procedimiento marca_numero( ), ahí observamos que se nos provee el nombre del nodo pero no su dirección IP, la cual resolvemos usando la función gethostbyname( ):/* verificamos nombre */

      if ((hp= gethostbyname(hostname)) == NULL) {
      errno= ECONNREFUSED; /* y dirección */
      return(-1); /* error, salimos */
      }Con la llamada anterior logramos construir el socket que necesita de la dirección IP (que es única a nivel mundial para cada nodo) y el puerto ya lo tenemos (que especifica un servicio único en ese nodo) y entonces tenemos un socket único a nivel mundial.