Puertos y Sockets

Puertos

Cada proceso que se comunica con otro proceso se identifica a sí mismo a la familia de protocolos TCP/IP por uno o más puertos. Un puerto es un número de 16 bits, usado por el protocolo host-a-host para identificar a qué protocolo de más alto nivel o programa de aplicación (proceso) debe entregar los mensajes de entrada.

Como algunos programas de más alto nivel son protocolos por sí mismos, estandarizados en la familia de protocolos TCP/IP, tales como telnet y ftp, usan el mismo número de puerto en todas las realizaciones de TCP/IP. Aquellos números de puerto "asignados" se denominan puertos bien-conocidos y las aplicaciones estándares servicios bien-conocidos.

Los puertos "bien-conocidos" los controla y asigna la Autoridad de Números Asignados de Internet (IANA) y en la mayoría de los sistemas sólo pueden usarlo los procesos del sistema o programas ejecutados con privilegios de usuario. Los puertos "bien-conocidos" asignados ocupan números de puerto en el rango de 0 a 1023. Los puertos con números dentro del rango 1024-65535 no los controla la IANA y la mayor parte de los sistemas únicamente usan programas desarrollados por usuarios.

La confusión debida a que dos aplicaciones diferentes intentan usar los mismos números de puerto sobre un host se evita escribiendo esas aplicaciones para pedir un puerto TCP/IP disponible. Puesto que este número de puerto se asigna dinámicamente, debe diferir de una invocación de una aplicación a la próxima.

Sockets

Consideremos la terminología siguiente:

La interfaz socket es una de las muchas APIs para los protocolos de comunicación. Diseñada para ser una interfaz de programación de comunicación, fue introducida primero por el sistema UNIX 4.2BSD. Aunque no se ha estandarizado, ha llegado a ser un estándar en la industria.

4.2BSD permitía dos dominios de comunicación diferentes: Internet y UNIX. 4.3BSD ha añadido los protocolos del Sistema de Red de Xerox (XNS) y 4.4BSD añadirá una interfaz extendida para dar soporte a los protocolos ISO OSI.

Llamadas socket básicas

A continuación se lista algunas llamadas de la interfaz socket básica. En la próxima sección se verá un escenario ejemplo del uso de estas llamadas de la interfaz socket.

Un escenario ejemplo

Como ejemplo, considerar las llamadas del sistema socket para un protocolo orientado a conexión.

Considerar las llamadas del sistema socket anterior en términos de especificar los elementos de la asociación:

La interfez socket se diferencia por los servicios distintos que proporciona. Flujo, datagrama, y raw sockets cada uno de ellos define un servicio distinto disponible para aplicaciones.

Protocolo RARP  |  Tabla de Contenidos  |  Protocolo UDP