Está en la página 1de 46

NETWORKING III

PROTOCOLOS DE
CAPA TRANSPORTE
Semestre Mar-Ago2014 Ing Carlos Vásquez 1
User Datagram Protocol
• Estandarizado en RFC 768
• User Datagram Protocol (UDP): es un protocolo no
orientado a conexión, no confiable.
• UPD envía los datos de un programa de aplicación de
un host a otro programa de aplicación de otro host, sin
garantizar la correcta recepción de los mismos.
• Debido a que UDP es un protocolo no orientado a
conexión y no confiable, los datagramas de usuario
enviados pueden perderse, duplicarse o llegar en
desorden al destino por lo que la capa aplicación se
deberá encargar de los detalles correspondientes para
solucionar estos problemas.

Semestre Mar-Ago2014 Ing Carlos Vásquez 2


User Datagram Protocol (2)
• Un datagrama de usuario UDP está formado por una
cabecera y un área de datos. 8 bytes

 Puerto de Origen: Valor del puerto UDP de origen.


 Puerto de destino: Valor del puerto UDP de destino.
 Longitud del mensaje UDP: Contiene la longitud total en
octetos del datagrama de usuario UDP.

Semestre Mar-Ago2014 Ing Carlos Vásquez 3


User Datagram Protocol (3)
• Checksum: utilizado para determinar errores en los
datos y capaz de reconocer si un datagrama de usuario
llego a su destino y puerto correcto. Es un campo
opcional.
• Tanto en TCP como en UDP se añade un propósito de
calculo de checksum, una Pseudo cabecera UDP.

Semestre Mar-Ago2014 Ing Carlos Vásquez 4


User Datagram Protocol (4)
• Cada puerto UDP tiene asociado un numero de
puertos según la aplicación que lo utilice.
• Cada programa de aplicación puede ser
completamente identificado por su numero de
puerto.
• UDP es capaz de multiplexar varias
comunicaciones de transporte utilizadas por
proceso de aplicación entre un host de aplicación
y un host de destino que estén ejecutando
simultáneamente.
Semestre Mar-Ago2014 Ing Carlos Vásquez 5
Transmission Control Protocol (TCP)
• Estandarizado en el RFC 793
• Es un protocolo de transporte orientado a conexión,
encargado de garantizar una comunicación de extremo
a extremo confiable, libre de errores y en una
secuencia correcta, para que sea utilizada por los
programas de capa aplicación que requieran este
servicio.
• Se encarga de ocultar las imperfecciones de la red.
• TCP no asume confiabilidad en los protocolos de bajo
nivel como IP. La mayoría de aplicaciones en Internet
operan sobre el servicio de transporte confiable dado
por TCP.

Semestre Mar-Ago2014 Ing Carlos Vásquez 6


Transmission Control Protocol (2)
• TCP se encarga de proporcionar a los procesos de
capa aplicación.
o Transferencia continua de flujo de datos.
o Confiabilidad
o Control de Flujo
o Circuitos Virtuales
o Multiplicación
o Comunicación Full Dúplex
• Un segmento TCP está formado por una cabecera
y un área de datos.
Semestre Mar-Ago2014 Ing Carlos Vásquez 7
Conexión entre procesos con TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 8


Formato de un segmento TCP (1)
Tanto la cabecera IP como la cabecera TCP tienen una longitud variable de al menos 20 bytes

Semestre Mar-Ago2014 Ing Carlos Vásquez 9


Formato de un segmento TCP (2)
• Puerto origen: Número del puerto TCP que identifica al
programa de aplicación origen.
• Puerto destino: Numero del puerto TCP que identifica al
programa de aplicación destino.
• Número de secuencia: Indica el numero de secuencia del
primer byte de datos contenido en el campo de datos.
Utilizado por el destino para ubicar el segmento en su lugar
adecuado dentro del flujo de datos enviado.
• Número de acuse de recibo: Número de secuencia del
siguiente byte de datos que espera recibir el host destino.
• HLEN: Campo de 4 bits. Determina la longitud de la
cabecera en unidades de 32 bits.

Semestre Mar-Ago2014 Ing Carlos Vásquez 10


