PDF de programación - Nivel de transporte

Imágen de pdf Nivel de transporte

Nivel de transportegráfica de visualizaciones

Publicado el 18 de Agosto del 2019
101 visualizaciones desde el 18 de Agosto del 2019
1,2 MB
92 paginas
Creado hace 2a (18/09/2017)
NIVEL DE TRANSPORTE

Celeste Campo (celeste@it.uc3m.es)

Carlos García Rubio (cgr@it.uc3m.es)

NIVEL DE TRANSPORTE

ÍNDICE

Pág. 1

• Nivel de transporte en TCP/IP

• UDP

• TCP

NIVEL DE TRANSPORTE

Pág. 2

Nivel de transporte en TCP/IP

• Comunicación extremo a extremo entre procesos.

• Debe encargarse de tareas como el control de errores, el control

de flujo y el control de congestión.
– No todos los protocolos las cubren todas.

APLICACIÓN

TRANSPORTE

UDP

TCP

SCTP

DCCP

INTERRED

SUBRED

TCP/IP

UDP

Celeste Campo (celeste@it.uc3m.es)

Carlos García Rubio (cgr@it.uc3m.es)

UDP

ÍNDICE

Pág. 4

1.

Introducción.

2. Formato datagrama UDP.

3. Uso de UDP.

UDP

Pág. 5

BIBLIOGRAFÍA

• Básica:

– “TCP/IP Illustrated, Vol. 1 - The protocols”, W. R. Stevens. Addison-

Wesley 1994. (Chapter 11).

– “Computer networks: an open source approach”, Y.-D. Lin, R.-H.

Hwang, F. Baker. McGraw-Hill, 2012. (Chapter 5).

• Complementaria:

– “Computer Networking: A Top-Down Approach Featuring the Internet”,

6ª Ed. J.F. Kurose and K. W. Ross. Addison-Wesley. 2012. (Chapter
3).

• RFCs:

– RFC 768: User Datagram Protocol (1981).

UDP

Pág. 6

Introducción

• UDP es un protocolo simple que proporciona un servicio

de transporte no fiable de datagramas entre
aplicaciones:
– Datagramas: cada vez que un proceso entrega datos a UDP,

estos se encapsulan en un datagrama UDP que provoca el
envío de un datagrama IP.

– No fiable: no garantiza que los datagramas lleguen al destino.

• UDP permite:

– Multiplexación.

– Control de errores.

UDP

Pág. 7

Formato datagrama UDP

0

31

8 octetos

longitud de datagrama

código redundancia

puerto origen

puerto destino

datos

Datagrama UDP

CABECERA

CABECERA

IP

UDP

DATOS APLICACIÓN

Datagrama IP

CABECERA
ETHERNET

CABECERA

CABECERA

IP

TCP

DATOS APLICACIÓN

ETHERNET

TRAILER

UDP

Pág. 8

Formato datagrama UDP

• Puertos origen y destino: identifican a los extremos que se están

comunicando.

• Longitud: longitud total en bytes del datagrama UDP incluyendo la

cabecera.
– La longitud mínima son 8 bytes (0 bytes de datos).
– Es un campo redundante, se puede obtener a nivel IP (longitud del

datagrama IP menos la cabecera IP).

• Se consideró que era más eficiente para el proceso destino.

• Código de redundancia (checksum):

– Se emplea para detectar errores:

• Si un datagrama UDP llega con errores se descarta.

– Se calcula sobre la cabecera y los datos (ver siguiente transparencia).

• Datos:

– Opcional.

UDP

Pág. 9

Formato datagrama UDP

• El cálculo del checksum se realiza:

– Sumando secciones de 16 bits utilizando aritmética de

complemento a 1.

– Realizando el complemento a 1 del resultado.

0

31

Pseudocabecera

IP origen

IP destino

ceros

protocolo 8bits

(17)

longitud total UDP

puerto origen

puerto destino

longitud de datagrama

código redundancia

Cabecera

(múltiplo de 16 bits, padding con 0’s)

Datos

UDP

Pág. 10

Formato datagrama UDP

• Tamaño máximo de un datagrama UDP:

– Está limitado en teoría a 65507 bytes:
• Campo de longitud de 16 bits (65536).

• Tamaño de la cabecera IP (20) y cabera UDP (8).

– En la práctica se utilizan límites menores:

• Restricciones en el API de sockets, limitada por el tamaño

utilizado por el buffer de recepción y envío.

• Restricciones en la propia implementación del pilaTCP/IP.

UDP

Pág. 11

Uso de UDP

• UDP es un protocolo adecuado para:

– Procesos que requieren comunicación de tipo petición-

respuesta sin requisitos elevados de fiabilidad:

• DNS

– Procesos que gestionan internamente mecanismos de control

de flujo y de errores:

• TFTP.

– Como protocolo de transporte de tráfico multicast.

– Como protocolo para el envío de actualización de rutas en

protocolos de encaminamiento:

• RIP.

– Como protocolo de transporte de tráfico multimedia en tiempo

real.

TCP

Celeste Campo (celeste@it.uc3m.es)

Carlos García Rubio (cgr@it.uc3m.es)

TCP

ÍNDICE

Pág. 13

1.

Introducción.

2. Establecimiento y finalización de la conexión.

3. Flujo de datos interactivo.

4. Flujo de datos masivo.

5. Temporizadores y retransmisiones.

6. Opciones TCP

TCP

Pág. 14

BIBLIOGRAFÍA

• Básica:

– “TCP/IP Illustrated, Vol. 1 - The protocols”, W. R. Stevens. Addison-

Wesley 1994. (Chapter 17 – Chapter 24).

– “Computer networks: an open source approach”, Y.-D. Lin, R.-H.

Hwang, F. Baker. McGraw-Hill, 2012. (Chapter 5).

• Complementaria:

– “Computer Networking: A Top-Down Approach Featuring the Internet”,

6ª Ed. J.F. Kurose and K. W. Ross. Addison-Wesley. 2012. (Chapter
3).

• RFCs:

– RFC 793: Transmission Control Protocol. 1981.
– RFC 2001: TCP Slow Start, Congestion Avoidance, Fast Retransmit,

and Fast Recovery Algorithms. 1997.

TCP

ÍNDICE

Pág. 15

1.

Introducción:
A. Definición.

B. Formato segmento TCP.

C. Campos cabecera segmento TCP.

TCP-INTRODUCCIÓN

Definición

Pág. 16

• TCP es un protocolo orientado a conexión que proporciona un

servicio de transporte fiable de un flujo de bytes entre
aplicaciones:
– “Orientado a conexión” previo al intercambio de datos los

extremos (aplicaciones) tienen que establecer una conexión.

– “Fiable” garantiza la entrega ordenada del flujo de bytes entre los

extremos de la conexión.

– “Flujo de bytes” por la conexión se transmite un flujo de bytes.

• TCP los divide en bloques denominados segmentos para su entrega a IP.

TCP-INTRODUCCIÓN

Pág. 17

Características

• TCP garantiza fiabilidad sobre IP (no la soporta):

– Realiza control de errores utilizando un código de redundancia

(“checksum”) de su cabecera y datos.

– Garantiza la entrega de estos segmentos:

• Cuando envía un segmento establece un temporizador esperando

asentimiento.

• Cuando recibe un segmento envía un asentimiento.

• Si vence el temporizador antes de que llegue el segmento, realiza

un retransmisión.

– Reordena y descarta paquetes duplicados si es necesario.

• TCP proporciona control de flujo y control de congestión.

TCP-INTRODUCCIÓN

Pág. 18

Formato segmento TCP

• Los segmentos TCP se encapsulan en datagramas IP.

Segmento TCP

CABECERA

CABECERA

IP

TCP

DATOS APLICACIÓN

Datagrama IP

CABECERA
ETHERNET

CABECERA

CABECERA

IP

TCP

DATOS APLICACIÓN

ETHERNET

TRAILER

TCP-INTRODUCCIÓN

Pág. 19

Formato segmento TCP

0

15 16

31

puerto origen (16 bits)

puerto destino (16 bits)

número de secuencia (32 bits)

número de asentimiento (ACK) (32 bits)

