En el ejemplo anterior, mostramos a Netscape enviando una consulta TCP a un servidor web que se ejecutaba en otro nodo. Pero imagine que el nodo del servidor web también está ejecutando un servidor de correo electrónico, otro de FTP y un servidor de nombres: ¿cómo se sabe a qué servidor va dirigida cada conexión TCP?
Por esa razón, TCP y UDP tienen un concepto de «puertos». Cada paquete
tiene espacio para un «puerto de destino», que indica para qué servicio es
el paquete. Por ejemplo, el puerto 25 de TCP es el servidor de correo, y el
puerto 80 TCP es el servidor web (aunque a veces se encuentren servidores web
en puertos diferentes). Puede encontrar una lista de puertos en
/etc/services
.
Además, si dos ventanas de Netscape acceden a la vez a diferentes partes del servidor web, ¿cómo sabe la máquina con el Linux ejecutando Netscape repartir correctamente los paquetes TCP con las respuestas del servidor web?
Aquí es donde entra en acción el «puerto de origen»: cada nueva conexión TCP toma un puerto
N. del T.: puerto de origendiferente, de manera que todo el mundo puede diferenciarlas, incluso si van dirigidas a los mismos IP y puerto de destino. Normalmente, el primer puerto disponible será el 1024, e irá incrementándose con el tiempo y el uso.