Está en la página 1de 60

Redes de Ordenadores

0
Tema 5: Transporte TCP/IP
Redes de Ordenadores
La capa de transporte
Tema 5: Transporte TCP/IP - 1
Servicio de transporte de bits a las aplicaciones que se comunican
Una aplicacin toma la iniciativa y solicita servicios a la otra
~ CLIENTE / SERVIDOR
Solo existe en las entidades extremas nivel HOST-HOST
Unidad bsica de informacin : Mensaje (UDP) / Segmento (TCP)
Servicio orientado a conexin: garanta de entrega, sin error, prdida ni duplicacin
Servicio no orientado a conexin: sin confirmacin, de forma independiente
Tipo de protocolo Internet OSI
Nivel de red IP (Internet Protocol) CLNP (ConnectionLess
Network Protocol)
Routing interno OSPF (Open Shortest Path
First)
IS-IS ( Intermediate System to
Intermediate System)
Routing externo BGP (Border Gateway Protocol) IDRP (InterDomain Routing
Protocol)
Nivel de transporte, orientado a
conexin
TCP (Transmission Control
Protocol)
TP4 (Transport Protocol clase
4)
Nivel de transporte, no
orientado a conexin
UDP (User Datagram Protocol) TP0 (Transport Protocol clase
0)
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 2
La capa de transporte : Relacin entre
capas
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 3
La capa de transporte: TSAP
El TSAP (Transport Service
Access Point) es el punto
donde el nivel de aplicacin
accede al servicio del nivel
de transporte.
El TSAP permite multiplexar
en una sola instancia del
nivel de transporte mltiples
instancias del nivel de
aplicacin
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 4
Presentan en comn: Control de errores + Control de flujo
Enlace Transporte
Sistemas intermedios Un hilo fsico Una red
Retardo Depende del medio Mayor y variable (jitter)
Almacenamiento Reducido Elevado (routers)
Secuenciamiento Asegurado, salvo prdida En servicios orientados a la
conexin
Comunicacin Duplex permanente Indirecta
Direccionamiento Solo para broadcast Obligatorio
La capa de transporte: capa de enlace
???
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 5
TCP: Protocolo de Control de Transmisin
Servicio de transmisin orientado a la conexin
Flujo continuo de bytes durante la conexin
Unidad de informacin adecuada a IP : SEGMENTO
Reconocimientos temporizados
Retransmisin tras timeout
La verificacin del Checksum permite los descartes (sin
reconocimiento)
Asegura la reordenacin de los datos, indep. de los datagramas
IP
Control de flujo en funcin del espacio local de almacenamiento
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 6
Puerto
Aplicacin Descripcin
9 Discard Descarta todos los datos recibidos
19 Chargen Intercambia cadenas de caracteres
20 FTP-Data Transferencia de datos FTP
21 FTP Dilogo en transferencia de ficheros
23 TELNET Logon remoto
25 SMTP Correo electrnico
110 POP3 Servidor de correo
119 NNTP News
Dir. IP Host 1 + port Host 1 + Dir. IP Host 2 + port Host 2
Una conexin a nivel de transporte
queda definida por la combinacin:
N puerto: 0..65535
Well-known ports (0..1023)
RFC 1700 (Assigned Internet
Numbers)
TCP: Conexin a travs de puertos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 7
Ejm.: 5 ventanas de navegador en el equipo 134.123.1.2 con
pgina de inicio el site del equipo 221.198.34.21:
( 134. 123. 1. 2, 1024) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1025) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1026) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1030) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1031) con ( 221. 198. 34. 21, 80)
Asignacin de puertos por orden de llegada
Cliente Servidor
Servidor Web
( 134. 123. 1. 2, 1024) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 3, 1024) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1025) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 3, 1025) con ( 221. 198. 34. 21, 80)
( 134. 123. 1. 2, 1030) con ( 221. 198. 34. 21, 80)
Con dos interfaces fsicas
... Incluso los datagramas UDP pueden reutilizar los puertos !!!
TCP: Direccin IP + Puerto = Socket
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 8
Aplicacin
Envo de corriente de datos contnua
TCP
Fragmentacin de la stream
IP
Fragmentacin los segmentos
Acceso a la red
Fragmentacin los datagramas
Aplicacin
Envo de corriente de datos contnua
TCP
Fragmentacin de la stream
IP
Fragmentacin los segmentos
Acceso a la red
Fragmentacin los datagramas
Bits
Datagramas
Segmentos
Streams
TCP: Unidad de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 9
20 octetos (sin opciones)
N secuencia: posicin del 1er octeto de cada segmento en la secuencia
de la conexin
----- el flag SYN inicia la conexin con un n se secuencia inicial
(NSI)
N reconocimiento: N de secuencia del siguiente octeto que se espera
recibir
----- el flag ACK debe estar activado
Longitud de cabecera: va desde 20 hasta 60 octetos
TCP: Formato del segmento
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 10
URG (Urgent) indica Datos urgentes
(El puntero urgente contiene la direccin donde terminanestos)
ACK (Acknowledgement) Se ha hecho uso del campo nmero de reconocimiento.
(En la prctica el bitACK est a 1 siempre, excepto en el primer segmento enviado por el host que inicia la conexin)
PSH (Push) El receptor debe pasar estos datos a la aplicacin tan pronto como le sea
posible, sin esperar a acumular varios segmentos.
RST (Reset) Debe reinicializarse la conexin.
(Indica que se ha detectado un error de cualquier tipo, por ejemplo, una terminacin unilateral de una conexin o que
se ha recibido un segmento con un valor inadecuado del nmero de secuencia o nmero deACK.)
SYN (Synchronize) Peticin de sincronismo de nmeros de secuencia para iniciar la
conexin.
(El campo nmero de envo contiene el nmero inicial de secuencia. Este flag solo est puesto en el primer
mensaje enviado por cada lado en el inicio de la conexin)
FIN (Finish) El emisor ha terminado de enviar datos.
(Para que una conexin se cierre de manera normal cada host ha de enviar un segmento con el bit FIN puesto)
TCP: Flags de cabecera
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 11
TCP se basa en el mecanismo de ventana deslizante (variable):
Campo Tamao de Ventana: n mximo de octetos aceptados por el receptor
+
Opcin Escalado de Ventana : aumenta los 65535 octetos
TCP calcula el checksum tanto de la cabacera como de los datos
haciendo uso de una pseudocabecera:
Mediante el campo puntero urgente indica el desplazamiento a
aadir al campo n de secuencia del segmento para calcular el n
de secuencia del ltimo octeto de los datos urgentes (datos de
control)
TCP: Campos para Control de flujo/errores
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 12
Indica el final del campo opciones y el inicio del campo de datos.
Relleno para hacer que la cabecera sea mltiplo de cuatro octetos
Cada extremo de una conexin especifica en el primero
de los segmentos intercambiados el tamao mximo del
segmento que el desea recibir
Permite extender el tamao de la ventana ms all del lmite de
65535 octetos, fijando mediante esta opcin un factor de escala al
valor indicado en el campo tamao de ventana
Intercambia entre ambos extremos los
valores del reloj del sistema (no todas las
implementaciones hacen uso de esta
opcin)
TCP: Opciones de cabecera
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 13
Transporte: Servicio orientado a la
conexin
Los protocolos orientados a conexin requieren un
procedimiento explcito de establecimiento y terminacin de la
comunicacin.
El modelo ms habitual de los servicios orientados a conexin se
basa en dos protagonistas:
Cliente: el que inicia la conexin
Servidor: el que es invitado a conectar
La conexin puede terminarse tanto por iniciativa del cliente
como del servidor.
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 14
Transporte: Fases de una conexin
Establecimiento
Transferencia
Liberacin
CLIENTE SERVIDOR
Connect
Receive
Send
LISTEN
(bloqueado)
Receive
Send
Receive
Send
(bloqueado)
(bloqueado)
(bloqueado)
(bloqueado)
(bloqueado)
Receive
Disconnect
Receive
Disconnect
LISTEN
(Libera conexin)
(Libera conexin)
Peticin conexin
Peticin desconexin
Conexin aceptada
Peticin desconexin
Datos
Datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 15
Transporte: Evolucin de estados servidor/cliente
INACTIVO
PENDIENTE
CONEXIN
PASIVA
PENDIENTE
CONEXIN
ACTIVA
CONEXIN
ESTABLECIDA
INACTIVO
PENDIENTE
DESCONEXIN
PASIVA
PENDIENTE
DESCONEXIN
ACTIVA
SERVIDOR
CLIENTE
Primitiva Connect
ejecutada
Primitiva Connect
ejecutada
TPDU de conexin
recibida
TPDU de
desconexin
recibida
Primitiva Disconnect
ejecutada
Primitiva
Disconnect
ejecutada
TPDU de
desconexin recibida
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 16
Transporte: Problemas del establecimiento
Ms difcil de lo que parece
Posibilidad de duplicados retardados ~repeticin de conexiones
Posibles soluciones:
Direcciones diferentes por cada conexin
Identificacin de conexin (y cadas ?)
Vida limitada de los paquetes
subred restringida, contador de saltos, timestamp
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 17
* Cada conexin IP se identifica por (dir IP origen, puerto origen, dir IP destino, puerto destino)
Ejm.: Dos usuarios X e Y en 167.172.23.43 acceden va Web a 144.38.76.3
Usuario X:(167.172.23.43, 1024) con (144.38.76.3, 80)
Usuario Y: (167.172.23.43, 1025) con (144.38.76.3, 80)
De repente el cliente cae y es reanudado inmediatamente...
...las sesiones Telnet anteriores han quedado abiertas...
...X e Y intentan volver a conectarse, pero Y llega antes que X:
Usuario X:(167.172.23.43, 1025) con (144.38.76.3, 80)
Usuario Y: (167.172.23.43, 1024) con (144.38.76.3, 80)
X accede a la sesin anterior de Y ?
TCP: coordinacin de nmeros de secuencia
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 18
Transporte: Algoritmo de Tomlinson
Establecer conexin
Reloj de tiempo real en cada mquina que no se apaga
Tiempo T=mltiplo de tiempo de vida de los paquetes
Zona prohibida
Conexin en tres tiempos con secuencias independientes para cada
extremo
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 19
Transporte: Saludo a tres vas
En el nivel de transporte pueden llegar TPDUs duplicadas (ej. un
emisor que no recibi el correspondiente ACK)
Con un procedimiento de conexin simple una sesin entera podra
verse duplicada.
El saludo a tres vas es un procedimiento de conexin que evita los
problemas debidos a duplicados
Para ello se identifica cada intento de conexin mediante un nmero
diferente. El cliente elige un nmero para la comunicacin en
sentido de ida y el servidor otro para el sentido de vuelta.
Estos dos nmeros actan como PINs que identifican la conexin
frente a paquetes retrasados que pudieran aparecer por la red de
conexiones anteriores.
Three way hand-shaking
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 20
Saludo a tres vas
1. Cuando quiere establecer una conexin el cliente la identifica
mediante un nmero elegido al azar o por algn procedimiento
que haga poco probable la utilizacin del mismo nmero para
dos conexiones diferentes. El nmero elegido lo comunica al
servidor en la peticin de conexin que le enva.
2. El servidor responde con un mensaje en el que acusa recibo de
la peticin y le indica al cliente que nmero ha elegido l para la
comunicacin en sentido inverso. Este nmero es tambin
elegido por algn procedimiento que de una baja probabilidad de
coincidencia entre dos conexiones diferentes.
3. El cliente enva un tercer mensaje en el que acusa recibo del
segundo y considera establecida la conexin. Cuando recibe
este tercer mensaje el servidor considera establecida la conexin
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 21
Apertura activa
Apertura pasiva
NSI ~ contador de 32 bits, con incremento de 1 cada 4 s (4h46)
Tras 6 segundos sin contestacin a un SYN(1), se repite el SYN(2)
Tras 24 segundos sin contestacin al SYN(2), se repite el SYN(3)
Si no hay contestacin al SYN(3) se abandona el establecimiento
Ante cadas del TCP, el arranque del software de TCP debe
demorarse al menos 2 minutos ~ TTL mximo de un paquete
TCP: Establecimiento de la conexin
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 22
Dos aplicaciones efectan una apertura activa a la vez
Cada extremo tiene un puerto local conocido por el otro extremo
TCP solo establece una conexin
TCP: Apertura simultnea
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 23
TCP: Recuperacin de errores
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 24
Las conexiones son full-duplex cada sentido es cerrado de forma
independiente
Son necesarios dos segmentos por cada sentido de la
conexin
Cierre activo
Cierre pasivo
Las conexiones son iniciadas por los clientes
Las liberaciones son iniciadas por cualquiera, aunque su control suele
residir en el cliente
TCP: Liberacin de la conexin
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 25
Dos aplicaciones efectan un cierre activo a la vez
TCP: Cierre simultneo
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 26
TCP: Semicierre de la conexin
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 27
TCP: Problemas en el cierre
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 28
TCP:
Diagrama
de
Estados
Nota: La transicin de
SYN_RCVD a LISTEN solo es
vlida si se accedi a partir de
LISTEN
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 29
TCP enva un reinicio siempre que llegan segmentos
incorrectos dentro del marco de la conexin referenciada
Ejm.: Peticin de conexin a un
puerto no asignado
UDP enva un mensaje de puerto no alcanzable
TCP manda un segmento RST
Liberacin
Ordenada : mediante segmento FIN
Desordenada : mediante segmento RST
Conexin Abortada~ descarte de datos encolados, RST inmediato, el receptor sabe que no es un cierre
Conexin Semiabierta~ uno de los extremos ha cerrado o abortado sin conocimiento del otro extremo
Fal l o en uno de l os nodos... No es det ec t abl e !!!
Ejm.: Desconectar los clientes en vez de terminar la aplicacin y apagar el nodo: si no se estaba
transfiriendo datos cuando el cliente fue desconectado el servidor no se enterar de la desconexin
Si el fallo es en el servidor, al recibir datos de los clientes obliga a RST
TCP: Segmentos de reinicio
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 30
Aplicaciones sobre TCP
Bloques masivos de datos: FTP, News, e-mail
Carcter a carcter: Telnet, Rlogin
APLICACIONES INTERACTIVAS
90 %
10 %
Entrada interactiva Reconocimientos diferidos
Cada pulsacin genera un segmento (1 octeto)
El sistema remoto puede hacer ECO
No se enva ACK inmediatamente
Espera 200 ms para intentar un PIGGYBACK
TCP: Flujo de datos interactivos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 31
(Al gor i t mo de Nagl e)
1 pulsacin ~ 41 octetos = 20 Cab. IP + 20 Cab. TCP + 1
tinygrans
TCP: Flujo de datos interactivos
Una conexin no puede tener ms de un segmento pequeo pendiente
de ser reconocido
1 Se enva el primer byte y se retienen el resto
2 Al recibir el ACK se enva un segmento con los bytes acumulados
3 Se acumula el resto y volvemos al paso 2
Si el n de caracteres acumulados en el buffer es igual a la mitad de la
ventana o al mximo tamao del segmento tambin se enva el
segmento
El algoritmo de Nagle sustituye el protocolo de ventana deslizante por
otro de parada y espera
En determinados casos es necesario desactivar este mtodo...
por ejm. XWINDOWS
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 32
TMS: Cantidad mxima de datos a enviar por TCP al otro extremo
El valor no es negociado, cada extremo lo notifica (Por defecto 536 bits)
Son preferibles valores elevados (evitar la fragmentacin)
Al establecer la conexin el segmento SYN incluye el TMS
TMS
max
=MTU (Header IP +Header TCP)
Si la direccin IP destino es no local TMS =536 octetos
mismo NetId y mismo SubnetId = local
distinto NetId = no local
mismo NetId y distinto SubnetId? Local... O no local
Como TMS fija el lmite de los datagramas que enva el otro extremo, y
el nodo permite tambin limitar el tamao de los mismos, es posible evitar
la fragmentacin para conexiones a redes de baja MTU
TCP: Tamao mximo del segmento
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 33
(al gor i t mo de l a vent ana desl i zant e)
El tamao de la ventana vara en funcin de la memoria del receptor
La ventana se desplaza hacia a la derecha a
medida que el receptor reconoce los datos:
1. Se cierra a medida que el extremo izdo. avanza hacia
la dcha. (debido a los ACK)
2. Se abre a medida que el extremo dcho. Avanza hacia
la dcha. Permitiendo ms datos (el receptor lee datos
reconocidos y libera espacio en el buffer)
3. Se reduce cuando la distancia entre los extremos
disminuye
2048, 4096, 8192 o
16384 octetos
Buffer recepcin
~
ventana ofrecida max.
El aumento del buffer de 4096 a 16384 aumenta el rendimiento un 40%
TCP: Flujo masivo de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 34
Emisor Receptor
Emisor
Bloqueado
Buffer
La aplicacin
escribe 2 KB
La aplicacin
escribe 3 KB
El emisor
puede enviar
hasta 2 KB
Vaco
Lleno
2 KB
2 KB
0 4K
La aplicacin
lee 2 KB
3 KB
TCP: Gestin de la Ventana Deslizante
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 35
(Sndr ome de l a vent ana t ont a)
Supongamos una aplicacin que genera datos con rapidez y los enva a otra, que
los recoge del buffer TCP a razn de 1 byte cada vez:
1 El buffer de TCP receptor se llena.
2 El TCP receptor notifica al emisor que su ventana est cerrada
(ventana 0).
3 La aplicacinreceptora lee 1 byte del buffer de TCP.
4 El TCP receptor enva un ACK al emisor para anunciarle que
dispone de 1 byte de espacio.
5 El TCP emisor enva un segmento con 1 byte de informacin til.
6 Volvemos al punto 1 hasta que se termine la sesin.
Es un caso similar al de datos interactivos, solo que ahora el causante es
el Receptor
RFC 813: El TCP receptor no debe notificar el cambio de ventana al
emisor mientras no tenga espacio suficiente en su buffer (longitud
mxima admitida en la conexin, o la mitad del espacio total del buffer)
Al gor i t mo de Cl ar k
TCP: Flujo masivo de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 36
Host 1 Host 2
Seq = 1000, Win = 4000
Seq = 1500, Ack = 1001, Win = 4000
Seq = 1001, Ack = 1501
1000 bytes
Seq = 1501, Ack = 2001
1000 bytes
Seq = 2001, Ack = 2501
Seq = 3001, Ack = 2501
Seq = 4001, Ack = 2501
1000 bytes
1000 bytes
1000 bytes
Bloqueado
Seq = 2501, Ack = 5001, Win = 2000
Seq = 5001, Ack = 2501
Seq = 2501, Ack = 6001, Win = 3000
1000 bytes
Ventana Ventana
4000
3000
2000
1000
0
2000
1000
3000
Seq = 2501, Ack = 5001
4000
3000
Aplicacin
lee datos
SYN
SYN
TCP: Ejm de Control de Ventana
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 37
TCP: Reenvo de segmentos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 38
Host 1 Host 2
Seq = 1000, Win = 4000
Seq = 1500, Ack = 1001, Win = 4000
Seq = 1001, Ack = 1501
1000 bytes
Seq = 1501, Ack = 2001
1000 bytes
Seq = 2001, Ack = 2501
Seq = 3001, Ack = 2501
Seq = 4001, Ack = 2501
1000 bytes
1000 bytes
1000 bytes
Bloqueado
Seq = 2501, Ack = 5001, Win = 2000
Seq = 5001, Ack = 2501
Seq = 2501, Ack = 6001, Win = 3000
1000 bytes
Ventana Ventana
4000
3000
2000
1000
0
2000
1000
3000
Seq = 2501, Ack = 3001
4000
3000
Seq = 3001, Ack = 2501
Timeout
Seq = 4001, Ack = 2501
Ignorada
Aplicacin
lee datos
Timeout
SYN
SYN
TCP: Retransmisin con retroceso N (Go-Back-N)
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 39
Host 1 Host 2
Seq = 1000, Win = 4000
Seq = 1500, Ack = 1001, Win = 4000
Seq = 1001, Ack = 1501
1000 bytes
Seq = 1501, Ack = 2001
1000 bytes
Seq = 2001, Ack = 2501
Seq = 3001, Ack = 2501
Seq = 4001, Ack = 2501
1000 bytes
1000 bytes
1000 bytes
Bloqueado
Seq = 2501, Ack = 5001, Win = 2000
Seq = 5001, Ack = 2501
Seq = 2501, Ack = 6001, Win = 3000
1000 bytes
Ventana Ventana
4000
3000
0
2000
1000
3000
Seq = 2501, Ack = 3001
4000
3000
Seq = 3001, Ack = 2501
Timeout
2000
1000 bytes
Aplicacin
lee datos
SYN
SYN
Retransmisin con repeticin selectiva
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 40
(f l ag PUSH)
Notifica del emisor al receptor para que pase todos los datos existentes
al proceso receptor:
- El segmento con el flag activado
- Los datos TCP recibidos anteriormente para el proceso
receptor
La especificacin original permite al interfaz de programacin activar el
flag
La especificacin de Berkeley activa el flag automticamente cuando los
datos contenidos han dejado vaco el buffer de envo
... Para cada escritura de la aplicacin, ya que los datos se envan
cuando se escriben !!!
... Por eso, la mayora de las implementaciones ignoran los flag
push, ya que nunca retrasan el envo de los datos recibidos a la
aplicacin
TCP: Flujo masivo de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 41
(ar r anque l ent o)
El emisor transmite a la red varios segmentos
hasta completar el tamao de ventana
notificado por el receptor
...en direcciones no locales los routers
intermedios pueden quedarse sin espacio
de almacenamiento
Solucin: insertar los paquetes nuevos a la velocidad de los reconocimientos
Ventana de Congestin (VENC):
1 Al establecer la conexin VENC=1
2 Al recibir un ACK VENC++
3 El emisor puede transmitir el valor ms pequeo del
VENC o de la ventana notificada y volvemos al paso 2
... El VENC crece de forma exponencial
Si se sobrepasa la capacidad de la red, los routers intermedios
comenzarn a descartar paquetes...
La VENC es demasiado grande !!!
Control de flujo impuesto por el emisor
TCP: Flujo masivo de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 42
Inicialmente la VC (Ventana de Congestin) tiene el tamao de un MSS (Maximum Segment
Size)
Por cada segmento enviado con xito la ventana se ampla en un MSS.
En la prctica esto supone un crecimiento exponencial en potencias de dos.
Si la ventana de congestin supera a la de control de flujo se aplica sta con lo cual aquella
deja de crecer
SEG 3
Emisor Receptor
SEG 1
ACK 1
SEG
2
ACK 3
ACK 2
SEG 7
SEG 6
SEG 5
SEG 4
ACK 7
ACK 6
ACK 5
ACK 4
Con MSS =
1KB en 7
iteraciones se
llega a 64 KB,
tamao
mximo de la
ventana
Ventana
1 MSS
4 MSS
2 MSS
SEG 15
SEG 14
SEG 13
SEG 12
SEG 11
SEG 10
SEG 9
SEG 8
ACK 15
ACK 14
ACK 13
ACK 12
ACK 11
ACK 10
ACK 9
ACK 8
8 MSS
TCP: Slow Start (primera fase)
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 43
Cuando se pierde un segmento:
La VC vuelve a su valor inicial
Se fija un umbral de peligro en un valor igual a la mitad de la VC que haba cuando se
produjo la prdida.
La VC crece como antes hasta el umbral de peligro; a partir de ah crece en slo un
segmento cada vez
SEG 33
ACK 33
ACK 27
SEG 27
Emisor Receptor
SEG 16
ACK 16
Ventana
1 MSS
SEG 18
SEG 17 2 MSS
ACK 18
ACK 17
SEG 22
SEG 21
SEG 20
SEG 19
4 MSS
ACK 22
ACK 21
ACK 20
ACK 19
SEG 26
SEG 25
SEG 24
SEG 23
ACK 26
ACK 25
ACK 24
ACK 23
SEG 32
SEG 31
SEG 30
SEG 29
SEG 28
ACK 32
ACK 31
ACK 30
ACK 29
ACK 28
5 MSS
6 MSS
Segmento 15
perdido y
retransmitido
Congest i on Avoi danc e
Slow start (segunda fase)
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 44
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 45
(Rendi mi ent o)
Cada nuevo ACK aumenta el VENC en uno
Hay un ACK por cada segmento

