SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
1341: Redes de Computadoras
Facultad de Ingeniería de Sistemas
Sesión: 7
Ing. José C. Benítez P.
El Nivel de Transporte en Internet
Redes de Computadoras 2
Sesión 7. Temas
El Nivel de Transporte en Internet
Aspectos generales del nivel de transporte
Protocolo UDP
Protocolo TCP
Multiplexación
Conexión/Desconexión
Intercambio de datos y control de flujo
Casos de baja eficiencia en TCP
Control de congestión
Redes LFN, factor de escala y opciones de TCP
3
Introducción
Redes de Computadoras
Modelos OSI, TCP/IP e Hibrido:
Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Física
Aplicación
Transporte
Internet
Host-red
L5:
Aplicación
L4:
Transporte
L3: Red
L2:
Enlace
LLC
MAC
L1: Física
WAN LAN
Hardware
Firmware
Software
Sist.OperativoProgr.deusuario
4
Funciones del Nivel de Transporte
Redes de Computadoras
Se encarga del transporte de los datos
extremo a extremo (host a host).
Realiza la comunicación de forma
transparente al medio físico.
Usa los servicios del nivel de red.
Multiplexa tráfico de diversas instancias
(procesos) del nivel de aplicación.
El nivel de transporte (como el de red) tiene
una sola instancia en el host.
5
Funciones del Nivel de Transporte
Redes de Computadoras
El servicio que ofrece puede ser de dos tipos:
Orientado a conexión:
garantiza la entrega de los datos; sin
pérdidas ni duplicados.
Ej.: TCP (Internet), TP4 (OSI)
No orientado a conexión:
• equivale al servicio que ofrece IP, pero
a nivel de transporte.
• Ej.: UDP (Internet), TP0 (OSI)
6
Tráfico TCP vs UDP en Internet
Redes de Computadoras
TCP: 80%
UDP: 10%
Otros: 10%
7
Especificación del protocolo de transporte
Redes de Computadoras
32 bits
Versión Lon. Cab. DS (DiffServ) Longitud Total
Identificación Res. DF MF Desplazam. de Fragmento
Tiempo de vida (TTL) Protocolo Checksum
Dirección de origen
Dirección de destino
Opciones (de 0 a 40 octetos)
Valor Protocolo
1 ICMP
4 IP
6 TCP
17 UDP
89 OSPF
Esto son solo algunos
ejemplos de los valores que
puede tener el campo
protocolo
IP v4
Header
8
Protocolo UDP (User Datagram Protocol)
Redes de Computadoras
Servicio sencillo, CLNS, no fiable.
Se utiliza en los siguientes entornos:
El intercambio de mensajes es muy escaso, Ej.:
Consultas al DNS (servidor de nombres).
La aplicación es en tiempo real y no puede esperar
confirmaciones. Ej.: videoconferencia, voz sobre IP.
Los mensajes se producen regularmente y no importa
si se pierde alguno. Ej: NTP, SNMP.
El medio de transmisión es altamente fiable y sin
congestión (LANs). Ej: NFS.
Se envía tráfico broadcast/multicast.
9
Protocolo UDP
Redes de Computadoras
Las TPDUs de UDP se denominan mensajes o
datagramas UDP
UDP multiplexa los datos de las aplicaciones y
efectúa opcionalmente una comprobación de
errores, pero no realiza:
Control de flujo
Control de congestión
Retransmisión de datos perdidos
Conexión/desconexión
10
La cabecera UDP
Redes de Computadoras
32 bits
Dirección IP de origen
Dirección IP de destino
00000000 00010001 Long. Datagrama UDP
Puerto de origen Puerto de destino
Longitud datagrama UDP Checksum
Pseudo cabecera
Cabecera
La pseudo cabecera:
• se añade al principio del datagrama para el cálculo del checksum,
pero no se envía.
• permite a UDP comprobar que IP no se ha equivocado (ni le ha
engañado) en la entrega del datagrama.
El valor 100012 = 1710 indica que el protocolo de transporte es UDP
32 bits
11
Multiplexación
Redes de Computadoras
La multiplexación se realiza mediante el puerto
(origen o destino) que puede valer de 0 a 65535.
Los puertos 0 a 1023 están reservados para
servidores ‘bien conocidos’ (‘well known ports’)
La combinación de una dirección IP y un puerto
identifica un ‘socket’ (origen o destino de los
datagramas UDP): 147.156.135.22.1038
Dirección IP Puerto
Socket
12
Multiplexación
Redes de Computadoras
Ethertype 0800 DATAGRAMA IP CRC
Nivel de enlace
Nivel de red
Nivel de transporte
Nivel de aplicación
Prot. 17 DATAGRAMA UDP
P. dest. 13 DATOS APLICACIÓN
NTP
(Puerto 123)
DNS
(Puerto 53)
Daytime
(Puerto 13)
Cabecera MAC Ethernet
Cabecera IP
Cabecera UDP
Checksum
Checksum
CRC
Múltiples instancias
(una por interfaz)
Una instancia IP
(puede haber otros
protocolos)
Dos instancias
(TCP y UDP)
Múltiples instancias
(una o varias por
protocolo)
13
Conexión UDP de un cliente contra un servidor
Redes de Computadoras
Cliente
IP 10.0.1.50
Servidor Daytime
IP 10.0.1.25
Port
13
Port
1038
Socket: 10.0.1.25.13
Mensaje UDP
p.o. 1038, p.d. 13
Mensaje UDP
p.o. 13, p.d. 1038
Socket: 10.0.1.50.1038
14
Cabeceras IP y Datagrama UDP en una
petición/respuesta SNMP
Redes de Computadoras
IP: ----- IP Header -----
IP:
IP: Version=4, header length=20 bytes
IP: DiffServ = 00
IP: Total length = 131 bytes
IP: Identification = 21066
IP: DF = 0, MF = 0
IP: Fragment offset = 0 bytes
IP: Time to live = 60 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 2A13 (correct)
IP: Source address = [128.1.1.1]
IP: Destination address = [128.1.1.10]
IP: No options
IP:
UDP: ----- UDP Header -----
UDP:
UDP: Source Port = 1227
UDP: Destination port = 161 (SNMP)
UDP: Length = 111
UDP: No checksum
UDP:
IP: ----- IP Header -----
IP:
IP: Version=4, header length=20 bytes
IP: DiffServ = 00
IP: Total length = 160 bytes
IP: Identification = 2015
IP: DF = 0, MF = 0
IP: Fragment offset = 0 bytes
IP: Time to live = 64 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 7061 (correct)
IP: Source address = [128.1.1.10]
IP: Destination address = [128.1.1.1]
IP: No options
IP:
UDP: ----- UDP Header -----
UDP:
UDP: Source Port = 161 (SNMP)
UDP: Destination port = 1227
UDP: Length = 140
UDP: Checksum = 4D4F (correct)
UDP:
15
TCP (Transmission Control Protocol)
Redes de Computadoras
El protocolo TCP ofrece el servicio de
transporte orientado a conexión (CONS) en
Internet.
Está diseñado para ofrecer un transporte
fiable sobre un servicio no fiable del nivel de
red (el que le suministra IP).
Las TPDUs de TCP se llaman segmentos.
El TCP actual se especificó en el RFC 793 en
1981 y sigue plenamente vigente.
16
Servicio orientado a conexión
Redes de Computadoras
Los SOC requieren un procedimiento explícito de
establecimiento y terminación de la comunicación.
Durante la conexión las entidades participantes mantienen en
memoria una información relativa a dicha conexión (contadores
de bytes, espacio libre en buffers, etc.). Dicha información se
conoce como información de estado.
Para describir los SOC se suele utilizar un modelo cliente
servidor, basado en dos protagonistas:
Cliente: el que inicia la conexión
Servidor: el que está a la espera de recibir peticiones de
conexión
Una conexión puede terminarse tanto por iniciativa del cliente
como del servidor.
También hay aplicaciones que utilizan el modelo igual a igual
(peer-to-peer) como Emule, Edonkey, etc.
17
Funciones de TCP
Redes de Computadoras
Multiplexar el nivel de aplicación (port).
Controlar errores;
• Retransmitiendo segmentos perdidos o
erróneos.
• Eliminando duplicados.
Establecer y terminar conexiones.
Gestionar los buffers y ejercer control de
flujo de forma eficiente.
Gestionar el intercambio de datos con las
aplicaciones.
Efectuar control de congestión.
18
La cabecera TCP
Redes de Computadoras
Flags: CWR: Congestion Window Reduced
ECE: ECN Echo (ECN=Explicit Congestion Notification)
URG: el segmento contiene datos urgentes
ACK: el campo número de acuse de recibo tiene sentido
PSH: el segmento contiene datos ‘Pushed’
RST: ha habido algún error y la conexión debe cerrarse
SYN: indica el inicio de una conexión
FIN: indica el final de una conexión
Relleno
Flags
(8 bits)
Resv.
(4 bits)
Puntero datos urgentes
Tamaño ventana
Puerto de destino
Opciones
Checksum
L. Cab.
(4 bits)
Número de acuse de recibo
Número de secuencia
Puerto de origen
32 bits
20
bytes
19
La pseudocabecera TCP
Redes de Computadoras
Se añade al principio del segmento solo para el cálculo del
Checksum, no se envía.
Permite a TCP comprobar que IP no se ha equivocado (ni le
ha engañado) en la entrega del segmento.
El valor 1102 = 610 indica que el protocolo de transporte es TCP
Dirección IP de origen
Dirección IP de destino
00000000 00000110 Long. Segmento TCP
32 bits
20
Multiplexación
Redes de Computadoras
Se utiliza el número de puerto (origen o destino) como
en UDP. Puede valer de 0 a 65535.
Como en UDP los puertos 0 a 1023 están reservados
para servidores ‘bien conocidos’
Como en UDP la combinación de dirección IP y puerto
identifica el ‘socket’
Una conexión TCP queda especificada por los dos
sockets que se comunican (IP origen-puerto origen, IP
destino-puerto destino)
21
Algunos servicios ‘bien conocidos’
Redes de Computadoras
Servicio Puerto TCP UDP
DayTime 13 X X
FTP 21 X
SSH 22 X
TelNet 23 X
SMTP 25 X
Domain (DNS) 53 X X
BOOTP 67 X
TFTP 69 X
HTTP 80 X
POP3 110 X
NTP 123 X
SNMP 161 X
LDAP 389 X
HTTPS 443 X
22
Multiplexación
Redes de Computadoras
Nivel de enlace
Nivel de red
Nivel de transporte
Nivel de aplicación
Ethertype (0800) DATAGRAMA IP CRC
Prot. (6) SEGMENTO TCP
P. dest. (23) DATOS APLICACIÓN
SMTP
(Puerto 25)
Telnet
(Puerto 23)
FTP
(Puerto 21)
Cabecera MAC Ethernet
Cabecera IP
Cabecera TCP
Checksum
Checksum
HTTP
(Puerto 80)
HTTP
(Puerto 400)
Múltiples instancias
(una por interfaz)
Dos instancias
(TCP y UDP)
Múltiples instancias
(una o varias por
protocolo)
Una instancia IP
(puede haber otros
protocolos)
23
Conexión de un cliente a un servidor web
Redes de Computadoras
Conexión TCP
10.0.1.25.80-10.0.2.47.1038 Puerto
1038
El computador
ejecuta el programa
Explorer:
www.web.com
Socket: 10.0.2.47.1038
IP 10.0.2.47
IP 10.0.1.25
Puerto
80
Socket 10.0.1.25.80
(rojo = ‘LISTEN’)
Servidor Web
24
Conexión simultánea de un computador a
dos servidores web
Redes de Computadoras
Servidor Web 2
IP 10.0.3.47
Puerto
1038
El computador
ejecuta Explorer hacia
10.0.1.25
Socket 10.0.3.47.80
Socket: 10.0.2.47.1038
Puerto
1039
Socket: 10.0.2.47.1039
IP 10.0.2.47
Servidor Web 1
IP 10.0.1.25
Puerto
80
Puerto
80
Socket 10.0.1.25.80
El computador
ejecuta otro Explorer
hacia 10.0.3.47
25
Conexión desde dos computadores a un
mismo servidor web
Redes de Computadoras
IP 10.0.1.50
Servidor Web
IP 10.0.1.25
Puerto
80
Puerto
1038
Puerto
1038
IP 10.0.2.47
Este socket tiene dos
conexiones simultáneas
Socket 10.0.1.25.80
Socket: 10.0.2.47.1038
Socket: 10.0.2.47.1038
Computador
ejecuta Explorer
hacia 10.0.1.25
Computador
ejecuta Explorer
hacia 10.0.1.25
Las dos conexiones
son diferentes porque
difieren en la
dirección IP del
cliente
26
Dos conexiones desde un computador a un servidor web
y uno POP3, ambos en el mismo host
Redes de Computadoras
Conexión TCP
10.0.1.25.80-10.0.2.47.1038 Puerto
1038
Computador
ejecuta Explorer
hacia 10.0.1.25
Socket: 10.0.2.47.1038
IP 10.0.2.47
IP 10.0.1.25
Puerto
80
Socket 10.0.1.25.80
Servidor Web y POP3
Puerto
1039
Puerto
110
Conexión TCP
10.0.1.25.110-10.0.2.47.1039
Socket: 10.0.2.47.1039
Socket 10.0.1.25.110
Computador
ejecuta Outlook
hacia 10.0.1.25
27
Dos conexiones diferentes del mismo
computador al mismo servidor web
Redes de Computadoras
Conexión TCP
10.0.1.25.80-10.0.2.47.1038 Puerto
1038
Computador
ejecuta Explorer
hacia 10.0.1.25
Socket: 10.0.2.47.1038
IP 10.0.2.47
IP 10.0.1.25
Puerto
80
Socket 10.0.1.25.80
Servidor Web
Puerto
1039
Conexión TCP
10.0.1.25.80-10.0.2.47.1039
Socket: 10.0.2.47.1039
Computador
ejecuta un
segundo Explorer
hacia 10.0.1.25Las dos conexiones
son diferentes porque
difieren en el número
de puerto del cliente
28
Comando netstat
Redes de Computadoras
El comando netstat nos permite saber que
conexiones TCP tenemos establecidas y que
sockets la forman en el extremo local y el remoto.
En los servidores también nos permite averiguar
que puertos están en modo ‘LISTEN’, es decir que
puertos tenemos abiertos.
Una de las formas típicas de protección de los
cortafuegos (firewall) es bloquear puertos
innecesarios, es decir no dejar pasar paquetes
cuyo número de puerto de destino no sea alguno
de los servicios abiertos.
29
Comando netstat en un host
Redes de Computadoras
C:C:C:C:>netstat>netstat>netstat>netstat
Conexiones activasConexiones activasConexiones activasConexiones activas
Proto Dirección local Dirección remotaProto Dirección local Dirección remotaProto Dirección local Dirección remotaProto Dirección local Dirección remota EstadoEstadoEstadoEstado
TCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHED
TCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAIT
TCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAIT
TCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHED
TCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHED
TCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTEN
C:C:C:C:>>>>
Nombre de host local
Nombre de host remotoPuerto local
Puerto remoto
Servidor web a la escucha en este host.
Conexión de clientes (miro.uv.es y hal9.uv.es) con el servidor web de este host.
Sesión pendiente de cerrar de un cliente de correo de este host con ‘cuervo.ci.uv.es’
Conexión de un cliente ftp de este host con ftp.uv.es.
El programa netstat intenta convertir las direcciones IP y los números de puerto
a nombres siempre que puede (por ejemplo pone ‘pop3’ en vez de 110).
30
Comando netstat en un host
Redes de Computadoras
31
Un diálogo TCP típico
Redes de Computadoras
TCP Cliente TCP Servidor←←←←Tiempo
CLOSED
SYN-SENT
LISTEN
SYN-RECEIVED
ESTABLISHED
ESTABLISHED
FIN-WAIT-1
FIN-WAIT-2
TIME-WAIT
CLOSED
CLOSE-WAIT
LAST-ACK
LISTEN
2-4 min.
Conexión
Desconexión
Intercambio
de datos
32
Conexión por Saludo a tres vías
Redes de Computadoras
• Los segmentos pueden llegar duplicados (p. ej. se
pierde la confirmación de un segmento con lo que el
emisor lo reenvía)
• Con un procedimiento de conexión simple los
segmentos duplicados podrían causar problemas. Una
sesión entera podría duplicarse.
• Para evitar los problemas debidos a duplicados se utiliza
un procedimiento de conexión más elaborado
denominado saludo a tres vías.
• El saludo a tres vías se basa en la elección de un
número que identifica de forma única cada intento de
conexión y que actúa como PIN. De este modo se evita
el riesgo de aceptar como válidos segmentos retrasados
que pudieran aparecer fruto de conexiones anteriores.
33
Procedimiento del saludo a tres vías
Redes de Computadoras
1. El cliente elige para cada intento de conexión un
número único. El número elegido lo incluye en la
petición de conexión que envía al servidor.
2. El servidor, cuando recibe la petición, elige otro
número único y envía una respuesta al cliente
indicándoselo.
3. El cliente al recibir la respuesta considera
establecida la conexión. A continuación envía un
tercer mensaje en el que acusa recibo del
anterior. El servidor considera establecida la
conexión cuando recibe este tercer mensaje.
34
Establecimiento de una conexión TCP por
saludo a tres vías
Redes de Computadoras
TCP A
(cliente)
TCP B
(servidor)
←←←←Tiempo
CLOSED
SYN-SENT
(ISN 100)
LISTEN
SYN-RECEIVED
(ISN 300)
ESTABLISHED
ESTABLISHED
35
Saludo a tres vías, conexión simultánea
Redes de Computadoras
TCP A TCP B
←←←←Tiempo
CLOSED
SYN-SENT
(ISN 100)
CLOSED
SYN-RECEIVED
ESTABLISHED ESTABLISHED
SYN-SENT
(ISN 300)
SYN-RECEIVED
36
Conexión con SYN duplicado
Redes de Computadoras
TCP A TCP B
←←←←Tiempo
CLOSED
SYN-SENT
(ISN 100)
LISTEN
SYN-RECEIVED
(ISN 300)
LISTEN
SYN-RECEIVED
(ISN 400)
ESTABLISHED
ESTABLISHED
SYN
90
SYN-SENT
(ISN 90)
(timeout)
SYN
90
SYN
100
SYN
100
37
Conexión en TCP
Redes de Computadoras
• Los dos primeros segmentos de la conexión se
identifican con el flag SYN.
• El número de secuencia es un campo de 32 bits que
cuenta bytes en módulo 232 (el contador se da la vuelta
cuando llega al valor máximo).
• El número de secuencia no empieza normalmente en 0,
sino en un valor denominado ISN (Initial Sequence
Number) elegido al azar; el ISN sirve de ‘PIN’ en el
saludo a tres vías para asegurar la autenticidad de la
comunicación.
• Una vez establecida la comunicación el ‘seq’ y el ‘ack’
sirven para contar los bytes transmitidos y recibidos.
38
Conexión en TCP
Redes de Computadoras
• El ISN es elegido por el sistema (cliente o servidor). El
estándar sugiere utilizar un contador entero
incrementado en 1 cada 4 µs aproximadamente. En este
caso el contador se da la vuelta (y el ISN reaparece) al
cabo de 4 horas 46 min.
• El MSL (Maximum Segment Lifetime) típico es de unos 2
minutos, con lo que la probabilidad de que dos ISN
coincidan es despreciable.
• El mecanismo de selección de los ISN es
suficientemente fiable para proteger de coincidencias
debidas al azar, pero no es un mecanismo de protección
frente a sabotajes. Es muy fácil averiguar el ISN de una
conexión e interceptarla suplantando a alguno de los
dos participantes.
39
Desconexión
Redes de Computadoras
Puede ser de dos tipos:
• Simétrica:
– la conexión se considera formada por dos circuitos
simplex y cada host solo puede cortar uno (aquel en
el que él emite datos).
– El cierre de un sentido se interpreta como una
‘invitación’ a cerrar el otro.
• Asimétrica:
– desconexión unilateral (un host la termina en ambos
sentidos sin esperar a recibir confirmación del otro).
– Puede provocar pérdida de información.
40
Desconexión simétrica
Redes de Computadoras
Host 1 Host 2
←←←←Tiempo
DR: Disconnect Request
Conectado
Conectado
No
Conectado No
Conectado
41
Desconexión asimétrica
Redes de Computadoras
Host 1 Host 2
←←←←Tiempo
DR: Disconnect Request
Conectado
Conectado
No
Conectado
No
ConectadoDatos perdidos
42
Mensaje de Desconexión
Redes de Computadoras
• El mensaje solicitando la desconexión se puede
perder. Por eso se pide una confirmación (ACK).
• Pero la confirmación también podría perderse, por
lo que habría que enviar una reconfirmación, y así
sucesivamente.
• Este problema no tiene solución infalible, pues
estamos usando un canal no fiable para asegurar
un envío de información. Es lo que se conoce
como el problema de los dos ejércitos.
43
El problema de los dos ejércitos
Redes de Computadoras
44
Desconexión por saludo a tres vías
Redes de Computadoras
• Se trata de una desconexión simétrica en
la que se tiene una seguridad razonable de
que no se pierden datos.
• Supone el intercambio de tres mensajes,
de forma análoga a la conexión, de ahí su
nombre.
• En caso de que alguno de los mensajes de
desconexión se pierda una vez iniciado el
proceso la conexión se termina por
timeout.
45
Desconexión en TCP
Redes de Computadoras
• Se utiliza el ‘saludo a tres vías’ invitando a
la otra parte a cerrar.
• Para indicar el cierre se utiliza el flag FIN
• La desconexión puede iniciarla cualquiera
de los dos TCP (el cliente o el servidor).
• Una vez efectuada la desconexión el host
que inició el proceso está un cierto tiempo
a la espera por si aparecen segmentos
retrasados.
46
Desconexión a tres vías, caso normal
Redes de Computadoras
TCP A TCP B
ESTABLISHED
FIN-WAIT-1
ESTABLISHED
CLOSE-WAIT
FIN-WAIT-2
LAST-ACK
TIME-WAIT
CLOSEDCLOSED
2
MSL
MSL: Maximum Segment Lifetime (normalmente 2 minutos)
47
Conexión completa TCP por saludo a tres vías
Redes de Computadoras
TCP A (cliente) TCP B (servidor)
←←←←Tiempo
CLOSED
SYN-SENT
(ISN 100)
LISTEN
SYN-RECEIVED
(ISN 300)
ESTABLISHED
ESTABLISHED
FIN-WAIT-1
CLOSE-WAIT
FIN-WAIT-2 LAST-ACK
TIME-WAIT
CLOSEDCLOSED
2
MSL
LISTEN
48
Captura de una conexión TCP con Wireshark
Redes de Computadoras - Prof. Ing. Jose C. Benitez P.
Conexión al servidor web
147.156.1.4 desde 147.156.135.22
Conexión
Desconexión
Conexión
49
Desconexión a tres vías, casos anormales
Redes de Computadoras
Libera
conexión
Envía ACK
Host 1
(Timeout)
libera
conexión
Host 2 Host 1
Libera
conexión
Host 2
Envía FIN y
arranca timer
(Timeout)
envía FIN y
arranca timer
Envía FIN y
arranca timer
Envía FIN y
arranca timer
Envía FIN y
arranca timer
Envía FIN y
arranca timer
Libera
conexión
Envía ACK
Host 1 Host 2
(timeout)
envía FIN y
arranca timer
Envía FIN y
arranca timer
(N timeouts)
Libera
conexión Conectado
Pérdida de ACK final Pérdida de respuesta FIN
Pérdida de todos los FIN de host 1
Host 1 Host 2
(timeout)
envía FIN y
arranca timer
Envía FIN y
arranca timer
Envía FIN y
arranca timer
(N timeouts)
Libera
conexión
(Timeout)
libera
conexión
Pérdida de todo menos primer FIN
Conectado
50
Diagrama TCP
Redes de Computadoras - Prof. Ing. Jose C. Benitez P.
51
Números de secuencia y flags
Redes de Computadoras
El número de secuencia es el que corresponde al
primer byte enviado en ese segmento.
TCP incrementa el número de secuencia de cada
segmento según los bytes que tenía el segmento
anterior, con una sola excepción:
Los flags SYN y FIN, cuando están puestos,
incrementan en 1 el número de secuencia.
Esto permite que se pueda acusar recibo de un
segmento SYN o FIN sin ambigüedad.
Podemos considerar que los segmentos que tienen
puesto el flag SYN o FIN lleva un byte de datos ‘virtual’
La presencia del flag ACK no incrementa el número de
secuencia
52
Intercambio de datos TCP ↔ aplicación
Redes de Computadoras
Aplicación →→→→ TCP: la aplicación envía los datos a
TCP cuando quiere (siempre y cuando TCP tenga
espacio libre en el buffer de emisión)
TCP →→→→ Aplicación: la aplicación lee del buffer de
recepción de TCP cuando quiere y cuanto quiere.
Excepción: datos urgentes
Para TCP los datos de la aplicación son un flujo
continuo de bytes, independientemente de la
separación que pueda tener la aplicación (registros,
etc.). Es responsabilidad de la aplicación asegurarse
que esa separación (si existe) se mantendrá
después de transmitir los datos.
53
Intercambio de datos TCP ↔ TCP
Redes de Computadoras
El TCP emisor manda los datos cuando quiere.
Excepción: datos ‘Pushed’
El TCP emisor decide el tamaño de segmento según sus
preferencias. Al inicio de la conexión se negocia el MSS
(Maximum Segment Size)
Cada segmento ha de viajar en un datagrama
Normalmente TCP intenta agrupar los datos para que
los segmentos tengan la longitud máxima, reduciendo
así el overhead debido a cabeceras y proceso de
segmentos.
El TCP emisor puede aplicar la técnica de
descubrimiento de la MTU del trayecto (‘Path MTU
Discovery’, MTU = Maximum Transfer Unit) para ajustar
el MSS al tamaño óptimo para esa comunicación.
54
Intercambio de datos
TCP ↔ Aplicación y TCP ↔ TCP
Redes de Computadoras
Aplicación
origen
TCP
receptor
TCP
emisor
Aplicación
destino
A criterio de la aplicación
(sujeto a disponibilidad
de buffer en TCP emisor)
A criterio de
la aplicación
A criterio del TCP emisor
(sujeto a disponibilidad
de buffer en TCP receptor
y no congestión de la red)
Empuja
Empuja
Estira
Buffer Buffer
55
Intercambio de datos
TCP ↔ Aplicación y TCP ↔ TCP
Redes de Computadoras
Aplicación
origen
TCP
receptor
TCP
emisor
Aplicación
destino
Buffer Buffer
Escribe
Envía
Lee2048 Bytes
1024 Bytes
1024 Bytes
512 B 512 B512 B 512 B
(MSS 512 Bytes)
56
Gestión de buffers y Control de Flujo
Redes de Computadoras
El TCP receptor informa en cada segmento al
emisor del espacio que le queda libre en el
buffer para esa comunicación. Para ello usa el
campo tamaño de ventana.
Anunciando una ventana cero el receptor
puede bloquear al emisor, y ejercer así
control de flujo.
La ventana anunciada es un espacio que el
TCP receptor reserva para esa comunicación
en su buffer.
Tanto los números de secuencia como los
tamaños de ventana cuentan bytes.
57
Gestión de buffers y Control de flujo
Redes de Computadoras
Emisor Receptor
Emisor
Bloqueado
Buffer
La aplicación
escribe 2 KB
La aplicación
escribe 3 KB
El emisor
puede enviar
hasta 2 KB
Vacío
Lleno
2 KB
2 KB
0 4K
La aplicación
lee 2 KB
3 KB
58
Gestión de buffers y Control de Flujo
Redes de Computadoras
El TCP receptor nunca debería retirar el
espacio en buffer que ya ha anunciado al
emisor.
Sin embargo TCP debe estar preparado por si
el del otro lado lo hace (esto se denomina
‘contraer la ventana’).
(Recordemos la Ley de Postel):
‘Sé estricto al enviar y tolerante al recibir’
59
Reenvío de segmentos
Redes de Computadoras
En caso de pérdida de un paquete en la red el
segmento TCP no llegará a su destino
Cada TCP cuando envía un segmento espera recibir
el ACK; si este no llega dentro de un tiempo
razonable reenvía el segmento.
Si se enviaron varios segmentos y se pierde uno se
puede hacer dos cosas:
Enviar solo ese segmento (repetición selectiva)
Enviar todos los segmentos a partir de ese
(retroceso n)
Lo normal es utilizar retroceso n
60
Control de flujo y números de secuencia
Caso normal, sin pérdidas
Redes de Computadoras
Host 1 Host 2
Seq=1000, Win=4000
Seq=1500, Ack=1001, Win=4000
Seq=1001, Ack=1501, Win=4000
1000 bytes
Seq=1501, Ack=2001, Win=3000 1000 bytes
Seq=2001, Ack=2501, Win=3000
Seq=3001, Ack=2501, Win=3000
Seq=4001, Ack=2501, Win=3000
1000 bytes
1000 bytes
1000 bytes
Bloqueado
Seq=2501, Ack=5001, Win=2000
Seq=5001, Ack=2501, Win=3000
Seq=2501, Ack=6001, Win=3000
1000 bytes
Seq=2501, Ack=5001, Win=0
Aplicación lee
2000 bytes
SYN
SYN
61
Pérdida de un paquete
Retransmisión con repetición selectiva
Redes de Computadoras
Host 1 Host 2
Seq=1000, Win=4000
Seq=1500, Ack=1001, Win=4000
Seq=1001, Ack=1501, Win=4000
1000 bytes
Seq=1501, Ack=2001, Win=3000
1000 bytes
Seq=2001, Ack=2501, Win=3000
Seq=3001, Ack=2501, Win=3000
Seq=4001, Ack=2501, Win=3000
1000 bytes
1000 bytes
1000 bytes
Bloqueado
Seq=2501, Ack=5001, Win=2000
Seq=5001, Ack=2501, Win=3000
Seq=2501, Ack=6001, Win=3000
1000 bytes
Seq=2501, Ack=3001, Win=1000
Seq=3001, Ack=2501, Win=3000
Timeout
1000 bytes
Aplicación lee
2000 bytes
SYN
SYN
Seq=2501, Ack=5001, Win=0
62
Intercambio de datos: casos
excepcionales
Redes de Computadoras
Datos Pushed (bit PSH)
La aplicación pide al TCP emisor que envíe esos
datos lo antes posible.
El TCP receptor los pondrá a disposición de la
aplicación de inmediato, para cuando ésta le pida
datos.
Ejemplo: telnet.
Datos Urgentes (bit URG y Urgent Offset)
Los datos se quieren entregar a la aplicación
remota sin esperar a que esta los pida.
Ejemplo: abortar un programa con CTRL-C en una
sesión telnet
63
Timer de Persistencia
Redes de Computadoras
Mientras la ventana está cerrada el TCP
emisor puede enviar de vez en cuando un
segmento con un byte de datos; esto provoca
el envío de un ACK por parte del receptor y
evita el bloqueo que se podría producir en
caso de pérdida de un segmento anunciando
una ventana mayor que cero
La frecuencia con que el TCP emisor envía los
reintentos se fija en el Timer de Persistencia.
64
Timer de persistencia
Redes de Computadoras
TCP A TCP B←←←←Tiempo
Timer de
Persistencia
100 bytes
(501-600)
Buffer lleno
Datos leídos por
la aplicación
Datos puestos
en buffer para la
aplicación
1 byte
(601)
Bloqueado
65
Mensaje y timer de keepalive
Redes de Computadoras
Evita que se queden conexiones ‘medio abiertas’
Se implementa reenviando el último byte transmitido
en un segmento; el receptor descarta el dato pero
devuelve un ACK
Si se envían varios mensajes de keepalive sin
respuesta se considera que se trata de una conexión
medio abierta y se cierra.
Para declarar una conexión medio abierta se espera a
veces hasta 2 horas.
El tiempo de envío de los mensajes se regula con el
timer de keepalive.
El keepalive no requiere modificaciones en el TCP
receptor
66
Mensajes de keepalive
Redes de Computadoras
TCP Servidor TCP Cliente
←←←←Tiempo
Timer
Keepalive
100 bytes
(501-600)
1 byte
(600)
Datos puestos
en buffer para la
aplicación
Datos duplicados
descartados
67
Cabeceras TCP del inicio de una conexión
Telnet
Redes de Computadoras
1. SYN
TCP: --- TCP header ---
TCP:
TCP: Source port = 2345
TCP: Dest port = 23 (Telnet)
TCP: Initial seq. Number = 16421121
TCP: Data offset = 24 bytes
TCP: Flags = 02 (SYN)
TCP: Window = 2048
TCP: Checksum = F2DA (correct)
TCP:
TCP: Options follow
TCP: Max segment size = 1460
2. SYN
TCP: --- TCP header --
TCP:
TCP: Source port = 23 (Telnet)
TCP: Dest port = 2345
TCP: Initial seq. Number = 390272001
TCP: Acknowledgment Number = 16421122
TCP: Data offset = 24 bytes
TCP: Flags = 12 (ACK,SYN)
TCP: Window = 4096
TCP: Checksum = C13A (correct)
TCP:
TCP: Options follow
TCP: Max segment size = 1024
3. ACK
TCP: --- TCP header ---
TCP:
TCP: Source port = 2345
TCP: Dest port = 23 (Telnet)
TCP: Seq. Number = 16421122
TCP: Acknowledgment Number = 390272002
TCP: Data offset = 20 bytes
TCP: Flags = 10 (ACK)
TCP: Window = 2048
TCP: Checksum = DF43 (correct)
TCP: No TCP options
4. DATA
TCP: --- TCP header ---
TCP:
TCP: Source port = 23 (Telnet)
TCP: Dest port = 2345
TCP: Seq. Number = 390272002
TCP: Acknowledgment Number = 16421122
TCP: Data offset = 20 bytes
TCP: Flags = 18 (ACK,PSH)
TCP: Window = 4096
TCP: Checksum = 9FEF (correct)
TCP: No TCP options
TCP: [12 byte(s) of data]
68
Intercambio de segmentos del caso
anterior
Redes de Computadoras
Cliente Servidor
El servidor envía la
secuencia:
UNIX
Login:
TCP Conectado
TCP Conectado
69
Referencias QoS
Proyecto Quantum: www.dante.net/quantum
Redes de Computadoras
Redes de Computadoras - Prof. Ing. Jose C. Benitez P. 70
Sesión 7. El Nivel de Transporte en Internet
Redes de Computadoras

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Protocolo udp capítulo 4.4
Protocolo udp capítulo 4.4Protocolo udp capítulo 4.4
Protocolo udp capítulo 4.4
 
