Publicado el 20 de Julio del 2019
638 visualizaciones desde el 20 de Julio del 2019
531,7 KB
15 paginas
Creado hace 21a (23/02/2004)
Tema 3:TCP/IP, UDP
Tema 3:TCP/IP, UDP
Tema 3: Transporte: TCP/IP, UDP
UDP
Funcionalidades de TCP
Control de errores
Control de flujo
Control de la congestión
Grafo de estados TCP
3wHS
Finalización de la conexión.
Control de flujo
Control de congestión
Slow Start
Congestion Avoidance
Sockets
Sliding Window
TimeOuts: algoritmo de Van Jacobson para el temporizador TCP
Concepto de socket y llamadas al sistema en UNIX
Mapeo de llamadas a sockets con el grafo de estados de TCP
Servidores concurrentes e interactivos
Tema 3:TCP/IP, UDP
Transporte: nivel 4 cuyas funciones principales son:
Proporcionar conectividad extremo-a-extremo entre hosts
Sólo se incluyen los protocolos de transporte en los hosts (nunca
en los routers a no ser que sean por alguna razón especifica, e.g.
Gateways de aplicación)
Proporcionan estructuración de la información (segmentos TCP y
datagramas UDP)
Multiplexación/demultiplexación de aplicaciones en transporte
(concepto de puertos como identificador de las aplicaciones)
Uso de comunicaciones fiables y no fiables a nivel de transporte:
TCP: detección y control de errores y control de flujo y de la
congestión extremo a extremo orientado a la conexión (para
aplicaciones de datos) RFC 793
UDP: sólo detección de errores extremo a extremo no
orientado a la conexión (para aplicaciones en tiempo real
como son audio y vídeo) RFC 768
11
33
Modelo arqutectonico
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de datos
Física
F
T
P
H
T
T
P
D
N
S
R
I
P
T
F
T
P
D
H
C
P
Aplicación
T
E
L
N
E
T
TCP
UDP
Transporte
IP
Ethernet, Token Ring
F.R., FDDI
Internet
Interfaz
de Red
Modelo de referencia OSI
Capas conceptuales TCP/IP
22
44
Tema 3:TCP/IP, UDP
UDP (User Datagram Protocol):
Protocolo de transporte no-orientado a la conexión, cuya unidad de
encapsulamiento es el datagrama UDP
Protocolo de datagrama de usuario
Ideal para comunicaciones en tiempo real
Cada escritura por parte de la aplicación provoca la creación de un
Datagrama UDP
Cada datagrama UDP creado provoca la creación de un datagrama
IP en el nivel 3
Si se pierde el datagrama IP o UDP es problema de la aplicación
remota incorporar mecanismos de retransmisión.
Para IP, UDP es básicamente un interfaz de aplicación.
No añade fiabilidad.
Básicamnete es como un multiplexor/demultiplexor que sirve para
enviar y recibir datagramas.
Puede transmitir más información en menor tiempo que TCP.
Tema 3:TCP/IP, UDP
Tema 3:TCP/IP, UDP
UDP (User Datagram Protocol):
Foncionamiento del protocolo UDP
Aplicación 1
Aplicación 2
………….
Aplicación N
Puerto 1 Puerto 2
………….
Puerto N
UDP
IP
Datagrama IP con UDP
Datagrama IP
Datagrama UDP
IP
Header
UDP
Header
Datos UDP
Tema 3:TCP/IP, UDP
UDP (User Datagram Protocol):
UDP checksum: detector de errores que aplica a TODO el
datagrama (recordar que checksum IP sólo cubría la cabecera IP)
Para calcularlo necesitamos que la longitud del datagrama
UDP sea un número par de octetos (para poder agruparlos en
words de 16-bits)
Si no hay un número par entonces hacer padding (añadir un
byte de 0s al final del datagrama)
El checksum además de la cabecera UDP cubre ciertos
campos de la cabecera IP para hacer un “double-checking”.
Esos campos son:
Direcciones IP, protocol field, total IP length
Para calcular el checksum, UDP crea una pseudo-cabecera
con estos campos además de los campos del datagrama UDP
Si se detecta un error a nivel 4, el datagrama UDP se descarta
y NO se genera ningún tipo de mensaje hacia el origen
¿Porqué el checksum? para detectar que NADIE ha
modificado el datagrama UDP
55
77
UDP (User Datagram Protocol):
Datagrama UDP (8 bytes de cabecera)
Puertos: identifican a la aplicación origen y destino
UDP
total del datagrama UDP
longitud
length:
redundante ya que IP lleva la longitud también)
(campo
UDP checksum: detector de errores que aplica a TODO el
datagrama (recordar que checksum IP sólo cubría la cabecera IP)
8 bytes
66
88
Tema 3:TCP/IP, UDP
UDP (User Datagram Protocol):
Maximum UDP size:
En principio, como IP tiene una longitud máxima de 65335 bytes
(16-bits de longitud de datagrama), la máxima longitud de un
datagrama UDP sería 65335 – 20 bytes = 65315 bytes, lo que
hace una longitud de datos de 65315 – 8 bytes = 65307 bytes
Pero limitaciones del software: casi todas las APIs (Aplication
Program Interfaz) limitan la longitud de los datagramas UDP (lo
mismo para TCP) a la máxima longitud que los buffers de
lectura y escritura de los sockets (llamadas al sistema “read” y
“write”)
Este límite es dependiente del SO: e.g: muchos de ellos (e.g.;
tamaño máximo del
FreeBSD) usan 8192 bytes como
datagrama UDP
Tema 3:TCP/IP, UDP
Tema 3:TCP/IP, UDP
TCP (Transmission Control Protocol):
Protocolo orientado a la conexión (estableciemiento de la conexión,
envío de datos y cierre de la conexión).
Protocolo para el control de la transmisión.
Garantiza la entrega fiable a redes remotas.
Tal vez el protocolo MAS complejo e importante de la pila de
protocolos. Unidad de datos es el “segmento TCP”
Proporciona fiabilidad mediante el control de flujo, control de
errores y control de la congestión
Los segmentos pueden llegar fuera de orden (debajo hay IP que es
no orientado a la conexión, o sea, datagrama), por tanto, TCP debe
reordenar los segmentos antes de pasarlos a la aplicación
99
1111
Tema 3:TCP/IP, UDP
TCP (Transmission Control Protocol):
Foncionamiento del protocolo TCP
Aplicación 1
…
Puerto N …
TCP
IP
Conexión TCP
Datagramas IP
Aplicación N
…
Puerto M …
Sockets
TCP
IP
Datagrama IP con TCP
Datagrama IP
Segmento TCP
IP
Header
TCP
Header
Datos TCP
TCP (Transmission Control Protocol):
Características
Transferencia de datos a través de un canal, TCP transfiere un
flujo continuo de bytes a través de una red. TCP se encarga de
trocear los datos de las aplicaciones y enviarlas a IP.
Fiabilidad TCP asigna un número de secuencia a cada byte
transmitido y espera la respuesta afirmativa del TCP receptor
(ACK).
Control de flujo con el que el TCP receptor avisa a l emisor
mediante el envio de un ACK del número de bytes que aún
puede recibir
Multiplexación mediante el uso de puertos como en UDP.
Conexiones lógicas es la unión del emisor con el receptor
incluyendo los sockets.
Full Duplex
Tema 3:TCP/IP, UDP
Cabecera TCP:
0
16
31
Source port number
Destination port number
Sequence number
ACK number
Header
Reserved
U
R
G
A
C
K
Cecksum
R
S
T
S
Y
N
F
I
N
P
S
H
Windows size
Urgent pointer
Options
Data
1010
1212
Tema 3:TCP/IP, UDP
Cabecera TCP:
Ports: identifican las aplicaciones
Sequence number: identifica el primer byte de datos dentro de
ese segmento de la secuencia de bytes enviados hasta ese
momento.
ISN (Initial Seq. Number): primer número de secuencia
escogida por el protocolo TCP
Seq. Number será un número a partir de ISN. Por tanto para
saber cuantos bytes llevamos enviados hay que hacer “Seq.
Number – ISN”
Ack Number: contiene el próximo número de seq. que el
transmisor del ACK espera recibir
Por tanto es el “Seq. Number+1” del último byte recibido
correctamente
Cuidado !!! TCP es FULL-DUPLEX: cada extremo mantiene un
Seq. Number y un Ack Number
Header length: longitud total de la cabecera (opciones variable)
Tema 3:TCP/IP, UDP
Programa cliente-servidor
CLIENTE
Socket ()
Connect()
3WHS
Write ()
Read ()
Close ()
Datos (solicitud)
Datos (respuesta)
EOF (notificación)
Puerto
conocido
Disposición
para aceptar
conexiones
bloqueo
SERVIDOR
Socket ()
Bind ()
Listen ()
Accept ()
Read ()
Write ()
Read ()
Close ()
1313
1515
1414
1616
Tema 3:TCP/IP, UDP
Flags: hay 6 flags (bits) en la cabecera
URG: Urgent Pointer field valido
ACK: Ack Number es valido
PSH: el receptor debe pasar los datos a la aplicación tan
rápido como sea posible
RST: “Reset” la conexión
SYN: Sincronización de los números de secuencia al iniciar la
conexión
FIN: termina la conexión
Window Size: tamaño de la ventana advertida por el receptor al
transmisor (Sliding Window). Máxima ventana = 65535 bytes
Checksum: de todo el segmento TCP (igual que UDP)
Urgent Pointer: puntero al Seq. Number que indica la parte de
datos urgentes dentro del campo de datos
Options: opción de anunciar el MSS (Maximum Segment Size)
Tema 3:TCP/IP, UDP
Establecimiento de la conexión TCP con 3WHS:
Usa el 3-Way Handshake Algorithm:
El cliente envía un segmento SYN especificando el puerto
destino del servidor, su puerto origen (escogido por el Kernel)
y el ISN (Initial Seq Number) escogido al azar por el Kernel
El receptor (servidor)
Comentarios de: Tema 3:TCP/IP, UDP (0)
No hay comentarios