PDF de programación - Tema 4. Aspectos Avanzados del Protocolo TCP

Imágen de pdf Tema 4. Aspectos Avanzados del Protocolo TCP

Tema 4. Aspectos Avanzados del Protocolo TCPgráfica de visualizaciones

Publicado el 6 de Junio del 2017
532 visualizaciones desde el 6 de Junio del 2017
2,9 MB
120 paginas
Creado hace 11a (27/12/2012)
1908 – Arquitectura de Redes

Tema 4. Aspectos Avanzados del

Protocolo TCP

Pedro M. Ruiz

<[email protected]>

Francisco J. Ros
<[email protected]>

3º Grado en Ingeniería Informática – 2011/2012

Organización del tema

 Introducción al nivel de transporte
 Transporte orientado a la conexión: TCP
 Control de flujo en TCP
 Control de congestión en TCP
 Retransmisiones mejoradas en TCP
 Variantes TCP

Arquitectura de Redes - Universidad de Murcia

2

Organización del tema

 Introducción al nivel de transporte
 Transporte orientado a la conexión: TCP
 Control de flujo en TCP
 Control de congestión en TCP
 Retransmisiones mejoradas en TCP
 Variantes TCP

Arquitectura de Redes - Universidad de Murcia

3

Contextualización

www.um.es

Apl.1

O.S.

D

H

Nivel de Aplicación

sun.rediris.es

Apl.2

Nivel de Transporte

Data

Header

Data

Header

Nivel de Red

O.S.

D

H

D

H

D

H

D

H

D

H

Nivel de Enlace

Arquitectura de Redes - Universidad de Murcia

Source: CS244, Steve McKeown, Stanford University

4

Introducción al Nivel de Transporte

 Suministra transporte de los datos extremo a extremo (host

a host). Usando los servicios del nivel de red realiza la
comunicación de forma transparente al medio físico.

 Multiplexa tráfico de diversas instancias (procesos) del

nivel de aplicación.

 La unidad de transferencia de información a nivel de

transporte se denomina TPDU (Transport Protocol Data
Unit) o simplemente segmento en TCP/IP.

 Generalmente las aplicaciones requieren un servicio fiable,

sin pérdidas ni datos duplicados. Para ello se utiliza un
servicio CONS. Ej: TCP (TCP/IP), TP4 (OSI).

 A veces basta un servicio de datagramas CLNS (no fiable).

Ej: UDP (TCP/IP), TP0 (OSI).

Arquitectura de Redes - Universidad de Murcia

5

Elementos Principales del Nivel de

Transporte

 Direccionamiento y multiplexación

– Identificar a los procesos orígen y destino
– Hacer llegar los datos de diversas fuentes al proceso destino

correspondiente

 Establecimiento y cierre de conexiones

– Sólo en nivel de transporte orientado a conexión

 Control de flujo y buffers

– Ajuste de las tasas de envío de datos

 Control de errores

– Recuperación ante la pérdida de datos en la subred

Arquitectura de Redes - Universidad de Murcia

6

Control de Flujo, Congestión y Errores

Motivación

 Un transmisor rápido podría saturar a un receptor lento

– Adaptación de las tasas a los equipos finales

 La carga ofrecida a la red puede ser superior a la máxima

soportada
– Buffers de routers intermedios podrían llenarse
– Normalmente conocido como control de congestión

 Algunas sesiones podrían recibir muchos más recursos

que otras
– Mantener equidad entre sesiones

 Una subred puede perder o retrasar mensajes

Arquitectura de Redes - Universidad de Murcia

7

Comparación de Protocolos de

Transporte en Internet

Función
Transporte
Multiplexación
Detección de errores
Corrección de errores
Control de flujo
Control de congestión
Establecimiento/
terminación de conexión

TCP UDP










Opcional
No
No
No
No

Arquitectura de Redes - Universidad de Murcia

8

