Beruflich Dokumente
Kultur Dokumente
Bibliografía
“Internetworking with TCP/IP”, Cap. 12.
2
Introducción
Ninguno de los protocolos vistos hasta ahora
proporciona fiabilidad en la comunicación de datos
Si las aplicaciones la necesitan, tienen dos
opciones:
Añadir los mecanismos necesarios en la propia aplicación
Utilizar un protocolo intermedio que se encargue de esta
tarea
La arquitectura TCP/IP ofrece un protocolo de
transporte que proporciona la fiabilidad deseada:
Protocolo TCP (Transmission Control Protocol)
Al igual que UDP, utilizará el mecanismo de
puertos.
3
Características de TCP
Proporciona un servicio orientado a la conexión,
fiable y ordenado (comunicación punto-a-punto)
Tres fases (similar al servicio telefónico) :
Establecimiento de conexión
Transferencia de datos
Cierre de conexión.
El flujo de datos es tratado como una secuencia de
bytes (byte stream) NO distingue fronteras entre
mensajes
El software del protocolo decide cómo dividir (o agrupar)
las unidades de datos que la aplicación le transfiere.
Por motivos de flexibilidad, el protocolo no especifica
la interfaz con la aplicación (sockets interface)
4
Puertos y conexiones
Asignación de puertos estática ó dinámica
Se puede utilizar el mismo puerto para TCP y UDP
Web client host C
source port: x
host A dest. port: 23 server B
Source IP: A
Dest IP: B Web
Web client source port: x server B
host A dest. port: 80
port use: Web server
5
Host B
Seq=92 timeout
Host A
Seq=100 timeout
timeout
X
loss
Timeout prematuro,
Pérdida de ACK ACK acumulativo
Emisor: Mantiene la
cantidad de datos
enviados pendientes
de reconocimiento por
debajo de la indicación
más reciente de
RcvWindow
Buffer del receptor
11
Ventana de transmisión
RTT
Repeat
if (ACK received) CW++
Until (evento de pérdida OR
CW > threshold)
Go to Congestion avoidance
Cabecera
datos TCP
TCP
Cabecera del
datagrama Campo de datos del datagrama
Cabecera
Campo de datos de la trama
de la trama
21
0 4 10 16 24 31
Puerto TCP origen Puerto TCP destino
Número de secuencia
cabecera
Número de reconocimiento
DATOS
22
SYN x
Recibe SYN x (dup. retrasado)
Envía SYN y
Recibe
Conexión establecida.
SYN y
Envía SYN z
Conexión
establecida Se descarta
(detección duplicado)
Envía SYN x
Recibe SYN x
Envía SYN y, ACK x+1
Recibe
SYN+ACK
Envía ACK y+1 Recibe ACK
Conexión establecida
32
Recibe FIN+ACK
Envía ACK y+1
(Conexión cerrada)
Recibe ACK
(Conexión cerrada)
35
Cierra la
conexión Envía ACK
y+1
Llega ACK
Cierra la
conexión
37
pasivo
open
syn/syn+ack
LISTEN
syn/syn+ack
SYN_RCVD SYN_SENT
close/fin
ESTABLISHED
fin/ack CLOSE_WAIT
FIN_WAIT_1 CLOSING
close/fin
ack/ ack/
LAST_ACK
FIN_WAIT_2 TIME_WAIT ack/
fin/ack
39