# Puerto (informática)

En informática, un puerto es una interfaz a través de la cual se pueden enviar y recibir los diferentes tipos de datos. En electrónica, telecomunicaciones y hardware, una interfaz es el puerto (circuito físico) a través del que se envían o reciben señales desde un sistema o subsistemas hacia otros. No hay una interfaz universal, sino que existen diferentes estándares (Interfaz USB, interfaz SCSI, etc.) que establecen especificaciones técnicas concretas (características comunes), con lo que la interconexión sólo es posible utilizando la misma interfaz en origen y destino.
Así también, una interfaz puede ser definida como un intérprete de condiciones externas al sistema, a través de transductores y otros dispositivos, que permite una comunicación con actores externos, como personas u otros sistemas, a través de un protocolo común a ambos. Una interfaz es una conexión física y funcional entre dos aparatos o sistemas independientes.
La interfaz puede ser de tipo física (hardware) o puede ser a nivel lógico o de software, en cuyo caso se usa frecuentemente el término puerto lógico (por ejemplo, los puertos de redes que permiten la transmisión de datos entre diferentes computadoras).
Se denomina “puerto lógico” a una zona o localización de la memoria de acceso aleatorio (RAM) de la computadora que se asocia con un puerto físico o un canal de comunicación, y que proporciona un espacio para el almacenamiento temporal de la información que se va a transferir entre la localización de memoria y el canal de comunicación.

## Puertos de Internet

En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte, para distinguir entre las múltiples aplicaciones que se pueden conectar al mismo host, o puesto de trabajo.
Aunque muchos de los puertos se asignan de manera arbitraria, ciertos puertos se asignan, por convenio, a ciertas aplicaciones particulares o servicios de carácter universal. De hecho, la IANA (Internet Assigned Numbers Authority) determina las asignaciones de todos los puertos comprendidos entre los valores [0, 1023] (hasta hace poco, la IANA solo controlaba los valores desde el 0 al 255). Por ejemplo, el servicio de conexión remota telnet, usado en Internet se asocia al puerto 23. Por tanto, existe una tabla de puertos asignados en este rango de valores y que son los servicios y las aplicaciones que se encuentran en el listado denominado Selected Port Assignments.
De manera análoga, los puertos numerados en el intervalo [1024, 65535] se pueden registrar con el consenso de la IANA, vendedores de software y otras organizaciones. Por ejemplo, el puerto 1352 se asigna a Lotus Notes.

## Puerto serie

El puerto serie por excelencia es el RS-232, que utiliza cableado simple desde 3 hilos hasta 25 y que conecta computadoras o microconturoladores a todo tipo de periféricos, desde terminales de computadoras a impresoras y módems, pasando por mouse. La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el circuito integrado 82C50.
El RS-232 original tenía un conector tipo D de 25 pines, sin embargo, la mayoría de dichos pines no se utilizaban por lo que IBM incorporó desde su PS/2 un conector más pequeño de solamente 6 pines, que es el que actualmente se utiliza. En Europa la norma RS-422, de origen alemán, es también un estándar muy usado en el ámbito industrial.
Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los puertos paralelos, sin embargo, con el paso del tiempo, han ido apareciendo multitud de puertos serie con una alta velocidad que los hace muy interesantes ya que tienen la ventaja de un menor cableado y solucionan el problema de la velocidad con un mayor apantallamiento. Son más baratos ya que usan la técnica del par trenzado; por ello, el puerto RS-232 e incluso multitud de puertos paralelos están siendo reemplazados por nuevos puertos serie como el USB, el Firewire o el Serial ATA.
Los puertos serie sirven para comunicar la computadora con la impresora, el ratón o el módem, sin embargo, el puerto USB sirve para todo tipo de periféricos, desde ratones a discos duros externos, pasando por conexiones bluetooth. Los puertos sATA (Serial ATA): tienen la misma función que los IDE, (a estos se conecta, la disquetera, el disco duro, lector/grabador de CD y DVD) pero los sATA cuentan con una mayor velocidad de transferencia de datos. Un puerto de red puede ser puerto serie o puerto paralelo.

## Tipos de puertos
### PCI

Los puertos pueden conectar tarjetas de expansión: de sonido, de vídeo, de red, etcétera. La ranura o slot PCI se sigue usando hoy en día y podemos encontrar bastantes componentes (la mayoría) en el formato PCI. Dentro de las ranuras PCI está el PCI-Express. Los componentes que suelen estar disponibles en este tipo de ranura son:
* Capturadoras de televisión
* Controladoras RAID
* Tarjetas de red, inalámbricas, o no
* Tarjetas de sonido

### PCI Exprés

El PCI exprés es un nuevo desarrollo del bus PCI que usa los conceptos de programación y los estándares de comunicación existentes, pero se basa en un sistema de comunicación serie mucho más rápido que PCI y AGP. Posee nuevas mejoras para la especificación PCIe 3.0 que incluye una cantidad de optimizaciones para aumentar la señal y la integridad de los datos, incluyendo control de transmisión y recepción de archivos, PLL improvements, recuperación de datos de reloj, y mejoras en los canales, lo que asegura la compatibilidad con las topologías actuales. (anteriormente conocido por las siglas 3GIO, 3rd Generation I/O), este sistema es apoyado, principalmente, por Intel, que empezó a desarrollar el estándar con el nombre de proyecto Arapahoe después de retirarse del sistema Infiniband. Tiene velocidad de transferencia de 16x (8GB/s) y se utiliza en tarjetas gráficas.

### Puertos de memoria

A estos puertos se conectan las tarjetas de memoria RAM. Los puertos de memoria son aquellos puertos, o bahías, donde se pueden insertar nuevas tarjetas de memoria, con la finalidad de extender la capacidad de la misma. Existen bahías que permiten diversas capacidades de almacenamiento que van desde los 256MB (megabytes) hasta 64GB (gigabytes) aunque aumenta cada año. Conviene recordar que en la memoria RAM es de tipo volátil, es decir, si se apaga repentinamente la computadora los datos almacenados en la misma se pierden. Dicha memoria está conectada con la CPU a través de bus de muy alta velocidad. De esta manera, los datos ahí almacenados se intercambian con el procesador a una velocidad unas 1000 veces más rápida que con el disco duro.

### Puertos inalámbricos

Las conexiones en este tipo de puertos se hacen sin necesidad de cables, a través de la conexión entre un emisor y un receptor, utilizando ondas electromagnéticas.

### Puerto USB

Un puerto USB permite conectar hasta 127 dispositivos y ya es un estándar en las computadoras de next gen, que incluyen al menos cuatro puertos USB 3.0 en los más modernos, y algún USB 1.1 en los más viejos. Además, están disponibles en los dispositivos móviles, en su versión Mini-USB y micro-USB.
Es totalmente plug and play, es decir, con solo conectar el dispositivo (con la computadora ya encendida), el dispositivo es reconocido e instalado de manera inmediata. Solo es necesario que el sistema operativo lleve incluido el correspondiente controlador o driver.
Presenta una alta velocidad de transferencia en comparación con otro tipo de puertos: USB 1.1 alcanza los 12 Mb/s los 480 Mb/s (60 MB/s) para USB 2.0 y hasta 4,8 Gbit/s o 600MB/s (SuperSpeed USB SS) del USB 3.0 (ver USB 3.0), mientras un puerto serie o paralelo tiene una velocidad de transferencia inferior a 1 Mb/s. El puerto USB 3.0 es compatible con los dispositivos USB 2.0 y 1.1.
A través del cable USB no solo se transfieren datos, además es posible alimentar dispositivos externos. El consumo máximo de este controlador es de 2,5 vatios. Los dispositivos se pueden dividir en dispositivos de bajo consumo (hasta 100 mA, es decir, miliamperios) y dispositivos de alto consumo (hasta 500 mA). Para dispositivos que necesiten más de 500 mA será necesaria alimentación externa. Hay que tener en cuenta, además, que si se utiliza un concentrador y este está alimentado, no será necesario realizar consumo del bus. Una de las limitaciones de este tipo de conexiones es que la longitud del cable no debe superar los 5 m y que este debe cumplir las especificaciones del estándar USB iguales para las versiones 1.1 y la 2.0.

