PPP
Siglas de Point-to-Point Protocol. Es un protocolo de comunicaciones
utilizado para transmitir datos de la red a través de las líneas
telefónicas. Este tipo de conexión permite comunicar directamente
con otros ordenadores de la red por medio de conexiones TCP/IP.
UUCP
Siglas de UNIX to UNIX Copy Program. Se trata de un protocolo para la transferencia
de ficheros, noticias, y correo, así como para ejecutar ordenes distantes
entre ordenadores.
TCP:
TCP es un protocolo estándar con el STD 7. Se describe en el RFC 793
- TCP("Transmission Control Protocol"). Su status es recomendado,
pero en la práctica cualquier implementación de TCP/IP que no
se use exclusivamente para el encaminamiento incluirá TCP.
TCP proporciona una cantidad considerablemente mayor de servicios a las aplicaciones
que UDP, notablemente, la recuperación de errores, control de flujo
y fiabilidad. Se trata de un protocolo orientado a conexión a diferencia
de UDP. La mayoría de los protocolo de aplicación de usuario,
como TELNET y FTP, usan TCP.
Como se señaló arriba, el principal propósito de TCP
es proporcionar una conexión lógica fiable entre parejas procesos.
No asume la fiabilidad de los protocolos de niveles inferiores(como IP) por
lo que debe ocuparse de garantizarla.
TCP se puede caracterizar por los siguientes servicios que suministra a las
aplicaciones que lo usan:
Transferencia de datos a través de un canal
Desde el punto de vista de la aplicación, TCP transfiere un flujo continuo
de bytes a través de Internet. La aplicación no ha de preocuparse
de trocear los datos en bloques o en datagramas. TCP se encarga de esto al
agrupar los bytes en segmentos TCP, que se pasan a IP para ser retransmitidos
al destino. Además, TCP decide por sí mismo cómo segmentar
los datos y puede enviarlos del modo que más le convenga.
A veces, una aplicación necesita estar segura de que todos los datos
pasados a TCP han sido transmitidos efectivamente al destino. Por esa razón,
se define la función "push". Esta función mandará
todos los segmentos que sigan almacenados al host de destino. El cierre normal
de la conexión también provoca que se llame a esta función,
para evitar que la transmisión quede incompleta.
Fiabilidad
TCP asigna un número de secuencia a cada byte transmitido, y espera
una reconocimiento afirmativo(ACK) del TCP receptor. Si el ACK no se recibe
dentro de un intervalo de timeout, los datos se retransmiten. Como los datos
se transmiten en bloques(segmentos de TCP), al host de destino sólo
se le envía el número de secuencia del byte de cada segmento.
El TCP receptor utiliza los números de secuencia para organizar los
segmentos cuando llegan fuera de orden, así como para eliminar segmentos
duplicados.
Control de flujo
El TCP receptor, al enviar un ACK al emisor, indica también el número
de bytes que puede recibir aún, sin que se produzca sobrecarga y desbordamiento
de sus buffers internos. Este valor se envía en el ACK en la forma
del número de secuencia más elevado que se puede recibir sin
problemas. Este mecanismo se conoce también como mecanismo de ventanas
y se estudiará posteriormente en este capítulo.
Multiplexación
Se consigue usando puertos, al igual que en UDP.
Conexiones lógicas
La fiabilidad y el control de flujo descritos más arriba requieren
que TCP inicialice y mantenga cierta información de estado para cada
canal. La combinación de este estado, incluyendo zócalos, números
de secuencia y tamaños de ventanas, se denomina conexión lógica.
Cada conexión se identifica unívocamente por el par de zócalos
del emisor y el receptor.
Full Duplex
TCP garantiza la concurrencia de los flujos de datos en ambos sentidos e la
conexión.
IP
IP es un protocolo estándar con STD 5 que además incluye ICMP
(ver ICMP("Internet Control Message Protocol")) e IGMP (ver IGMP("Internet
Group Management Protocol")). Su status es requerido.
Su especificación actual se puede encontrar en los RFCs 791, 950, 919
y 922, que actualizado en el RFC 1349.
IP es el protocolo que oculta la red física subyacente creando una
vista de red virtual. Es un protocolo de entrega de paquetes no fiable y no
orientado a conexión, y se puede decir que aplica la ley del mínimo
esfuerzo. No aporta fiabilidad, contrtol de flujo o recuperación de
errores a los prots de red inferiores. Los paquetes (datagramas) que envía
IP se pueden perder, desordenarse, o incluso duplicarse, e IP no manejará
estas situaciones. El proporcionar estos servicios depende de prots superiores.
IP asume pocas cosas de las capas inferiores, sólo que los datagramas
"probablemente" serán transportados al host de destino.
PPP
PPP es un protocolo estándar específico de red con STD 51. Su
status es electivo. Se describe en el RFC 1661 y en el RFC 1662. Hay un gran
número de propuestas de estándares que especifican el funcionamiento
de PPP sobre distintas clases de enlaces punto-a-punto. Cada uno tiene un
status electivo. El lector puede consultar el STD 1 - Estándares de
protocolos oficiales de Internet para una lista de RFCs relacionados con PPP
contemplados en el seguimiento de estándares("Standards Track").
Los circuitos punto-a-punto en la forma de líneas síncronas
y asíncronas han sido durante mucho tiempo la vela mayor de las comunicaciones
de datos. En el mundo TCP/IP, SLIP ha tenido una gran utilidad en esta área,
y aún está ampliamente extendido en conexiones TCP/IP con marcaje
Formato SMB.
Richard Sharpe, del equipo de desarrollo de Samba, define SMB como un protocolo
"petición-respuesta"3.2. En efecto, esto significa que un
cliente envía una petición SMB a un servidor, y el servidor
envía una respuesta SMB de vuelta al cliente. Raramente un servidor
envía un mensaje que no es respuesta a la petición de un cliente.
Un mensaje SMB no es tan complejo como puedas pensar. Echemos un vistazo a
la estructura interna de uno de estos mensajes. Este puede dividirse en dos
partes: la cabecera (header), la cual es de tamaño fijo, y la cadena
de comando (command string), cuyo tamaño puede variar en base al contenido
del mensaje.
UDP.
El protocolo TCP tiene la robustez, la confiabilidad y las funcionalidades
propias de un protocolo de transporte orientado a conexión, pero a
veces resulta demasiado complejo. Por ejemplo, cualquier transmisión
de información TCP requiere como mínimo el intercambio de seis
mensajes para establecer la comunicación y terminarla; además
mientras una conexión existe ocupa una serie de recursos en el host.
Para casos en los que no es necesario tanto control de los datos enviados
la Capa de Transporte implementa también el Protocolo de Datagrama
de Usuario (UDP), protocolo no confiable y no orientado a conexión
para la entrega de mensajes discretos. En este caso los paquetes enviados
mediante el protocolo IP reciben el nombre específico de datagramas,
y estos se envían y ya está; no se realiza una conexión
definida entre los host ni un control de los paquetes enviados y recibidos.
Los datagramas se rutean independientemente, por lo que deben llevar las dirección
completa de destino. UDP es un protocolo estándar con número
6 de STD. Este protocolo se describe en el RFC 768 - Protocolo de Datagrama
de Usuario. Es simple, eficiente e ideal para aplicaciones como el TFTP y
el DNS. Una dirección IP sirve para dirigir el datagrama hacia una
máquina en particular, y el numero de puerto de destino en la cabecera
UDP se utiliza para dirigir el datagrama UDP a un proceso especifico en dicha
máquina. La cabecera UDP tambien contiene un numero de puerto origen
que permite al proceso recibido conocer como responder al datagrama. Es una
alternativa al TCP en aquellos casos en los que no sea necesario tanta complejidad
en el envío, por lo que se usa cuando una entrega rápida es
más importante que una entrega garantizada, o en los casos en que se
deséa enviar tan poca información que cabe en un único
datagrama. Así, una de sus utilidades más comunes es el envío
de mensajes entre aplicaciones de dos host. UDP no admite numeración
de los datagramas, factor que, sumado a que tampoco utiliza señales
de confirmación de entrega, hace que la garantía de que un paquete
llegue a su destino sea mucho menor que si se usa TCP. Esto también
origina que los datagramas pueden llegar duplicados y/o desordenados a su
destino. Por estos motivos el control de envío de datagramas, si existe,
debe ser implementado por las aplicaciones que usan UDP como medio de transporte
de datos, al igual que el reeensamble de los mensajes entrantes. Es por ello
un protocolo del tipo best-effort (máximo esfuerzo), porque hace lo
que puede para transmitir los datagramas hacia la aplicación, pero
no puede garantizar que la aplicación los reciba. Tampoco utiliza mecanismos
de detección de errores. Cuando se detecta un error en un datagrama,
en lugar de entregarlo a la aplicación destino, se descarta. Cuando
una aplicación envía datos a través de UDP, éstos
llegan al otro extremo como una unidad. Por ejemplo, si una aplicación
escribe 5 veces en el puerto UDP, la aplicación al otro extremo hará
5 lecturas del puerto UDP. Además, el tamaño de cada escritura
será igual que el tamaño de las lecturas. AL igual que TCP,
UDP usa al protocolo IP para transportar sus segmentos.