Modelo tcp
Modelo tcpModelo tcp
Modelo tcp
 
Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux
 
Protocolos gnu linux
Protocolos gnu linuxProtocolos gnu linux
Protocolos gnu linux
 
Udp
UdpUdp
Udp
 
Redes Lan
Redes LanRedes Lan
Redes Lan
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suqui
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Ul rc_cap2_la capa de red
 Ul rc_cap2_la capa de red Ul rc_cap2_la capa de red
Ul rc_cap2_la capa de red
 
Direcciones ip
Direcciones ipDirecciones ip
Direcciones ip
 
Protocolo udp Capítulo 4.4
Protocolo udp Capítulo 4.4Protocolo udp Capítulo 4.4
Protocolo udp Capítulo 4.4
 
2015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc42015 0 it524-m_r_telematicasi_pc4
2015 0 it524-m_r_telematicasi_pc4
 
Redes tcp/ip
Redes tcp/ipRedes tcp/ip
Redes tcp/ip
 
X 4 prospeccion
X 4 prospeccionX 4 prospeccion
X 4 prospeccion
 
Protocolo TCP/IP y x.25
Protocolo TCP/IP y x.25 Protocolo TCP/IP y x.25
Protocolo TCP/IP y x.25
 
Capa4 Modelo Osi
Capa4 Modelo OsiCapa4 Modelo Osi
Capa4 Modelo Osi
 
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
 