Formato de un segmento TCP (3)
• Reservado: Es un campo de 6 bits reservado para uso
futuro.
• Code Bits: define 6 bits cuyo significado es el siguiente:
o URG: Un valor URG = 1 indica que el segmento lleva información
urgente en el campo de datos.
o SYN: Utilizado para establecer conexiones.
o FIN: Utilizado para terminar conexiones.
o ACK: Un valor ACK = 1 indica que el campo de acuse de recibo es
valido. Es usado con SYN y FIN
o RST: Un valor RST = 1 termina la comunicación en forma abrupta
y unilateral de la conexión.
o PSH : Solicita la entrega inmediata de la información (PUSH), sin
que sea almacenada hasta tener un tamaño adecuado de datos
para enviar.

Semestre Mar-Ago2014 Ing Carlos Vásquez 11


Formato de un segmento TCP (4)
• Ventana: Este campo indica el numero de bites que en
ese momento el destino puede almacenar en sus
buffers internos.
• Checksum: Permite determinar si han ocurrido errores
en el segmento y reconocer si el segmento llegó a su
destino y puerto correcto.
• Puntero de Urgencia: Es un puntero que permite
indicar la posición del ultimo byte de datos urgentes
enviados en el segmento junto con otros datos que se
encontraban previamente almacenados.
• Opciones: utilizado para proporcionar una seria de
opciones adicionales.

Semestre Mar-Ago2014 Ing Carlos Vásquez 12


FUNCION TCP (1)
• Si existen problemas en la entrega de un
datagrama IP éste será simplemente descartado.
• Ejemplos de condiciones que podrían resultar en
la perdida de un datagrama incluye congestión en
la red o el hecho de que el paquete no se puede
entregar por que el destino no puede ser
alcanzado por un ruteador intermedio.
• TCP asegura que los datos sean correctamente
entregados en la secuencia apropiada sin perdida
de partes o duplicación
Semestre Mar-Ago2014 Ing Carlos Vásquez 13
FUNCION TCP (2)
• Cuando un host quiere enviar datos a otro host
en otra red, el primero coloca los datos en un
segmento TCP, en cual lleva una cabecera
(header) TCP que incluye un numero de
secuencia.
• El segmento TCP es luego encapsulado en un
paquete IP denominado “datagrama IP”.
• El protocolo IP no notifica directamente que un
datagrama enviado ha sido desechado.
“Protocolo de Control de Mensajes de Internet –
The Internet Control Message Protocol (ICMP)”.

Semestre Mar-Ago2014 Ing Carlos Vásquez 14


FUNCION TCP (3)
• Si el usuario de una red requiere un servicio
de entrega confiable, el cual asegurará la
entrega y reporte de condiciones de error, se
debe usar un protocolo de alto nivel, tal como
el Protocolo de Control de transmisión (TCP),
en adición a IP.
• TCP provee de una conexión confiable
extremo a extremo entre usuarios.

Semestre Mar-Ago2014 Ing Carlos Vásquez 15


FUNCION TCP (4)

Internet
Aplicación TCP TCP Aplicación

Semestre Mar-Ago2014 Ing Carlos Vásquez 16


¿Cómo IP y TCP trabajan juntos?
• IP se encarga del enrutamiento de datos a
través de una internet.
• TCP asegura la confiabilidad de la
transferencia de datos, tal que las aplicaciones
en el host no necesitan ocuparse de los
detalles de envío y recepción de datos.
• Al datagrama IP realmente no le preocupa los
datos dentro del paquete. Lo que le preocupa
es la dirección en la cabecera (header).

Semestre Mar-Ago2014 Ing Carlos Vásquez 17


TRABAJO DE TCP/IP (1)
• Cada host y routers tienen al menos una única
dirección de envió (IP address)
• El host envía el datagrama IP al primer router.
El router luego retransmite el datagrama IP al
siguiente router hacia la red destino. El último
router entrega el datagrama IP al host destino.

Semestre Mar-Ago2014 Ing Carlos Vásquez 18


