SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Arquitectura de Redes y Servicios de Telecomunicación (ARST)
Introducción
Puertos y conexiones
Control de flujo. Recuperación de errores
Control de congestión
Formato de un segmento TCP
Establecimiento y cierre de una conexión
Conclusiones
Tema 3: El protocolo TCPTema 3: El protocolo TCP
Bibliografía
[COM06] “Internetworking
with TCP/IP”, Cap. 12.
ArquitecturadeRedesyServiciosdeTelecomunicación
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.
ArquitecturadeRedesyServiciosdeTelecomunicación
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)
ArquitecturadeRedesyServiciosdeTelecomunicación
4
Puertos y conexiones
 Asignación de puertos estática o dinámica
 Se puede utilizar el mismo puerto para TCP y UDP
host A server B
source port: x
dest. port: 23
source port:23
dest. port: x
port use: simple telnet app
Web client
host A
Web
server B
Web client
host C
Source IP: C
Dest IP: B
source port: x
dest. port: 80
Source IP: C
Dest IP: B
source port: y
dest. port: 80
port use: Web server
Source IP: A
Dest IP: B
source port: x
dest. port: 80
ArquitecturadeRedesyServiciosdeTelecomunicación
5
Control de flujo. Recuperación de errores
 Unidad de datos TCP: segmento
 Control de flujo extremo a extremo mediante ventana
deslizante (protocolos punto-a-punto pipeline)
 La Parada y Espera puede resultar muy poco eficiente
 Tamaño máximo de la ventana de transmisión variable
(puede ser cero)
 Reconocimientos a nivel de octetos y no de segmentos
 Conexión TCP full-duplex  Dos flujos de datos
independientes (4 ventanas)
 Se permite el empleo de datos urgentes, que no están
sujetos al control de flujo
ArquitecturadeRedesyServiciosdeTelecomunicación
6
TCP: Números de secuencia y reconocimientos
 Números de secuencia:
 Número de secuencia del
primer octeto en el campo
de datos del segmento
 Reconocimientos:
 Número de secuencia del
siguiente byte que se
espera recibir
 ACKs acumulativos
 ¿Cómo se procesan los
segmentos fuera de orden?
 TCP no especifica lo que
hay que hacer  decisión
de implementación.
Host A Host B
Usuario
pulsa
‘C’
host ACKs
La recepción
del echo
‘C’
host ACKs
‘C’, devuelve
el echo ‘C’
tiempo
Aplicación telnet
ArquitecturadeRedesyServiciosdeTelecomunicación
7
TCP: Algoritmo simplificado
00 sendbase = initial_sequence number
01 nextseqnum = initial_sequence number
02
03 loop (forever) {
04 switch(event)
05 event: data received from application above
06 create TCP segment with sequence number nextseqnum
07 start timer for segment nextseqnum
08 pass segment to IP
09 nextseqnum = nextseqnum + length(data)
10 event: timer timeout for segment with sequence number y
11 retransmit segment with sequence number y
12 compute new timeout interval for segment y
13 restart timer for sequence number y
14 event: ACK received, with ACK field value of y
15 if (y > sendbase) { /* cumulative ACK of all data up to y */
16 cancel all timers for segments with sequence numbers < y
17 sendbase = y
18 }
19 else { /* a duplicate ACK for already ACKed segment */
20 increment number of duplicate ACKs received for y
21 if (number of duplicate ACKS received for y == 3) {
22 /* TCP fast retransmit */
23 resend segment with sequence number y
24 restart timer for segment y
25 }
26 } /* end of loop forever */
 Versión simplificada
del emisor TCP
 NO se considera
control de flujo ni
control de
congestión.
 Transferencia en
un único sentido
ArquitecturadeRedesyServiciosdeTelecomunicación
8
TCP: Generación de segmentos ACK [RFC 1122, RFC 2581]
Evento
Llegada en orden de un segmento,
no hay huecos,
Todo está previamente reconocido
Llegada en orden de un segmento,
no hay huecos,
Existe un ACK retrasado pendiente
Llegada fuera de orden de segmento,
Seq # mayor que el esperado
Hueco detectado
Llegada de un segmento que
Parcial o completamente llena
el hueco
Acción en el receptor TCP
ACK retrasado  Espera 500ms al
siguiente segmento. Si no se genera,
envía ACK
Enviar inmediatamente un
ACK acumulativo.
Envío de un ACK duplicado, indicando
El número de secuencia esperado
Envío inmediato de un ACK, si el segmento
comienza en la parte baja del hueco
ArquitecturadeRedesyServiciosdeTelecomunicación
9
TCP: Retransmisiones
Host A
loss
timeout
time Pérdida de ACK
Host B
X
Host A
Seq=92timeout
time Timeout prematuro,
ACK acumulativo
Host B
Seq=100timeout
 Las retransmisiones pueden originar duplicados
 Detección: Números de secuencia de los segmentos
 La duración del temporizador es crítica
 Temporizador independiente para cada segmento
ArquitecturadeRedesyServiciosdeTelecomunicación
10
TCP: Control de flujo
 Receptor: Informa
explícitamente al emisor
de la cantidad de espacio
libre que dispone en el
buffer
 Campo RcvWindow
(ventana RX) de la
cabecera TCP
 Emisor: Mantiene la
cantidad de datos
enviados pendientes de
reconocimiento por
debajo de la indicación
más reciente de
RcvWindow
Buffer del receptor
RcvBuffer = Tamaño del buffer TCP del receptor
RcvWindow = Cantidad de espacio libre en el buffer
Control de flujo
 El emisor no enviará más
datos de los que el receptor
pueda procesar en cada
momento.
ArquitecturadeRedesyServiciosdeTelecomunicación
11
TCP: Un ejemplo de Control de flujo.
Este es el Texto a Transmitir
Byte: 1 6 24
Ventana de transmisión
es el Texto a TransSeq=6, Tam=19
Este es el Texto a Transmitir por Internet
Byte: 1 6 24 25 35
Ventana de transmisión
<datos > Ack=25, Win=11
ArquitecturadeRedesyServiciosdeTelecomunicación
12
TCP: Temporizadores y retransmisión
 Q: ¿Qué valor elegimos
para el temporizador de un
segmento TCP?
 Mayor que el RTT
Ojo: En Internet, el RTT
(Round Trip Time) no es
estable a lo largo de una
conexión TCP
 Si se elige un Timeout
demasiado corto 
Timeouts prematuros
Retransmisiones innecesarias
 Si se elige un Timeout
demasiado largo  Lenta
reacción a los segmentos
perdidos.
 Q: ¿Cómo se estima el valor
del RTT?
 RTT_medido: Tiempo
transcurrido desde el envío
de un segmento hasta que
se recibe su ACK
No se tienen en cuenta
retransmisiones y ACKs
acumulados
 Ya que RTT_medido variará
a lo largo de la conexión,
se propone obtener una
estimación promediada del
RTT
Basada en el historial reciente
de medidas, y no sólo en la
muestra actual de RTT.
ArquitecturadeRedesyServiciosdeTelecomunicación
13
RTT_estimado = (1-α)*RTT_estimado + α*RTT_medido
 Estimación del RTT
 Media móvil ponderada
 La influencia de un muestra se reduce rápida y exponencialmente
 Valor recomendado para α=0.1
 Cálculo del valor del Timeout
 RTT_estimado más un “margen de seguridad”
 Cuanto más grande sea la variación del RTT_estimado mayor
margen de seguridad deberíamos establecer.
Timeout = RTT_estimado + 4*Deviation
Deviation = (1-β)*Deviation +
β*|RTT_medido-RTT_estimado|
TCP: Temporizadores y retransmisión (I)
ArquitecturadeRedesyServiciosdeTelecomunicación
14
TCP: Temporizadores y retransmisión (II)
 Cuando se transmite el mismo segmento varias veces,
al recibir su reconocimiento, resulta imposible
determinar a cuál de las copias enviadas corresponde
 Esto origina problemas a la hora de establecer el
intervalo de timeout
 Si el reconocimiento se asocia al primer segmento enviado, el
temporizador tenderá a crecer mucho si la red continúa
perdiendo datagramas
 Si el reconocimiento se asocia con el último segmento
enviado, tendremos problemas cuando el retardo extremo a
extremo aumente de forma súbita. El t.o. será demasiado
pequeño.
ArquitecturadeRedesyServiciosdeTelecomunicación
15
TCP: Temporizadores y retransmisión (III)
 Solución (Algoritmo de Karn):
 Diferenciar en la estimación del valor del temporizador los
segmentos transmitidos una única vez de los procedentes de
un retransmisión.
 Cuando se produce la pérdida de un segmento se
ignora su RTT, y se emplea una estrategia back-off
 Nuevo_timeout = g * timeout, (generalmente g = 2)
 Cuando se transmite un segmento con éxito en el
primer intento  se toma su RTT como estimación
válida y deja de aplicarse el back-off.
ArquitecturadeRedesyServiciosdeTelecomunicación
16
TCP: Control de congestión (I)
 La congestión aparece por una sobrecarga en los nodos de
conmutación (ej. routers) de una red
 Pérdida de paquetes (desbordamiento de los buffers en los routers)
 Incremento de los retardos de los paquetes (almacenamiento en colas)
 Lo que provoca un incremento en las retransmisiones, que
no hacen más que agravar la situación.
 Control de congestión ≠ Control de flujo.
 TCP puede ayudar a solucionar la congestión, reduciendo
la inyección de segmentos en la red.
 El estándar actual recomienda dos técnicas, relacionadas y
fáciles de implementar:
 Slow-start y…
 Congestion avoidance.
ArquitecturadeRedesyServiciosdeTelecomunicación
17
Control de congestión (II)
 Se define una ventana de congestión que regulará el
caudal de salida de TCP.
 Esta ventana, afecta al tamaño real de la ventana de transmisión,
resultando que:
 ven_txon_permitida = min (ventana_recepción, ventana_congestión)
 Durante el funcionamiento normal (libre de congestión) se
cumple que:
 Ventana_congestión = Ventana_recepción (determinada por el
control de flujo).
 El indicio de congestión se detecta por la pérdida de
paquetes (vencimiento timeout):
 En ese caso se utilizará la ventana de congestión para reducir la
ventana de transmisión
 Además, para aquellos segmentos que permanecen en la ventana
permitida, se aumenta el intervalo de timeout exponencialmente
(back-off)  Algoritmo de Karn.
ArquitecturadeRedesyServiciosdeTelecomunicación
18
TCP: Control de congestión  Slowstart
 Incremento exponencial (por RTT) en
el tamaño de la ventana (no es lento!)
 Evento de pérdida:
 Timeout (Tahoe TCP) y/o tres ACKs
duplicados (Reno TCP)
Init: Congwin = 1
Para (cada segmento ACKed)
Congwin++
hasta (evento de pérdida OR
CongWin > threshold)
Algoritmo Slowstart
Host A
RTT
Host B
tiempo
Inicialmente, “threshold” igual a la
mitad de la ventana de recepción.
ArquitecturadeRedesyServiciosdeTelecomunicación
19
TCP: Control de congestión  Congestion avoidance
/* slowstart terminado */
/* CongWin > threshold */
Hasta (evento de pérdida) {
Cada w segmentos ACKed:
CongWin++
}
threshold = CongWin/2
Go to slowstart
Congestion avoidance
1
1: TCP Reno no realiza slowstart (fast
recovery) después de recibir tres ACKs
duplicados
 AIMD: Additive Increase,
Multiplicative Decrease
 Incrementa CongWin en 1 por cada
RTT
 Divide por 2 el valor del Threshold
cuando se detecta una pérdida
ArquitecturadeRedesyServiciosdeTelecomunicación
20
Encapsulado de mensajes TCP
Cabecera
de la trama
Cabecera del
datagrama
Campo de datos de la trama
Cabecera
TCP
datos TCP
Campo de datos del datagrama
ArquitecturadeRedesyServiciosdeTelecomunicación
21
Formato de un segmento TCP (I)
Puerto TCP origen Puerto TCP destino
checksum puntero a datos urgentes
longc reservado código ventana
Número de secuencia
Número de reconocimiento
0 4 10 16 24 31
opciones (Ej.: MSS) relleno
DATOS
cabecera
ArquitecturadeRedesyServiciosdeTelecomunicación
22
Formato de un segmento TCP (II)
 Cada segmento TCP se divide en: Cabecera y datos.
 Puerto fuente y puerto destino identifican a las
aplicaciones, en los dos extremos de la conexión.
 Número de secuencia identifica la secuencia del primer
octeto de datos del segmento en el flujo de datos del
emisor.
 Número de reconocimiento indica cual es el siguiente
octeto de datos que se espera recibir.
 Es válido si el bit ACK (campo código) está activo.
 La longitud de la cabecera (longc) se expresa en
palabras de 32 bits.
ArquitecturadeRedesyServiciosdeTelecomunicación
23
Formato de un segmento TCP (III)
 El campo ventana indica el tamaño del buffer del receptor
(control de flujo).
 Determina el tamaño de la ventana de transmisión.
 El cheksum se utiliza para la detección de errores.
 Se aplica a todo el segmento (cabecera+datos).
 Su cálculo es idéntico al de UDP (pseudo-cabecera).
 Las opciones permiten negociar algunos parámetros
entre los TCPs de ambos extremos.
 Ejemplo: Tamaño máximo de segmento (MSS) durante el
establecimiento de conexión.
ArquitecturadeRedesyServiciosdeTelecomunicación
24
Formato de un segmento TCP (IV)
 El campo reservado no se utiliza.
 Los bits de código determinan el tipo de segmento y el
significado de algunos de sus campos.
bit (de izquierda
a derecha)
Significado si está a uno
URG El puntero a datos urgentes es válido
ACK El campo de reconocimiento es válido
PSH Este segmento solicita una operación PUSH
RST Cancelar la conexión
SYN Establecimiento de conexión
FIN El emisor llegó al final de su secuencia de
datos
ArquitecturadeRedesyServiciosdeTelecomunicación
25
TCP: Datos urgentes
 No siguen la secuencia de los datos “normales”
 Se avisa al receptor de su llegada, independientemente de
los datos que haya en cola
 Tienen interés para indicar situaciones de excepción
 Ejemplo: Abortar programas en una terminal remota
 Después de haber leído todos los datos urgentes, la
aplicación vuelve al modo normal de funcionamiento
 Los detalles de cómo TCP informa a la aplicación de
la presencia de datos urgentes dependen del S.O.
 Los datos urgentes viajan entre los datos de un
segmento
 El puntero de datos urgentes indica dónde finalizan
ArquitecturadeRedesyServiciosdeTelecomunicación
26
TCP: Función de carga (PUSH)
 TCP elige la distribución de los datos de aplicación en
segmentos
 Por razones de eficiencia suele acumular un número razonable de octetos
antes de un envío
 Esto a veces penaliza el buen funcionamiento de una aplicación.
 Ejemplo: Terminal remota (TELNET).
 Para obligar a TCP a enviar inmediatamente los datos
acumulados  Operación PUSH
 La aplicación puede solicitar la transmisión del buffer TCP
actual.
 En la mayoría de las implementaciones, es un parámetro de la conexión.
 Los datos se transmiten sin esperar al MSS.
 El segmento generado lleva el bit push a 1
 Asimismo, en recepción el TCP debe entregar los datos a la
aplicación lo antes posible.
 Por ejemplo, sin respetar el tamaño de buffer de recepción.
ArquitecturadeRedesyServiciosdeTelecomunicación
27
Establecimiento y cierre de una conexión TCP
 TCP ofrece un servicio orientado a la conexión:
 Establecimiento de conexión:
Sincronización entre los dos extremos para iniciar un diálogo
fiable.
Negociación de parámetros de la conexión (número de secuencia
inicial, tamaño de ventana, tamaño máximo de segmento, etc).
 Transferencia de datos.
 Cierre de conexión:
Necesidad de realizar un cierre de conexión consensuado.
Liberación de los recursos reservados en el establecimiento.
 Para ello, utiliza un servicio de entrega (IP) no fiable !!.
 Los procesos de establecimiento y cierre DEBERÁN garantizar
aperturas y cierres correctos.
ArquitecturadeRedesyServiciosdeTelecomunicación
28
TCP: Establecimiento de una conexión
 Sincronización: Ambas partes deben ponerse de acuerdo
para que la comunicación sea posible
 Apertura pasiva: Uno de los extremos espera a que otro inicie la
conexión. Normalmente se utiliza un puerto “bien conocido”
(típicamente en aplicaciones servidor)
 Apertura activa: El otro extremo solicita establecer una
conexión. Normalmente utiliza un puerto asignado dinámicamente
(típicamente en aplicaciones cliente)
SYN x
Recibe SYN x
Envía SYN y
Conexión establecida.
Apertura activa
SEQ=x+1, ACK=y+1
A B
Conexión
establecida
Recibe SYN y
Apertura pasiva Protocolo a
dos bandas
ArquitecturadeRedesyServiciosdeTelecomunicación
29
El problema de los duplicados
 La existencia de temporizadores y el tiempo de respuesta
no acotado pueden causar duplicados.
 Cuando el duplicado pertenece a una conexión activa...
 Si es de establecimiento de conexión se descarta.
 Si es de datos sólo ocasiona problemas si los números de
secuencia se repiten.
 Para este último caso …
Tiempo de vida de los paquetes acotado (TTL).
Rango de números de secuencia elevado (232).
 Cuando el duplicado pertenece a una conexión anterior
cerrada...
 Si es de datos no ocasiona problemas.
Excepción  Nueva conexión con mismo identificador y número de
secuencia en ventana de recepción.
Solución  Elegir el número de secuencia inicial de forma aleatoria
 Si es de establecimiento de conexión, el protocolo a dos bandas
falla...
ArquitecturadeRedesyServiciosdeTelecomunicación
30
Protocolo a dos bandas.
SYN x
Recibe SYN x (dup. retrasado)
Envía SYN y
Conexión establecida.
Recibe SYN y
Se descarta
(detección duplicado)
A B
Envía SYN z
Conexión
establecida
Secuencias distintas
ArquitecturadeRedesyServiciosdeTelecomunicación
31
Protocolo a tres bandas
 Para eliminar el problema, cada extremo debe distinguir
de forma inequívoca los duplicados retrasados de
conexiones anteriores
 Solución adoptada:
 Protocolo a tres bandas:
Sincroniza ambos extremos discriminando los duplicados
retrasados, mediante el uso de reconocimientos de los números
de secuencia iniciales que ambos extremos han seleccionado.
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
ArquitecturadeRedesyServiciosdeTelecomunicación
32
Protocolo a tres bandas (duplicado retrasado)
duplicado
retrasado
Envía SYN y,
ACK x+1
Envía RST,
ACK y+1
Recibe
rechazo de
conexión
SYN+ACK
SYN x
Envía RST,
ACK y+1
SYN+ACK
duplicado
retrasado
Envía SYN y,
ACK x+1
Recibe
rechazo de
conexión
SYN x
duplicado
retrasado
Datos x+1, ACK z
ArquitecturadeRedesyServiciosdeTelecomunicación
33
Cierre de una conexión TCP
 Cierre de conexión:
 Utiliza segmentos con el bit FIN activado.
 No pueden llevar datos
 Requieren números de secuencia:
Evitar entrega desordenada
 Protocolo a tres bandas modificado:
 Pretende conseguir un cierre ordenado.
 Cierre independiente de ambos sentidos.
 Tras recibir la solicitud de fin de conexión, aún se pueden
enviar datos pendientes, que serán aceptados en el otro
extremo.
ArquitecturadeRedesyServiciosdeTelecomunicación
34
Cierre de conexión: Protocolo a tres bandas
Recibe FIN
Envía num.sec=y ACK x+1
Recibe FIN+ACK
Envía ACK y+1
(Conexión cerrada)
(Informa a la aplicación)
Envía FIN
num.sec=x
Recibe ACK
Envía FIN, ACK x+1Recibe ACK
(Conexión cerrada)
ArquitecturadeRedesyServiciosdeTelecomunicación
35
Problemas en el cierre de una conexión
 No puede garantizarse un cierre ordenado:
 Siempre puede perderse el último mensaje (no reconocido).
 Ejemplo: El problema de los Generales Bizantinos.
 Solución de compromiso:
 Se utiliza un temporizador asociado al segmento FIN inicial y otro
para la espera del último reconocimiento (MSL)
 Conexión semi-abierta (host crashes):
 Un extremo cae (Ej.: perdida de alimentación), dejando todas sus
conexiones TCP abiertas.
 Solución: Uso de temporizadores que detectan periodos de
inactividad + intercambio de ACKs.
ArquitecturadeRedesyServiciosdeTelecomunicación
36
Problemas en el cierre de conexión: Ejemplos
FIN y, ACK x+1
activa temp.
Envía
ACK y+1
FIN+ACK
FIN x
.
.
.
.
(t.o.)
FIN x
Cierra la
conexión
FIN x
activa temp.
FIN y, ACK x+1
activa temp.
.
.
.
.
.
FIN x
Llega ACK
Cierra la conexión
.
.
.
.
(t.o.)
FIN x
activa temp.
FIN x
FIN y, ACK x+1
activa temp.
FIN+ACK
Envía
ACK y+1
ArquitecturadeRedesyServiciosdeTelecomunicación
37
Cierre abrupto de una conexión TCP
 No se emplea en condiciones normales.
 Se solicita mediante un segmento con el bit RST.
 El otro extremo cancela inmediatamente la conexión.
 Previa verificación de su secuencia y reconocimiento.
 TCP informa también a la aplicación.
 RST aborta la conexión en ambos extremos
 Cesa inmediatamente la comunicación en ambos sentidos.
 Se liberan los recursos asociados.
ArquitecturadeRedesyServiciosdeTelecomunicación
38
Máquina de estados TCP
open
pasivo
syn/syn+ack
close/fin
ack/
ack/
syn/syn+ack
close/fin
ack/
fin/ack
fin/ack
CLOSED
LISTEN
SYN_RCVD
ESTABLISHED
FIN_WAIT_1
FIN_WAIT_2
CLOSING
TIME_WAIT
SYN_SENT
CLOSE_WAIT
LAST_ACK
ArquitecturadeRedesyServiciosdeTelecomunicación
39
Conclusiones sobre TCP (I)
 Protocolo más complejo que los anteriores.
 Servicio de transferencia de datos fiable y ordenado:
 Corrige las pérdidas de paquetes:
 Reconocimientos positivos.
 Retransmisiones.
 Soluciona los duplicados:
 Números de secuencia.
 Tiempo de vida acotado en los datagramas.
 Control de flujo mediante ventana deslizante y notificación
de ventana.
 Control de congestión limitando el tamaño de la ventana
de transmisión.
ArquitecturadeRedesyServiciosdeTelecomunicación
40
Conclusiones sobre TCP (II)
 Distinción entre diferentes destinos en la misma máquina:
los puertos
 Establecimiento de conexión:
 segmentos SYN.
 protocolo a tres bandas.
 Liberación de ordenada de la conexión:
 segmentos FIN.
 protocolo a tres bandas.
 Liberación abrupta de la conexión:
 segmentos RST.

Más contenido relacionado

La actualidad más candente

Bidirectional Forwarding Detection (BFD)
Bidirectional Forwarding Detection (BFD) Bidirectional Forwarding Detection (BFD)
Bidirectional Forwarding Detection (BFD) KHNOG
 
Tema 2 Arquitectura De Redes
Tema 2 Arquitectura De RedesTema 2 Arquitectura De Redes
Tema 2 Arquitectura De Redesriveroloja
 
Ethernet protocol
Ethernet protocolEthernet protocol
Ethernet protocolTom Chou
 
Redes Cap6
Redes Cap6Redes Cap6
Redes Cap6CJAO
 
Synchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechSynchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechMapYourTech
 
Multicastingand multicast routing protocols
Multicastingand multicast routing protocolsMulticastingand multicast routing protocols
Multicastingand multicast routing protocolsIffat Anjum
 
Mpls Traffic Engineering ppt
Mpls Traffic Engineering pptMpls Traffic Engineering ppt
Mpls Traffic Engineering pptNitin Gehlot
 
IEEE standards 802.3.&802.11
IEEE standards 802.3.&802.11IEEE standards 802.3.&802.11
IEEE standards 802.3.&802.11Keshav Maheshwari
 
Coliciones y manejo de errores en una red
Coliciones y manejo de errores en una redColiciones y manejo de errores en una red
Coliciones y manejo de errores en una redlumartin120
 
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)Abdelkhalik Mosa
 
communication interfaces-Embedded real time systems
communication interfaces-Embedded real time systemscommunication interfaces-Embedded real time systems
communication interfaces-Embedded real time systemsRaghunath reddy
 
LTE paging.ppt
LTE paging.pptLTE paging.ppt
LTE paging.pptmravi423
 

La actualidad más candente (20)

Network layer tanenbaum
Network layer tanenbaumNetwork layer tanenbaum
Network layer tanenbaum
 
Bidirectional Forwarding Detection (BFD)
Bidirectional Forwarding Detection (BFD) Bidirectional Forwarding Detection (BFD)
Bidirectional Forwarding Detection (BFD)
 
Tema 2 Arquitectura De Redes
Tema 2 Arquitectura De RedesTema 2 Arquitectura De Redes
Tema 2 Arquitectura De Redes
 
Ethernet protocol
Ethernet protocolEthernet protocol
Ethernet protocol
 
Ethernet Frames Explained
Ethernet Frames ExplainedEthernet Frames Explained
Ethernet Frames Explained
 
Mpls
MplsMpls
Mpls
 
Redes Cap6
Redes Cap6Redes Cap6
Redes Cap6
 
ACL
ACLACL
ACL
 
Synchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechSynchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtech
 
Multicastingand multicast routing protocols
Multicastingand multicast routing protocolsMulticastingand multicast routing protocols
Multicastingand multicast routing protocols
 
Mpls Traffic Engineering ppt
Mpls Traffic Engineering pptMpls Traffic Engineering ppt
Mpls Traffic Engineering ppt
 
Redes wman
Redes wmanRedes wman
Redes wman
 
IEEE standards 802.3.&802.11
IEEE standards 802.3.&802.11IEEE standards 802.3.&802.11
IEEE standards 802.3.&802.11
 
Rach procedure in lte
Rach procedure in lteRach procedure in lte
Rach procedure in lte
 
Cap3 mod3(sol)
Cap3 mod3(sol)Cap3 mod3(sol)
Cap3 mod3(sol)
 
Coliciones y manejo de errores en una red
Coliciones y manejo de errores en una redColiciones y manejo de errores en una red
Coliciones y manejo de errores en una red
 
TCP timers.ppt
TCP timers.pptTCP timers.ppt
TCP timers.ppt
 
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)
LAN Switching and Wireless: Ch4 - VLAN Trunking Protocol (VTP)
 
communication interfaces-Embedded real time systems
communication interfaces-Embedded real time systemscommunication interfaces-Embedded real time systems
communication interfaces-Embedded real time systems
 
LTE paging.ppt
LTE paging.pptLTE paging.ppt
LTE paging.ppt
 

Destacado

Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Héctor Garduño Real
 
Protocolos de la capa de transportes
Protocolos de la capa de transportesProtocolos de la capa de transportes
Protocolos de la capa de transportesLarry Ruiz Barcayola
 
Capítulo 4.1 funciones de la capa de transporte
Capítulo 4.1 funciones de la capa de transporteCapítulo 4.1 funciones de la capa de transporte
Capítulo 4.1 funciones de la capa de transporteIsabel Yepes
 
Capitulo 4: Capa de transporte del modelo OSI
Capitulo 4: Capa de transporte del modelo OSICapitulo 4: Capa de transporte del modelo OSI
Capitulo 4: Capa de transporte del modelo OSIOctavio
 
Protocolos de la capa de transporte
Protocolos de la capa de transporteProtocolos de la capa de transporte
Protocolos de la capa de transporteRicardo Sava
 

Destacado (7)

Direcciones de Internet
Direcciones de InternetDirecciones de Internet
Direcciones de Internet
 
Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes
 
Protocolos de la capa de transportes
Protocolos de la capa de transportesProtocolos de la capa de transportes
Protocolos de la capa de transportes
 
Capítulo 4.1 funciones de la capa de transporte
Capítulo 4.1 funciones de la capa de transporteCapítulo 4.1 funciones de la capa de transporte
Capítulo 4.1 funciones de la capa de transporte
 
Capitulo 4: Capa de transporte del modelo OSI
Capitulo 4: Capa de transporte del modelo OSICapitulo 4: Capa de transporte del modelo OSI
Capitulo 4: Capa de transporte del modelo OSI
 
MODELO OSI PDU
MODELO OSI PDUMODELO OSI PDU
MODELO OSI PDU
 
Protocolos de la capa de transporte
Protocolos de la capa de transporteProtocolos de la capa de transporte
Protocolos de la capa de transporte
 

Similar a PROTOCOLO TCP

Información extra redes
Información extra redesInformación extra redes
Información extra redesNicolas Laverde
 
Lecture 22 control de flujo dll
Lecture 22 control de flujo dllLecture 22 control de flujo dll
Lecture 22 control de flujo dllnica2009
 
Establecimiento de la conexion
Establecimiento de la conexionEstablecimiento de la conexion
Establecimiento de la conexionadjaes
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporteMarialeo90
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Capa de transporte del protocolo tcp ip
Capa de transporte del protocolo tcp ipCapa de transporte del protocolo tcp ip
Capa de transporte del protocolo tcp ippaulandream
 
T C P Ilegitimo
T C P  IlegitimoT C P  Ilegitimo
T C P IlegitimoDanica M
 
Comunicaciones miguel montoya
Comunicaciones miguel montoyaComunicaciones miguel montoya
Comunicaciones miguel montoyaMiguel Montoya
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suquiCarlos Suqui
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4ing_jlcarrillo
 

Similar a PROTOCOLO TCP (20)

Transport layer 4
Transport layer 4Transport layer 4
Transport layer 4
 
Información extra redes
Información extra redesInformación extra redes
Información extra redes
 
TCP Veno with Forward ACK
TCP Veno with Forward ACKTCP Veno with Forward ACK
TCP Veno with Forward ACK
 
Capa4
Capa4Capa4
Capa4
 
Redes Lan
Redes LanRedes Lan
Redes Lan
 
Lecture 22 control de flujo dll
Lecture 22 control de flujo dllLecture 22 control de flujo dll
Lecture 22 control de flujo dll
 
Establecimiento de la conexion
Establecimiento de la conexionEstablecimiento de la conexion
Establecimiento de la conexion
 
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
 
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 del protocolo tcp ip
Capa de transporte del protocolo tcp ipCapa de transporte del protocolo tcp ip
Capa de transporte del protocolo tcp ip
 
T C P Ilegitimo
T C P  IlegitimoT C P  Ilegitimo
T C P Ilegitimo
 
Comunicaciones miguel montoya
Comunicaciones miguel montoyaComunicaciones miguel montoya
Comunicaciones miguel montoya
 
Dispositivos de expancion
Dispositivos de expancionDispositivos de expancion
Dispositivos de expancion
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suqui
 
Presentación1
Presentación1Presentación1
Presentación1
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4
 

Último

NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILProblemSolved
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 

Último (20)

NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 

