Publicado el 20 de Junio del 2017
705 visualizaciones desde el 20 de Junio del 2017
367,0 KB
37 paginas
ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática
TCP
Area de Ingeniería Telemática
http://www.tlm.unavarra.es
Arquitectura de Redes, Sistemas y Servicios
3º Ingeniería de Telecomunicación
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
Temario
Introducción
•
• Arquitecturas, protocolos y estándares
• Conmutación de paquetes
• Conmutación de circuitos
• Tecnologías
• Control de acceso al medio en redes de área local
• Servicios de Internet
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
Temario
Introducción
1.
2. Arquitecturas, protocolos y estándares
3. Conmutación de paquetes
•
•
Principios
Problemas básicos
•
•
•
•
•
Como funcionan los routers (Nivel de red)
Encaminamiento (Nivel de red)
Transporte fiable (Nivel de transporte en TCP/IP)
Control de flujo (Nivel de transporte en TCP/IP)
Control de congestión (Nivel de transoporte en TCP/IP)
4. Conmutación de circuitos
5. Tecnologías
6. Control de acceso al medio en redes de área local
7. Servicios de Internet
Material
Del Capitulo 3 de
Kurose & Ross,
“Computer Networking a top-down approach
featuring the Internet”
Addison Wesley
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
• Protocolo de transporte de Internet
(RFC 793)
• Transporte fiable
– Entrega garantizada
– Entrega en orden
• Orientado a conexión
– Stream bidireccional (como si fuera un
fichero) entre los dos extremos
– No mantiene las fronteras de los mensajes
• Con control de flujo y congestión
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
•
Interfaz con el nivel de aplicación
– Tras establecer una conexión proporciona un stream bidireccional
entre sockets
– Sin fronteras entre mensajes
– 2 buffers por conexión
• Escribir en el socket pone los datos en buffer de envio
• Buffer de recepción para esperar el read()
TCP
connexión
connexión
connexión
TCP
connexión
connexión
connexión
IP
IP
IP
IP
• Demultiplexación de datos que llegan a TCP:
TCP
– Se identifica al socket destino por la tupla
( IP origen, puerto origen, IP destino, puerto destino )
– La tabla de tuplas (ip,puerto,ip,puerto) con sus sockets de un nivel
TCP es la tabla de conexiónes.
• La conexión sólo existe en los extremos TCP
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
write(datos)
puertos A1 A2 A3
TCP
connexión
connexión
connexión
IPB, puertoB1, IPA, puertoA1 : cnx1
IPB, puertoB3, IPA, puertoA2 : cnx2
IPX, puertoP , IPA, puertoA3 : cnx3
host IPA
Tabla de
conexiones
Paquete a IPB
puertoB3
read(datos)
puertos B1 B3
TCP
connexión
connexión
IPA, puertoA1, IPB, puertoB1 : cnx1
IPA, puertoA2, IPB, puertoB3 : cnx2
...
recibido paquete
host IPB
TCP
• Los buffers aislan a TCP de las operaciónes
del usuario.
– TCP hará lo posible por enviar los datos cuando
pueda
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
– TCP colocara los datos en el buffer de recepción
cuando lleguen
• Para realizar esto TCP necesitara un
conjunto de mensajes para comunicarse con
el TCP del otro lado
– Mensajes de establecimiento y cierre de conexión
– Mensajes de datos
– Mensajes con ACKs
• Veamos los mensajes del protocolo TCP
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
• Segmento TCP
• Cabecera de
tamaño variable
– 20 hasta 60
bytes según las
opciones
• Datos del nivel
de aplicación
TCP
s
o
i
r
o
t
a
g
i
l
b
o
P
C
T
a
r
e
c
e
b
a
C
s
e
t
y
b
0
2
32 bits
Cabecera IP
...
puerto origen
puerto destino
numero secuencia
HL nada
checksum
numero ack
flags
ventena recep.
urgent data ptr
opciones
Datos aplicación
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
Contenido
• Datos de
multiplexación
– Puerto origen
– Puerto destino
Cabecera IP
...
puerto origen
puerto destino
numero secuencia
HL nada
checksum
numero ack
flags
ventena recep.
urgent data ptr
opciones
Datos aplicación
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
Contenido
• Datos para transporte fiable
– Número de secuencia
– Número de ACK
– Checksum
Cabecera + datos de
applicación + algunos datos
de IP (pseudo cabecera como
en UDP)
• En un mismo paquete
podemos mandar datos y
confirmar datos del sentido
contrario
Cabecera IP
...
puerto origen
puerto destino
numero secuencia
HL nada
checksum
numero ack
flags
ventena recep.
urgent data ptr
opciones
Datos aplicación
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
Contenido
• FLAGs: diferentes tipos
de paquetes del protocolo
– URG urgente
– ACK acknowledgement
– PSH push
– RST reset
– SYN syn
– FIN fin
Cabecera IP
...
puerto origen
puerto destino
numero secuencia
HL nada
checksum
numero ack
flags
ventena recep.
urgent data ptr
opciones
Datos aplicación
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP: conexiones
• TCP es orientado a conexión
• Previamente a comunicarse datos entre un emisor
y un receptor deben negociar un establecimiento de
conexión.
– TCP inicializa sus variables para la conexión y crea los
buffers
– Esto se hace mediante los paquetes que utilizan los
flags SYN, FIN y RST
– Protocolo para establecer la conexión
– Protocolo para liberar la conexión
TCP: establecimiento de conexión
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
• Mecanismo: Three way handshake
– Lado cliente (socket que hace connect)
– envía un paquete sin datos con el flag SYN
– Establece el numero de secuencia inicial
– Lado servidor (socket que hace accept)
–
responde con un paquete sin datos con ACK y
SYN
– Establece el numero de secuencia inicial
– Lado cliente confirma este paquete con un
– Este paquete ya puede llevar datos
– Al recibir el ACK el servidor puede enviar ya
ACK
datos
– Los SYNs gastan un número de secuencia
para poder confirmarse con ACKs
SYN
ACK+SYN
ACK
Ejemplo
• Observando una conexión web...
Los SYNs usan un número de
secuencia para poder ser
confirmados
IP ...177.53656 > ...105.80: S 3482203897:3482203897(0) win 65535
IP ...105.80 > ...177.53656: S 3356369201:3356369201(0) ack 3482203898 win 24616
IP ...177.53656 > ...105.80: . ack 3356369202 win 65535
IP ...177.53656 > ...105.80: P 3482203898:3482204138(240) ack 3356369202 win 65535
IP ...105.80 > ...177.53656: . ack 3482204138 win 24616
IP ...105.80 > ...177.53656: P 3356369202:3356369502(300) ack 3482204138 win 24616
IP ...105.80 > ...177.53656: . 3356369502:3356370950(1448) ack 3482204138 win 24616
IP ...105.80 > ...177.53656: P 3356370950:3356372398(1448) ack 3482204138 win 24616
ACK
SYN
SYN+ACK
Aqui empieza la transferencia
Paquete 4
a Cierre de la conexión
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
• Cualquiera de los dos
extremos puede
iniciarlo
– Envía un paquete sin
datos con el flag FIN.
Consume también un
número de secuencia
– El otro extremo, confirma
enviando un ACK e
indica que cierra también
con otro FIN. Este
segundo FIN puede ir en
el mismo paquete o en
otro.
– El extremo original
confirma con un ACK
FIN
ACK+FIN
ACK
FIN
ACK
FIN
ACK
Ejemplo
• El final de una conexión web...
El servidor está enviando datos
El cliente decide cerrar y manda un FIN
...
IP 130.206.166.105.80 > 130.206.169.177.53701: P 80314174:80315622(1448) ack 4067364561 win 24616
IP 130.206.166.105.80 > 130.206.169.177.53701: P 80315622:80316551(929) ack 4067364561 win 24616
IP 130.206.169.177.53701 > 130.206.166.105.80: . ack 80316551 win 65535
IP 130.206.169.177.53701 > 130.206.166.105.80: F 4067364561:4067364561(0) ack 80316551 win 65535
IP 130.206.166.105.80 > 130.206.169.177.53701: . ack 4067364562 win 24616
IP 130.206.166.105.80 > 130.206.169.177.53701: F 80316551:80316551(0) ack 4067364562 win 24616
IP 130.206.169.177.53701 > 130.206.166.105.80: . ack 80316552 win 65535
El servidor cierra su sentido
,
I
I
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
TCP
Contenido
• Datos para transporte fiable
– Número de secuencia
– Número de ACK
– Checksum
Cabecera + datos de
applicación + algunos datos
de IP (pseudo cabecera como
en UDP)
• En un mismo paquete
podemos mandar datos y
confirmar datos del sentido
contrario
Cabecera IP
...
puerto origen
puerto destino
numero secuencia
HL nada
checksum
numero ack
flags
ventena recep.
urgent data
Comentarios de: TCP (0)
No hay comentarios