TRABAJO DE TCP/IP (2)
• Debido a que las diferentes redes tienen distintas
capacidades de transmisión de datos, algunas veces los
routers fragmentan los datagramas y vuelven a
ensamblarlos de acuerdo a las necesidades de transmisión
a través de la red.
• Por ejemplo: Ethernet permite una capacidad máxima de
transmisión de datos de 1500 bytes mientras que X.25
permite hasta 128 bytes. Es así que si el router decide
enviar datagramas desde una Ethernet sobre una red X.25,
este fragmentará a los datagramas en pequeñas partes.
• La capa IP es la responsable de la fragmentación y re-
ensamblaje de los paquetes fragmentados.

Semestre Mar-Ago2014 Ing Carlos Vásquez 19


TRABAJO DE TCP/IP (3)
• A cada datagrama IP se le asigna también un número
máximo de routers por los cuales va atravesar, lo que
permite tener un mecanismo de tiempo de vida del
datagrama. Lo cual a su vez evita que este circule
indefinidamente alrededor de la internet.
• TCP en el host de recepción desencapsula el paquete, y
organiza el stream de datos de acuerdo a los números
de secuencia de los segmentos TCP.
• Esta secuencia numérica permite la determinación de
partes extraviadas y duplicadas.

Semestre Mar-Ago2014 Ing Carlos Vásquez 20


TRABAJO DE TCP/IP (4)
• El receptor confirma la correcta recepción de los datos
al host remoto transmisor.
• Si el host que envía los datos no recibe el acuse de
recibo (aknowledgment) dentro de un determinado
intervalo de tiempo, este transmitirá los datos.
• De esta forma, TCP garantiza la confiabilidad del
servicio de internet para las aplicaciones. Puesto que IP
maneja todo el enrutamiento dentro de la red, las
aplicaciones que usan el protocolo TCP en los hosts
están aisladas de los detalles de la comunicación.

Semestre Mar-Ago2014 Ing Carlos Vásquez 21


Como establecer conexión TCP (1)
• TCP utiliza tres formas de
control (handshake)
cuando se establece una
conexión entre 2 hosts.
o Petición de
establecimiento de
conexión.
o Aceptación de la
conexión.
o Confirmación de la
recepción de la
aceptación de la
conexión.

Semestre Mar-Ago2014 Ing Carlos Vásquez 22


Como establece TCP conexión (2)
1. El servidor se inicializa y esta listo para
aceptar conexión de los clientes. Lo que se
denomina passive open.
2. El cliente solicita a TCP que habrá una
conexión con un servidor en un determinado
puerto y dirección IP. A esto se denomina
active open.

Semestre Mar-Ago2014 Ing Carlos Vásquez 23


Como establece TCP conexión (3)
3. El cliente TCP escoge un numero inicial de
secuencia. Este envía un segmento de
sincronización (activada la banderas SYN) con
un numero de secuencia (x), el tamaño de la
ventana de recepción y el tamaño del mayor
segmento que puede recibir el cliente.

Semestre Mar-Ago2014 Ing Carlos Vásquez 24


Como establece TCP conexión (4)

CLIENTE SERVIDOR

APLICACION APLICACION

SYN
SEQ = 1000
TCP TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 25


Como establece TCP conexión (5)
4.El servidor TCP envía un segmento (activadas
la banderas SYN y ACK), con un numero
inicial de secuencias (y), un ACK (con valor
x+1), el tamaño de su ventana de recepción y
el tamaño de segmento de datos que puede
recibir.

Semestre Mar-Ago2014 Ing Carlos Vásquez 26


Como establece TCP conexión (6)

CLIENTE SERVIDOR

APLICACION APLICACION
SYN
SEQ = 3000
ACK = 1001
TCP TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 27


Como establece TCP conexión (7)
5. El TCP cliente recibe el mensaje SYN/ACK del
servidor, envía de regreso un ACK (y+1).
6. El TCP cliente notifica a su aplicación que la
conexión está abierta.
7. Cuando TCP servidor recibe el ACK del TCP
cliente, el servidor notifica a su aplicación que
la conexión está abierta.

Semestre Mar-Ago2014 Ing Carlos Vásquez 28


Como establece TCP conexión (8)

CLIENTE SERVIDOR

APLICACION APLICACION

SEQ = 1001
ACK = 3001
TCP TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 29


Ejemplo de Conexión TCP

1 Envio SYN SYN recibido


