TCP: Características Establecimiento y finalización de conexiones

Anuncio
ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
TCP: Características
Establecimiento y finalización de conexiones
Area de Ingeniería Telemática
http://www.tlm.unavarra.es
Arquitectura de Redes, Sistemas y Servicios
3º Ingeniería de Telecomunicación
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Temario
1.
2.
3.
4.
5.
6.
7.
8.
Introducción
Protocolos y arquitectura
Redes de área local
Protocolos de Internet
Conmutación de circuitos
Conmutación de paquetes
Gestión de recursos en conmutadores
Protocolos de control de acceso al medio
1
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Temario
1.
2.
3.
4.
Introducción
Protocolos y arquitectura
Redes de área local
Protocolos de Internet
•
•
Nivel de red
Nivel de transporte
•
•
•
5.
6.
7.
8.
UDP
TCP
Servicios
Conmutación de circuitos
Conmutación de paquetes
Gestión de recursos en conmutadores
Protocolos de control de acceso al medio
2
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Objetivos
• Ver las características de TCP
• Especialmente qué quiere decir que
sea “orientado a conexión”
3
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Contenido
•
•
•
•
Introducción
Demultiplexación en TCP
Formato del segmento TCP
Gestión de conexiones
4
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Contenido
•
•
•
•
Introducción
Demultiplexación en TCP
Formato del segmento TCP
Gestión de conexiones
5
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
TCP
•
•
•
•
•
Transmission Control Protocol
Nivel de transporte
RFCs 793, 1122, 1323, 2018,
2581
Orientado a conexión
Flujo de datos:
–
–
–
–
•
Control de flujo
– Evitar congestionar al receptor
•
Control de congestión
– Evitar congestionar la red
AS 2
Stream de bytes
Fiable
Ordenado
Full duplex
AS 1
Transporte
UDP TCP
Red
IP
Enlace
ICMP
ARP
Protocolo= 6
AS 3
Segmento TCP
Paquete IP
Físico
6
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Demultiplexación con conexión
•
•
•
•
Conexión identificada por 2
sockets
Cada socket identificado por:
Dirección IP y Puerto TCP
Es decir, la conexión viene
identificada por:
•
Cada host soporta múltiples
conexiones TCP simultáneas
•
Con que uno de los 4 valores
sea diferente la conexión ya
es diferente
– Dirección IP (1), Puerto TCP (1)
– Dirección IP (2), Puerto TCP (2)
•
Well-known ports, registrados,
efímeros, igual que para UDP
El receptor emplea la cuaterna
para demultiplexar
32 bits
puerto origen
puerto dest.
otros campos
campos de
otros
de
la cabecera
cabecera
la
AS 2
AS 1
AS 3
datos de la
aplicación
(mensaje)
7
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Demultiplexación: Ejemplo
App 4 App 5 App 6
App 1
Transporte
Transporte
Red
Red
Enlace
Enlace
Físico
App 2
S-IP: B
D-IP: C
SP: 5775
DP: 80
S-IP: A
D-IP: C
SP: 9157
DP: 80
Transporte
Red
Enlace
Físico
Físico
IP: A
App 3
IP: C
S-IP: B
D-IP: C
SP: 9157
DP: 80
IP: B
8
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Demultiplexación: otro ejemplo
App 4
App 1
Transporte
Transporte
Red
Red
Enlace
Enlace
Físico
App 2
S-IP: B
D-IP: C
SP: 5775
DP: 80
S-IP: A
D-IP: C
SP: 9157
DP: 80
Transporte
Red
Enlace
Físico
Físico
IP: A
App 3
IP: C
S-IP: B
D-IP: C
SP: 9157
DP: 80
IP: B
9
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Contenido
•
•
•
•
Introducción
Demultiplexación en TCP
Formato del segmento TCP
Gestión de conexiones
10
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Segmento TCP
32 bits
Tamaño cabecera
(palabras de 32bits)
URG: datos urgentes
(casi no se usa)
ACK: El nº ACK
es válido
PSH: Push
Entregar datos a App
Número de secuencia
Número de confirmación
Long No
cab. usado U A P R S F
Ventana
Checksum
Puntero a urgentes
Cuenta en bytes
de datos
(no en segmentos)
Tamaño de la
ventana que
se anuncia al
emisor
Opciones (longitud variable)
Datos de
aplicación
(longitud variable)
Paquete IP
Internet
checksum
(como en UDP)
Puerto destino
Segmento TCP
RST, SYN, FIN:
establecimiento y fin
de la conexión
Puerto origen
11
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Contenido
•
•
•
•
Introducción
Demultiplexación en TCP
Formato del segmento TCP
Gestión de conexiones
12
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Estableciendo una conexión:
• Three way handshake
Paso 1:
• El extremo cliente envía un
segmento
solicitando
una
conexión al servidor
• El segmento no tiene datos,
solo cabecera
• SYN
cliente
servidor
SYN
13
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Paso 2:
•
•
•
El extremo servidor envía un
segmento al cliente confirmando
(acknowledgement) la recepción
del SYN
En el mismo segmento el
servidor indica su deseo de
establecer la conexión (SYN)
El segmento no tiene datos,
solo cabecera
cliente
servidor
SYN
K
, AC
N
Y
S
14
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Paso 3:
•
•
•
El extremo cliente envía una
confirmación al SYN del servidor
El segmento no tiene datos,
solo cabecera
Conexión establecida
cliente
SYN
K
, AC
N
Y
S
conectado
Transferencia de datos…
servidor
ACK
conectado
15
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Cerrando una conexión
Paso 1:
• Un
extremo
envía
un
segmento solicitando el cierre
de la conexión
• El segmento no tiene datos,
solo cabecera
• FIN
FIN
16
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Paso 2:
•
•
•
El otro extremo confirma (ACK)
la recepción del FIN
El extremo que ha enviado el
FIN ya no puede enviar más
datos nuevos
Cierre solo de un sentido de la
comunicación
FIN
ACK
17
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
Paso 3:
•
•
El otro extremo envía un
segmento solicitando el cierre de
la conexión
El segmento no tiene datos, solo
cabecera
FIN
ACK
FIN
18
Paso 4:
•
•
•
Confirmación de ese segundo
FIN
Por si ese último ACK se pierde,
el que lo envió espera un tiempo
(podría tener que volverlo a
enviar)
Conexión cerrada
FIN
ACK
FIN
time wait
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Gestión de conexiones
ACK
cerrada
cerrada
19
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Diagrama de estados
CLOSED
SYN SENT
SYN
Open activo, snd SYN
CLOSED
LISTEN
CLOSED
Open pasivo
SYN, ACK
SYN RCVD
ESTABLISHED
ACK
Close
Close
LISTEN
rcv SYN /
snd SYN
snd SYN,ACK
ESTABLISHED
SYN
RCVD
Close, snd FIN
SYN
SENT
rcv SYN, ACK / snd ACK
rcv SYN / snd ACK
rcv ACK
ESTABLISHED
rcv FIN / snd ACK
Close, snd FIN
FIN
WAIT-1
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
CLOSING
CLOSE
WAIT
Close, snd FIN
rcv FIN, ACK /
snd ACK
LASTACK
rcv ACK
rcv ACK
TIMEWAIT
CLOSED
Timeout
rcv FIN /snd ACK
2xMSL
20
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Diagrama de estados
CLOSED
SYN
SYN SENT
Open activo, snd SYN
CLOSED
LISTEN
CLOSED
Open pasivo
SYN, ACK
SYN RCVD
ACK
ESTABLISHED
Datos
ACK
Close
Close
LISTEN
rcv SYN /
snd SYN
snd SYN,ACK
ESTABLISHED
SYN
RCVD
Close, snd FIN
SYN
SENT
rcv SYN, ACK / snd ACK
rcv SYN / snd ACK
rcv ACK
ESTABLISHED
rcv FIN / snd ACK
Close, snd FIN
.
.
FIN
WAIT-1
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
CLOSING
CLOSE
WAIT
Close, snd FIN
rcv FIN, ACK /
snd ACK
LASTACK
rcv ACK
rcv ACK
TIMEWAIT
CLOSED
Timeout
rcv FIN /snd ACK
2xMSL
21
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Diagrama de estados
CLOSED
SYN
SYN SENT
Open activo, snd SYN
CLOSED
LISTEN
CLOSED
Open pasivo
SYN, ACK
SYN RCVD
ACK
ESTABLISHED
ACK
CLOSED
FIN WAIT-1
FIN WAIT-2
FIN
ACK
SYN
SENT
rcv SYN, ACK / snd ACK
rcv SYN / snd ACK
rcv ACK
ESTABLISHED
rcv FIN / snd ACK
Close, snd FIN
.
.
FIN
LAST ACK
SYN
RCVD
Close, snd FIN
ACK
CLOSE WAIT
LISTEN
rcv SYN /
snd SYN
snd SYN,ACK
ESTABLISHED
Datos
Close
Close
TIMEWAIT
CLOSED
FIN
WAIT-1
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
CLOSING
CLOSE
WAIT
Close, snd FIN
rcv FIN, ACK /
snd ACK
LASTACK
rcv ACK
rcv ACK
TIMEWAIT
CLOSED
Timeout
rcv FIN /snd ACK
2xMSL
22
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Servidor
Cliente
Open activo, snd SYN
Open activo, snd SYN
CLOSED
Open pasivo
CLOSED
Close
Close
LISTEN
rcv SYN /
snd SYN
snd SYN,ACK
SYN
SYN
rcv SYN / snd ACK
RCVD
SENT
Close, snd FIN
rcv ACK
rcv SYN, ACK / snd ACK
ESTABLISHED
rcv FIN / snd ACK
Close, snd FIN
FIN
WAIT-1
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
CLOSING
CLOSE
WAIT
Close, snd FIN
rcv FIN, ACK /
snd ACK
LASTACK
rcv ACK
rcv ACK
TIMEWAIT
CLOSED
Timeout
rcv FIN /snd ACK
2xMSL
Open pasivo
Close
Close
LISTEN
rcv SYN /
snd SYN
snd SYN,ACK
SYN
SYN
rcv SYN / snd ACK
RCVD
SENT
Close, snd FIN
rcv ACK
rcv SYN, ACK / snd ACK
ESTABLISHED
rcv FIN / snd ACK
Close, snd FIN
FIN
WAIT-1
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
CLOSING
CLOSE
WAIT
Close, snd FIN
rcv FIN, ACK /
snd ACK
LASTACK
rcv ACK
rcv ACK
TIMEWAIT
CLOSED
Timeout
rcv FIN /snd ACK
2xMSL
23
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Ejemplo
$ tcpdump -ttnlS tcp and host 10.1.11.1
Kernel filter, protocol ALL, datagram packet socket
tcpdump: listening on all devices
54.171 1.1.1.12.1798 > 10.1.11.1.telnet: S 3462181145:3462181145(0)
54.175 10.1.11.1.telnet > 1.1.1.12.1798: S 1997882026:1997882026(0) ack 3462181146
54.175 1.1.1.12.1798 > 10.1.11.1.telnet: . 3462181146:3462181146(0) ack 1997882027
54.177 1.1.1.12.1798 > 10.1.11.1.telnet: P 3462181146:3462181173(27) ack 1997882027
54.178 10.1.11.1.telnet > 1.1.1.12.1798: . 1997882027:1997882027(0) ack 3462181173
...
66.816
66.816
66.817
66.818
10.1.11.1.telnet > 1.1.1.12.1798:
1.1.1.12.1798 > 10.1.11.1.telnet:
1.1.1.12.1798 > 10.1.11.1.telnet:
10.1.11.1.telnet > 1.1.1.12.1798:
FP 1997882551:1997882559(8) ack 3462181333
. 3462181333:3462181333(0) ack 1997882560
F 3462181333:3462181333(0) ack 1997882560
. 1997882560:1997882560(0) ack 3462181334
24
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Resumen
•
•
•
•
•
Fiable, mantiene el orden, flujo en stream…
TCP emplea el concepto de conexión
Three-way handshake
(IP_1, puerto_1, IP_2, puerto_2)
Mantiene estado
25
ARQUITECTURA DE REDES,
SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
Próxima clase
Servicios en Internet: WWW
• Lecturas recomendadas:
– [Kurose05] 2.2
26
Descargar