72
Nivel de Transporte LSUB, GYSC, URJC

Nivel de Transporte - lsub.orglsub.org/export/tcpip/6.transporte.pdf · • Ineficiente: mientras espero el ACK puedo transmitir más: ventana deslizante (sliding window) Ventana

  • Upload
    vonhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Nivel de TransporteLSUB, GYSC, URJC

Transporte����������

���������

������������

��������

�����������

����

����

Transporte

• El nivel de transporte da acceso a la red extremo a extremo

• Puede haber más de un extremo en una máquina: puertos

Puertos

�����������������

�������������

Puertos

• Los puertos sirven para saber quien se comunica con quien

• Por ejemplo:

• Navegador (12214 en mi ordenador) - Servidor web (80 en el servidor de google)

Puertos

• En TCP/IP hay dos protocolos de tranporte: TCP y UDP

• Cada protocolo tiene sus puertos

• El puerto 8080 de TCP es diferente del puerto 8080 de UDP

Conexiones

• Abstracción que se construye sobre los niveles inferiores

• Similar a una llamada telefónica:

• Establecimiento de conexión

• Me comunico por ella

• Cuelgo

Conexiones

• Hay protocolos que se ocupan de dar esta abstracción: orientados a conexión (TCP)

• Otros no: no orientados a conexión (UDP)

Conexión

• Los niveles inferiores nos dan datagramas, paquetes de datos

• Usando estos mensajes tengo que construir una conexión (establecimiento, uso, desconexión)

Establecimiento

• Necesito saber con quién voy a hablar (el número de teléfono): dirección IP, puerto de destino

• Le mando un mensaje (llamada) y el acepta

• En realidad más complicado porque se pueden perder datagramas (fiabilidad)

Establecimiento

• Necesito saber con quién voy a hablar (el número de teléfono): dirección IP, puerto de destino

• Le mando un mensaje (llamada) y el acepta

• En realidad más complicado porque se pueden perder datagramas (fiabilidad)

Establecimiento

�������� ��������

����� ���� ����� ��

����� ������� ����

�������������������� ���������������

�������������������� ��������������

Desconexión

�������� ��������

����� ���� ����� ��������������������������������

Desconexión

• La desconexión puede ir en cualquier sentido

Fiabilidad

• Se pueden perder paquetes

• La red se cae, o hay colisiones o se caen máquinas intermedias

• Para saber si ha llegado al otro extremo: mensaje de asentimiento, ACK (acknowledgement)

• ¿Qué paquete?: números de secuencia

• Si no hay ACK, timeout, restrasmisión

Asentimiento: ARQ

• Automatic Repeat reQuest

• Es la técnica de usar ACKs

Asentimiento sin pérdida

Asentimiento sin pérdida

Ya le ha llegado el paquete 38

cancelo el timer4

Asentimiento sin pérdida

380

t t

cancelo timer le ha

llegado el 38

34 ack 38

Asentimiento380

t t

8timeout

38retransmisión

12

10

0

8

¿Cuando mando el siguiente?

• Puedo esperar el ACK: parada y espera (stop and wait)

• Ineficiente: mientras espero el ACK puedo transmitir más: ventana deslizante (sliding window)

Ventana deslizante

• Basado en los números de secuencia (cada paquete que se manda va numerado)

• Ventana de transmisión: los que puedo mandar sin que me haya llegado un ACK

• Ventana de recepción: qué paquetes se aceptan posteriores a los no recibidos

0 1 2 3 4 5 6 7 8 9

Ventana de transmisión

t t

0 1 2 3 4 5 6 7 8 9 0123

ACK0

ACK1

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

Ventana de transmisión

• La ventana representa el número de paquetes que estoy dispuesto a mantener en memoria

• Cuando salen de la ventana, los puedo tirar, si no, tengo que guardarlos para retransmitir

0 1 2 3 4 5 6 7 8 9

confirmados no se pueden mandar todavía

mando sin esperar

ack

Ventana de recepción

tt

0 1 2 3 4 5 6 7 8 90123

ACK0

ACK1

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

4

ACK3

El 3 se guarda para entregarlo

cuando llegue el 2

4 se tira: fuera de la ventana

Ventana de recepción

• La ventana, de nuevo representa cuantos guardo en memoria

• Posteriores a alguno que no me han llegado todavía

• Cuando salen de la ventana, los he podido entregar

0 1 2 3 4 5 6 7 8 9

entregados se ignoranguardo

hasta que pueda

entregar

Anuncio de ventana

