# data[].attributes.body
MSc Johnn E Criollo Salamanca
Docente UNIMINUTO
Sede Central
Programa de Ingeniería de Sistemas
2021

# data[].attributes.body
1. Es el desarrollador quien elige el protocolo de transporte según las necesidades de la aplicación

2. Mayor sobrecarga para el paso por la red, y una menor carga para el transporte de datos

3. Conversaciones orientadas a la conexión mediante el establecimiento de sesiones

4. Entrega confiable

5. Reconstrucción de datos ordenada

6. Control del flujo

# data[].attributes.headline
Esto hace de TCP un mejor protocolo que UDP ¿?

# data[].attributes.subject
Esto hace de TCP un mejor protocolo que UDP ¿?

# data[].attributes.body
NO, además de admitir funciones básicas de segmentación y rearmado de datos, TCP,  también proporciona servicios avanzados que UDP no contempla, esto conlleva a una sobrecarga de los segmentos TCP, por ello TCP se conoce como el protocolo de "entrega segura"

# data[].attributes.body
Como las ordenes o parámetros de acción sobre el cual se establece el dialogo cliente servidor. Las clases de socket TCP son Socket  y ServerSocket. El set de primitivas que usa son:

Socket

Connect (ó bind)

Listen

Accept

Send  (ó Write)

Receive (ó Read)

Close

# data[].attributes.body
Los sockets TCP establecen su ejecución a partir de la solicitud de la capa de aplicación al sistema operativo, según el tipo de comunicación requerido.

Transferencia de bloque de datos de segmentos

Orientado a la conexión

Un socket TCP se identifica por cuatro valores:

# data[].attributes.body
Define el establecimiento y  finalización de una sesión TCP:

Paso 1. El cliente de origen solicita una sesión de comunicación de cliente a servidor con el servidor.

Paso 2. El servidor acusa recibo de la sesión de comunicación de cliente a servidor y solicita una sesión de comunicación de servidor a cliente.

Paso 3. El cliente de origen acusa recibo de la sesión de comunicación de servidor a cliente

# data[].attributes.body
Aplicaciones que pueden tolerar cierto grado de demora o pérdida de rendimiento debido a la sobrecarga que impone TCP

TCP libera a la aplicación de la tarea de administrar segmentación del stream de datos, la confiabilidad, el control del flujo y el reordenamiento de segmentos.

Implementa para servicios de capa de aplicación que requieren mayor seguridad, una perdida de datos no permitida y un seguimiento de las comunicaciones VPN, SSL, TSL, TELNET, SMTP, IMAP, HTTP, FTP entre otros

# data[].attributes.body
El procesamiento es otro dialogo entre ambas partes y se describe así:

1. Establecimiento de la sesión: Envía el primer segmento (SYNC, INC, pregunta de tamaño de ventana, y temporizador)

2. Negociación de la comunicación: Receptora responde con un ACK, el tamaño de la ventana e inicia su propio temporizador)

3. Establecimiento de la comunicación: Con la ventana establecida, inicia el transporte de segmentos, ( Puerto origen y Puerto destino). Por cada entrega espera un ACK o NACK. Si la ventana permite el envió de dos segmentos y uno de estos tiene un NACK solo se reenvía el solicitado y se permite el envió de los siguientes dos segmentos, para Ello TCP implemente protocolos adicionales de entrega confiable

4. Finalización de la sesión: se da cuando se termina el transporte del ultimo segmento desde el emisor FIN ACK

# data[].attributes.body
Es un mecanismo de TCP para garantizar la entrega confiable  y establecer el tamaño de carga efectiva entre emisor y receptor.

La cantidad de datos que un origen puede transmitir antes de recibir un acuse de recibo se denomina “tamaño de la ventana”, que es un campo en el encabezado TCP que permite administrar datos perdidos y controlar el flujo

# data[].attributes.body
Dentro del encabezado del segmento TCP, existen seis campos de 1 bit que contienen información de control utilizada para gestionar los procesos de TCP. Estos campos son los siguientes:

URG Urgente

ACK acuse de recibo importante

PSH empuje

RST restablecer conexión

SYN Sincronización de números de secuencia

FIN no hay mas datos en el emisor

# data[].attributes.body
Para que el receptor comprenda el mensaje original, los datos en estos segmentos se reensamblan en el orden original. Para lograr esto, se asignan números de secuencia (ISN) en el encabezado de cada paquete.
Los números de secuencia de segmento habilitan la confiabilidad al indicar cómo rearmar y reordenar los segmentos recibidos.

# data[].attributes.body
Es la forma en que el protocolo construye unidades de datos mediante carga efectiva y datos en cabecera para ser enviado.
TCP divide en segmentos las unidades de datos de datos  y agrega un valor de numero de secuencia (ISN)

# data[].attributes.headline
Protocolo de Control de transmisión  TCP

# data[].attributes.subject
Protocolo de Control de transmisión  TCP

# data[].attributes.body
RFC 793, lo define como un  protocolo de transporte robusto ya que incorpora funciones especificas de confiabilidad y seguimiento a las comunicaciones en redes de datos.
Además incorpora características propias de segmentación y rearmado de nivel superior.