Beruflich Dokumente
Kultur Dokumente
Contrariamente a UDP, el protocolo TCP est orientado a conexin. Cuando una mquina A enva datos a
una mquina B, la mquina B es informada de la llegada de datos, y confirma su buena recepcin. Aqu
interviene el control CRC de datos que se basa en una ecuacin matemtica que permite verificar la
integridad de los datos transmitidos. De este modo, si los datos recibidos son corruptos, el protocolo TCP
permite que los destinatarios soliciten al emisor que vuelvan a enviar los datos corruptos.
El protocolo UDP(User Datagram Protocol)
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio
de datagramas (Encapsulado de capa 4 Modelo OSI). Permite el envo de datagramas a travs de
la red sin que se haya establecido previamente una conexin, ya que el propio datagrama incorpora
suficiente informacin de direccionamiento en su cabecera. Tampoco tiene confirmacin ni control
de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado
correctamente, ya que no hay confirmacin de entrega o recepcin. Su uso principal es para
protocolos como DHCP, BOOTP, DNS y dems protocolos en los que el intercambio de paquetes de
la conexin/desconexin son mayores, o no son rentables con respecto a la informacin transmitida,
as como para la transmisin de audio y vdeo en tiempo real, donde no es posible realizar
retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos.
Funcin:
Transporte
UDP
Red
IP
Enlace
Estndares:
Descripcin tcnica
User Datagram Protocol (UDP) es un protocolo mnimo de nivel de transporte orientado a mensajes
documentado en el RFC 768 de la IETF.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y
la capa de aplicacin. UDP no otorga garantas para la entrega de sus mensajes (por lo que realmente no
se debera encontrar en la capa 4) y el origen UDP no retiene estados de los mensajes UDP que han sido
enviados a la red. UDP slo aade multiplexado de aplicacin y suma de verificacin de la cabecera y la
carga til. Cualquier tipo de garantas para la transmisin de la informacin deben ser implementadas en
capas superiores.
+
Bits 0 - 15
16 31
Puerto origen
Puerto destino
32
Suma de verificacin
64
Datos
La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la tabla). Los
campos de los puertos fuente y destino son campos de 16 bits que identifican el proceso de origen y
recepcin. Ya que UDP carece de un servidor de estado y el origen UDP no solicita respuestas, el puerto
origen es opcional. En caso de no ser utilizado, el puerto origen debe ser puesto a cero. A los campos del
puerto destino le sigue un campo obligatorio que indica el tamao en bytes del datagrama UDP incluidos
los datos. El valor mnimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobacin
de 16 bits que abarca una pseudo-cabecera IP (con las IP origen y destino, el protocolo y la longitud del
paquete UDP), la cabecera UDP, los datos y 0's hasta completar un mltiplo de 16. El checksum tambin
es opcional en IPv4, aunque generalmente se utiliza en la prctica (en IPv6 su uso es obligatorio). A
continuacin se muestra los campos para el clculo del checksum en IPv4, marcada en rojo la pseudocabecera IP.
bits
07
8 15
16 23
Direccin Origen
32
Direccin Destino
64
Zeros
Protocol
24 31
Longitud UDP
96
Puerto Origen
Puerto Destino
128
Suma de verificacin
160
Datos
El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vdeo y resulta ms
importante transmitir con velocidad que garantizar el hecho de que lleguen absolutamente todos los bytes.
[editar]Puertos
UDP utiliza puertos para permitir la comunicacin entre aplicaciones. El campo de puerto tiene una
longitud de 16 bits, por lo que el rango de valores vlidos va de 0 a 65.535. El puerto 0 est reservado,
pero es un valor permitido como puerto origen si el proceso emisor no espera recibir mensajes como
respuesta.
Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con
uno de estos puertos requiere acceso como superusuario.
Los puertos 1024 a 49.151 son puertos registrados.
Los puertos 49.152 a 65.535 son puertos efmeros y son utilizados como puertos temporales, sobre todo
por los clientes al comunicarse con los servidores.
Funcin:
Transporte
TCP
Red
IP
Enlace
Estndares:
Transmission Control Protocol (en espaol Protocolo de Control de Transmisin) o TCP, es uno de los
protocolos fundamentales en Internet. Fue creado entre los aos 1973 y 1974 por Vint Cerf y Robert
Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras, pueden usar TCP para
crear conexiones entre ellos a travs de las cuales puede enviarse un flujo de datos. El protocolo garantiza
que los datos sern entregados en su destino sin errores y en el mismo orden en que se transmitieron.
Tambin proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina,
a travs del concepto de puerto.
TCP da soporte a muchas de las aplicaciones ms populares de Internet (navegadores, intercambio de
ficheros, clientes FTP, etc.) y protocolos de aplicacin HTTP, SMTP, SSH y FTP.
Informacin Tcnica
TCP es un protocolo de comunicacin orientado a conexin y fiable del nivel de transporte, actualmente
documentado por IETF en el RFC 793. Es un protocolo de capa 4 segn el modelo OSI.
Funciones de TCP
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y
la aplicacin. Habitualmente, las aplicaciones necesitan que la comunicacin sea fiable y, dado que la
capa IP aporta un servicio de datagramas no fiable (sin confirmacin), TCP aade las funciones necesarias
para prestar un servicio que permita que la comunicacin entre dos sistemas se efecte libre de errores,
sin prdidas y con seguridad.
Formato de los Segmentos TCP
En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se
llaman "segmentos".
El formato de los segmentos TCP se muestra en el siguiente esquema:
Funcionamiento del protocolo en detalle
Las conexiones TCP se componen de tres etapas: establecimiento de conexin, transferencia de datos y
fin de la conexin. Para establecer la conexin se usa el procedimiento llamado negociacin en tres
pasos (3-way handshake). Para la desconexin se usa una negociacin en cuatro pasos (4-way
handshake). Durante el establecimiento de la conexin, se configuran algunos parmetros tales como el
nmero de secuencia con el fin de asegurar la entrega ordenada de los datos y la robustez de la
comunicacin.
Transferencia de datos
Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y
robustez del protocolo. Entre ellos estn incluidos el uso del nmero de secuencia para ordenar los
segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y
asentimientos y temporizadores para detectar prdidas y retrasos.
Durante el establecimiento de conexin TCP, los nmeros iniciales de secuencia son intercambiados entre
las dos entidades TCP. Estos nmeros de secuencia son usados para identificar los datos dentro del flujo
de bytes, y poder identificar (y contar) los bytes de los datos de la aplicacin. Siempre hay un par de
nmeros de secuencia incluidos en todo segmento TCP, referidos al nmero de secuencia y al nmero de
asentimiento. Un emisor TCP se refiere a su propio nmero de secuencia cuando habla de nmero de
secuencia, mientras que con el nmero de asentimiento se refiere al nmero de secuencia del receptor.
Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando que ha recibido una parte
del flujo continuo de bytes. Una mejora de TCP, llamada asentimiento selectivo (SACK, Selective
Acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal forma que el
remitente solo retransmita los segmentos de datos que faltan.
A travs del uso de nmeros de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el
orden correcto dentro del flujo de bytes a la aplicacin receptora. Los nmeros de secuencia son de 32
bits (sin signo), que vuelve a cero tras el siguiente byte despus del 232-1. Una de las claves para mantener
la robustez y la seguridad de las conexiones TCP es la seleccin del nmero inicial de
secuencia (ISN, Initial Sequence Number).
Un checksum de 16 bits, consistente en el complemento a uno de la suma en complemento a uno del
contenido de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido en la
transmisin del segmento. Se usa la suma en complemento a uno porque el acarreo final de ese mtodo
puede ser calculado en cualquier mltiplo de su tamao (16-bit, 32-bit, 64-bit...) y el resultado, una vez
plegado, ser el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El
complemento es usado para que el receptor no tenga que poner a cero el campo del checksum de la
cabecera antes de hacer los clculos, salvando en algn lugar el valor del checksum recibido; en vez de
eso, el receptor simplemente calcula la suma en complemento a uno con el checksum incluido, y el
resultado debe ser igual a 0. Si es as, se asume que el segmento ha llegado intacto y sin errores.
Hay que fijarse en que el checksum de TCP tambin cubre los 96 bit de la cabecera que contiene la
direccin origen, la direccin destino, el protocolo y el tamao TCP. Esto proporciona proteccin contra
paquetes mal dirigidos por errores en las direcciones.
El checksum de TCP es una comprobacin bastante dbil. En niveles de enlace con una alta probabilidad
de error de bit quiz requiera una capacidad adicional de correccin/deteccin de errores de enlace. Si
TCP fuese rediseado hoy, muy probablemente tendra un cdigo de redundancia cclica (CRC) para
control de errores en vez del actual checksum. La debilidad del checksum est parcialmente compensada
por el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o
enEthernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente,
inspecciones sobre el trfico de Internet han mostrado que son comunes los errores de software y
hardware[cita requerida] que introducen errores en los paquetes protegidos con un CRC, y que el checksum de
16 bits de TCP detecta la mayora de estos errores simples.
Los asentimientos (ACKs o Acknowledgments) de los datos enviados o la falta de ellos, son usados por los
emisores para interpretar las condiciones de la red entre el emisor y receptor TCP. Unido a los
temporizadores, los emisores y receptores TCP pueden alterar el comportamiento del movimiento de
datos. TCP usa una serie de mecanismos para conseguir un alto rendimiento y evitar la congestin de la
red (la idea es enviar tan rpido como el receptor pueda recibir). Estos mecanismos incluyen el uso
de ventana deslizante, que controla que el transmisor mande informacin dentro de los lmites
del buffer del receptor, y algoritmos de control de flujo, tales como el algoritmo de Evitacin de la
El tamao de la ventana de recepcin TCP es la cantidad de datos recibidos (en bytes) que pueden ser
metidos en el buffer de recepcin durante la conexin. La entidad emisora puede enviar una cantidad
determinada de datos pero antes debe esperar un asentimiento con la actualizacin del tamao de ventana
por parte del receptor.
Un ejemplo sera el siguiente: un receptor comienza con un tamao de ventana x y recibe y bytes,
entonces su tamao de ventana ser (x - y) y el transmisor slo podr mandar paquetes con un tamao
mximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirn restando tamao a la
ventana de recepcin. Esta situacin seguir as hasta que la aplicacin receptora recoja los datos
del buffer de recepcin.
Escalado de ventana
Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamao de ventana mayor.
El campo TCP de tamao de ventana controla el movimiento de datos y est limitado a 16 bits, es decir, a
un tamao de ventana de 65.535 bytes.
Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP
(TCP window scale) es una opcin usada para incrementar el mximo tamao de ventana desde 65.535
bytes, a 1 Gigabyte.
La opcin de escala de ventana TCP es usada solo durante la negociacin en tres pasos que constituye el
comienzo de la conexin. El valor de la escala representa el nmero de bits desplazados a la izquierda de
los 16 bits que forman el campo del tamao de ventana. El valor de la escala puede ir desde 0 (sin
desplazamiento) hasta 14. Hay que recordar que un nmero binario desplazado un bit a la izquierda es
como multiplicarlo en base decimal por 2.
Fin de la conexin
Puertos TCP
Desarrollo de TCP
al ser los paquetes de tamao fijo, si aumentamos el tamao dedicado al envo de informacin vamos a
asegurarnos una mayor fiabilidad, pero tambin enviamos menos datos.
Protocolo UDP:
El protocolo UDP, o User Datagram Protocol en cambio proporciona un nivel no fiable de transporte de
datagramas, ya que aade muy poca informacin sobre los mismos (8 bytes, frente a los 20 bytes que
vimos en el protocolo TCP). La primera consecuencia de esto es que por cada paquete enviado se enva
una mayor cantidad de datos, pero tambin al reducir la informacin y comprobaciones de estos se
aumenta la velocidad a la que se transfieren.
Este sistema lo utilizan, por ejemplo, NFS (Network File System) y RCP, que es un comando utilizado
para transferir ficheros entre ordenadores, pero sobre todo es muy utilizado en la transferencia tanto de
audio como de vdeo.
El protocolo UDP no usa ningn retardo para establecer una conexin, no mantiene estado de conexin y
no hace un seguimiento de estos parmetros. Esto hace que un servidor dedicado a una aplicacin
determinada pueda soportar ms clientes conectados cuando la aplicacin corre sobre UDP en lugar de
sobre TCP.