TCP usa el concepto de número de puerto para
identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión
TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que
existen 65536 puertos posibles) asignado por la aplicación emisora o receptora.
Los puertos son clasificados en tres categorías:
Bien conocido,
Registrados, y
Dinámicos/privados.
Los puertos bien conocidos son asignados por la Internet
Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados
normalmente por el sistema o por procesos con privilegios.3 Las
aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se
quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH
(22), Telnet (23), SMTP (25) y HTTP (80).
Los puertos registrados son normalmente empleados
por las aplicaciones de usuario de forma temporal cuando conectan con los
servidores, pero también pueden representar servicios que hayan sido
registrados por un tercero (rango de puertos registrados: 1024 al 49151).
Los puertos dinámicos/privados también pueden ser
usados por las aplicaciones de usuario, pero este caso es menos común. Los
puertos dinámicos/privados no tienen significado fuera de la conexión TCP en la
que fueron usados (rango de puertos dinámicos/privados: 49152 al 65535, recordemos
que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del 0 al
65535).
La familia de protocolos de Internet es un
conjunto de protocolos de red en los que se basa Internet y
que permiten la transmisión de datos entre computadoras.
En ocasiones se le denomina conjunto de protocolos
TCP/IP, en referencia a los dos protocolos más importantes que la componen, que
fueron de los primeros en definirse, y que son los dos más utilizados de la
familia:
TCP (Transmission Control Protocol), Protocolo de
Control de Transmisión, e,
IP (Internet Protocol), Protocolo de Internet.
Existen tantos protocolos en este conjunto que llegan a ser
más de cien diferentes, entre ellos se encuentran, entre otros:
ARP (Address Resolution Protocol), Protocolo de
Resolución de Direcciones, para la resolución de direcciones,
FTP (File Transfer Protocol), Protocolo de
Transferencia de Archivos, para transferencia de archivos o ficheros,
HTTP (HyperText Transfer Protocol), Protocolo de
Transferencia de Hiper Texto, que es popular porque se utiliza para acceder a
las páginas web,
POP (Post Office Protocol), Protocolo de Oficina
Postal, para correo electrónico,
SMTP (Simple Mail Transfer Protocol), Protocolo de
Transferencia Simple de Correo, para correo electrónico,
Telnet (Teletype Network), para acceder a equipos
remotos.
TCP/IP fue desarrollado y demostrado por primera vez en 1972 por
el Departamento de Defensa de los Estados Unidos, ejecutándolo
en ARPANET, una red de área extensa de dicho departamento.
La familia de protocolos de Internet puede describirse por analogía con
el modelo OSI (Open System Interconnection), que describe los niveles
o capas de la pila de protocolos, aunque en la práctica no corresponde
exactamente con el modelo en Internet. En una pila de protocolos, cada nivel
resuelve una serie de tareas relacionadas con la transmisión de datos, y
proporciona un servicio bien definido a los niveles más altos. Los niveles
superiores son los más cercanos al usuario y tratan con datos más abstractos,
dejando a los niveles más bajos la labor de traducir los datos de forma que
sean físicamente manipulables.
El modelo de Internet fue diseñado como la solución a un
problema práctico de ingeniería. El modelo OSI, en cambio, fue propuesto
como una aproximación teórica y también como una primera fase en la evolución
de las redes de computadoras. Por lo tanto, el modelo OSI es más fácil de
entender, pero el modelo TCP/IP es el que realmente se usa. Sirve de ayuda
entender el OSI, antes de conocer TCP/IP, ya que se aplican los mismos
principios, pero son más fáciles de entender en el OSI.
El protocolo TCP/IP es el sucesor del Network Control
Program (NCP), con el que inició la operación de ARPANET, y fue presentado
por primera vez con los RFC 791,1 RFC 7922 y RFC 7933 en
septiembre de 1981. Para noviembre del mismo año se presentó el plan
definitivo de transición en el RFC 801,4 y se marcó el 1 de
enero de 1983como el “Día Bandera” para completar la migración.
El propósito de la capa de Internet es enviar paquetes
origen desde cualquier red en la red y que estos paquetes lleguen a su destino
independientemente de la ruta y de las redes que recorrieron para llegar hasta
allí. El protocolo específico que rige esta capa se denomina Protocoló Internet
(IP). En esta capa se produce la determinación de la mejor ruta y la
conmutación de paquetes. Esto se puede comparar con el sistema postal. Cuando enviamos
una carta por correo, no sabemos cómo llega a destino (existen varias
rutas posibles); lo que nos interesa es que la carta llegue. Esta capa tiene
como proposito seleccionar la mejor ruta para enviar paquetes por la red.
El protocolo más importante de esta capa y piedra base de toda la Internet es
el IP. Este protocolo proporciona los servicios básicos de transmisión de paquetes
sobre los cuales se construyen todas las redes TCP/IP.
Las funciones de este protocolo incluyen:
• Definir del datagrama (estructura interna de un paquete de
datos), que es la unidad básica de transmisión en Internet.
• Definir el esquema de direccionamiento de Internet.
• Mover los datos entre la capa de acceso a red y la capa de
transporte.
• Encauzar los datagramas hacia sistemas remotos. (Routing)
• Realizar la fragmentación y re-ensamblaje de los datagramas.
El protocolo IP es un
"protocolo sin conexión"
, es decir, no intercambia información de control para
establecer una conexión antes de enviar los datos. En caso de que dicha
conexión fuese necesaria, el IP delegará tal
labor en protocolos de otras capas. Este protocolo
tampoco realiza detección de errores o recuperación de datos ante los mismos.
Los protocolos TCP/IP fueron diseñados para el intercambio
de datos en ARPANET (Redde la Agencia de Proyectos de Investigación
Avanzada), que era una red de intercambio de paquetes. Un paquete es un
bloque de datos que lleva consigo la información necesaria para enviarlo. Para
aclarar esto podríamos comparar un paquete con una tarjeta postal, en la que no solo escribimos un mensaje sino que además
añadimos los datos pertinentes para que llegue a su destinatario, nombre,
dirección, etc.Una red de intercambio de paquetes usa esta información para
cambiar los paquetes de una red a otra moviéndolos hacia su destino final. Cada
paquete navega por la red independientemente de cualquier otro paquete. El
datagrama es el formato del paquete que define el IP. Un datagrama consta de
dos partes, la cabecera y los datos. A la hora de enviar un datagrama, el IP
comprueba la dirección de destino. Aquí nos surgen dos posibilidades:
La capa de acceso a la red es la
primera capa de la pila TCP/IP. Ofrece la capacidad de acceder a cualquier red
física, es decir, brinda los recursos que se deben implementar para transmitir
datos a través de la red.
Por lo tanto, la capa de acceso a la red contiene especificaciones relacionadas
con la transmisión de datos por una red física, cuando es una red de área local
(Red en anillo, Ethernet, FDDI), conectada mediante línea telefónica
u otro tipo de conexión a una red. Trata los siguientes conceptos:
Enrutamiento de datos por la conexión;
Coordinación de la transmisión de
datos (sincronización);
Formato de datos;
Conversión de señal (análoga/digital);
Detección de errores a su llegada.
...
Afortunadamente, todas estas
especificaciones son invisibles al ojo del usuario, ya que en realidad es el
sistema operativo el que realiza estas tareas, mientras los drivers de hardware
permiten la conexión a la red (por ejemplo, el driver de la tarjeta de red).
Los protocolos de las capas anteriores
permiten enviar información de un equipo a otro. La capa de transporte permite
que las aplicaciones que se ejecutan en equipos remotos puedan comunicarse. El
problema es identificar estas aplicaciones.
De hecho, según el equipo y su sistema operativo, la aplicación puede ser un
programa, una tarea, un proceso, etc.
Además, el nombre de la aplicación puede variar de sistema en sistema. Es por
ello que se ha implementado un sistema de numeración para poder asociar un tipo
de aplicación con un tipo de datos. Estos identificadores se denominan puertos.
La capa de transporte contiene dos
protocolos que permiten que dos aplicaciones puedan intercambiar datos
independientemente del tipo de red (es decir, independientemente de las capas
inferiores). Estos dos protocolos son los siguientes:
TCP, un protocolo orientado a
conexión que brinda detección de errores;
UDP, un protocolo no orientado a
conexión en el que la detección de errores es obsoleta.