Organización del tema

 Introducción al nivel de transporte
 Transporte orientado a la conexión: TCP
 Control de flujo en TCP
 Control de congestión en TCP
 Retransmisiones mejoradas en TCP
 Variantes TCP

Arquitectura de Redes - Universidad de Murcia

22

Protocolo TCP

 Transmission Control Protocol (TCP), RFC 793

– Implementa un transporte confiable orientado a la

conexión (CONS) sobre un servicio de red no confiable
(IP)

 Funciones:

– Establecer y terminar conexiones
– Intercambiar datos con las aplicaciones: multiplexar

nivel de aplicación (puertos)

– Gestionar los buffers, ejercer control de flujo
– Controlar errores, retransmitir segmentos (TPDUs)

perdidos, eliminar duplicados

– Efectuar control de congestión

Arquitectura de Redes - Universidad de Murcia

23

Características de TCP

 Ofrece un servicio de transporte de datos entre

aplicaciones dúplex, fiable y orientado a conexión
(establecimiento, transferencia de datos y liberación).

 El octeto es la unidad de datos del interfaz. No es posible

preservar unidades de mayor longitud.

 Los datos de usuario se dividen para ser transmitidos como

datagramas IP.

 Se emplea el mecanismo de ventana deslizante para

ejercer control de flujo y recuperarse frente a errores
(generados o no recuperados por la red). La numeración es
a nivel de octeto.

 El tamaño de la ventana puede variar a lo largo de una

misma conexión.

Arquitectura de Redes - Universidad de Murcia

24

Diagrama de Multiplexación

Nivel de aplicación

FTP

Port 21

Telnet
Port 23

SMTP
Port 25

Nivel de transporte (TCP)

Cab. TCP Port 23

DATOS APLICACIÓN

Nivel de red (IP)

Cab. IP Prot. 6

SEGMENTO TCP

Nivel de enlace (Ethernet)

Cab. MAC Etype 0800

DATAGRAMA IP

CRC

Arquitectura de Redes - Universidad de Murcia

25

Cabecera TCP

32 bits

Puerto de origen

Puerto de destino

Número de secuencia N(S)

Número de acuse de recibo N(R)

Reserv.

Flags

Tamaño ventana

20

bytes

Lon.
Cab

Checksum

Puntero datos urgentes

Opciones

Relleno

Flags: URG:
ACK:
PSH:
RST:
SYN:
FIN:

el segmento contiene datos urgentes
el campo número de acuse de recibo tiene sentido
el segmento contiene datos ‘Pushed’
ha habido algún error y la conexión debe cerrarse
indica el inicio de una conexión
indica el final de una conexión

Arquitectura de Redes - Universidad de Murcia

26

Campos

 Origen y Destino: puertos origen y destino de la

comunicación (FTP, TELNET, SMTP, etc.)

 N(S): posición del segmento dentro de la ristra de octetos

de usuario.

 N(R): posición del siguiente octeto que se espera recibir.

Válido si bit ACK activo.

 Lon Cab: longitud de la cabecera TCP, en múltiplos de 32
bits. Campo necesario porque la cabecera es de longitud
variable.

Arquitectura de Redes - Universidad de Murcia

27

Campos

 Tam. Ventana: receptor anuncia sus recursos disponibles.
 Checksum: suma de comprobación del segmento TCP y

una pseudo-cabecera.

 Puntero Urgentes: indica la posición dentro del segmento

donde acaban los datos urgentes  éstos se hallan al
principio. Válido si bit URG activo.

 Opciones: Campo opcional de tamaño variable. Define

extensiones a TCP, tales como negociar el tamaño máximo
de segmento (MSS).

 Relleno: para que la cabecera sea múltiplo de 32 bits.

Arquitectura de Redes - Universidad de Murcia

28

Cálculo del Checksum

 El Checksum se calcula sobre:

– Pseudo-cabecera