PROTOCOLO TCP

  • 1. Arquitectura de Redes y Servicios de Telecomunicación (ARST) Introducción Puertos y conexiones Control de flujo. Recuperación de errores Control de congestión Formato de un segmento TCP Establecimiento y cierre de una conexión Conclusiones Tema 3: El protocolo TCPTema 3: El protocolo TCP Bibliografía [COM06] “Internetworking with TCP/IP”, Cap. 12.
  • 2. ArquitecturadeRedesyServiciosdeTelecomunicación 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. ArquitecturadeRedesyServiciosdeTelecomunicación 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. ArquitecturadeRedesyServiciosdeTelecomunicación 4 Puertos y conexiones  Asignación de puertos estática o dinámica  Se puede utilizar el mismo puerto para TCP y UDP host A server B source port: x dest. port: 23 source port:23 dest. port: x port use: simple telnet app Web client host A Web server B Web client host C Source IP: C Dest IP: B source port: x dest. port: 80 Source IP: C Dest IP: B source port: y dest. port: 80 port use: Web server Source IP: A Dest IP: B source port: x dest. port: 80
  • 5. ArquitecturadeRedesyServiciosdeTelecomunicación 5 Control de flujo. Recuperación de errores  Unidad de datos TCP: segmento  Control de flujo extremo a extremo mediante ventana deslizante (protocolos punto-a-punto pipeline)  La Parada y Espera puede resultar muy poco eficiente  Tamaño máximo de la ventana de transmisión variable (puede ser cero)  Reconocimientos a nivel de octetos y no de segmentos  Conexión TCP full-duplex  Dos flujos de datos independientes (4 ventanas)  Se permite el empleo de datos urgentes, que no están sujetos al control de flujo
  • 6. ArquitecturadeRedesyServiciosdeTelecomunicación 6 TCP: Números de secuencia y reconocimientos  Números de secuencia:  Número de secuencia del primer octeto en el campo de datos del segmento  Reconocimientos:  Número de secuencia del siguiente byte que se espera recibir  ACKs acumulativos  ¿Cómo se procesan los segmentos fuera de orden?  TCP no especifica lo que hay que hacer  decisión de implementación. Host A Host B Usuario pulsa ‘C’ host ACKs La recepción del echo ‘C’ host ACKs ‘C’, devuelve el echo ‘C’ tiempo Aplicación telnet
  • 7. ArquitecturadeRedesyServiciosdeTelecomunicación 7 TCP: Algoritmo simplificado 00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number 02 03 loop (forever) { 04 switch(event) 05 event: data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compute new timeout interval for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y > sendbase) { /* cumulative ACK of all data up to y */ 16 cancel all timers for segments with sequence numbers < y 17 sendbase = y 18 } 19 else { /* a duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y == 3) { 22 /* TCP fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 26 } /* end of loop forever */  Versión simplificada del emisor TCP  NO se considera control de flujo ni control de congestión.  Transferencia en un único sentido
  • 8. ArquitecturadeRedesyServiciosdeTelecomunicación 8 TCP: Generación de segmentos ACK [RFC 1122, RFC 2581] Evento Llegada en orden de un segmento, no hay huecos, Todo está previamente reconocido Llegada en orden de un segmento, no hay huecos, Existe un ACK retrasado pendiente Llegada fuera de orden de segmento, Seq # mayor que el esperado Hueco detectado Llegada de un segmento que Parcial o completamente llena el hueco Acción en el receptor TCP ACK retrasado  Espera 500ms al siguiente segmento. Si no se genera, envía ACK Enviar inmediatamente un ACK acumulativo. Envío de un ACK duplicado, indicando El número de secuencia esperado Envío inmediato de un ACK, si el segmento comienza en la parte baja del hueco
  • 9. ArquitecturadeRedesyServiciosdeTelecomunicación 9 TCP: Retransmisiones Host A loss timeout time Pérdida de ACK Host B X Host A Seq=92timeout time Timeout prematuro, ACK acumulativo Host B Seq=100timeout  Las retransmisiones pueden originar duplicados  Detección: Números de secuencia de los segmentos  La duración del temporizador es crítica  Temporizador independiente para cada segmento
  • 10. ArquitecturadeRedesyServiciosdeTelecomunicación 10 TCP: Control de flujo  Receptor: Informa explícitamente al emisor de la cantidad de espacio libre que dispone en el buffer  Campo RcvWindow (ventana RX) de la cabecera TCP  Emisor: Mantiene la cantidad de datos enviados pendientes de reconocimiento por debajo de la indicación más reciente de RcvWindow Buffer del receptor RcvBuffer = Tamaño del buffer TCP del receptor RcvWindow = Cantidad de espacio libre en el buffer Control de flujo  El emisor no enviará más datos de los que el receptor pueda procesar en cada momento.
  • 11. ArquitecturadeRedesyServiciosdeTelecomunicación 11 TCP: Un ejemplo de Control de flujo. Este es el Texto a Transmitir Byte: 1 6 24 Ventana de transmisión es el Texto a TransSeq=6, Tam=19 Este es el Texto a Transmitir por Internet Byte: 1 6 24 25 35 Ventana de transmisión <datos > Ack=25, Win=11
  • 12. ArquitecturadeRedesyServiciosdeTelecomunicación 12 TCP: Temporizadores y retransmisión  Q: ¿Qué valor elegimos para el temporizador de un segmento TCP?  Mayor que el RTT Ojo: En Internet, el RTT (Round Trip Time) no es estable a lo largo de una conexión TCP  Si se elige un Timeout demasiado corto  Timeouts prematuros Retransmisiones innecesarias  Si se elige un Timeout demasiado largo  Lenta reacción a los segmentos perdidos.  Q: ¿Cómo se estima el valor del RTT?  RTT_medido: Tiempo transcurrido desde el envío de un segmento hasta que se recibe su ACK No se tienen en cuenta retransmisiones y ACKs acumulados  Ya que RTT_medido variará a lo largo de la conexión, se propone obtener una estimación promediada del RTT Basada en el historial reciente de medidas, y no sólo en la muestra actual de RTT.
  • 13. ArquitecturadeRedesyServiciosdeTelecomunicación 13 RTT_estimado = (1-α)*RTT_estimado + α*RTT_medido  Estimación del RTT  Media móvil ponderada  La influencia de un muestra se reduce rápida y exponencialmente  Valor recomendado para α=0.1  Cálculo del valor del Timeout  RTT_estimado más un “margen de seguridad”  Cuanto más grande sea la variación del RTT_estimado mayor margen de seguridad deberíamos establecer. Timeout = RTT_estimado + 4*Deviation Deviation = (1-β)*Deviation + β*|RTT_medido-RTT_estimado| TCP: Temporizadores y retransmisión (I)
  • 14. ArquitecturadeRedesyServiciosdeTelecomunicación 14 TCP: Temporizadores y retransmisión (II)  Cuando se transmite el mismo segmento varias veces, al recibir su reconocimiento, resulta imposible determinar a cuál de las copias enviadas corresponde  Esto origina problemas a la hora de establecer el intervalo de timeout  Si el reconocimiento se asocia al primer segmento enviado, el temporizador tenderá a crecer mucho si la red continúa perdiendo datagramas  Si el reconocimiento se asocia con el último segmento enviado, tendremos problemas cuando el retardo extremo a extremo aumente de forma súbita. El t.o. será demasiado pequeño.
  • 15. ArquitecturadeRedesyServiciosdeTelecomunicación 15 TCP: Temporizadores y retransmisión (III)  Solución (Algoritmo de Karn):  Diferenciar en la estimación del valor del temporizador los segmentos transmitidos una única vez de los procedentes de un retransmisión.  Cuando se produce la pérdida de un segmento se ignora su RTT, y se emplea una estrategia back-off  Nuevo_timeout = g * timeout, (generalmente g = 2)  Cuando se transmite un segmento con éxito en el primer intento  se toma su RTT como estimación válida y deja de aplicarse el back-off.
  • 16. ArquitecturadeRedesyServiciosdeTelecomunicación 16 TCP: Control de congestión (I)  La congestión aparece por una sobrecarga en los nodos de conmutación (ej. routers) de una red  Pérdida de paquetes (desbordamiento de los buffers en los routers)  Incremento de los retardos de los paquetes (almacenamiento en colas)  Lo que provoca un incremento en las retransmisiones, que no hacen más que agravar la situación.  Control de congestión ≠ Control de flujo.  TCP puede ayudar a solucionar la congestión, reduciendo la inyección de segmentos en la red.  El estándar actual recomienda dos técnicas, relacionadas y fáciles de implementar:  Slow-start y…  Congestion avoidance.
  • 17. ArquitecturadeRedesyServiciosdeTelecomunicación 17 Control de congestión (II)  Se define una ventana de congestión que regulará el caudal de salida de TCP.  Esta ventana, afecta al tamaño real de la ventana de transmisión, resultando que:  ven_txon_permitida = min (ventana_recepción, ventana_congestión)  Durante el funcionamiento normal (libre de congestión) se cumple que:  Ventana_congestión = Ventana_recepción (determinada por el control de flujo).  El indicio de congestión se detecta por la pérdida de paquetes (vencimiento timeout):  En ese caso se utilizará la ventana de congestión para reducir la ventana de transmisión  Además, para aquellos segmentos que permanecen en la ventana permitida, se aumenta el intervalo de timeout exponencialmente (back-off)  Algoritmo de Karn.
  • 18. ArquitecturadeRedesyServiciosdeTelecomunicación 18 TCP: Control de congestión  Slowstart  Incremento exponencial (por RTT) en el tamaño de la ventana (no es lento!)  Evento de pérdida:  Timeout (Tahoe TCP) y/o tres ACKs duplicados (Reno TCP) Init: Congwin = 1 Para (cada segmento ACKed) Congwin++ hasta (evento de pérdida OR CongWin > threshold) Algoritmo Slowstart Host A RTT Host B tiempo Inicialmente, “threshold” igual a la mitad de la ventana de recepción.
  • 19. ArquitecturadeRedesyServiciosdeTelecomunicación 19 TCP: Control de congestión  Congestion avoidance /* slowstart terminado */ /* CongWin > threshold */ Hasta (evento de pérdida) { Cada w segmentos ACKed: CongWin++ } threshold = CongWin/2 Go to slowstart Congestion avoidance 1 1: TCP Reno no realiza slowstart (fast recovery) después de recibir tres ACKs duplicados  AIMD: Additive Increase, Multiplicative Decrease  Incrementa CongWin en 1 por cada RTT  Divide por 2 el valor del Threshold cuando se detecta una pérdida
  • 20. ArquitecturadeRedesyServiciosdeTelecomunicación 20 Encapsulado de mensajes TCP Cabecera de la trama Cabecera del datagrama Campo de datos de la trama Cabecera TCP datos TCP Campo de datos del datagrama
  • 21. ArquitecturadeRedesyServiciosdeTelecomunicación 21 Formato de un segmento TCP (I) Puerto TCP origen Puerto TCP destino checksum puntero a datos urgentes longc reservado código ventana Número de secuencia Número de reconocimiento 0 4 10 16 24 31 opciones (Ej.: MSS) relleno DATOS cabecera
  • 22. ArquitecturadeRedesyServiciosdeTelecomunicación 22 Formato de un segmento TCP (II)  Cada segmento TCP se divide en: Cabecera y datos.  Puerto fuente y puerto destino identifican a las aplicaciones, en los dos extremos de la conexión.  Número de secuencia identifica la secuencia del primer octeto de datos del segmento en el flujo de datos del emisor.  Número de reconocimiento indica cual es el siguiente octeto de datos que se espera recibir.  Es válido si el bit ACK (campo código) está activo.  La longitud de la cabecera (longc) se expresa en palabras de 32 bits.
  • 23. ArquitecturadeRedesyServiciosdeTelecomunicación 23 Formato de un segmento TCP (III)  El campo ventana indica el tamaño del buffer del receptor (control de flujo).  Determina el tamaño de la ventana de transmisión.  El cheksum se utiliza para la detección de errores.  Se aplica a todo el segmento (cabecera+datos).  Su cálculo es idéntico al de UDP (pseudo-cabecera).  Las opciones permiten negociar algunos parámetros entre los TCPs de ambos extremos.  Ejemplo: Tamaño máximo de segmento (MSS) durante el establecimiento de conexión.
  • 24. ArquitecturadeRedesyServiciosdeTelecomunicación 24 Formato de un segmento TCP (IV)  El campo reservado no se utiliza.  Los bits de código determinan el tipo de segmento y el significado de algunos de sus campos. bit (de izquierda a derecha) Significado si está a uno URG El puntero a datos urgentes es válido ACK El campo de reconocimiento es válido PSH Este segmento solicita una operación PUSH RST Cancelar la conexión SYN Establecimiento de conexión FIN El emisor llegó al final de su secuencia de datos
  • 25. ArquitecturadeRedesyServiciosdeTelecomunicación 25 TCP: Datos urgentes  No siguen la secuencia de los datos “normales”  Se avisa al receptor de su llegada, independientemente de los datos que haya en cola  Tienen interés para indicar situaciones de excepción  Ejemplo: Abortar programas en una terminal remota  Después de haber leído todos los datos urgentes, la aplicación vuelve al modo normal de funcionamiento  Los detalles de cómo TCP informa a la aplicación de la presencia de datos urgentes dependen del S.O.  Los datos urgentes viajan entre los datos de un segmento  El puntero de datos urgentes indica dónde finalizan
  • 26. ArquitecturadeRedesyServiciosdeTelecomunicación 26 TCP: Función de carga (PUSH)  TCP elige la distribución de los datos de aplicación en segmentos  Por razones de eficiencia suele acumular un número razonable de octetos antes de un envío  Esto a veces penaliza el buen funcionamiento de una aplicación.  Ejemplo: Terminal remota (TELNET).  Para obligar a TCP a enviar inmediatamente los datos acumulados  Operación PUSH  La aplicación puede solicitar la transmisión del buffer TCP actual.  En la mayoría de las implementaciones, es un parámetro de la conexión.  Los datos se transmiten sin esperar al MSS.  El segmento generado lleva el bit push a 1  Asimismo, en recepción el TCP debe entregar los datos a la aplicación lo antes posible.  Por ejemplo, sin respetar el tamaño de buffer de recepción.
  • 27. ArquitecturadeRedesyServiciosdeTelecomunicación 27 Establecimiento y cierre de una conexión TCP  TCP ofrece un servicio orientado a la conexión:  Establecimiento de conexión: Sincronización entre los dos extremos para iniciar un diálogo fiable. Negociación de parámetros de la conexión (número de secuencia inicial, tamaño de ventana, tamaño máximo de segmento, etc).  Transferencia de datos.  Cierre de conexión: Necesidad de realizar un cierre de conexión consensuado. Liberación de los recursos reservados en el establecimiento.  Para ello, utiliza un servicio de entrega (IP) no fiable !!.  Los procesos de establecimiento y cierre DEBERÁN garantizar aperturas y cierres correctos.
  • 28. ArquitecturadeRedesyServiciosdeTelecomunicación 28 TCP: Establecimiento de una conexión  Sincronización: Ambas partes deben ponerse de acuerdo para que la comunicación sea posible  Apertura pasiva: Uno de los extremos espera a que otro inicie la conexión. Normalmente se utiliza un puerto “bien conocido” (típicamente en aplicaciones servidor)  Apertura activa: El otro extremo solicita establecer una conexión. Normalmente utiliza un puerto asignado dinámicamente (típicamente en aplicaciones cliente) SYN x Recibe SYN x Envía SYN y Conexión establecida. Apertura activa SEQ=x+1, ACK=y+1 A B Conexión establecida Recibe SYN y Apertura pasiva Protocolo a dos bandas
  • 29. ArquitecturadeRedesyServiciosdeTelecomunicación 29 El problema de los duplicados  La existencia de temporizadores y el tiempo de respuesta no acotado pueden causar duplicados.  Cuando el duplicado pertenece a una conexión activa...  Si es de establecimiento de conexión se descarta.  Si es de datos sólo ocasiona problemas si los números de secuencia se repiten.  Para este último caso … Tiempo de vida de los paquetes acotado (TTL). Rango de números de secuencia elevado (232).  Cuando el duplicado pertenece a una conexión anterior cerrada...  Si es de datos no ocasiona problemas. Excepción  Nueva conexión con mismo identificador y número de secuencia en ventana de recepción. Solución  Elegir el número de secuencia inicial de forma aleatoria  Si es de establecimiento de conexión, el protocolo a dos bandas falla...
  • 30. ArquitecturadeRedesyServiciosdeTelecomunicación 30 Protocolo a dos bandas. SYN x Recibe SYN x (dup. retrasado) Envía SYN y Conexión establecida. Recibe SYN y Se descarta (detección duplicado) A B Envía SYN z Conexión establecida Secuencias distintas
  • 31. ArquitecturadeRedesyServiciosdeTelecomunicación 31 Protocolo a tres bandas  Para eliminar el problema, cada extremo debe distinguir de forma inequívoca los duplicados retrasados de conexiones anteriores  Solución adoptada:  Protocolo a tres bandas: Sincroniza ambos extremos discriminando los duplicados retrasados, mediante el uso de reconocimientos de los números de secuencia iniciales que ambos extremos han seleccionado. 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. ArquitecturadeRedesyServiciosdeTelecomunicación 32 Protocolo a tres bandas (duplicado retrasado) duplicado retrasado Envía SYN y, ACK x+1 Envía RST, ACK y+1 Recibe rechazo de conexión SYN+ACK SYN x Envía RST, ACK y+1 SYN+ACK duplicado retrasado Envía SYN y, ACK x+1 Recibe rechazo de conexión SYN x duplicado retrasado Datos x+1, ACK z
  • 33. ArquitecturadeRedesyServiciosdeTelecomunicación 33 Cierre de una conexión TCP  Cierre de conexión:  Utiliza segmentos con el bit FIN activado.  No pueden llevar datos  Requieren números de secuencia: Evitar entrega desordenada  Protocolo a tres bandas modificado:  Pretende conseguir un cierre ordenado.  Cierre independiente de ambos sentidos.  Tras recibir la solicitud de fin de conexión, aún se pueden enviar datos pendientes, que serán aceptados en el otro extremo.
  • 34. ArquitecturadeRedesyServiciosdeTelecomunicación 34 Cierre de conexión: Protocolo a tres bandas Recibe FIN Envía num.sec=y ACK x+1 Recibe FIN+ACK Envía ACK y+1 (Conexión cerrada) (Informa a la aplicación) Envía FIN num.sec=x Recibe ACK Envía FIN, ACK x+1Recibe ACK (Conexión cerrada)
  • 35. ArquitecturadeRedesyServiciosdeTelecomunicación 35 Problemas en el cierre de una conexión  No puede garantizarse un cierre ordenado:  Siempre puede perderse el último mensaje (no reconocido).  Ejemplo: El problema de los Generales Bizantinos.  Solución de compromiso:  Se utiliza un temporizador asociado al segmento FIN inicial y otro para la espera del último reconocimiento (MSL)  Conexión semi-abierta (host crashes):  Un extremo cae (Ej.: perdida de alimentación), dejando todas sus conexiones TCP abiertas.  Solución: Uso de temporizadores que detectan periodos de inactividad + intercambio de ACKs.
  • 36. ArquitecturadeRedesyServiciosdeTelecomunicación 36 Problemas en el cierre de conexión: Ejemplos FIN y, ACK x+1 activa temp. Envía ACK y+1 FIN+ACK FIN x . . . . (t.o.) FIN x Cierra la conexión FIN x activa temp. FIN y, ACK x+1 activa temp. . . . . . FIN x Llega ACK Cierra la conexión . . . . (t.o.) FIN x activa temp. FIN x FIN y, ACK x+1 activa temp. FIN+ACK Envía ACK y+1
  • 37. ArquitecturadeRedesyServiciosdeTelecomunicación 37 Cierre abrupto de una conexión TCP  No se emplea en condiciones normales.  Se solicita mediante un segmento con el bit RST.  El otro extremo cancela inmediatamente la conexión.  Previa verificación de su secuencia y reconocimiento.  TCP informa también a la aplicación.  RST aborta la conexión en ambos extremos  Cesa inmediatamente la comunicación en ambos sentidos.  Se liberan los recursos asociados.
  • 38. ArquitecturadeRedesyServiciosdeTelecomunicación 38 Máquina de estados TCP open pasivo syn/syn+ack close/fin ack/ ack/ syn/syn+ack close/fin ack/ fin/ack fin/ack CLOSED LISTEN SYN_RCVD ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 CLOSING TIME_WAIT SYN_SENT CLOSE_WAIT LAST_ACK
  • 39. ArquitecturadeRedesyServiciosdeTelecomunicación 39 Conclusiones sobre TCP (I)  Protocolo más complejo que los anteriores.  Servicio de transferencia de datos fiable y ordenado:  Corrige las pérdidas de paquetes:  Reconocimientos positivos.  Retransmisiones.  Soluciona los duplicados:  Números de secuencia.  Tiempo de vida acotado en los datagramas.  Control de flujo mediante ventana deslizante y notificación de ventana.  Control de congestión limitando el tamaño de la ventana de transmisión.
  • 40. ArquitecturadeRedesyServiciosdeTelecomunicación 40 Conclusiones sobre TCP (II)  Distinción entre diferentes destinos en la misma máquina: los puertos  Establecimiento de conexión:  segmentos SYN.  protocolo a tres bandas.  Liberación de ordenada de la conexión:  segmentos FIN.  protocolo a tres bandas.  Liberación abrupta de la conexión:  segmentos RST.