mismo espaciado entre segmentos y


ACKs
VENC aumenta hasta que los canales de envo/recepcin estn llenos
Hay tantos ACK camino de vuelta como segmentos en el camino de ida
Cul debera ser el tamao de la ventana ?
La ventana notificada por el receptor debera ser igual al tamao en el cual
el canal est lleno de datos:
Capacidad (bytes) = Ancho de banda (bytes/seg) * Tiempo de retorno (seg)
Producto ancho de banda-retorno
TCP: Flujo masivo de datos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 46
Uno de los extremos informa que se han insertado datos urgentes en el flujo de informacin
TCP informa al proceso receptor del puntero urgente si no hay otro pendiente
ya en la conexin, o si el puntero avanza en el flujo de datos
La aplicacin receptora lee el flujo de datos y dice cundo se detecta el
puntero urgente
Como existen datos desde la posicin de lectura actual hasta el puntero
urgente, la aplicacin se considera en modo urgente
Una vez pasado el puntero urgente, la aplicacin vuelve a su estado normal
No es un modo de control fuera de banda,
sera necesaria una segunda conexin TCP
Ejm.: TELNET o RLOGIN al pulsar la tecla de interrupcin, o en FTP cuando se
cancela la transferencia
Desde el servidor al cliente
En modo urgente se enva URG en cualquier caso
El TCP receptor notifica al proceso cliente, lee el
mensaje del servidor, abre la ventana y permite el
flujo de datos
Varios URG consecutivos ?
El puntero urgente es sobreescrito
Los datos importantes deben ser marcados
Telnet marca los comando precedindolos
con un byte 255
TCP: Modo urgente
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 47
TCP ~ nivel de transporte fiable
Reconocimiento en cada extremo
Deteccin de prdidas mediante temporizador
Retransmisin por prdida
Hasta 4 contadores por conexin:
1. Temporizador deretransmisin: cuandoseesperaunreconocimientodel otroextremo.
2. Temporizador depersistencia: permitetransmitir informacin acercadel tamao dela
ventanaancuandoel otroextremohayacerradosuventanaderecepcin.
3. Temporizador keepalive para detectar cundo el otro extremo se ha desconectado o
rebotado.
4. Temporizador 2MSL: mideel tiempoquelaconexinestuvoentiempodeespera.
El primer timeout se produce 1,5 seg despus de
la primera transmisin
Cada retransmisin duplica el valor del timeout
Lmite de 64 seg.
Retraso
exponencial
Al gor i t mo de Kar n
TCP: Timeout
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 48
TCP A TCP B

T
i
e
m
p
o
Timer de
Persistencia
100 bytes
(501-600)
Buffer lleno
Datos ledos
por la
aplicacin
Datos
puestos en
buffer para
la
aplicacin
1
byte
(601)
Bloqueado
Mientras la ventana est cerrada el TCP que espera puede enviar de vez
en cuando (persistence timer) un segmento con un byte de datos (por si se
ha perdido un segmento anunciando una ventana mayor que cero)
TCP: Timer de persistencia
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 49
TCP Servidor TCP Cliente

T
i
e
m
p
o
Timer
Keepalive
100 bytes
(501-600)
1
byte
(600)
Datos
puestos en
buffer para
la
aplicacin
Datos
duplicados
descartados
Evitan que se queden conexiones medio abiertas
Se implementan reenviando el ltimo byte transmitido en un segmento; el receptor descarta el dato pero
devuelve un ACK
Si se envan varios keepalive sin respuesta se considera que se trata de una conexin medio abierta y se
cierra.
Para declarar una conexin medio abierta se espera a veces hasta 2 horas.
El tiempo de envo de los mensajes se regula con el timer de keepalive. Suele ser del orden de 2 minutos.
El keepalive no requiere modificaciones en el TCP receptor
TCP: Mensajes de keepalive
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 50
Las modificaciones de rutas y de trfico cambian a lo largo de
una conexin
Es necesario seguir los cambios y modificar los timeout
TCP debe medir el tiempo de retorno entre un byte enviado
con un NS dado y la recepcin del ACK correspondiente
TCP estima el tiempo de retorno mediante un filtro paso bajo:
MRTT =o*MRTT +(1-o)RTT o Factor de correccin ~ 0,9
90% del anterior
10% del nuevo
El RFC793 recomienda un tiempo de retransmisin:
RTO =R*| | Factor de variancia ~ 2
Mean round trip time
Otras estimaciones tienen en cuenta la desviacin estndar:
D =o D
viejo
+(1-o)|MRTT
viejo
RTT| o ~ 0,75 RTO =MRTT +4*D
J acobson
Ver TCP1.PDF
TCP: Medicin del tiempo de retorno
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 51
TCP: Excepciones de uso
El intercambio de mensajes es muy escaso, ej.:consultas al DNS
(servidor de nombres)
La aplicacin es en tiempo real y no puede esperar los ACKs. Ej.:
videoconferencia, voz sobre IP.
Los mensajes se producen regularmente y no importa si se pierde
alguno. Ej: NNTP, SNMP
El medio de transmisin es altamente fiable y sin congestion (LANs).
Ej: NFS
Se enva trfico broadcast/multicast
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 52
Se basa en el mismo principio no fiable y no
orientado a la conexin de IP:
No utiliza reconocimientos
No proporciona control de flujo
No reordena los mensajes recibidos
Los mensajes pueden perderse,
duplicarse, llegar fuera de orden o ms
deprisa que el receptor procesarlos
El programa que utiliza UDP acepta la responsabilidad de
gestionar el problema de la fiabilidad
UDP: Protocolo de Datagrama de Usuario
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 53
Sistemas multiproceso Destinatario de un mensaje ~ proceso
Se crean y destruyen dinmicamente
Reemplazo sin indicacin a los extremos
Los destinos son identificados
mediante las funciones que
implementan
El S.O. Proporciona el mecanismo de interfaces para su asignacin
Conjunto abstracto de puntos de destino ~ Puertos de protocolo
Acceso sncrono
Si un proceso intenta extraer datos del puerto antes de que
lleguen, el SO lo bloquea
Al llegar los datos, el SO pasa los datos y rearranca el proceso
Cada mensaje contiene los nmeros de puerto de origen y
destino posibilitando las respuestas
UDP: Identificacin del destinatario
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 54
Puerto de origen y Puerto de destino: identifican al proceso emisor y receptor
...Puerto de origen es opcional (0 si no se utiliza)
Longitud: n de octetos de cabecera +datos. Valor mnimo =8
Checksum: (opcional) valor 0 si no se calcula (IP no chequea los datos)
Divide los datos en campos de 16 bytes
Complemento a uno de su suma en complemento a uno
UDP: Formato de los mensajes
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 55
Es aadida al datagrama antes de efectuar el clculo del Checksum
El relleno a ceros asegura mltiplos de 16 bits
Para calcular el checksum:
Rellena el campo a ceros
Calcula la suma en complemento a uno de 16 bits
(incluida la pseudocabecera, cabecera UDP y datos)
Verifica que el destino es correcto
La comprobacin es realizada mediante la dir IP de la cabecera IP
Campo Protocolo de IP (17 para UDP)
Sin incluir la pseudocabecera
UDP: Pseudocabecera UDP
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 56
Mux/Demux a travs de Puertos
UDP demultiplexa las UDP de IP basndose en los puertos
Cada puerto tiene asociada una cola
Caso de no encontrar el puerto asociado al datagrama se genera
un comando ICMP de puerto inalcanzable y descarta el datagrama
Caso de encontrar el puerto, el datagrama es encolado
Caso de encontrar el buffer lleno, el datagrama es descartado
UDP: Multiplexacin/Demultiplexacin de Puertos
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 57
UDP: Puertos reservados y disponibles
Dos mtodos de asignar los puertos:
Asignacin universal: Puertos bien conocidos
Asignacin dinmica: el SO asigna los puertos y los extremos se
informan de las asignaciones
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 58
CLAVE CLAVEUNIX DESCRIPCION
0 - - RESERVADO
7 ECHO echo ECHO
9 DISCARD discard Discard
11 USERS systat Active Users
13 DAYTIME daytime Daytime
15 - nestat Who is up or NEASTAT
17 QUOTE qotd Quote of the day
19 CHARGEN chargen Character Generetor
37 TIME time Time
42 NAMESERVER name Host Name Server
43 NICNAME whois Who Is
53 DOMAIN nameserver Domain Name Server
67 BOOTPC bootps BootstrapProtocol Server
68 BOOTPC bootpc BootstrapProtocol Client
69 TFTP tftp Trivial File Transfer
111 SUNRPC sunrpc Sun Microsystems RPC
123 NTP ntp Network Time Protocol
161 - snmp SMNP net monitor
162 - snmp-trap SNMP traps
512 - biff UNIX comsat
513 - who UNIX rwho daemon
514 - syslog systemlog
525 - timed Time daemon
Redes de Ordenadores
Tema 5: Transporte TCP/IP - 59
Longitud de 16 bits ~ 65535 bytes
20 bytes de cabecera IP
8 bytes de cabecera UDP
65507 bytes para datos
UDP: Tamao mximo de los datagramas
Dos posibles lmites:
El interfaz de programacin: los API de los sockets establecen los
buffer de emisin/recepcin. Valor por defecto de 8192 bytes (NFS)
La implementacin particular TCP/IP: todo sistema debe ser capaz
de recibir al menos datagramas de 576 bytes. RIP, DNS, TFTP,
BOOTP y SNMP restringen los datos de aplicacin a 512 bytes o
menos.

También podría gustarte