Famila de protocolo
Famila de protocoloFamila de protocolo
Famila de protocolo
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Ul rc_lab1
 Ul rc_lab1 Ul rc_lab1
Ul rc_lab1
 

Destacado

Análisis situacional integral de salud final
 Análisis situacional integral de salud final Análisis situacional integral de salud final
Análisis situacional integral de salud finalEstefanía Echeverría
 
Como hacer un plan de negocios
Como hacer un plan de negociosComo hacer un plan de negocios
Como hacer un plan de negociosXPINNERPablo
 
Estrategias competitivas básicas
Estrategias competitivas básicasEstrategias competitivas básicas
Estrategias competitivas básicasLarryJimenez
 
Unidad 3. toma de decisiones y solución
Unidad 3. toma de decisiones y soluciónUnidad 3. toma de decisiones y solución
Unidad 3. toma de decisiones y soluciónLinda De la Barrera
 
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...Eric Tribut
 
Proyectos_de_innovacion
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacionWebMD
 
De Reis van de Heldin december 2015
De Reis van de Heldin december 2015De Reis van de Heldin december 2015
De Reis van de Heldin december 2015Peter de Kuster
 
JULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de NegociosJulio Pari
 
El emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certEl emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certMaestros Online
 
1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demandaGeohistoria23
 
