Vous êtes sur la page 1sur 25

Protocolos de transporte

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.
Puertos
 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
 Un socket es un tipo especial de
manejador de fichero que utiliza un
proceso para pedir servicios de red al
sistema operativo.

 Una dirección de socket es la tripleta:


{protocolo, dirección-local, proceso-local}
En la familia TCP/IP, por ejemplo:
{TCP, 193.44.234.3, 12345}
Sockets
 Una conversación es el enlace de comunicación
entre dos procesos.

 Una asociación es la quíntupla que especifica


completamente los dos procesos que comprende
una conexión:
{protocolo, dirección-local, proceso-local, dirección-
externa, proceso-externo}

 En la familia TCP/IP, por ejemplo:


{TCP, 193.44.234.3, 1500, 193.44.234.5, 21}

Podría ser una asociación válida.


Sockets
 Una media-asociación es:
{protocolo, dirección-local, proceso-local}
o
{protocolo, dirección-externa, proceso-externo}

que especifica cada mitad de una conexión.

 La media-asociación se denomina también


socket o dirección de transporte. Esto es,
un socket es un punto terminal para
comunicación que puede nombrarse y
direccionarse en una red.
Sockets Application Interfaces (APIs)

 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.
Sockets
Protocolo de Datagramas de Usuario (UDP)
 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. En la práctica
cada implementación TCP/IP que no se use
exclusivamente para encaminamiento incluirán
UDP.

 UDP es básicamente una interfaz de aplicación


para IP. No soporta confiabilidad, control de flujo
o recuperación de errores para IP. Simplemente
sirve como "multiplexor/demultiplexor" para
enviar y recibir datagramas, usando puertos para
dirigir los datagramas como se muestra en la
figura siguiente.

NOTA: El propósito de los números STD es indicar claramente qué RFCs


describen los estándares de Internet.
Protocolo de Datagramas de Usuario (UDP)
 UDP proporciona un mecanismo para que
una aplicación envíe un datagrama a
otra. La capa UDP es sumamente delgada
por lo que tiene pocas sobrecargas, pero
requiere que la aplicación sea
responsable de la recuperación de errores
y demás características no soportadas.
Formato del Datagrama UDP
 Cada datagrama UDP se envía con un único
datagrama IP. Aunque el datagrama IP se puede
fragmentar durante la transmisión, la
implementación de recepción IP lo re-ensamblará
antes de presentarlo a la capa UDP.

 Todas las implementaciones IP están preparadas


para aceptar datagramas de 576 bytes, permitiendo
un tamaño máximo de cabacera IP de 60 bytes
sabiendo que un datagrama UDP de 516 bytes lo
aceptan todas las implementaciones.
Formato del Datagrama UDP

 Muchas implementaciones aceptarán


datagramas mayores, aunque no se
puede asegurar. El datagrama UDP tiene
una cabecera de 16 bytes que se describe
en la figura siguiente:
Formato del Datagrama UDP
 puerto de origen
 Indica el puerto del proceso que envía. Este es el puerto
que se direcciona en las respuestas.
 puerto destino
 Especifica el puerto del proceso destino en el host de
destino.
 longitud
 Es el tamaño (en bytes) de este datagrama de usuario
incluyendo la cabecera.
 suma de comprobación (checksum)
 Es un campo opcional de 16 bits en complemento a uno de
la suma en complemento a uno de una cabecera pseudo-
IP, la cabecera UDP y los datos UDP. La cabecera pseudo-
IP contiene la dirección IP fuente y destino, el protocolo y
la longitud UDP:
Interfaz de Programación de Aplicaciones UDP

 La interfaz de aplicación que ofrece UDP se describe en


el RFC 768. Dicha interfaz proporciona:

 La creación de nuevos puertos de recepción.


 La recepción de operaciones que devuelven los bytes de
datos y un indicador de puerto fuente y una dirección
fuente IP.
 El envío de operaciones que tienen como parámetros los
datos, los puertos fuente y destino y las direcciones.
 La forma en la que está implementado depende de cada
vendedor.
 Hay que ser conscientes de que UDP e IP no proporcionan
entrega garantizada, control de flujo o recuperación de
errores, así que estos mecanismos tienen que ser
soportados por las aplicaciones.
Interfaz de Programación de Aplicaciones UDP

 Las aplicaciones estándares que utilizan


UDP son:

 Protocolo de Transferencia de Ficheros Trivial


(TFTP)
 Sistema de Nombres de Dominio (DNS)
servidor de nombres
 Llamada a Procedimiento Remoto (RPC), usado
por el Sistema de Ficheros en Red (NFS)
 Sistema de Computación de Redes (NCS)
 Protocolo de Gestión Simple de Redes (SNMP)
Protocolo de Control de Transmisión (TCP)

 TCP es un protocolo estándar con número 7 de


STD. TCP se describe en el RFC 793 - Protocolo
de Control de Transmisión.

 TCP proporciona muchas más facilidades para las


aplicaciones, que UDP:
 recuperación de errores, control de flujo y
confiabilidad.

 Es un protocolo orientado a conexión en


contraposición a UDP que no lo es. La mayoría de
los protocolos de las aplicaciones de usuario,
como TELNET y FTP, utiliza TCP.
Protocolo de Control de Transmisión (TCP)

 El propósito primordial de TCP es


proporcionar circuitos lógicos
confiables o servicios de conexión
entre parejas de procesos. Esto no
implica confiabilidad desde
protocolos de más bajo nivel (como
IP) así que TCP debe garantizar esto
por sí mismo.
Protocolo de Control de Transmisión (TCP)
 TCP se puede caracterizar por las siguientes facilidades
que proporciona a las aplicaciones que hacen uso de él:

 Tranferencia de flujos de datos. Desde el punto de


vista de la aplicación, TCP transfiere un flujo de bytes
contiguo a través de internet. La aplicación no tiene que
molestarse segmentar los datos en bloques básicos o
datagramas. TCP hace esto agrupando los bytes en
segmentos TCP, que se transfieren a IP para transmitirlos
al destino. TCP decide también por sí mismo cómo
segmentar los datos y debe dirigir los datos a su propia
conveniencia. A veces, una aplicación necesita estar
segura de que todos los datos pasados a TCP han llegado
al destino. Por esta razón, se define una función push.
Esta push todos los segmentos TCP restantes que están
almacenados en el host destino. La función close
connection normal también pushes los datos hacia el
destino.
Protocolo de Control de Transmisión (TCP)

 Confiabilidad. TCP asigna un número de


secuencia a cada byte transmitido y espera por
un reconocimiento positivo (ACK) del receptor
TCP. Si el ACK no se recibe en un intervalo
fijado, los datos se retransmiten. Como los
datos se transmiten en bloques (segmentos
TCP) sólo el número de secuencia del primer
byte de datos en los segmentos se envían al
host destino. El receptor TCP utiliza los
números de secuencia para reorganizar los
segmentos cuyo lleguen fuera de orden y para
eliminar segmentos duplicados.
Protocolo de Control de Transmisión (TCP)

 Control de flujo. El receptor TCP, cuyo envía


un ACK de vuelta al emisor, también indica al
emisor el número de bytes que puede recibir
más allá del último segmento TCP recibido sin
causar ningún desbordamiento en sus búferes
internos. Este se envía en el ACK de forma del
más alto número de secuencia que puede
recibir sin problemas. Este mecanismo también
se denomina mecanismo ventana.

 Multiplexación. Se logra usando puertos,


como en UDP.
Protocolo de Control de Transmisión (TCP)

 Conexiones lógicas. La confiabilidad y los


mecanismos de control de flujo descritos
anteriormente requieren que TCP inicializa y
mantenga cierta información de estado para
cada "flujo de datos". La combinación de este
estado, incluyendo sockets, números de
secuencia y tamaños de ventana, se llama
conexión lógica. Cada conexión se identifica
unívocamente por la pareja de sockets usados
por los procesos emisor y receptor.

 Full Duplex. TCP proporciona flujos de datos


concurrentes en ambas direcciones.
El principio de ventana
 Un protocolo de transporte simple
debe usar el principio siguiente:

 enviar
un paquete y luego esperar por
un reconocimiento del receptor antes
de que envíe el próximo paquete. Si el
ACK no se recibe en un tiempo
razonable, retransmite el paquete.
El principio de ventana
El principio de ventana
 utiliza las siguientes reglas:

 El emisor debe enviar todos los paquetes


dentro de la ventana sin recibir un ACK pero
debe activar el tiempo de timeout para cada
uno de ellos.
 El receptor debe reconocer cada paquete
recibido, indicando el número de secuencia
del último paquete recibido correctamente.
 El emisor rota su ventana cada vez que
recibe un ACK.
FIN

Muchas Gracias

Vous aimerez peut-être aussi