NIVEL DE TRANSPORTE
Celeste Campo (
[email protected])
Carlos García Rubio (
[email protected])
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 (
[email protected])
Carlos García Rubio (
[email protected])
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 (
[email protected])
Carlos García Rubio (
[email protected])
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
Comentarios de: Nivel de transporte (0)
No hay comentarios