Archive for the ‘ Redes ’ Category

TCP

Capa de transporte TCP

Para que TCP pueda proporcionar un servicio de transferencia fiable, debe detectar los errores, encargarse de las retransmisiones, los reconocimientos acumulativos provenientes del receptor, los temporizadores por si algún paquete se ha perdido volver a reenviar el mismo, TCP incluye los campos de cabecera para los números de secuencia y de reconocimiento.

Denominamos a TCP un protocolo orientado a conexión porque antes de que un proceso de la capa de aplicación pueda comenzar a enviar datos a otro, primero deben establecer una comunicación. Por tanto, antes de iniciar la transferencia de verdad, estamos mandando datos únicamente de establecimiento de la conexión.

TCP únicamente está presente en los host, no en los routers o switches, estos dispositivos sólo procesan los datagramas pero no las conexiones que se realizan.

TCP proporciona un servicio full-dúplex, si existe una conexión TCP en el proceso A y en el proceso B de cada uno de los hosts, entonces los datos de la capa de aplicación pueden fluir desde A hasta B y viceversa de forma simultánea.

En TCP las conexiones casi siempre son punto a punto, no hay multidifusión (para ello está UDP).

Establecimiento de la conexión

El establecimiento de la conexión se denomina “acuerdo en tres fases”. El cliente envía un segmento TCP para establecer la conexión, a continuación el servidor responde con otro segmento TCP de establecimiento y a continuación el cliente le responde con otro segmento TCP de establecimiento que podría contener los datos que deseamos transpotar.

Una vez establecida la conexión, se pueden enviar datos en los dos sentidos. La cantidad máxima de datos que puede transportar en cada segmento está limitada por el MSS (tamaño máximo del segmento), normalmente TCP ajusta la longitud de este segmento al de la trama más larga de la capa de enlace (el famoso MTU).

TCP une los datos del cliente con las cabeceras TCP formando los segmentos TCP. Estos segmentos se pasan a la capa de red para que sean encapsulados dentro de datagramas IP. Estos datagramas IP se envían a la red.

Cuando TCP recibe un segmento en el otro extremo, los datos del mismo se colocan en el buffer de recepción de la conexión TCP, entonces la aplicación lee el flujo de datos del buffer para procesarlos.

Estructura del segmento TCP

El segmento TCP tiene campo de datos y la cabecera. Los datos que se introducen en el segmento, están limitados por el MSS. Si necesitamos enviar archivos mayores al tamaño del MSS, TCP divide el archivo en fragmentos para adaptarse al MSS. Normalmente la cabecera de TCP ocupa 20bytes

UDP

Capa de transporte UDP.

UDP es lo mas básico en protocolo de transporte de datos, aun que es uno de los protocolos mas usados en internet, esto por la sencillez con la que se transportan los datos.

¿Por que usar UDP y no TCP?

-UDP inicia la transmisión sin llevar a cabo un proceso de conexión, así podemos evitar estos retardos. DNS usa UDP por este motivo.

-UDP no mantiene información de estado y no controla estos datos. Por esta razón, un servidor puede soportar más clientes activos cuando la aplicación se ejecuta mediante UDP.

-En UDP tendremos poca sobrecarga debido a la cabeceras, ya que TCP contienen 20 bytes de cabecera y UDP tan sólo 8 bytes.

MULTIPLEXACION, DEMULTIPLEXACION.

Multiplexacion, y demultiplexacion en la capa de transporte.

Demultiplexacion: Cada segmento de la capa de transporte contiene un campo para poder entregar los datos al socket adecuado. En el receptor, la capa de transporte examina estos campos para identificar el socket receptor y lo envía .

Multiplexación: Es el trabajo de reunir los datos en el host origen desde diferentes sockets, encapsulando los fragmentos de datos con la información de cabecera.

La multiplexacion y demultiplexacion son necesarios en todo tipo de redes ya que en el host destino se reciben segmentos procedentes de la capa de red ya que cada segmento se recibe en la capa de aplicación, si tenemos varios servicios por ejemplo SSH, FTP o HTTP, la capa de transporte debe dirigir cada uno de los datos recibidos a uno de los procesos determinados.

CAPA DE TRANSPORTE TCP UDP

Capa de transporte: TCP-UDP sobre IP.

En internet, se utiliza TCP/IP y UDP para el transporte de datos.

UDP: User Datagram Protocol, proporciona un servicio no orientado a conexión y no fiable, esto quiere decir que se va a intentar por todos los medios que los datos lleguen, pero no lo garantiza.

TCP: Transmission Control Protocol, proporciona un servicio orientado a conexión y fiable.

Tanto TCP como UDP trabajan sobre el protocolo de la capa de red de Internet, que es el protocolo IP.

IP proporciona una comunicación lógica entre hosts. IP es “best effort”, es decir, no garantiza que pueda entregar los segmentos entre los hosts pero hará lo que pueda para hacerlo correctamente.

– No garantiza la llegada de los segmentos.
– No garantiza el orden.
– No garantiza la integridad (que si llegan, lleguen correctos).

Por todo esto, IP es un servicio no fiable.

Lo que hace TCP y UDP es ampliar el servicio que proporciona IP entre dos host, de esta forma podremos tener varios procesos ejecutándose en los host y podremos comunicarnos con ellos. Eso se llama multiplexación y demultiplexación de la capa de transporte.

TCP y UDP proporcionan servicios de comprobación de errores. UDP sólo proporciona esta comprobación y la entrega de datos de proceso a proceso en cada host, recordemos que UDP es no fiable y no garantiza la integridad (como IP).

TCP sí proporciona una transferencia de datos fiable, también proporciona control de flujo, números de secuencia, mensajes de reconocimiento y temporizadores. TCP garantiza que los mensajes se envíen correctamente (control de errores,evitar datos duplicados y recuperación ante pérdidas) y en orden. TCP al estar sobre IP, convierte IP en un servicio de transporte de datos fiable.

TCP también nos proporciona control de congestión, para no colapsar los enlaces (routers, nodos intermedios) y que la intensidad de tráfico se acerque peligrosamente a 1 y empiecen los encolamientos, e incluso la pérdida de paquetes por llenar los buffers de los routers. TCP se encarga de asignar el mismo ancho de banda a todas sus conexiones para que todas ellas puedan enviar y recibir datos.

UDP no proporciona control de congestión, por tanto podrá enviar los datos a cualquier velocidad sin tener en cuenta la posible saturación de los nodos.