Schrijven voor het web
Schrijven voor het webSchrijven voor het web
Schrijven voor het webSimone Levie
 
Onderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitiefOnderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitiefrloggen
 
Comparacion productos Tottus
Comparacion productos TottusComparacion productos Tottus
Comparacion productos TottusCamilo Gonzalez
 

Destacado (20)

Análisis situacional integral de salud final
 Análisis situacional integral de salud final Análisis situacional integral de salud final
Análisis situacional integral de salud final
 
Como hacer un plan de negocios
Como hacer un plan de negociosComo hacer un plan de negocios
Como hacer un plan de negocios
 
Estrategias competitivas básicas
Estrategias competitivas básicasEstrategias competitivas básicas
Estrategias competitivas básicas
 
Cápsula 1. estudios de mercado
Cápsula 1. estudios de mercadoCápsula 1. estudios de mercado
Cápsula 1. estudios de mercado
 
Rodriguez alvarez
Rodriguez alvarezRodriguez alvarez
Rodriguez alvarez
 
Fichero de actividades
Fichero de actividadesFichero de actividades
Fichero de actividades
 
Unidad 3. toma de decisiones y solución
Unidad 3. toma de decisiones y soluciónUnidad 3. toma de decisiones y solución
Unidad 3. toma de decisiones y solución
 
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...
MANUAL DE MEJORAMIENTO OPERATIVO Y COMERCIAL EN ESTABLECIMIENTOS DE HOSPEDAJE...
 
Proyectos_de_innovacion
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacion
 
Componentes de un Plan de Negocios
Componentes de un Plan de NegociosComponentes de un Plan de Negocios
Componentes de un Plan de Negocios
 
De Reis van de Heldin december 2015
De Reis van de Heldin december 2015De Reis van de Heldin december 2015
De Reis van de Heldin december 2015
 
Geheugen verbeteren
Geheugen verbeterenGeheugen verbeteren
Geheugen verbeteren
 
JULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de Negocios
 
PMP Sonora Saludable 2010 2015
PMP Sonora Saludable 2010   2015  PMP Sonora Saludable 2010   2015
PMP Sonora Saludable 2010 2015
 
El emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certEl emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional cert
 
1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda
 
Schrijven voor het web
Schrijven voor het webSchrijven voor het web
Schrijven voor het web
 
Capacitacion y adiestramiento
Capacitacion y adiestramientoCapacitacion y adiestramiento
Capacitacion y adiestramiento
 
Onderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitiefOnderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitief
 
Comparacion productos Tottus
Comparacion productos TottusComparacion productos Tottus
Comparacion productos Tottus
 

Similar a Ul rc_cap7_el nivel de transporte en internet_

Informe de redes i
Informe de redes iInforme de redes i
Informe de redes iredes1911
 
Unidad 9: La capa de transporte
Unidad 9: La capa de transporteUnidad 9: La capa de transporte
Unidad 9: La capa de transportecarmenrico14
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4Edgar Benavente
 
programacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxprogramacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxmviapiano
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socketRene Guaman-Quinche
 
Tema 5 capa de transporte
Tema 5 capa de transporteTema 5 capa de transporte
Tema 5 capa de transportealex sgarcia
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udpgonsu90
 
Resumen capitulo 3
Resumen capitulo 3Resumen capitulo 3
Resumen capitulo 3jorge
 
Internet orígenes,evolucion.
Internet orígenes,evolucion.Internet orígenes,evolucion.
Internet orígenes,evolucion.klever95
 

Similar a Ul rc_cap7_el nivel de transporte en internet_ (20)

Informe de redes i
Informe de redes iInforme de redes i
Informe de redes i
 
Unidad 9: La capa de transporte
Unidad 9: La capa de transporteUnidad 9: La capa de transporte
Unidad 9: La capa de transporte
 
Http y tcp/ip
Http y tcp/ipHttp y tcp/ip
Http y tcp/ip
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Modelo tcp ip
Modelo tcp ipModelo tcp ip
Modelo tcp ip
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4
 
programacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxprogramacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptx
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Tcp ip aplicaciones
Tcp ip aplicacionesTcp ip aplicaciones
Tcp ip aplicaciones
 
Tema 5 capa de transporte
Tema 5 capa de transporteTema 5 capa de transporte
Tema 5 capa de transporte
 
api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udp
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 
Resumen capitulo 3
Resumen capitulo 3Resumen capitulo 3
Resumen capitulo 3
 
Tcp
TcpTcp
Tcp
 
Tema 7 2º trabajo
Tema 7 2º trabajoTema 7 2º trabajo
Tema 7 2º trabajo
 
Internet orígenes,evolucion.
Internet orígenes,evolucion.Internet orígenes,evolucion.
Internet orígenes,evolucion.
 

Más de jcbp_peru

It526 2017 1 balotario-s_ap2y3
It526 2017 1 balotario-s_ap2y3It526 2017 1 balotario-s_ap2y3
It526 2017 1 balotario-s_ap2y3jcbp_peru
 
It526 2016 2 pc4 dom
It526 2016 2 pc4 domIt526 2016 2 pc4 dom
It526 2016 2 pc4 domjcbp_peru
 
It246 2016 2 practica calificada 4
It246 2016 2 practica calificada 4It246 2016 2 practica calificada 4
It246 2016 2 practica calificada 4jcbp_peru
 
It246 2016 2 practica calificada 3
It246 2016 2 practica calificada 3It246 2016 2 practica calificada 3
It246 2016 2 practica calificada 3jcbp_peru
 
It246 2016 2 practica calificada 2
It246 2016 2 practica calificada 2It246 2016 2 practica calificada 2
It246 2016 2 practica calificada 2jcbp_peru
 
It526 2013 2 ep
It526 2013 2 epIt526 2013 2 ep
It526 2013 2 epjcbp_peru
 
It526 2016 1 ep
It526 2016 1 epIt526 2016 1 ep
It526 2016 1 epjcbp_peru
 
It526 2016 2 practica calificada 2
It526 2016 2 practica calificada 2It526 2016 2 practica calificada 2
It526 2016 2 practica calificada 2jcbp_peru
 
33012 calvo tfw-figura-paterna-2015
33012 calvo tfw-figura-paterna-201533012 calvo tfw-figura-paterna-2015
33012 calvo tfw-figura-paterna-2015jcbp_peru
 
It246 2016 2 practica calificada 1
It246 2016 2 practica calificada 1It246 2016 2 practica calificada 1
It246 2016 2 practica calificada 1jcbp_peru
 
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacionUni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacionjcbp_peru
 
Uni fiee ci 2016 02 sesion 2 servicios inalámbricos
Uni fiee ci 2016 02 sesion 2 servicios inalámbricosUni fiee ci 2016 02 sesion 2 servicios inalámbricos
Uni fiee ci 2016 02 sesion 2 servicios inalámbricosjcbp_peru
 
Uni fiee ci 2016 02 sesion 1 espectro radioelèctrico
Uni fiee ci 2016 02 sesion 1 espectro radioelèctricoUni fiee ci 2016 02 sesion 1 espectro radioelèctrico
Uni fiee ci 2016 02 sesion 1 espectro radioelèctricojcbp_peru
 
Uni wc 2016 1 sesion 14 redes moviles 4 g
Uni wc 2016 1 sesion 14 redes moviles 4 gUni wc 2016 1 sesion 14 redes moviles 4 g
Uni wc 2016 1 sesion 14 redes moviles 4 gjcbp_peru
 
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3g
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3gUni wc 2016 1 sesion 13 redes moviles 2 g y 3g
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3gjcbp_peru
 
Lte whitepaper(1)
 Lte whitepaper(1) Lte whitepaper(1)
Lte whitepaper(1)jcbp_peru
 
Redes moviles
Redes movilesRedes moviles
Redes movilesjcbp_peru
 
Uni fiee ci sesion 12 cdma
Uni fiee ci sesion 12 cdmaUni fiee ci sesion 12 cdma
Uni fiee ci sesion 12 cdmajcbp_peru
 
Uni fiee ci 2016 01 sesion 11 comunicaciones moviles
Uni fiee ci 2016 01 sesion 11 comunicaciones movilesUni fiee ci 2016 01 sesion 11 comunicaciones moviles
Uni fiee ci 2016 01 sesion 11 comunicaciones movilesjcbp_peru
 
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacionUni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacionjcbp_peru
 

Más de jcbp_peru (20)

It526 2017 1 balotario-s_ap2y3
It526 2017 1 balotario-s_ap2y3It526 2017 1 balotario-s_ap2y3
It526 2017 1 balotario-s_ap2y3
 
It526 2016 2 pc4 dom
It526 2016 2 pc4 domIt526 2016 2 pc4 dom
It526 2016 2 pc4 dom
 
It246 2016 2 practica calificada 4
It246 2016 2 practica calificada 4It246 2016 2 practica calificada 4
It246 2016 2 practica calificada 4
 
It246 2016 2 practica calificada 3
It246 2016 2 practica calificada 3It246 2016 2 practica calificada 3
It246 2016 2 practica calificada 3
 
It246 2016 2 practica calificada 2
It246 2016 2 practica calificada 2It246 2016 2 practica calificada 2
It246 2016 2 practica calificada 2
 
It526 2013 2 ep
It526 2013 2 epIt526 2013 2 ep
It526 2013 2 ep
 
It526 2016 1 ep
It526 2016 1 epIt526 2016 1 ep
It526 2016 1 ep
 
It526 2016 2 practica calificada 2
It526 2016 2 practica calificada 2It526 2016 2 practica calificada 2
It526 2016 2 practica calificada 2
 
33012 calvo tfw-figura-paterna-2015
33012 calvo tfw-figura-paterna-201533012 calvo tfw-figura-paterna-2015
33012 calvo tfw-figura-paterna-2015
 
It246 2016 2 practica calificada 1
It246 2016 2 practica calificada 1It246 2016 2 practica calificada 1
It246 2016 2 practica calificada 1
 
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacionUni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
 
Uni fiee ci 2016 02 sesion 2 servicios inalámbricos
Uni fiee ci 2016 02 sesion 2 servicios inalámbricosUni fiee ci 2016 02 sesion 2 servicios inalámbricos
Uni fiee ci 2016 02 sesion 2 servicios inalámbricos
 
Uni fiee ci 2016 02 sesion 1 espectro radioelèctrico
Uni fiee ci 2016 02 sesion 1 espectro radioelèctricoUni fiee ci 2016 02 sesion 1 espectro radioelèctrico
Uni fiee ci 2016 02 sesion 1 espectro radioelèctrico
 
Uni wc 2016 1 sesion 14 redes moviles 4 g
Uni wc 2016 1 sesion 14 redes moviles 4 gUni wc 2016 1 sesion 14 redes moviles 4 g
Uni wc 2016 1 sesion 14 redes moviles 4 g
 
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3g
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3gUni wc 2016 1 sesion 13 redes moviles 2 g y 3g
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3g
 
Lte whitepaper(1)
 Lte whitepaper(1) Lte whitepaper(1)
Lte whitepaper(1)
 
Redes moviles
Redes movilesRedes moviles
Redes moviles
 
Uni fiee ci sesion 12 cdma
Uni fiee ci sesion 12 cdmaUni fiee ci sesion 12 cdma
Uni fiee ci sesion 12 cdma
 
Uni fiee ci 2016 01 sesion 11 comunicaciones moviles
Uni fiee ci 2016 01 sesion 11 comunicaciones movilesUni fiee ci 2016 01 sesion 11 comunicaciones moviles
Uni fiee ci 2016 01 sesion 11 comunicaciones moviles
 
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacionUni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
 

Ul rc_cap7_el nivel de transporte en internet_

  • 1. 1341: Redes de Computadoras Facultad de Ingeniería de Sistemas Sesión: 7 Ing. José C. Benítez P. El Nivel de Transporte en Internet
  • 2. Redes de Computadoras 2 Sesión 7. Temas El Nivel de Transporte en Internet Aspectos generales del nivel de transporte Protocolo UDP Protocolo TCP Multiplexación Conexión/Desconexión Intercambio de datos y control de flujo Casos de baja eficiencia en TCP Control de congestión Redes LFN, factor de escala y opciones de TCP
  • 3. 3 Introducción Redes de Computadoras Modelos OSI, TCP/IP e Hibrido: Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Transporte Internet Host-red L5: Aplicación L4: Transporte L3: Red L2: Enlace LLC MAC L1: Física WAN LAN Hardware Firmware Software Sist.OperativoProgr.deusuario
  • 4. 4 Funciones del Nivel de Transporte Redes de Computadoras Se encarga del transporte de los datos extremo a extremo (host a host). Realiza la comunicación de forma transparente al medio físico. Usa los servicios del nivel de red. Multiplexa tráfico de diversas instancias (procesos) del nivel de aplicación. El nivel de transporte (como el de red) tiene una sola instancia en el host.
  • 5. 5 Funciones del Nivel de Transporte Redes de Computadoras El servicio que ofrece puede ser de dos tipos: Orientado a conexión: garantiza la entrega de los datos; sin pérdidas ni duplicados. Ej.: TCP (Internet), TP4 (OSI) No orientado a conexión: • equivale al servicio que ofrece IP, pero a nivel de transporte. • Ej.: UDP (Internet), TP0 (OSI)
  • 6. 6 Tráfico TCP vs UDP en Internet Redes de Computadoras TCP: 80% UDP: 10% Otros: 10%
  • 7. 7 Especificación del protocolo de transporte Redes de Computadoras 32 bits Versión Lon. Cab. DS (DiffServ) Longitud Total Identificación Res. DF MF Desplazam. de Fragmento Tiempo de vida (TTL) Protocolo Checksum Dirección de origen Dirección de destino Opciones (de 0 a 40 octetos) Valor Protocolo 1 ICMP 4 IP 6 TCP 17 UDP 89 OSPF Esto son solo algunos ejemplos de los valores que puede tener el campo protocolo IP v4 Header
  • 8. 8 Protocolo UDP (User Datagram Protocol) Redes de Computadoras Servicio sencillo, CLNS, no fiable. Se utiliza en los siguientes entornos: El intercambio de mensajes es muy escaso, Ej.: Consultas al DNS (servidor de nombres). La aplicación es en tiempo real y no puede esperar confirmaciones. Ej.: videoconferencia, voz sobre IP. Los mensajes se producen regularmente y no importa si se pierde alguno. Ej: NTP, SNMP. El medio de transmisión es altamente fiable y sin congestión (LANs). Ej: NFS. Se envía tráfico broadcast/multicast.
  • 9. 9 Protocolo UDP Redes de Computadoras Las TPDUs de UDP se denominan mensajes o datagramas UDP UDP multiplexa los datos de las aplicaciones y efectúa opcionalmente una comprobación de errores, pero no realiza: Control de flujo Control de congestión Retransmisión de datos perdidos Conexión/desconexión
  • 10. 10 La cabecera UDP Redes de Computadoras 32 bits Dirección IP de origen Dirección IP de destino 00000000 00010001 Long. Datagrama UDP Puerto de origen Puerto de destino Longitud datagrama UDP Checksum Pseudo cabecera Cabecera La pseudo cabecera: • se añade al principio del datagrama para el cálculo del checksum, pero no se envía. • permite a UDP comprobar que IP no se ha equivocado (ni le ha engañado) en la entrega del datagrama. El valor 100012 = 1710 indica que el protocolo de transporte es UDP 32 bits
  • 11. 11 Multiplexación Redes de Computadoras La multiplexación se realiza mediante el puerto (origen o destino) que puede valer de 0 a 65535. Los puertos 0 a 1023 están reservados para servidores ‘bien conocidos’ (‘well known ports’) La combinación de una dirección IP y un puerto identifica un ‘socket’ (origen o destino de los datagramas UDP): 147.156.135.22.1038 Dirección IP Puerto Socket
  • 12. 12 Multiplexación Redes de Computadoras Ethertype 0800 DATAGRAMA IP CRC Nivel de enlace Nivel de red Nivel de transporte Nivel de aplicación Prot. 17 DATAGRAMA UDP P. dest. 13 DATOS APLICACIÓN NTP (Puerto 123) DNS (Puerto 53) Daytime (Puerto 13) Cabecera MAC Ethernet Cabecera IP Cabecera UDP Checksum Checksum CRC Múltiples instancias (una por interfaz) Una instancia IP (puede haber otros protocolos) Dos instancias (TCP y UDP) Múltiples instancias (una o varias por protocolo)
  • 13. 13 Conexión UDP de un cliente contra un servidor Redes de Computadoras Cliente IP 10.0.1.50 Servidor Daytime IP 10.0.1.25 Port 13 Port 1038 Socket: 10.0.1.25.13 Mensaje UDP p.o. 1038, p.d. 13 Mensaje UDP p.o. 13, p.d. 1038 Socket: 10.0.1.50.1038
  • 14. 14 Cabeceras IP y Datagrama UDP en una petición/respuesta SNMP Redes de Computadoras IP: ----- IP Header ----- IP: IP: Version=4, header length=20 bytes IP: DiffServ = 00 IP: Total length = 131 bytes IP: Identification = 21066 IP: DF = 0, MF = 0 IP: Fragment offset = 0 bytes IP: Time to live = 60 seconds/hops IP: Protocol = 17 (UDP) IP: Header checksum = 2A13 (correct) IP: Source address = [128.1.1.1] IP: Destination address = [128.1.1.10] IP: No options IP: UDP: ----- UDP Header ----- UDP: UDP: Source Port = 1227 UDP: Destination port = 161 (SNMP) UDP: Length = 111 UDP: No checksum UDP: IP: ----- IP Header ----- IP: IP: Version=4, header length=20 bytes IP: DiffServ = 00 IP: Total length = 160 bytes IP: Identification = 2015 IP: DF = 0, MF = 0 IP: Fragment offset = 0 bytes IP: Time to live = 64 seconds/hops IP: Protocol = 17 (UDP) IP: Header checksum = 7061 (correct) IP: Source address = [128.1.1.10] IP: Destination address = [128.1.1.1] IP: No options IP: UDP: ----- UDP Header ----- UDP: UDP: Source Port = 161 (SNMP) UDP: Destination port = 1227 UDP: Length = 140 UDP: Checksum = 4D4F (correct) UDP:
  • 15. 15 TCP (Transmission Control Protocol) Redes de Computadoras El protocolo TCP ofrece el servicio de transporte orientado a conexión (CONS) en Internet. Está diseñado para ofrecer un transporte fiable sobre un servicio no fiable del nivel de red (el que le suministra IP). Las TPDUs de TCP se llaman segmentos. El TCP actual se especificó en el RFC 793 en 1981 y sigue plenamente vigente.
  • 16. 16 Servicio orientado a conexión Redes de Computadoras Los SOC requieren un procedimiento explícito de establecimiento y terminación de la comunicación. Durante la conexión las entidades participantes mantienen en memoria una información relativa a dicha conexión (contadores de bytes, espacio libre en buffers, etc.). Dicha información se conoce como información de estado. Para describir los SOC se suele utilizar un modelo cliente servidor, basado en dos protagonistas: Cliente: el que inicia la conexión Servidor: el que está a la espera de recibir peticiones de conexión Una conexión puede terminarse tanto por iniciativa del cliente como del servidor. También hay aplicaciones que utilizan el modelo igual a igual (peer-to-peer) como Emule, Edonkey, etc.
  • 17. 17 Funciones de TCP Redes de Computadoras Multiplexar el nivel de aplicación (port). Controlar errores; • Retransmitiendo segmentos perdidos o erróneos. • Eliminando duplicados. Establecer y terminar conexiones. Gestionar los buffers y ejercer control de flujo de forma eficiente. Gestionar el intercambio de datos con las aplicaciones. Efectuar control de congestión.
  • 18. 18 La cabecera TCP Redes de Computadoras Flags: CWR: Congestion Window Reduced ECE: ECN Echo (ECN=Explicit Congestion Notification) URG: el segmento contiene datos urgentes ACK: el campo número de acuse de recibo tiene sentido PSH: el segmento contiene datos ‘Pushed’ RST: ha habido algún error y la conexión debe cerrarse SYN: indica el inicio de una conexión FIN: indica el final de una conexión Relleno Flags (8 bits) Resv. (4 bits) Puntero datos urgentes Tamaño ventana Puerto de destino Opciones Checksum L. Cab. (4 bits) Número de acuse de recibo Número de secuencia Puerto de origen 32 bits 20 bytes
  • 19. 19 La pseudocabecera TCP Redes de Computadoras Se añade al principio del segmento solo para el cálculo del Checksum, no se envía. Permite a TCP comprobar que IP no se ha equivocado (ni le ha engañado) en la entrega del segmento. El valor 1102 = 610 indica que el protocolo de transporte es TCP Dirección IP de origen Dirección IP de destino 00000000 00000110 Long. Segmento TCP 32 bits
  • 20. 20 Multiplexación Redes de Computadoras Se utiliza el número de puerto (origen o destino) como en UDP. Puede valer de 0 a 65535. Como en UDP los puertos 0 a 1023 están reservados para servidores ‘bien conocidos’ Como en UDP la combinación de dirección IP y puerto identifica el ‘socket’ Una conexión TCP queda especificada por los dos sockets que se comunican (IP origen-puerto origen, IP destino-puerto destino)
  • 21. 21 Algunos servicios ‘bien conocidos’ Redes de Computadoras Servicio Puerto TCP UDP DayTime 13 X X FTP 21 X SSH 22 X TelNet 23 X SMTP 25 X Domain (DNS) 53 X X BOOTP 67 X TFTP 69 X HTTP 80 X POP3 110 X NTP 123 X SNMP 161 X LDAP 389 X HTTPS 443 X
  • 22. 22 Multiplexación Redes de Computadoras Nivel de enlace Nivel de red Nivel de transporte Nivel de aplicación Ethertype (0800) DATAGRAMA IP CRC Prot. (6) SEGMENTO TCP P. dest. (23) DATOS APLICACIÓN SMTP (Puerto 25) Telnet (Puerto 23) FTP (Puerto 21) Cabecera MAC Ethernet Cabecera IP Cabecera TCP Checksum Checksum HTTP (Puerto 80) HTTP (Puerto 400) Múltiples instancias (una por interfaz) Dos instancias (TCP y UDP) Múltiples instancias (una o varias por protocolo) Una instancia IP (puede haber otros protocolos)
  • 23. 23 Conexión de un cliente a un servidor web Redes de Computadoras Conexión TCP 10.0.1.25.80-10.0.2.47.1038 Puerto 1038 El computador ejecuta el programa Explorer: www.web.com Socket: 10.0.2.47.1038 IP 10.0.2.47 IP 10.0.1.25 Puerto 80 Socket 10.0.1.25.80 (rojo = ‘LISTEN’) Servidor Web
  • 24. 24 Conexión simultánea de un computador a dos servidores web Redes de Computadoras Servidor Web 2 IP 10.0.3.47 Puerto 1038 El computador ejecuta Explorer hacia 10.0.1.25 Socket 10.0.3.47.80 Socket: 10.0.2.47.1038 Puerto 1039 Socket: 10.0.2.47.1039 IP 10.0.2.47 Servidor Web 1 IP 10.0.1.25 Puerto 80 Puerto 80 Socket 10.0.1.25.80 El computador ejecuta otro Explorer hacia 10.0.3.47
  • 25. 25 Conexión desde dos computadores a un mismo servidor web Redes de Computadoras IP 10.0.1.50 Servidor Web IP 10.0.1.25 Puerto 80 Puerto 1038 Puerto 1038 IP 10.0.2.47 Este socket tiene dos conexiones simultáneas Socket 10.0.1.25.80 Socket: 10.0.2.47.1038 Socket: 10.0.2.47.1038 Computador ejecuta Explorer hacia 10.0.1.25 Computador ejecuta Explorer hacia 10.0.1.25 Las dos conexiones son diferentes porque difieren en la dirección IP del cliente
  • 26. 26 Dos conexiones desde un computador a un servidor web y uno POP3, ambos en el mismo host Redes de Computadoras Conexión TCP 10.0.1.25.80-10.0.2.47.1038 Puerto 1038 Computador ejecuta Explorer hacia 10.0.1.25 Socket: 10.0.2.47.1038 IP 10.0.2.47 IP 10.0.1.25 Puerto 80 Socket 10.0.1.25.80 Servidor Web y POP3 Puerto 1039 Puerto 110 Conexión TCP 10.0.1.25.110-10.0.2.47.1039 Socket: 10.0.2.47.1039 Socket 10.0.1.25.110 Computador ejecuta Outlook hacia 10.0.1.25
  • 27. 27 Dos conexiones diferentes del mismo computador al mismo servidor web Redes de Computadoras Conexión TCP 10.0.1.25.80-10.0.2.47.1038 Puerto 1038 Computador ejecuta Explorer hacia 10.0.1.25 Socket: 10.0.2.47.1038 IP 10.0.2.47 IP 10.0.1.25 Puerto 80 Socket 10.0.1.25.80 Servidor Web Puerto 1039 Conexión TCP 10.0.1.25.80-10.0.2.47.1039 Socket: 10.0.2.47.1039 Computador ejecuta un segundo Explorer hacia 10.0.1.25Las dos conexiones son diferentes porque difieren en el número de puerto del cliente
  • 28. 28 Comando netstat Redes de Computadoras El comando netstat nos permite saber que conexiones TCP tenemos establecidas y que sockets la forman en el extremo local y el remoto. En los servidores también nos permite averiguar que puertos están en modo ‘LISTEN’, es decir que puertos tenemos abiertos. Una de las formas típicas de protección de los cortafuegos (firewall) es bloquear puertos innecesarios, es decir no dejar pasar paquetes cuyo número de puerto de destino no sea alguno de los servicios abiertos.
  • 29. 29 Comando netstat en un host Redes de Computadoras C:C:C:C:>netstat>netstat>netstat>netstat Conexiones activasConexiones activasConexiones activasConexiones activas Proto Dirección local Dirección remotaProto Dirección local Dirección remotaProto Dirección local Dirección remotaProto Dirección local Dirección remota EstadoEstadoEstadoEstado TCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHEDTCP rogelio:3719 ftp.uv.es:ftp ESTABLISHED TCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4111 cuervo.ci.uv.es:pop3 TIME_WAIT TCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAITTCP rogelio:4113 cuervo.ci.uv.es:pop3 TIME_WAIT TCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHEDTCP rogelio:http miro.uv.es:1056 ESTABLISHED TCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHEDTCP rogelio:http hal9.uv.es:2312 ESTABLISHED TCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTENTCP rogelio:http *:* LISTEN C:C:C:C:>>>> Nombre de host local Nombre de host remotoPuerto local Puerto remoto Servidor web a la escucha en este host. Conexión de clientes (miro.uv.es y hal9.uv.es) con el servidor web de este host. Sesión pendiente de cerrar de un cliente de correo de este host con ‘cuervo.ci.uv.es’ Conexión de un cliente ftp de este host con ftp.uv.es. El programa netstat intenta convertir las direcciones IP y los números de puerto a nombres siempre que puede (por ejemplo pone ‘pop3’ en vez de 110).
  • 30. 30 Comando netstat en un host Redes de Computadoras
  • 31. 31 Un diálogo TCP típico Redes de Computadoras TCP Cliente TCP Servidor←←←←Tiempo CLOSED SYN-SENT LISTEN SYN-RECEIVED ESTABLISHED ESTABLISHED FIN-WAIT-1 FIN-WAIT-2 TIME-WAIT CLOSED CLOSE-WAIT LAST-ACK LISTEN 2-4 min. Conexión Desconexión Intercambio de datos
  • 32. 32 Conexión por Saludo a tres vías Redes de Computadoras • Los segmentos pueden llegar duplicados (p. ej. se pierde la confirmación de un segmento con lo que el emisor lo reenvía) • Con un procedimiento de conexión simple los segmentos duplicados podrían causar problemas. Una sesión entera podría duplicarse. • Para evitar los problemas debidos a duplicados se utiliza un procedimiento de conexión más elaborado denominado saludo a tres vías. • El saludo a tres vías se basa en la elección de un número que identifica de forma única cada intento de conexión y que actúa como PIN. De este modo se evita el riesgo de aceptar como válidos segmentos retrasados que pudieran aparecer fruto de conexiones anteriores.
  • 33. 33 Procedimiento del saludo a tres vías Redes de Computadoras 1. El cliente elige para cada intento de conexión un número único. El número elegido lo incluye en la petición de conexión que envía al servidor. 2. El servidor, cuando recibe la petición, elige otro número único y envía una respuesta al cliente indicándoselo. 3. El cliente al recibir la respuesta considera establecida la conexión. A continuación envía un tercer mensaje en el que acusa recibo del anterior. El servidor considera establecida la conexión cuando recibe este tercer mensaje.
  • 34. 34 Establecimiento de una conexión TCP por saludo a tres vías Redes de Computadoras TCP A (cliente) TCP B (servidor) ←←←←Tiempo CLOSED SYN-SENT (ISN 100) LISTEN SYN-RECEIVED (ISN 300) ESTABLISHED ESTABLISHED
  • 35. 35 Saludo a tres vías, conexión simultánea Redes de Computadoras TCP A TCP B ←←←←Tiempo CLOSED SYN-SENT (ISN 100) CLOSED SYN-RECEIVED ESTABLISHED ESTABLISHED SYN-SENT (ISN 300) SYN-RECEIVED
  • 36. 36 Conexión con SYN duplicado Redes de Computadoras TCP A TCP B ←←←←Tiempo CLOSED SYN-SENT (ISN 100) LISTEN SYN-RECEIVED (ISN 300) LISTEN SYN-RECEIVED (ISN 400) ESTABLISHED ESTABLISHED SYN 90 SYN-SENT (ISN 90) (timeout) SYN 90 SYN 100 SYN 100
  • 37. 37 Conexión en TCP Redes de Computadoras • Los dos primeros segmentos de la conexión se identifican con el flag SYN. • El número de secuencia es un campo de 32 bits que cuenta bytes en módulo 232 (el contador se da la vuelta cuando llega al valor máximo). • El número de secuencia no empieza normalmente en 0, sino en un valor denominado ISN (Initial Sequence Number) elegido al azar; el ISN sirve de ‘PIN’ en el saludo a tres vías para asegurar la autenticidad de la comunicación. • Una vez establecida la comunicación el ‘seq’ y el ‘ack’ sirven para contar los bytes transmitidos y recibidos.
  • 38. 38 Conexión en TCP Redes de Computadoras • El ISN es elegido por el sistema (cliente o servidor). El estándar sugiere utilizar un contador entero incrementado en 1 cada 4 µs aproximadamente. En este caso el contador se da la vuelta (y el ISN reaparece) al cabo de 4 horas 46 min. • El MSL (Maximum Segment Lifetime) típico es de unos 2 minutos, con lo que la probabilidad de que dos ISN coincidan es despreciable. • El mecanismo de selección de los ISN es suficientemente fiable para proteger de coincidencias debidas al azar, pero no es un mecanismo de protección frente a sabotajes. Es muy fácil averiguar el ISN de una conexión e interceptarla suplantando a alguno de los dos participantes.
  • 39. 39 Desconexión Redes de Computadoras Puede ser de dos tipos: • Simétrica: – la conexión se considera formada por dos circuitos simplex y cada host solo puede cortar uno (aquel en el que él emite datos). – El cierre de un sentido se interpreta como una ‘invitación’ a cerrar el otro. • Asimétrica: – desconexión unilateral (un host la termina en ambos sentidos sin esperar a recibir confirmación del otro). – Puede provocar pérdida de información.
  • 40. 40 Desconexión simétrica Redes de Computadoras Host 1 Host 2 ←←←←Tiempo DR: Disconnect Request Conectado Conectado No Conectado No Conectado
  • 41. 41 Desconexión asimétrica Redes de Computadoras Host 1 Host 2 ←←←←Tiempo DR: Disconnect Request Conectado Conectado No Conectado No ConectadoDatos perdidos
  • 42. 42 Mensaje de Desconexión Redes de Computadoras • El mensaje solicitando la desconexión se puede perder. Por eso se pide una confirmación (ACK). • Pero la confirmación también podría perderse, por lo que habría que enviar una reconfirmación, y así sucesivamente. • Este problema no tiene solución infalible, pues estamos usando un canal no fiable para asegurar un envío de información. Es lo que se conoce como el problema de los dos ejércitos.
  • 43. 43 El problema de los dos ejércitos Redes de Computadoras
  • 44. 44 Desconexión por saludo a tres vías Redes de Computadoras • Se trata de una desconexión simétrica en la que se tiene una seguridad razonable de que no se pierden datos. • Supone el intercambio de tres mensajes, de forma análoga a la conexión, de ahí su nombre. • En caso de que alguno de los mensajes de desconexión se pierda una vez iniciado el proceso la conexión se termina por timeout.
  • 45. 45 Desconexión en TCP Redes de Computadoras • Se utiliza el ‘saludo a tres vías’ invitando a la otra parte a cerrar. • Para indicar el cierre se utiliza el flag FIN • La desconexión puede iniciarla cualquiera de los dos TCP (el cliente o el servidor). • Una vez efectuada la desconexión el host que inició el proceso está un cierto tiempo a la espera por si aparecen segmentos retrasados.
  • 46. 46 Desconexión a tres vías, caso normal Redes de Computadoras TCP A TCP B ESTABLISHED FIN-WAIT-1 ESTABLISHED CLOSE-WAIT FIN-WAIT-2 LAST-ACK TIME-WAIT CLOSEDCLOSED 2 MSL MSL: Maximum Segment Lifetime (normalmente 2 minutos)
  • 47. 47 Conexión completa TCP por saludo a tres vías Redes de Computadoras TCP A (cliente) TCP B (servidor) ←←←←Tiempo CLOSED SYN-SENT (ISN 100) LISTEN SYN-RECEIVED (ISN 300) ESTABLISHED ESTABLISHED FIN-WAIT-1 CLOSE-WAIT FIN-WAIT-2 LAST-ACK TIME-WAIT CLOSEDCLOSED 2 MSL LISTEN
  • 48. 48 Captura de una conexión TCP con Wireshark Redes de Computadoras - Prof. Ing. Jose C. Benitez P. Conexión al servidor web 147.156.1.4 desde 147.156.135.22 Conexión Desconexión Conexión
  • 49. 49 Desconexión a tres vías, casos anormales Redes de Computadoras Libera conexión Envía ACK Host 1 (Timeout) libera conexión Host 2 Host 1 Libera conexión Host 2 Envía FIN y arranca timer (Timeout) envía FIN y arranca timer Envía FIN y arranca timer Envía FIN y arranca timer Envía FIN y arranca timer Envía FIN y arranca timer Libera conexión Envía ACK Host 1 Host 2 (timeout) envía FIN y arranca timer Envía FIN y arranca timer (N timeouts) Libera conexión Conectado Pérdida de ACK final Pérdida de respuesta FIN Pérdida de todos los FIN de host 1 Host 1 Host 2 (timeout) envía FIN y arranca timer Envía FIN y arranca timer Envía FIN y arranca timer (N timeouts) Libera conexión (Timeout) libera conexión Pérdida de todo menos primer FIN Conectado
  • 50. 50 Diagrama TCP Redes de Computadoras - Prof. Ing. Jose C. Benitez P.
  • 51. 51 Números de secuencia y flags Redes de Computadoras El número de secuencia es el que corresponde al primer byte enviado en ese segmento. TCP incrementa el número de secuencia de cada segmento según los bytes que tenía el segmento anterior, con una sola excepción: Los flags SYN y FIN, cuando están puestos, incrementan en 1 el número de secuencia. Esto permite que se pueda acusar recibo de un segmento SYN o FIN sin ambigüedad. Podemos considerar que los segmentos que tienen puesto el flag SYN o FIN lleva un byte de datos ‘virtual’ La presencia del flag ACK no incrementa el número de secuencia
  • 52. 52 Intercambio de datos TCP ↔ aplicación Redes de Computadoras Aplicación →→→→ TCP: la aplicación envía los datos a TCP cuando quiere (siempre y cuando TCP tenga espacio libre en el buffer de emisión) TCP →→→→ Aplicación: la aplicación lee del buffer de recepción de TCP cuando quiere y cuanto quiere. Excepción: datos urgentes Para TCP los datos de la aplicación son un flujo continuo de bytes, independientemente de la separación que pueda tener la aplicación (registros, etc.). Es responsabilidad de la aplicación asegurarse que esa separación (si existe) se mantendrá después de transmitir los datos.
  • 53. 53 Intercambio de datos TCP ↔ TCP Redes de Computadoras El TCP emisor manda los datos cuando quiere. Excepción: datos ‘Pushed’ El TCP emisor decide el tamaño de segmento según sus preferencias. Al inicio de la conexión se negocia el MSS (Maximum Segment Size) Cada segmento ha de viajar en un datagrama Normalmente TCP intenta agrupar los datos para que los segmentos tengan la longitud máxima, reduciendo así el overhead debido a cabeceras y proceso de segmentos. El TCP emisor puede aplicar la técnica de descubrimiento de la MTU del trayecto (‘Path MTU Discovery’, MTU = Maximum Transfer Unit) para ajustar el MSS al tamaño óptimo para esa comunicación.
  • 54. 54 Intercambio de datos TCP ↔ Aplicación y TCP ↔ TCP Redes de Computadoras Aplicación origen TCP receptor TCP emisor Aplicación destino A criterio de la aplicación (sujeto a disponibilidad de buffer en TCP emisor) A criterio de la aplicación A criterio del TCP emisor (sujeto a disponibilidad de buffer en TCP receptor y no congestión de la red) Empuja Empuja Estira Buffer Buffer
  • 55. 55 Intercambio de datos TCP ↔ Aplicación y TCP ↔ TCP Redes de Computadoras Aplicación origen TCP receptor TCP emisor Aplicación destino Buffer Buffer Escribe Envía Lee2048 Bytes 1024 Bytes 1024 Bytes 512 B 512 B512 B 512 B (MSS 512 Bytes)
  • 56. 56 Gestión de buffers y Control de Flujo Redes de Computadoras El TCP receptor informa en cada segmento al emisor del espacio que le queda libre en el buffer para esa comunicación. Para ello usa el campo tamaño de ventana. Anunciando una ventana cero el receptor puede bloquear al emisor, y ejercer así control de flujo. La ventana anunciada es un espacio que el TCP receptor reserva para esa comunicación en su buffer. Tanto los números de secuencia como los tamaños de ventana cuentan bytes.
  • 57. 57 Gestión de buffers y Control de flujo Redes de Computadoras Emisor Receptor Emisor Bloqueado Buffer La aplicación escribe 2 KB La aplicación escribe 3 KB El emisor puede enviar hasta 2 KB Vacío Lleno 2 KB 2 KB 0 4K La aplicación lee 2 KB 3 KB
  • 58. 58 Gestión de buffers y Control de Flujo Redes de Computadoras El TCP receptor nunca debería retirar el espacio en buffer que ya ha anunciado al emisor. Sin embargo TCP debe estar preparado por si el del otro lado lo hace (esto se denomina ‘contraer la ventana’). (Recordemos la Ley de Postel): ‘Sé estricto al enviar y tolerante al recibir’
  • 59. 59 Reenvío de segmentos Redes de Computadoras En caso de pérdida de un paquete en la red el segmento TCP no llegará a su destino Cada TCP cuando envía un segmento espera recibir el ACK; si este no llega dentro de un tiempo razonable reenvía el segmento. Si se enviaron varios segmentos y se pierde uno se puede hacer dos cosas: Enviar solo ese segmento (repetición selectiva) Enviar todos los segmentos a partir de ese (retroceso n) Lo normal es utilizar retroceso n
  • 60. 60 Control de flujo y números de secuencia Caso normal, sin pérdidas Redes de Computadoras Host 1 Host 2 Seq=1000, Win=4000 Seq=1500, Ack=1001, Win=4000 Seq=1001, Ack=1501, Win=4000 1000 bytes Seq=1501, Ack=2001, Win=3000 1000 bytes Seq=2001, Ack=2501, Win=3000 Seq=3001, Ack=2501, Win=3000 Seq=4001, Ack=2501, Win=3000 1000 bytes 1000 bytes 1000 bytes Bloqueado Seq=2501, Ack=5001, Win=2000 Seq=5001, Ack=2501, Win=3000 Seq=2501, Ack=6001, Win=3000 1000 bytes Seq=2501, Ack=5001, Win=0 Aplicación lee 2000 bytes SYN SYN
  • 61. 61 Pérdida de un paquete Retransmisión con repetición selectiva Redes de Computadoras Host 1 Host 2 Seq=1000, Win=4000 Seq=1500, Ack=1001, Win=4000 Seq=1001, Ack=1501, Win=4000 1000 bytes Seq=1501, Ack=2001, Win=3000 1000 bytes Seq=2001, Ack=2501, Win=3000 Seq=3001, Ack=2501, Win=3000 Seq=4001, Ack=2501, Win=3000 1000 bytes 1000 bytes 1000 bytes Bloqueado Seq=2501, Ack=5001, Win=2000 Seq=5001, Ack=2501, Win=3000 Seq=2501, Ack=6001, Win=3000 1000 bytes Seq=2501, Ack=3001, Win=1000 Seq=3001, Ack=2501, Win=3000 Timeout 1000 bytes Aplicación lee 2000 bytes SYN SYN Seq=2501, Ack=5001, Win=0
  • 62. 62 Intercambio de datos: casos excepcionales Redes de Computadoras Datos Pushed (bit PSH) La aplicación pide al TCP emisor que envíe esos datos lo antes posible. El TCP receptor los pondrá a disposición de la aplicación de inmediato, para cuando ésta le pida datos. Ejemplo: telnet. Datos Urgentes (bit URG y Urgent Offset) Los datos se quieren entregar a la aplicación remota sin esperar a que esta los pida. Ejemplo: abortar un programa con CTRL-C en una sesión telnet
  • 63. 63 Timer de Persistencia Redes de Computadoras Mientras la ventana está cerrada el TCP emisor puede enviar de vez en cuando un segmento con un byte de datos; esto provoca el envío de un ACK por parte del receptor y evita el bloqueo que se podría producir en caso de pérdida de un segmento anunciando una ventana mayor que cero La frecuencia con que el TCP emisor envía los reintentos se fija en el Timer de Persistencia.
  • 64. 64 Timer de persistencia Redes de Computadoras TCP A TCP B←←←←Tiempo Timer de Persistencia 100 bytes (501-600) Buffer lleno Datos leídos por la aplicación Datos puestos en buffer para la aplicación 1 byte (601) Bloqueado
  • 65. 65 Mensaje y timer de keepalive Redes de Computadoras Evita que se queden conexiones ‘medio abiertas’ Se implementa reenviando el último byte transmitido en un segmento; el receptor descarta el dato pero devuelve un ACK Si se envían varios mensajes de keepalive sin respuesta se considera que se trata de una conexión medio abierta y se cierra. Para declarar una conexión medio abierta se espera a veces hasta 2 horas. El tiempo de envío de los mensajes se regula con el timer de keepalive. El keepalive no requiere modificaciones en el TCP receptor
  • 66. 66 Mensajes de keepalive Redes de Computadoras TCP Servidor TCP Cliente ←←←←Tiempo Timer Keepalive 100 bytes (501-600) 1 byte (600) Datos puestos en buffer para la aplicación Datos duplicados descartados
  • 67. 67 Cabeceras TCP del inicio de una conexión Telnet Redes de Computadoras 1. SYN TCP: --- TCP header --- TCP: TCP: Source port = 2345 TCP: Dest port = 23 (Telnet) TCP: Initial seq. Number = 16421121 TCP: Data offset = 24 bytes TCP: Flags = 02 (SYN) TCP: Window = 2048 TCP: Checksum = F2DA (correct) TCP: TCP: Options follow TCP: Max segment size = 1460 2. SYN TCP: --- TCP header -- TCP: TCP: Source port = 23 (Telnet) TCP: Dest port = 2345 TCP: Initial seq. Number = 390272001 TCP: Acknowledgment Number = 16421122 TCP: Data offset = 24 bytes TCP: Flags = 12 (ACK,SYN) TCP: Window = 4096 TCP: Checksum = C13A (correct) TCP: TCP: Options follow TCP: Max segment size = 1024 3. ACK TCP: --- TCP header --- TCP: TCP: Source port = 2345 TCP: Dest port = 23 (Telnet) TCP: Seq. Number = 16421122 TCP: Acknowledgment Number = 390272002 TCP: Data offset = 20 bytes TCP: Flags = 10 (ACK) TCP: Window = 2048 TCP: Checksum = DF43 (correct) TCP: No TCP options 4. DATA TCP: --- TCP header --- TCP: TCP: Source port = 23 (Telnet) TCP: Dest port = 2345 TCP: Seq. Number = 390272002 TCP: Acknowledgment Number = 16421122 TCP: Data offset = 20 bytes TCP: Flags = 18 (ACK,PSH) TCP: Window = 4096 TCP: Checksum = 9FEF (correct) TCP: No TCP options TCP: [12 byte(s) of data]
  • 68. 68 Intercambio de segmentos del caso anterior Redes de Computadoras Cliente Servidor El servidor envía la secuencia: UNIX Login: TCP Conectado TCP Conectado
  • 69. 69 Referencias QoS Proyecto Quantum: www.dante.net/quantum Redes de Computadoras
  • 70. Redes de Computadoras - Prof. Ing. Jose C. Benitez P. 70 Sesión 7. El Nivel de Transporte en Internet Redes de Computadoras