(seq=100 ctl=SYN)
Envio SYN 2
SYN recibido (seq=300 ack=101 ctl=SYN,ACK)
3 Establecido
(seq=101 ack=301 ctl=ACK)

4 Establecido
(seq=102 ack=301
ctl=ACK DATA)

Semestre Mar-Ago2014 Ing Carlos Vásquez 30


OPERACIÓN TCP (1)
• La petición inicial de conexión o primer
handshake, selecciona la aplicación y un
numero de puerto remoto, el cual es el
numero de identificación único para la
aplicación del extremo de la conexión TCP/IP.
• La petición inicial también define el numero
del puerto del host solicitante y puede usar la
opción TCP para definir el máximo segmento
usado en la conexión.

Semestre Mar-Ago2014 Ing Carlos Vásquez 31


OPERACIÓN TCP (2)
• El segundo handshake es la aceptación de la
conexión del host remoto.
• En el tercer handshake el solicitante confirma
la recepción de la aceptación. Este handshake
es utilizado para proteger contra perdida de
respuesta en la internet. Los temporizadores
son también utilizados para determinar que
un intento fallo.

Semestre Mar-Ago2014 Ing Carlos Vásquez 32


Reconocimiento Simple TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 33


Reconocimiento de múltiples
segmentos TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 34


Proceso de cerrar una conexión (1)
• Cualquiera de los dos lo puede iniciar.
1. Aplicación cliente o servidor envía un
segmento de TCP con:
o Direcciones de socket
o Numero de secuencia +1 esperado,
o Indicador de final (FIN=1)

C S

Semestre Mar-Ago2014 Ing Carlos Vásquez 35


Proceso de cerrar una conexión (2)
2. Aplicación servidor o cliente envía un
segmento de TCP con:
o Direcciones de socket
o Numero de secuencia +1 esperado,
o Indicador de final (FIN=1)

C S

Semestre Mar-Ago2014 Ing Carlos Vásquez 36


Diagrama de cierre de conexión
A B

FIN = 1, sec = x FIN = 0,


Ack = x + 1
Informar a aplicación
para que cierre

FIN = 1, sec = y
FIN = 0,
Ack = y + 1
Conexión
cerrada

Semestre Mar-Ago2014 Ing Carlos Vásquez 37


PUERTOS, IP’s Y SOCKETS
Aplicación Aplicación
Conexión
Port Port

TCP TCP
Internet (IP) IP… IP… Internet (IP)

Conexión = {(port #, IP address), (port #, IP address) }


• Un numero de puerto es usado para conectar una aplicación a TCP
• Una dirección IP es la única identificación para un host.
• Un socket es una combinación de un numero de puerto TCP o UDP y una
dirección IP.

Semestre Mar-Ago2014 Ing Carlos Vásquez 38


NUMERO DE PUERTOS TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 39


Secuencia TCP y numero de Acuse

Semestre Mar-Ago2014 Ing Carlos Vásquez 40


NUMERO DE PUERTOS PARA TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 41


NUMERO DE PUERTOS PARA UDP

Semestre Mar-Ago2014 Ing Carlos Vásquez 42


NUMERO DE PUERTOS PARA TCP Y UDP

Semestre Mar-Ago2014 Ing Carlos Vásquez 43


PROCESOS DEL SERVIDOR TCP

Semestre Mar-Ago2014 Ing Carlos Vásquez 44


PRIMITIVAS IP
• Tanto las capas IP y TCP proporcionan servicios a los
usuarios de la red, servicios que son llamados
primitivas.
• El interfaz estándar IP incluye las siguientes
primitivas:
• Envió del datagrama
• Recepción del datagrama
• Selección de la dirección de la fuente
• Encontrar el tamaño máximo del datagrama
• Notificar el éxito de la entrega
• Enviar mensajes ICMP
• Recibir mensajes ICMP

Semestre Mar-Ago2014 Ing Carlos Vásquez 45


PRIMITIVAS TCP
• El interfaz TCP también usa un conjunto de
primitivas, entre la capa TCP y la Aplicación:
• Petición de conexión
• Cierre de conexión
• Abortar la conexión
• Envío de datos
• Recepción de datos
• Conseguir reporte del estado de la conexión

Semestre Mar-Ago2014 Ing Carlos Vásquez 46

También podría gustarte