Direcciones origen y destino de la cabecera IP
Campo “Protocolo” de la cabecera IP
Longitud de cabecera + datos TCP (en bytes)

– Cabecera TCP
– Datos TCP

 Se necesita saber la dirección IP origen, por lo que hay que

interactuar con la entidad IP antes de enviar el datagrama.

Arquitectura de Redes - Universidad de Murcia

29

La Pseudo-cabecera TCP

32 bits

Dirección IP de origen
Dirección IP de destino
00000110

Long. Segmento TCP

00000000

Se añade al principio del segmento para el cálculo del
checksum. Permite a TCP comprobar que IP no se
ha equivocado en la entrega del datagrama.

El valor 1102 = 610 indica que el protocolo de transporte es TCP

Arquitectura de Redes - Universidad de Murcia

30

Tipos de Flags

 URG. Datos acelerados. El campo Puntero Urgentes tiene

validez.
– Ej: Envío de una señal a aplicación remota

 ACK. El campo N(R) es válido. Confirmación de entrega.
 PSH. El segmento requiere envío y entrega inmediata
– Ej: Telnet requiere enviar línea de buffer al presionar [Enter]

 RST. Resetea la conexión ante un error irrecuperable.
 SYN. Establecimiento de conexión. Confirmación con ACK.
 FIN. Liberación de conexión. Confirmación con ACK.

Arquitectura de Redes - Universidad de Murcia

31

Transferencia de Datos

 Se emplea ventana deslizante y asentimientos con

memoria, que indican el siguiente octeto que se espera
recibir.

 Cada segmento transmitido lleva asociado un temporizador.

Cuando expira, se retransmite.

 El plazo de retransmisión se calcula dinámicamente para

adaptarse a las condiciones de la red.

 El receptor recompone la ristra de datos de usuario,

descartando duplicados, entregándolos en secuencia.

 Más detalles en la siguiente sección…

Arquitectura de Redes - Universidad de Murcia

32

Conexiones en TCP

 Se utiliza saludo a tres vías (3-way handshake) tanto

para establecer como para cerrar conexiones

 El proceso de establecimiento de conexión reserva

recursos para la comunicación e intercambia los números
de secuencia iniciales (ISN)
– 32 bits que se usan en el intercambio de datos de una conexión

para identificar:

la posición de los datos del segmento en el flujo de bytes del emisor
el siguiente byte que espera el receptor

– Se eligen de forma aleatoria a partir de un reloj para evitar que

segmentos atrasados de conexiones anteriores puedan interferir en
la conexión actual

– Con un MSL (Maximum Segment Lifetime) de unos 2 minutos, la

probabilidad de que dos ISN coincidan es despreciable

Arquitectura de Redes - Universidad de Murcia

33

Establecimiento de Conexión
TCP A
TCP B

Caso Normal

CLOSED

SYN-SENT

ESTABLISHED

o
p
m
e
T
←←←←

i

LISTEN

SYN-RECEIVED

ESTABLISHED

Los primeros segmentos de una conexión TCP pueden
llevar datos. En ese caso el TCP remoto los ha de retener
hasta que la aplicación receptora acepte la conexión.

Arquitectura de Redes - Universidad de Murcia

34

Recuperación
SYN Duplicado

TCP A

CLOSED

SYN-SENT

o
p
m
e
T
←←←←

i

ESTABLISHED

TCP B

LISTEN

SYN-RECEIVED

LISTEN

SYN-RECEIVED

ESTABLISHED

Arquitectura de Redes - Universidad de Murcia

35

Terminación de la Conexión

 La terminación se hace de forma simétrica
mediante un saludo a tres vías modificado
– Cuando una parte no tiene más datos que enviar envía

un mensaje FIN que es asentido por el otro extremo

– Desconexión en cada sentido
  • Links de descarga
http://lwp-l.com/pdf4341

Comentarios de: Tema 4. Aspectos Avanzados del Protocolo TCP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad