Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 TCP v2 Old
2 TCP v2 Old
TCP AVANZADO
NDICE
1. Introduccin. 2. Establecimiento y finalizacin de la conexin. 3. Flujo de datos interactivo. 4. Flujo de datos masivo. 5. Timeouts y retransmisiones. 6. Temporizador persistente. 7. Temporizador keepalive. 8. Futuro y prestaciones.
BIBLIOGRAFA
Bsica:
W. R. Stevens: "TCP/IP Illustrated Vol.1 The protocols". Prentice Hall, 1994. (Chapter 17 Chapter 24). D.E. Comer: "Internetworking with TCP/IP vol I.", 4 Ed., Prentice Hall, 2000. Andrew S. Tanenbaum: "Computer Networks", 3 Ed., Prentice Hall International, 1996.
Complementaria:
A. Rodrguez, J. Gatrell, J. Karas, R. Peschke: "TCP/IP Tutorial and Technical Overview", 7 Ed, IBM Redbooks, 2001.
W. Stallings. High-speed networks: TCP/IP and ATM design principles.Prentice Hall, 1998.
RFCs:
RFC 793: Transmission Control Protocol.1981.
NDICE
1. Introduccin:
A. Definicin. B. Formato segmento TCP. C. Campos cabecera segmento TCP.
Definicin
TCP es un protocolo orientado a conexin que proporciona un servicio de transporte fiable de un flujo de bytes entre aplicaciones:
Orientado a conexin previo al intercambio de datos los extremos (aplicaciones) tienen que establecer una conexin. Fiable garantiza la entrega ordenada del flujo de bytes entre los extremos de la conexin. Flujo de bytes por la conexin se transmite un flujo de bytes.
Definicin: fiabilidad
TCP divide los datos pasados por las aplicaciones en bloques denominados segmentos TCP. TCP cuando enva un segmento establece un temporizador esperando asentimiento. TCP cuando recibe un segmento enva un asentimiento. TCP emplea un cdigo de redundancia (checksum) de su cabecera y datos. TCP reordena los datos si es necesario. TCP descarta paquetes duplicados. TCP proporciona control de flujo.
CABECERA IP
CABECERA TCP
DATOS APLICACIN
Datagrama IP
CABECERA ETHERNET CABECERA IP CABECERA TCP DATOS APLICACIN ETHERNET TRAILER
15 16
puerto destino (16 bits)
31
nmero de secuencia (32 bits) nmero de asentimiento (ACK) (32 bits) URG ACK PSH RST SYN FIN
20 octetos
Nmero de secuencia: posicin del primer octeto en el campo de datos en relacin con la secuencia original.
Campo de 32 bits rango entre 0 y 2-1. Si el flag SYN est activo, este campo contiene el nmero de secuencia inicial (n) y el primer octeto de datos es el n+1. El flag SYN consume un nmero de secuencia. Servicio full-duplex cada extremo de la conexin mantiene su nmero de secuencia de flujo de datos en esa direccin.
Cdigo de redundancia: campo obligatorio que debe ser calculado por el emisor y verificado por el receptor.
Incluye todo el segmento TCP, tanto cabecera como datos.
Puntero datos urgentes: indica el offset (positivo) que debe ser aadido al nmero de secuencia del segmento para obtener el nmero de secuencia del ltimo octeto de datos urgentes.
Slo es vlido si est activo el flag URG.
Datos:
Opcional.
NDICE
2. Establecimiento y finalizacin de la conexin:
A. B. C. D. Establecimiento conexin (three-way handshake). Finalizacin conexin. TCP Half-close. Tamao mximo del segmento (MSS - Maximun Segment Size). E. Estados de TCP. F. Apertura simultnea. G. Cierre simultneo.
Establecimiento conexin
Uso de three way handshake. Se emplea el bit SYN en la solicitud de conexin y SYN + ACK en la respuesta. La respuesta es a su vez confirmada con ACK. Se fija el nmero de secuencia inicial en ambas direcciones.
TCP 1 SYN (seq=x) ACK (seq=x+1,ack=y+1) RED 1 2 3 SYN (seq=y,ack=x+1) TCP 2
DATA (seq=x+1,ack=y+1)
Finalizacin conexin
Liberacin ordenada e independiente por cada uno de los sentidos de transmisin. El extremo que desea cesar de transmitir enva segmento con FIN, que debe ser confirmado por el corresponsal con FIN, ACK.
RED 1 2
3 ACK (seq=x+1,ack=y+1) 4
Ejemplo
srv4 % telnet bsdi discard Trying 192.82.148.3... Connected to it011.lab.it.uc3m.es. Escape character is '^]'. ^]
Flag
Abreviatura (3 carac.)
Descripcin Sincroniza nmeros de secuencia Emisor ha acabado de enviar datos Aborto conexin El segmento requiere envo y entrega inmediata Ninguno de los cuatro flags activos
S F R P .
0.002402 (0.0024)
0.007224 (0.0048)
4.155441 (4.1482)
4.156747 (0.0013)
4.158144 (0.0014)
4.180662 (0.0225)
Active close
Pasive close
FINALIZACIN 4 segmentos
FINALIZACIN
ESTABLECIMIENTO
TCP Half-Close
TCP, al establecer una conexin full-duplex, cada extremo puede finalizar la transmisin de datos de forma independiente. Pocas aplicaciones hacen uso de esta caracterstica.
TCP 1 aplicacin shutdown
FIN
RED
AC
l FI N K de OS DAT
aplicacin write
aplicacin read
ACK de D ATOS
aplicacin close
FIN
ACK de lF
IN
Ejemplo
sun % rsh bsdi sort < datafile
host sun host bdi conexin TCP
datafile entrada
rsh
sort
Programa sort en bdi no puede generar ninguna salida hasta que no haya recibido el fichero datafile. Cuando sun finaliza de transmistir el contenido del fichero realiza un half-close de la conexin TCP. El host bdi enva la salida de sort a sun y cuando finaliza cierra la conexin TCP.
Estados de TCP
Estado
CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT CLOSING CLOSE_WAIT LAST_ACK
Descripcion
No existe conexin activa ni pendiente El servidor est esperando por una conexin Una peticin de conexin ha llegado, espera ACK El cliente ha comenzado a abrir una conexin Estado de transferencia de datos El cliente ha dicho que ha acabado El servidor ha aceptado liberacin conexin Espera por paquetes pendientes (2MSL wait state) Ambos extremos han intentado cerrar la conexin simultneamente. Servidor ha iniciado liberacin conexin Espera por ACK del FIN
SYN (seq = x)
, SYN (seq = y ac k = x + 1 )
(ack = y + 1 )
LISTEN
(passive open)
SYN_RCVD
ESTABLISHED
ESTABLISHED
FIN_WAIT_1
(active close)
FIN (seq = m)
(ack = m+ 1 )
FIN_WAIT_2
CLOSE_WAIT
(passive close)
FIN (seq = n )
TIME_WAIT
LAST_ACK
(ack = n+1 )
CLOSED
Nomenclatura
transiciones habituales para el cliente transiciones habituales para el servidor appl: recv: send: indica transicin entre estados debida a operaciones de la aplicacin indica transicin entre estados debida a la recepcin de un segmento indica lo que se enva en esta transicin
simultaneous open
active open
IN d:F n e s
recv:FIN
CLOSE_WAIT
appl: close send: FIN
recv:FIN FIN_WAIT_1 CLOSING send:ACK re recv: ACK recv: ACK se cv: nd F send: <nothing> send: <nothing> I : AC N, A K CK
FIN_WAIT_2
recv:FIN send:ACK
active close
Hasta que no finalice este temporizador no se liberan el par de sockets de la conexin. Cada implementacin selecciona un valor de MSL (Maximun Segment Lifetime): tpicamente 2 minutos o 1 minuto o 30 segundos.
Resetting de conexiones
Se indica activando el flag RST. Normalmente generados automticamente por el software TCP. Cundo se activa el flag RST?
Llega un peticin de conexin y no existe un proceso servidor escuchando en el puerto destino. Llega un segmento TCP que no corresponde con ninguna conexin activa. Abortar una conexin a nivel aplicacin (en vez de enviar un FIN se enva un RST):
El receptor tira todos los datos pendientes de transmisin. No asiente el segmento RST. Se finaliza la conexin.
Apertura simultnea
Dos aplicaciones realizan un active open simultneamente. TCP est especialmente diseado para que en este caso slo se establezca una conexin NO dos conexiones (otros protocolos crean dos conexiones). La apertura de la conexin requiere el intercambio de 4 segmentos, NO 3.
TCP 1
(active open)
RED
SYN J
TCP 2
S YN K
SYN_SENT SYN_RCVD
SYN J,
ACK K
+1
, AC YN K
1 K J+
ESTABLISHED ESTABLISHED
Finalizacin simultnea
Dos aplicaciones realizan un active close simultneamente. En la finalizacin de la conexin se siguen intercambiando 4 segmentos.
TCP 1
(active close)
RED
FIN J
TCP 2
FIN K
FIN_WAIT_1 CLOSING
ACK K
+1
ACK
J+1
TIME_WAIT TIME_WAIT
NDICE
3. Flujo de datos interactivo: A. Entrada interactiva. B. Asentimientos retardados. C. Algoritmo de Nagle.
Medido en bytes:
~ 10% son datos interactivos. ~ 90% son flujo de datos masivo.
TCP tiene diferentes mecanismos para gestionar estos dos tipos de transferencia de datos.
Entrada interactiva
3. Enva eco del carcter y/o salida
2. Interpreta carcter
Aplicaciones de terminal remoto (ej. Telnet) envan cada carcter escrito por el usuario al servidor. El servidor interpreta el carcter y lo enva de nuevo al cliente. Podemos ver que por cada carcter se transmiten 3 segmentos TCP:
Cliente Servidor: incluyendo el carcter. Servidor Cliente: haciendo eco del carcter y asintiendo el segmento anterior. Cliente Servidor: asintiendo el segmento anterior.
Entrada interactiva
CLIENTE SERVIDOR
CARCTER
ACK DEL CA RCTER CTER
R ECO DEL CA
ACK DEL CA
RCTER EC O
CARCTER
DEL CARCT ER
ACK Y ECO
ACK DEL CA
RCTER EC O
Asentimientos retardados
Normalmente los ACKs no se envan inmediatamente despus de recibir datos. Un ACK se puede retardar:
Hasta que existan datos para enviar haca el otro extremo:
El ACK se incluye en el segmento de datos (ACK piggyback con los datos).
d a t e \n
(CR + LF)
2 3
4 5 6
P 1:2(1) ack 2 win 4096 P 2:3(1) ack 2 win 4096 . ack 3 win 4096
7 8 9
P 2:3(1) ack 3 win 4096 P 3:4(1) ack 3 win 4096 . ack 4 win 4096
10 11 12
P 3:4(1) ack 4 win 4096 P 4:5(1) ack 4 win 4096 . ack 5 win 4096
13 14 15
P 4:5(1) ack 5 win 4096 P 5:7(2) ack 5 win 4096 . ack 7 win 4096
prompt
srv4:~>
18 19 1.944338 (0.0042) 2.140110 (0.1958) srv4.login > bsdi.1023: bsdi.1023 > srv4.login: P 37:44(7) ack 5 win 4096 . ack 44 win 4096
Algoritmo de Nagle
El algoritmo de Nagle (RFC 896) plantea una solucin al problema siguiente:
En algunos casos, se envan pocos octetos de datos en cada segmento (tinygrams) y por lo tanto, se aumenta el sobrecarga debido a las cabeceras. Sin efecto en redes LAN, pero puede aumentar la congestin en redes WAN. Ejemplo anterior:
Cada octeto se enva en un datagrama IP de 41 octetos:
20 octetos de la cabecera IP. 20 octetos de la cabecera TCP. 1 octeto de datos.
Algoritmo de Nagle
El algoritmo de Nagle dice:
Una conexin TCP slo puede tener un segmento TCP pendiente de asentimiento. Mientras se espera el asentimiento se van acumulando los datos pendientes, que se enviarn juntos en el siguiente segmento.
vangogh.login
PSH 47:48(1) AC
0.197694 (0.1977) 0.232457 (0.0348) 0.437593 (0.2051) 0.464257 (0.0267) 0.677658 (0.2134) 0.707709 (0.0301) 7 5 3
WIN 4096
K 7, WIN 8192
PSH 48:49(1) AC
WIN 4095
K 9, WIN 8192
PSH 49:51(2) AC
WIN 4094
K 10, WIN 8192
PSH 51:52(1) AC
PSH 52:54(2) AC
10
NDICE
3. Flujo de datos masivo:
A. Flujo normal de datos. B. Mecanismo de control de flujo:
1. Ventana deslizante en TCP.
Los mecanismos de control de flujo previenen que el emisor sature al receptor con datos:
TCP emplea como mecanismo de control de flujo una ventana deslizante:
Permite que el emisor transmita varios paquetes antes de parar y esperar por un asentimiento pero sin saturar al receptor.
Los mecanismos de control de congestin previenen que el emisor sature la red con datos:
TCP emplea como mecanismos bsico de control de congestin slowstart (comienzo lento):
Permite que el emisor enve datos a la misma velocidad con la que se envan asentimientos desde el otro extremo.
2
enviado y asentido
10
11
no puede enviarse enviado, no asentido puede enviarse ASAP hasta ampliar la ventana
Ventana se cierra
1 2 3 4 5 6 7 8 9 10 11
10
11
10
11
Ventana se abre
El receptor abre la ventana cuando el buffer TCP se vaca (significa que los datos se han entregado a la aplicacin).
10
11
10
11
Ventana se encoge
En la RFC se recomienda fuertemente no encoger la ventana.
10
11
10
11
WIN
16 bits
La interpretacin es:
estoy preparado para recibir nuevos datos, desde seq=ack, ack+1,,ack+win-1.
El receptor puede asentir datos sin abrir la ventana. El receptor puede cambiar el tamao de la ventana sin asentir datos.
bsdi.7777
K 1, WIN 4096 ACK 1, WIN 4096 ACK 1, WIN 4096
1 2 3
4 5
PSH 3073:4097(1024)
10
PSH 7169:8193(1024)
12
0.066206 (0.0045)
bsdi.7777
5 6
4096
11 12
4096
Slow Start
Algoritmo que permite el control de la congestin, es decir, evita que el emisor sature la red:
En redes LAN la seleccin de parmetros de conexin es sencilla. En redes WAN pueden ocurrir dificultades cuando routers intermedios tienen paquetes encolados.
El emisor podr enviar tantos datos como el mnimo entre la ventana de congestin y la ventana anunciada. El crecimiento de la ventana de congestin normalmente se incrementa exponencialmente:
No es as si se envan ACK acumulados.
cwnd = 4
ento 2 ACK del segm ento 3 ACK del segm Segmento 4 Segmento 5 Segmento 6
Segmento 7
ento 4 ACK del segm to 5 en ACK del segm to 6 en gm ACK para se to 7 en gm ACK para se
cwnd = 8
vangogh.discard
1:513(512) ACK 1, WI N 4096
1.946065 (0.4786) 1.946709 (0.0006) 1.947350 (0.0006) 2.576084 (0.6287) 2.576294 (0.0002)
11 12
Flag PUSH
Notificacin del emisor al receptor para que el receptor pase inmediatamente los datos que ha recibido a la aplicacin receptora:
Todos los contenidos en el segmento con PUSH activo. Datos previos almacenados por TCP.
Inicialmente las aplicaciones podan indicar al stack TCP que activase el flag de PUSH para que los datos se enviaran de manera inmediata:
Pero la mayora de implementaciones actuales no soportan esta caracterstica a nivel API.
El extremo TCP receptor debe indicar la llegada de datos urgentes a la aplicacin receptora. Por qu se utiliza?:
Permite al extremo emisor enviar un segmento aunque el tamao de la ventana ofrecida sea cero.
Cundo se utiliza?:
Tecla de interrupcin para una conexin remota (rlogin, telnet). Interrumpir la transferencia de un fichero en FTP.
Arrancamos un cliente en la mquina sun, indicndole que va a utilizar un buffer de transmisin de 8192 octetos y que realice seis escrituras de 1024 octetos, e indicamos que enve un octeto de datos urgentes justo antes de realizar la quinta escritura (-U5 ):
sun % sock v i n6 S8192 U5 bsdi 5555
connected on 140.252.13.33.1305 a 140.252.13.35.5555 SO_SNDBUF = 8192 TCP_MAXSEG = 1024 wrote 1024 bytes wrote 1024 bytes wrote 1024 bytes wrote 1024 bytes wrote 1 bytes of urgent data wrote 1024 bytes wrote 1024 bytes
11 12
NDICE
4. Timeouts y retransmisiones:
A. Temporizadores en TCP. B. Retransmisiones y temporizador de retransmisin en TCP. C. Algoritmo de Karn/Partridge. D. Algoritmo para evitar la congestin (congestion avoidance). E. Fast recovery y Fast retransmit.
Temporizadores en TCP
TCP gestiona cuatro temporizadores por cada conexin:
Temporizador de retransmisin:
Permite retransmitir datos si no se recibe un asentimiento del receptor.
Temporizador persistente:
Permite el flujo de informacin del tamao de la ventana aunque el otro extremo haya cerrado la ventana anunciada.
Temporizador de keepalive:
Permite detectar cuando el otro extremo de la conexin se cae o se reinicializa.
Temporizador 2MSL:
Permite esperar un tiempo para garantizar que se cierra correctamente la conexin. Tiempo que permanece en el estado TIME_WAIT.
Retransmisiones en TCP
Se debe realizar control de errores porque:
Se pueden perder segmentos. Se pueden recibir segmentos errneos.
TCP emplea como esquema de retransmisin una versin de Go-Back-N ARQ (Automatic Repeat Request). TCP retransmite un segmento cuando asume que se ha perdido:
No se recibe asentimiento y vence el temporizador de retransmisin. Se reciben mltiples asentimientos para el mismo segmento.
Principal problema para establecer su valor es que los retardos en la red no son fijos:
RTO debe tener un valor variable y que se adapte dinmicamente a las condiciones de la red. Por lo tanto, va a estar basado en la medida de round-trip time (RTT) que realiza TCP.
ACK segmen
to 1
Segmento 2 Segmento 3
ACK seg mento 2 +3
S e g me
nto 4
Segmento 5
gmento 4 mento 5
srtt n +1 = RTT + (1 ) srtt n rtt var n +1 = ( RTT srtt n ) + (1 ) rtt var n RTO n +1 = srtt n +1 + 4 rtt var n +1
Siendo: rttvar estimador varianza de RTT. = 0.125 y = 0.25
Valores iniciales:
RTO0 = 6 seg ( srtt o = 0 seg. rtt var0 = 3seg.) ( RTO0 = srtt 0 + 2rtt var0 ) srtt1 = RTT + 0.5 rtt var1 = srtt1 / 2
Algoritmo de Karn/Partridge
Problema de ambigedad de los asentimientos:
Si se recibe un asentimiento de un segmento retransmitido, el emisor no sabe si el asentimiento corresponde al segmento original o al segmento retransmitido.
Algoritmo de Karn/Partridge:
Cada vez que TCP retransmite un segmento, se paran la medidas de RTT, hasta que se reciba un asentimiento asociado con un segmento no retransmitido:
Si es preciso se reutiliza el ltimo RTO.
Cada vez que se retransmite un segmento, el valor del RTO se establece de la forma siguiente (backoff exponencial):
Control de la congestin
La mayora de segmentos perdidos se deben a problemas de congestin en la red. Los mecanismos de retransmisin:
Valor de RTO en funcin del RTT. Backoff exponencial.
Algoritmos especficos:
Slow start [Jacobson 88]. Congestion avoidance [Jacobson 88]. Fast retransmit y fast recovery [Jacobson 90].
Congestion avoidance
Se considera que existe congestin cuando se pierden segmentos:
Vence el temporizador de retransmisin. Llegan asentimientos duplicados.
Se evita la congestin empleado los algoritmos de slow start y congestion avoidance juntos:
cwnd debe decrecer mucho cuando aumenta la congestin. cwnd debe crecer lentamente cuando la congestin mejora.
2. El emisor puede transmitir el mnimo entre ventana anunciada y ventana de congestin, es decir, ventana efectiva. 3. Si se detecta congestin:
stthresh = max(2 segmentos, ventana_efectiva/2). Si es debida a un timeout adems cwnd=1(segmento).
14 12 10 8 6 4 2 0
t= 0 t= 2 t= 4
Roundtrip times
Fast recovery evita entrar en modo slow start despus de un fast retransmit:
Motivo: si se reciben asentimientos es que fluyen los datos.
t= 6
NDICE
5. Temporizador persistente:
A. Sndrome de la ventana tonta (Silly window syndrome)
Temporizador persistente
En TCP puede ocurrir:
El receptor cierre la ventana ofrecida (tamao cero). El receptor enva un asentimiento para abrir la ventana pero este segmento se pierde. Como los asentimientos no se envan de forma fiable, podra darse una situacin de deadlock.
1 2 3 4 5 6 7 8 9 10 11 12 13
0.191961(0.1920) svr4.5555>bsdi.1027: 0.196950(0.0050) bsdi.1027>svr4.5555: 0.200340(0.0034) bsdi.1027>svr4.5555: 0.207506(0.0072) svr4.5555>bsdi.1027: 0.212676(0.0052) bsdi.1027>svr4.5555: 0.216113(0.0034) bsdi.1027>svr4.5555: 0.219997(0.0039) bsdi.1027>svr4.5555: 0.227882(0.0079) svr4.5555>bsdi.1027: 0.233012(0.0051) bsdi.1027>svr4.5555: 0.237014(0.0040) bsdi.1027>svr4.5555: 0.240961(0.0039) bsdi.1027>svr4.5555: 0.402143(0.1612) svr4.5555>bsdi.1027:
NOTA: Antes de cerrar la ventana acepta 9216 octetos es por motivos de implementacin del stack TCP/IP de svr4.
Solucin: ambos extremos tienen que evitar el silly window syndrome (SWS).
Consideraciones:
La condicin (b) aborda el problema de receptores que anuncian ventanas de tamao pequeo (menor que el MSS). Esta condicin slo se observa con host antiguos. La condicin (c) es el algoritmo de Nagle.
SWS: Ejemplo
Programa cliente, realiza 6 escrituras de 1024 octetos: sun% sock i n6 bsdi 7777 Programa servidor, se detiene 4 seg. despus de la primera escritura, y 2 seg. despus de cada una de las siguientes: bsdi% sock i s P4 p2 r256 7777 La aplicacin realiza lecturas de 256 octetos.
SWS: Ejemplo
Tiempo # segmento Enva TCP 0.000 0.002 0.003 0.005 0.170 3.99 5.151 5.17 5.99 7.99 9.99 10.151 10.170 11.99 13.99 8 9 4098:4099(1) ACK 4099, WIN 0 read 256 read 256 2818 2562 1278 1534 6 7 4097:4098(1) ACK 4098, WIN 0 read 256 read 256 read 256 3585 3329 3073 3074 511 767 1023 1022 1 2 3 4 5 1:1025(1024) 1025:2049(1024) 2049:3073(1024) 3073:4097(1024) ACK 4097, WIN 0 read 256 3840 3841 256 255 Accin Recibe TCP Aplicacin buffer receptor (4096) Datos 1024 2048 3072 4096 Disponible 3072 2048 1024 0
SWS: Ejemplo
Tiempo # segmento Enva TCP 15.151 15.170 15.172 15.730 15.99 17.99 19.99 20.151 20.170 21.99 23.99 25.151 25.170 25.171 25.174 16 17 18 19 FIN 5634:6145(511) ACK 6146,WIN 767 5633:5634(1) ACK 5634,WIN 1279 3328 768 14 15 5124:5633(509) ACK 5633, WIN 0 read 256 read 256 3072 2816 2817 1024 1280 1279 10 11 12 13 4100:5124(1024) ACK 5124,WIN 509 read 256 read 256 read 256 3331 3075 2819 3328 765 1021 1277 768 4099:4100(1) ACK 4100,WIN 1533 3587 509 Accin Recibe TCP Aplicacin buffer receptor (4096) Datos 2563 Disponible 1533
SWS: Ejemplo
Tiempo # segmento Enva TCP 25.99 27.99 29.99 31.99 33.99 35.99 37.99 39.99 39.99 41.99 43.99 45.99 47.99 49.99 51.99 20 ACK 6146, WIN 2816 read 256 read 256 read 256 read 256 read 256 read 256 (EOF) 1024 768 512 256 0 0 3072 3328 3584 3840 4096 4096 Accin Recibe TCP Aplicacin read 256 read 256 read 256 read 256 read 256 read 256 read 256 read 256 buffer receptor (4096) Datos 3072 2816 2560 2304 2048 1792 1536 1280 Disponible 1024 1280 1536 1792 2048 2304 2560 2816
SWS: Ejemplo
Segmento 6: Vence el temporizador de persistencia. Segmento 8: Vence el temporizador de persistencia. Segmento 10 y 11: Vence el temporizador de persistencia y se anuncia un tamao de ventana de 1533 (mayor que el MSS). Segmento 14: Se anuncia un tamao de ventana de 509 porque sino produciramos un estrechamiento de la ventana. Segmento 16 y 17: Vence el temporizador de persistencia y se anuncia un tamao de ventana de 1279 (mayor que el MSS). Segmento 19: FIN ocupa un nmero de secuencia y tambin un espacio en el buffer de recepcin. Segmento 20: Anuncia un nuevo tamao de ventana porque puede aumentarse en ms de la mitad del buffer del receptor (dependiente de la implementacin, podra enviarlo antes)
NDICE
6. Temporizador keepalive.
Temporizador de keepalive
Aunque no exista intercambio de datos no se cierra la conexin TCP (no existen mecanismos de polling). Se introduce en TCP el temporizador de keepalive para detectar inactividad en el otro extremo de la conexin. Algoritmo: si no existe actividad en dos horas, un extremo enva un segmento de prueba a otro extremo, puede ocurrir:
Responde normalmente se activa de nuevo el temporizador. No responde (cado, reinicializado, o no alcanzable) se envan hasta 10 segmentos de prueba cada 75 seg. antes de dar por finalizada la conexin. Se recibe un reset (cado o reinicializado) finaliza la conexin.
NDICE
7. Futuro y prestaciones.
Futuro y prestaciones
Modificaciones que mejoran las prestaciones de TCP:
Descubrimiento del MTU del camino (Path MTU Discovery). Opcin de escalado de la ventana. Opcin de sello temporal (timestamp).