longitud
cabecera

(4 bits)

reservado

(6 bits)

G
R
U

K
C
A

H
S
P

T
S
R

N
Y
S

N
F

I

tamaño ventana

(16 bits)

código redundancia (16 bits)

puntero datos urgentes

campos opcionales + relleno (si hay)

20 octetos

datos (si hay)

TCP-INTRODUCCIÓN

Pág. 20

Campos cabecera TCP

• Puertos origen y destino: indican la conexión lógica entre las dos

aplicaciones que se están comunicando (FTP, TELNET, SMTP,
etc.).
– Identificador único de conexión:

• Par de “socket”

– socket (definido en la RFC 793) = dirección IP + puerto

• Dirección IP origen, Puerto origen, Dirección IP destino, Puerto destino

• Número de secuencia: posición del primer octeto en el campo de

datos en relación con la secuencia original.
– Campo de 32 bits rango entre 0 y 2³²-1.
– Si el flag SYN está activo, este campo contiene el número de

secuencia inicial (n) y el primer octeto de datos es el n+1. El flag SYN
consume un número de secuencia.

– Servicio “full-duplex”  cada extremo de la conexión mantiene su

número de secuencia de flujo de datos en esa dirección.

TCP-INTRODUCCIÓN

Pág. 21

Campos cabecera TCP

• Número de asentimiento: número de secuencia siguiente al

octeto confirmado, indica la posición que ocuparía el próximo
octeto que se espera recibir.
– Sólo es válido si está activo el flag ACK.

• Longitud cabecera: número de palabras de 32 bits que

componen la cabecera.
– Necesario porque la cabecera es de longitud variable

(opciones).

– Campo de 4 bits cabecera TCP limitada a 60 octetos.

– Sin opciones la longitud de la cabecera son 20 octetos.

• Reservado: reservados para uso futuro, deben estar a cero.

TCP-INTRODUCCIÓN

Pág. 22

Campos cabecera TCP

• Flags:

– URG: indica que el campo Puntero Datos Urgentes tiene

validez.

– ACK: indica que el campo Número de Asentimiento tiene

validez.

– PSH: indica que el segmento requiere envío y entrega

inmediata.

– RST: indica aborto de la conexión.

– SYN: sincroniza números de secuencia en el establecimiento

de conexión.

• Confirmación con ACK

– FIN: indica liberación de conexión.

• Confirmación con ACK.

TCP-INTRODUCCIÓN

Pág. 23

Campos cabecera TCP

• Tamaño ventana: indica el número de octetos, adicionales al

asentido por ACK, que está dispuesto aceptar.
– Mecanismo de control de flujo de TCP.
– Anunciado por cada extremo de la conexión.
– Campo de 16 bits tamaño limitado a 65535 octetos.

• Código de redundancia: campo obligatorio que debe ser

calculado por el emisor y verificado por el receptor.
– Incluye todo el segmento TCP, tanto cabecera como datos.

• Puntero datos urgentes: indica el offset (positivo) que debe

ser añadido al número de secuencia del segmento para
obtener el número de secuencia del último octeto de datos
urgentes.
– Sólo es válido si está activo el flag URG.
– En ningún caso se salta el orden de secuencia (poco usado).

TCP-INTRODUCCIÓN

Pág. 24

Campos cabecera TCP

• Campos opcionales: para incluir opciones (máx. 40 bytes,

tamaño k*4-bytes size).
– Tamaño máximo de datos en un segmento (MSS – Maximun

Segment Size):

• Utilizada en el establecimiento de la conexión.

• Indica la longitud máxima de datos en un segmento que puede

recibir un extremo.

– Escala del tamaño de la ventana.

– Sellos temporales.

– Asentimientos selectivos.

– Noop: para padding

• Datos:

– Opcional.

TCP

ÍNDICE

Pág. 25

2. Establecimiento y finalización de la conexión:
A. Establecimiento conexión (“three-way handshake”).

B. Finalización conexión.

C. TCP Half-close.

D. Tamaño máximo
  • Links de descarga
http://lwp-l.com/pdf16475

Comentarios de: Nivel de transporte (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad