Professional Documents
Culture Documents
Editar 0 8
UDP
Orientado a la conexin
Sin conexin
Confiabilidad en la entrega de
mensajes
Ventajas de TCP
Desventajas de UDP
Desventajas de TCP
Las aplicaciones en tiempo real pueden ser candidatos para usar UDP, ya
que hay menos retrasos debido a la comprobacin de errores y control de flujo
de TCP. Los Paquetes UDP pueden ser utilizados para saturar el ancho de
banda disponible para ofrecer grandes cantidades de datos. Adems, si se
pierden algunos datos, pueden ser sustituidos por el siguiente grupo de
paquetes con informacin actualizada, eliminando la necesidad de volver a
enviar los datos antiguos.
Figura N 9: un servidor utiliza dos sockets: uno para aceptar la conexin y el otro para enviar /
receptor
java.net.DatagramPacket
java.net.DatagramSocket
los paquetes.
2.3.1 Creando un DatagramSocketA DatagramSocket puede ser
utilizado para enviar y recibir paquetes. Cada DatagramSocket se une a
un puerto en la mquina local, el cual es usado para dirigir a los
paquetes. El nmero de puerto necesita no ser el mismo nmero de la
mquina remota, pero si la aplicacin es un servidor UDP, se suelen
elegir un nmero de puerto especfico. Si el DatagramSocket est
destinado a ser un cliente, yno necesita que se una a un nmero de
puerto especfico, un constructor en blanco puede ser especificado.
Constructor
Para crear un DatagramSocket cliente, el siguiente constructor es
usado:
DatagramSocket () throws java.net.SocketException.
Para crear un server Datagram Socket, el siguiente constructor es
usado: que toma como parmetro el puerto al que el servicio UDP ser
obligado:
DatagramSocket (int puerto) throws java.net.SocketException
2.3.2 Usando un DatagramSocketDatagramSocket se utiliza para
recibir los paquetes UDP entrantes y salientes para enviar paquetes UDP.
Proporciona mtodos para enviar y recibir paquetes, as tambin como
especificar un valor de tiempo de espera cuando nonblocking I/O est
utilizando, para inspeccionar y modificar el mximo tamao de los
paquetes UDP, y cerca del zcalo.
Mtodos
int getSendBufferSize () throws java.net.SocketException devuelve el tamao mximo de bfer utilizado para paquetes UDP
salientes.
socket.close();
Esto es solo introduccin, ya estn en el horno los captulos subsiguientes, pero quera darles un
adelanto. Adems me cay en las manos un artculo muy completo sobre traceroute, que esta por
salir en unos das (son varios artculos de hecho ... como "mashup" ). Pues eso, provecho y hasta el
siguiente.
Protocolos de la capa de transporte TCP / IP.
Las tres primeras capas del modelo de referencia OSI - la capa fsica, la de enlace de datos y la de
red - son capas muy importantes para la comprensin de cmo funcionan las redes. La capa fsica
mueve los bits a travs de cables; la capa de enlace de datos mueve tramas en una red, la capa de red
mueve datagramas en una interconexin de redes. Tomadas en su conjunto, son las partes de la pila
de protocolos responsables de las "tuercas y tornillos" reales del proceso de llevar datos de un lugar
a otro.
Inmediatamente por encima de stas tenemos la cuarta capa del modelo de referencia OSI: la capa
de transporte, llamada la capa de transporte host-to-host en el modelo TCP/IP. Esta capa es
interesante, ya que reside en el mismo centro arquitectnico del modelo. Por consiguiente,
representa un importante punto de transicin entre las capas asociadas al hardware ubicadas por
debajo de ella que hacen el "trabajo sucio", y las capas que estn por encima, mas orientadas al
software y por ende mas abstractas.
Los protocolos que operan en la capa de transporte estn a cargo de proporcionar varios servicios
importantes para que las aplicaciones de software en las capas superiores trabajen a travs de una
interconexin de redes. Por lo general son responsables de permitir los procesos de establecer y
mantener conexiones entre servicios de software en mquinas posiblemente distantes. Quizs lo
ms importante, sirven de puente entre las necesidades de muchas aplicaciones de capas superiores
de enviar datos de forma fiable sin tener que preocuparse por la correccin de errores, la prdida de
datos o la gestin de flujo, y la capa de red protocolos, que a menudo son poco fiables y no se ocupan
de los acuses de recibo. Los protocolos de capa de transporte estn a menudo estrechamente
vinculados a los protocolos de capa de red directamente debajo de ellos, y son diseados
especficamente para atender funciones de las que estos ltimos no se ocupan.
En esta seccin describiremos protocolos de capa de transporte y las tecnologas conexas utilizadas
en el protocolo TCP / IP Hay dos protocolos principales de esta capa, el Protocolo de Control de
Transmisin (Transmission Control Protocol TCP) y el Protocolo de datagramas de usuario (User
Datagram Protocol UDP). Tambin se discute cmo en la capa de transporte se realiza una clase de
direccionamiento en TCP / IP en forma de puertos y sockets.
Nota: Puede parecer extrao que aqu solo haya una subseccin, la que cubre TCP y
UDP. Este es un resultado del hecho de que la gua de TCP / IP es un extracto de una
referencia de redes ms grandes.
Protocolo de Control de Transmisin (TCP) y el Protocolo de datagramas de usuario
(UDP)
TCP / IP es el conjunto de protocolos de interconexin ms importantes del mundo, es la base para
el Internet, y el "lenguaje" hablado por la gran mayora de los ordenadores conectados en red del
mundo. TCP / IP incluye un gran conjunto de protocolos que operan en la capa de red y por encima.
La suite en su conjunto est anclada a la capa tres en el Protocolo de Internet (IP), el que muchas
personas consideran el protocolo ms importante en el mundo de las redes.
Por supuesto, hay una cierta distancia arquitectnica entre la capa de red y las aplicaciones que se
ejecutan en las capas por encima. A pesar de que IP es el protocolo que lleva a cabo la mayor parte
de las funciones necesarias para realizar una interconexin de redes, este no incluye muchas
capacidades que son requeridas por las aplicaciones. En TCP / IP estas tareas son realizadas por un
par de protocolos que operan en la capa de transporte: el Protocolo de Control de Transmisin
(Transmission Control Protocol TCP) y el Protocolo de datagramas de usuario (User Datagram
Protocol UDP).
De estos dos, TCP recibe, con mucho, la mayor atencin. Es el protocolo de capa de transporte que
se asocia ms con TCP / IP, y, bueno, su nombre est ah, "iluminado". Tambin es el protocolo de
transporte utilizado por muchas de las aplicaciones ms populares de Internet, mientras que UDP
va segundo en la facturacin. Sin embargo, TCP y UDP son realmente pares que juegan el mismo
papel en TCP / IP. Funcionan de manera muy diferente y ofrecen diferentes ventajas y desventajas a
las aplicaciones que los utilizan, lo que los hace importantes a ambos para la suite de protocolos
como un todo. Los dos protocolos tambin tienen ciertas reas de similitud, lo que hace que sea ms
eficiente describirlos a ambos en la misma subseccin, destacando su caractersticas y mtodos de
operacin compartidos, as como en los que divergen.
En esta seccin proporciono un examen detallado de los dos protocolos de la capa de transporte
TCP/IP: El Protocolo de Control de Transmisin (TCP) y el Protocolo de datagramas de usuario
(UDP). Empiezo con una breve descripcin de la funcin de estos dos protocolos en el conjunto de
protocolos TCP / IP, y una discusin sobre por qu son importantes. Describo el mtodo que
emplean los protocolos para el direccionamiento, y el uso de puertos y sockets en la capa de
transporte. Luego tenemos dos secciones detalladas para cada uno de ellos UDP y TCP. Concluyo
con un resumen rpido y una comparacin de ambos.
Incidentalmente, he descrito UDP antes que TCP por una sencilla razn: es ms simple. UDP opera
ms como un protocolo clsico basado en mensajes, y de hecho, es ms similar a IP en s de lo que
es TCP. Esta es la misma razn por la que la seccin en TCP es mucho mayor que la que cubre UDP:
TCP es mucho ms complejo y hace mucho ms que UDP.
Generalidades y rol general de TCP y UDP en la pila TCP / IP.
La capa de transporte en una suite de protocolos es responsable de un conjunto especfico de
funciones. Por esta razn, se podra esperar que la suite TCP / IP tuviera un nico protocolo de
transporte que llevara a cabo esas funciones, as como IP es el protocolo ncleo en la capa de red. Es
una curiosidad, entonces, que haya dos protocolos de capa de transporte diferentes ampliamente
utilizados en TCP / IP. Esta disposicin es probablemente uno de los mejores ejemplos del poder de
la disposicin de los protocolos en capas, y por tanto, un ejemplo de que vali la pena todo el tiempo
que pas aprendiendo a entender ese molesto modelo de referencia OSI.
Diferentes Requisitos de la capa de transporte de TCP / IP.
Vamos a empezar con una mirada hacia atrs en la capa tres. En mi visin general de las
caractersticas clave de funcionamiento del Protocolo de Internet, describ varias limitaciones
lo dems es secundario. Probablemente llegues a donde necesitas ir, pero bueno, los coches de
carreras puede ser fastidiosos de operar.
Concepto clave: La mayora de las aplicaciones clsicas, especialmente las que envan
mensajes o archivos, requieren que los datos se entregan de manera fiable, y por lo
tanto utilizan TCP para el transporte. Las aplicaciones que utilizan UDP son por lo
general aquellas en las que la prdida de una pequea cantidad de datos no es un
problema, o que utilizan sus propios procedimientos especficos para hacer frente a los
problemas potenciales de entrega que TCP maneja en general.
En las siguientes secciones vamos a examinar en primer lugar el esquema comn de
direccionamiento en la capa de transporte utilizado por TCP y UDP, y luego veremos cada uno de
los dos protocolos en detalle. A continuacin de estas secciones haremos una comparacin que le
ayudar a entender de un vistazo dnde estn las diferencias entre TCP y UDP. Por cierto, si quiere
un buen ejemplo del "mundo real" de por qu ambos protocolos son valiosos, considere el
transporte de mensajes bajo el Sistema de Nombres de Dominio (DNS), que en realidad utiliza UDP
para ciertos tipos de comunicacin y TCP para otros.
Antes de dejar el tema de la comparacin de UDP y TCP, quiero sealar explcitamente que a pesar
de que TCP se describe a menudo como ms lento que UDP, esta es una medida relativa. TCP es un
protocolo muy bien escrito que es capaz de ejecutar transferencias de datos de alta eficiencia. Slo
es lento en comparacin con UDP debido a la sobrecarga de crear y administrar las conexiones. La
diferencia puede ser importante, pero no es enorme, as que tenlo en cuenta.
datos
(longitud variable).
Longitud: este campo especifica la longitud total del segmento, con el encabezado
incluido. Sin embargo, el encabezado tiene una longitud de 4 x 16 bits (que es 8 x 8 bits),
por lo tanto la longitud del campo es necesariamente superior o igual a 8 bytes.
Protocolo TCP
US ES DE FR IT BR
Septiembre 2015
TCP permite colocar los datagramas nuevamente en orden cuando vienen del
protocolo IP.
TCP permite que el monitoreo del flujo de los datos y as evita la saturacin de la red.
TCP permite que los datos se formen en segmentos de longitud variada para
"entregarlos" al protocolo IP.
TCP permite multiplexar los datos, es decir, que la informacin que viene de diferentes
fuentes (por ejemplo, aplicaciones) en la misma lnea pueda circular simultneamente.
El objetivo de TCP
Con el uso del protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias
al sistema de acuse de recibo del protocolo TCP) independientemente de las capas inferiores.
Esto significa que los routers (que funcionan en la capa de Internet) slo tienen que enviar los
datos en forma de datagramas, sin preocuparse con el monitoreo de datos porque esta
funcin la cumple la capa de transporte (o ms especficamente el protocolo TCP).
Durante una comunicacin usando el protocolo TCP, las dos mquinas deben establecer una
conexin. La mquina emisora (la que solicita la conexin) se llama cliente, y la mquina
receptora se llama servidor. Por eso es que decimos que estamos en un entorno ClienteServidor.
Las mquinas de dicho entorno se comunican en modo en lnea, es decir, que la
comunicacin se realiza en ambas direcciones.
Para posibilitar la comunicacin y que funcionen bien todos los controles que la acompaan,
los datos se agrupan; es decir, que se agrega un encabezado a los paquetes de datos que
permitirn sincronizar las transmisiones y garantizar su recepcin.
Otra funcin del TCP es la capacidad de controlar la velocidad de los datos usando su
capacidad para emitir mensajes de tamao variable. Estos mensajes se llaman segmentos.
La funcin multiplexin
TCP posibilita la realizacin de una tarea importante: multiplexar/demultiplexar; es decir
transmitir datos desde diversas aplicaciones en la misma lnea o, en otras palabras, ordenar la
informacin que llega en paralelo.
</td
</td
01234567891 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Puerto de origen
Puerto de destino
Nmero de secuencia
Nmero de acuse de recibo
Marge Reservado
n
de
datos
Ventana
Suma de control
Puntero urgente
Opciones
Relleno
Datos
Nmero de secuencia (32 bits): Cuando el indicador SYN est fijado en 0, el nmero
de secuencia es el de la primera palabra del segmento actual.
Cuando SYN est fijado en 1, el nmero de secuencia es igual al nmero de secuencia
inicial utilizado para sincronizar los nmeros de secuencia (ISN).
Margen de datos (4 bits): Esto permite ubicar el inicio de los datos en el paquete.
Aqu, el margen es fundamental porque el campo opcin es de tamao variable.
Suma de control (CRC): La suma de control se realiza tomando la suma del campo
de datos del encabezado para poder verificar la integridad del encabezado.
Puntero urgente (16 bits): Indica el nmero de secuencia despus del cual la
informacin se torna urgente.
Relleno: Espacio restante despus de que las opciones se rellenan con ceros para
tener una longitud que sea mltiplo de 32 bits.
Adems, usando un temporizador que comienza con la recepcin del segmento en el nivel de
la mquina originadora, el segmento se reenva cuando ha transcurrido el tiempo permitido, ya
que en este caso la mquina originadora considera que el segmento est perdido.
Sin embargo, si el segmento no est perdido y llega a destino, la mquina receptora lo sabr,
gracias al nmero de secuencia, que es un duplicado, y slo retendr el ltimo segmento que
lleg a destino.
Las dos mquinas deben sincronizar sus secuencias usando un mecanismo comnmente
llamadonegociacin en tres pasos que tambin se encuentra durante el cierre de la sesin.
Este dilogo posibilita el inicio de la comunicacin porque se realiza en tres etapas, como su
nombre lo indica:
En la segunda etapa, la mquina receptora (el servidor) recibe el segmento inicial que
viene del cliente y luego le enva un acuse de recibo, que es un segmento en el que el
indicador ACK est fijado en 1 y el indicador SYN est fijado en 1 (porque es nuevamente
una sincronizacin). Este segmento incluye el nmero de secuencia de esta mquina (el
servidor), que es el nmero de secuencia inicial para el cliente. El campo ms importante
en este segmento es el de acuse de recibo que contiene el nmero de secuencia inicial del
cliente incrementado en 1.
Despus de esta secuencia con tres intercambios, las dos mquinas estn sincronizadas y la
comunicacin puede comenzar.
Existe una tcnica de piratera llamada falsificacin de IP, que permite corromper este enlace
de aprobacin con fines maliciosos.
Adems, el tamao de esta ventana no es fijo. De hecho, el servidor puede incluir el tamao
de la ventana que considera ms apropiado en sus acuses de recibo guardndolo en el
campo ventana. De este modo, cuando el acuse de recibo indica un pedido para aumentar la
ventana, el cliente se desplazar al borde derecho de la ventana.
solo ACK se pueden reconocer todos los datos recibidos. Una desventaja de los
ACKs retrasados es que si el receptor tarda mucho en enviar un ACK, el emisor
podra retransmitir el segmento y con ello generar mas trafico del necesario.
Los datos recibidos en el receptor se almacenan en un bufer de memoria y son
pasados al protocolo de mayor nivel (la aplicacion) cuando el emisor emplea
la funcion push. Esta funcion obliga al modulo TCP a entregar los datos
inmediatamente a la aplicacion. La funcion garantiza que los datos se
transferiran, pero no garantiza una frontera. Por ello las aplicaciones deben
estar de acuerdo en un formato antes de iniciar una conexion. La abstraccion
fundamental de TCP es la conexion y no el puerto de protocolo. Las
conexiones se identifican por medio de un par de puntos extremos. Un punto
extremo es un par de numeros enteros (anfitrion, puerto), en donde anfitrion
es la direccion IP de un anfitrion y puerto es el puerto TCP en dicho anfitrion.
Por ejemplo el punto extremo (192.168.1.150,80) se refiere al puerto 80 en la
maquina con direccion IP 192.168.1.150. Como el TCP identifica una conexi
on por el par de puntos extremos, varias conexiones en la misma maquina
pueden compartir un numero de puerto TCP. Las conexiones proporcionadas
por TCP se conocen como full duplex. Desde el punto de vista de un proceso de
aplicacion, una conexion full duplex consiste en dos flujos independientes
que se mueven en direcciones opuestas, sin ninguna interaccion aparente. La
ventaja de una conexion full duplex es que el software subyacente de
protocolo puede enviar en los datagramas informacion de control al origen,
llevando datos en la direccion opuesta. Este procedimiento reduce el trafico
en la red. Otra caracterstica de TCP es que provee los medios para
comunicarle al receptor de los datos que en algun punto mas lejano en el
flujo de datos que el receptor este leyendo, hay datos urgentes. El TCP no
define lo que el usuario debe hacer al ser notificado de que hay datos urgentes
pendientes, la nocion general es que el receptor debe tomar las acciones
necesarias para procesar los datos urgentes lo mas rapido posible. La
cabecera de TCP se muestra en la figura 1.11. A diferencia de UDP, el calculo
de la suma de verificacion es obligatoria en TCP, y al semejanza de TCP tambi
en se utiliza una pseudo cabecera, figura 1.10, para realizar el calculo del
checksum. La pseudo cabecera contiene las direcciones IP del emisor y
receptor, el numero de protocolo, y la longitud de la cabecera TCP mas los
datos (sin contar la longitud de la pseudo cabecera). 1Este tiempo es solo una
aproximacion y su valor real se calcula de acuerdo al trafico que detecta el
receptor de los segmentos 1.9 Protocolo TCP 19 banderas nmero de secuencia
puerto destino ventana checksum puntero urgente offset reservado opciones 0
15 16 31 puerto origen acuse de recibo Puerto origen (16 bits). El puerto de
origen. Puerto destino (16 bits). El puerto de destino. Numero de secuencia
(32 bits). El numero de secuencia del primer byte de datos en este segmento
(excepto cuando la bandera SYN esta presente). Si la bandera SYN esta
presente el numero de secuencia corresponde al numero de secuencia inicial
(ISN), y el primer byte de datos tiene la secuencia ISN+1. Acuse de recibo (32
bits). Si la bandera ACK esta presente, este campo contiene el siguiente valor
de numero de secuencia que el emisor del segmento espera recibir. Una vez
que la conexion esta establecida, siempre se enva. Offset de datos (4 bits)