• En los mensajes mando el tamaño de la ventana de recepción (típicamente en los ACKs

• El emisor ajusta su ventana de transmisión

ARQ: ¿Cuándo y cómo retransmito?

• Cuando pierdo uno puedo retransmitir desde ese al final de la ventana: Go-Back-N

• Cuando pierdo uno, puedo retransmitir ese: Selective Repeat

Go Back N

• Ventana de transmisión N, recepción 1

• Si me llega uno posterior a uno que no ha llegado, lo tiro

• Con un timeout, remando desde el último ACK

• ACK significa he recibido “hasta éste”

Selective Repeat

• Ventana tx: N, ventana rx: N

• Si me llega uno en la ventana, indep. del orden, mando un ACK

• Timeout de un paquete, remando sólo ese

Detección de errores

• Checksum: hay en TCP y en UDP

• Número que se calcula a partir del paquete para ver si hay errores

• El checksum incluye parte de la cabecera IP: dirección origen, destino y el protocolo

• Se llama pseudocabecera

Control de flujo

• El transmisor puede ahogar al receptor mandando muy rápido

• El receptor puede querer que le manden mas rápido

• Se juega con el tamaño de las ventanas de transmisión y recepción

Congestión

• Muchos transmisores rápidos pueden ahogar a la red: congestión

• La lentitud provoca timeouts y restransmisiones que empeoran la congestión

• Algunos protocolos lo detectan e intentan evitarla

Congestión

Enlace 10 MbpsEnlace 1Gbps

Enlace 1Gbps

Enlace 1Gbps

Enlace 1Gbps

Transmiten a 20 Mbps cada uno

Congestionado

TCP

• Transmission Control Protocol

• Orientado a conexión

• Fiable

• Control de flujo

• Control de congestión

TCP encapsulado en IP

Cabecera IP Cabecera TCP TCP Datos

Segmento TCP (Datos IP)

Datagrama IP

Campo protocolo de IP es 6

Cabeceras TCP

Puertos

Puertos

• Los puertos por debajo de 1024, servicios bien conocidos

• Ejemplos:

• 80 http (web)

• 23 telnet (shell remota, en claro)

• 22 ssh (shell remota, cifrada)

• 631ipp (impresión)

Puertos

• Se suelen poner en los conocidos para no tener que especificar el puerto

• Pero se puede hacer especificando el puerto, por ej:

• http://miservicio.com:6321

• telnet maquina.com:345

Asentimientos y Numeros de Secuencia• Ambos están en bytes (lo anterior estaba

simplificado), la ventana también

• El número de secuencia: en qué byte empieza este paquete (de la secuencia de bytes total de la conexión)

• El número de ACK: a partir de qué byte no he recibido

TCP handshake

• Esquema de establecimiento de conexión

• Con fiabilidad (asentimientos)

TCP handshake

t t

SYN seq=0, ack=0

ACK seq=1, ack=1

SYN|ACK seq=0, ack=1

ESTABLECIDA

seq=1, ack=1, len=100bytes

seq=1, ack=101, len=100bytes

Flags TCP handshake

Num. Secuencia, Ack

Desconexión

• Dos formas, dos flags

• FIN: cierro la conexión, mándame lo que te queda

• RST: cierro la conexión, olvídate de mí

Flags TCP desconexión

Conexión: Estados������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Abro conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Se conectan a mí

Establecimiento de ConexiónCLOSED

SYN_SENT

SYN_RCVD

ESTABLISHED

CLOSED

SYN_RCVD

ESTABLISHED

SYN

ACK

SYN|ACK

LISTEN

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Me pongo a escuchar

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Me pongo a escuchar

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Syn

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Syn

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Syn

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

ACK

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

SYN|ACK

Establecimiento de Conexión

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

RST

CLOSED

ESTABLISHED

CLOSED

ESTABLISHED

RST

RST:Cierro sin esperar������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

FIN, manda lo que quede������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

FIN, otro lado������

������

� ��� ��

� ���� �

� ����

���� ��

������ ����

�������

������� �

�������

������

� ��� ��

���������

�� ��!�"� #$%�����&�$"�#���'�(� #$%�����

�)�*��)�*��)�*� �&�$(�&#*�'�

���������� #$%����+���

#$%�����

#$%���������������

�������� �+��� #$%�����

#$%��� �

�������� � #$%�����

#$%��� �

�����������%��� �

�������� �"� #$%������� ��!�

��*�, �$��*�%��'�%#

������������� �

#$%��� �

������������� �

����������+��� #$%�����

����������+��� #$%�����

�������� � #$%�����

�����������%�����

Anuncio ventana

UDP

• User Datagram Protocol

• No orientado a conexión

• No fiable

UDP

• Si un paquete se pierde, se pierde (no es fiable), es cosa de la aplicación

• Es un protocolo muy sencillo, poco más que puerto origen, destino y un checksum

UDP fragmentación

• Si un paquete se fragmenta (nivel inferior, IP)

• Y se pierde un trozo, se pierde el paquete entro

• Típicamente se pone un timeout para esperar a ver si llega el resto del paquete

UDP