## Objetivos de los dispositivos E/S

La computación de entrada salida, o E/S, se refiere a la comunicación entre un sistema de procesamiento de información (como un computador), y los agentes humanos u otro sistema de procesamiento de información. Las entradas son las señales o datos recibidos por el sistema, y salidas son las señales enviadas por este.
Un dispositivo de E/S es un componente electrónico que permite la transmisión y/o recepción de información de/hacia el ordenador. Como ejemplo el ratón y el teclado son dispositivos de entrada, y el monitor y la impresora son dispositivos de salida. Los dispositivos para comunicación entre computadores son típicamente dispositivos de entrada y de salida.
En la arquitectura de computadores la combinación entre la CPU y la memoria principal está considerada el cerebro de la computadora y desde este punto de vista cualquier transferencia de información desde el computador es considerada entrada, y hacia el computador es considerada Salida.
El objetivo principal es conectar la mayor cantidad de dispositivos a un computador pero hay que atender a las distintas características que presentan cada uno de ellos y que a menudo suelen diferir de las propias del procesador, podemos destacar:
* Tienen, normalmente, menor velocidad que el procesador
* La longitud de palabra
* Los códigos que cada uno de ellos emplean para la representación de datos

### Interfaz

La interfaz de E/S es requerida cuando los dispositivos son ejecutados por el procesador. La interfaz debe ser necesariamente lógica para interpretar la dirección de los dispositivos generados por el procesador. El Handshaking deberá ser implementado por la interfaz usando los comandos adecuados (BUSY, READY, WAIT…), y el procesador puede comunicarse con el dispositivo de E/S a través de la interfaz. Si se intercambian diferentes formatos de datos, la interfaz debe ser capaz de convertir datos en serie a paralelo y viceversa. Los dispositivos de E/S se comunican por interrupciones con el procesador, si una interrupción es recibida, el procesador la atenderá con la rutina de interrupción correspondiente a dicha interrupción.
Un ordenador que usa E/S mapeados en memoria por lectura y escritura accede al hardware a través de la posición de memoria específica, usando el mismo lenguaje ensamblador que el procesador usa para el acceso a memoria.

#### Implementación de interfaces a alto nivel

Los sistemas operativos y lenguajes de programación de alto nivel facilitan el uso separado de más conceptos y primitivas abstractas de E/S. Por Ejemplo: la mayoría de sistemas operativos proporcionan aplicaciones con el concepto de fichero. Los lenguajes de programación C y C++, y los sistemas operativos de la familia unix, tradicionalmente abstraen ficheros y dispositivos como streams, los cuales pueden ser leídos o escritos, o ambas cosas. La librería estándar de C proporciona funciones para la manipulación de streams para E/S.

## Controlador de periférico

Actualmente se usan multitud de interfaces o controladores para las conexiones entre el procesador y los distintos periféricos (cada uno de estos últimos suele tener su propio controlador). En ocasiones se puede interconectar los periféricos con la memoria principal directamente sin pasar por el procesador para lo cual se utilizan dispositivos más avanzados como los DMA que son procesadores dedicados a dichas transferencias.
Estos dispositivos tratan de permitir la transferencias de datos hacia/desde el periférico determinado. Entre sus principales características podemos destacar:
* Tienen diversos puertos asociados. Entendemos por puerto algo que puede ser referenciado y accedido a través de una dirección (no tiene por qué ser un hardware específico de almacenamiento aunque en la mayoría de los casos suelen ser registros).
* Poseen circuitería específica para la adaptación del formato de señales y de velocidades entre el procesador y los dispositivos de E/S.
* Proporcionan las transferencias de datos, como especificamos anteriormente, usando el bus de datos.
* Requieren programas software para el proceso de transferencia, que será ejecutado por el procesador cada vez que se requiera usar al periférico involucrado.
* En computadores de alta gama se pueden emplear controladores más sofisticados que son en realidad procesadores específicos que solo tienen funciones para la E/S, son los llamados canales o IOP.