Protocolo de control de transmisión TCP

1. INTRODUCCIÓN
TCP es un protocolo de transporte orientado a conexión. Esto hace que los datos se
entreguen sin errores, sin omisión y en secuencia.
Tiene las siguientes características:
Protocolo orientado a conexión. Es decir, las aplicaciones solicitan la
conexión al destino y luego usan están conexión para entregar los datos,
garantizando que estos serán entregados sin problemas.
Punto a punto. Una conexión TCP tiene dos extremos, emisor y receptor.
Confiabilidad. TCP garantiza que los datos transferidos serán entregados
sin ninguna perdida, duplicación o errores de transmisión.
Full duplex. Los extremos que participan en una conexión TCP pueden
intercambiar datos en ambas direcciones simultáneamente.
Conexión de inicio confiable. El uso de three-way handshake garantiza una
conexión de inicio confiable y sincronizada entre los dos extremos de la
conexión.
Conexión de finalización aceptable. TCP garantiza la entrega de todos los
datos antes de la finalización de la conexión.
TCP es un protocolo de nivel 4 (transporte) en la capa del OSI, por eso necesita
valerse de IP para el envío de sus segmentos o mensajes. De esta manera IP trata el mensaje
TCP como la información que debe entregar y en ningún momento intenta interpretar su
contenido, como generalmente se hace al pasar un mensaje de una capa inferior a otra. Por
eso un router o cualquier dispositivo de nivel 3 del OSI solo puede observar los
encabezados IP para el reenvío de los datagramas. El encargado de interpretar los mensajes
TCP, después de recibirlos de la capa de red, es el TCP de la maquina de destino.
Redes y comunicaciones de datos. TCP/UDP
1
3URWRFROR GH &RQWURO GH 7UDQVPLVLyQ7&3
Luis Conde García
Luis Conde García
1.1. Función de TCP
TCP es un protocolo de tamaño considerable, que cumple con una gran número de
Asociar puertos con conexiones.
acuerdo en tres pasos.
os entrantes duplicados.
o las ventanas de envío y recepción.
s.
e retransmisión.
erradas.
El modelo conceptual de una conexión es que una aplicación envía un flujo de
funciones:
Establecer conexiones usando un
Realizar un arranque lento para evitar sobrecargas.
Dividir los datos en segmentos para su transmisión.
Numerar los datos.
Manejar los segment
Calcular las sumas de control.
Regular el flujo de datos usand
Terminar las conexiones de manera ordenada.
Abortar conexiones.
Marcar datos urgente
Confirmación positiva d
Calculo de los plazos de retransmisión.
Reducir el trafico cuando la red se congestiona
Indicar los segmentos que llegan en desorden.
Comprobar si las ventanas de recepción están c
1.2. CONCEPTOS
1.2.1. Flu
j
os de entrada
y
salida
datos a otra aplicación pareja. Al mismo tiempo, recibe un flujo de datos de la otra. TCP
proporciona un servicio dúplex que maneja simultáneamente los dos flujos de datos.
Redes y comunicaciones de datos. TCP/UDP
2
Luis Conde García
1.2.2. Se
g
mentos
e convertir los flujos de datos salientes de una aplicación de forma que se
puedan
Búfer de envío.
Extrae un trozo de datos y se añade una cabecera.
Segmento
TCP traslada el segmento a IP para que lo entregue como un único datagrama. El
En algunas ocasiones el programa cliente necesita que TCP entregue a la aplicación
TCP deb
entregar como datagramas. La aplicación traslada los datos a TCP y este los sitúa
en un búfer de envío. Toma un trozo de los datos, le añade una cabecera, creando un
segmento.
Zona de recogida de datos
Zona de recogida de datos
Cabecera
TCP
empaquetado de datos en trozos del tamaño adecuado permite usar de manera más
eficiente los servicios de transmisión, por lo que TCP debería esperar a recoger una
cantidad razonable de datos antes de crear un segmento.
1.2.3. Push
del servidor remoto unos datos lo antes posible, para esto utiliza una la función {push}.
Imaginemos que un programa cliente ha iniciado una sesión interactiva con un servidor
remoto y el usuario ha tecleado un comando y pulsado retorno de carro. El programa cliente
usara esta función para decir a TCP que entregue lo antes posible dichos datos.
Redes y comunicaciones de datos. TCP/UDP
3
Luis Conde García
1.2.4. Puertos de a
p
licación
El interfaz que esta entre TCP y el proceso local se llama puerto. Para que una
licac
Los puertos se identifican mediante un número decimal que va desde el 0 hasta el
5.535,
z que un cliente quiere una conexión pide al sistema operativo que le
asigne
ap ión pueda acceder a la red y pueda enviar datos a través de ella lo debe hacer a
través de un puerto. La aplicación utiliza un número de puerto para enviar el flujo de datos
y el otro extremo de la conexión los recibe a través de otro número de puerto.
6 tanto en TCP como en UDP. Los fabricantes que implementan TCP disponen de una
gran libertad para asignar números de puertos a los procesos, aunque la Autoridad de
Números Asignados de Internet (IANA) ha dedicado un rango que va desde el 0 al 1.023 a
una serie de procesos comunes (RFC 1700) como telnet, ftp, pop3, smtp, etc.
Cada ve
un número de puerto en desuso, sin reservar. Al finalizar la conexión, el cliente
devuelve el puerto al sistema y lo puede utilizar otro cliente.
Puerto Aplicación Descripción
9 Discard Descartar todos los datos entrantes
19 Chargen Intercambiar flujos de caracteres
20 FTP-Data Puerto de transferencia de datos para la transferencia de archivos
21 FTP Puerto de dialogo para la transferencia de datos
23 Telnet Puerto de conexión remota mediante Telnet
25 SMTP Puerto del Protocolo simple de transferencia de correo
110 POP3 Servicio de recuperación de correo electrónico
119 NNTP Servicio de publicación de noticias de red
Listado de pu CP
Para especificar plenamente una conexión, la dirección IP del host se añade al
CP utiliza dos tipos de sockets:
Sockets de corriente. Se utilizan con TCP para lograr un intercambio de datos fiable,
secuencial y bidireccional.
ertos T estandarizados.
número de puerto. Esta combinación se denomina socket (enchufe). Por tanto, un número de
socket es único en toda la interred. Una conexión entre dos host queda totalmente descrita
por los sockets asignados a cada Terminal de la conexión. La conexión entre dos sockets
proporciona una ruta de comunicación bidireccional (duplex total) entre los dos procesos.
T
Redes y comunicaciones de datos. TCP/UDP
4
Luis Conde García
Sockets de datagrama. Se utilizan con UDP para lograr transferencias de datos no
fiables y bidireccionales.
Los c
proceso API permite a los programadores que sus aplicaciones
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
so kets constituyen una interfaz de programa de aplicación (API) entre TCP, los
s y las aplicaciones. Esta
accedan a TCP.
1.3. FORMATO DE UNA CABECERA TCP
0
Puerto de origen Pu eerto d destino
Número de secuencia
Número de confirmación o acuse de recibo
Tamaño cabecera Reservado Ventana Bits de control
Suma de control urgente Puntero
Opción/es Relleno
DATOS
Formato de la cabecera TCP
Bits de control
U
R
A P R S F
I
G
C S S Y
K H T N N
TCP da formato a una cabecera para cada segmento transmitido a IP. Cuando IP
onstruye un datagrama IP, la cabecera TCP sigue a la cabecera IP.
segmento contiene un
úmero impar de octetos se rellena con un octeto final compuesto por ceros en su totalidad.
Los campos de la cabecera TCP son los siguientes:
c
Los segmentos IP se organizan en palabras de 16 bits. Si un
n
Redes y comunicaciones de datos. TCP/UDP
5
Luis Conde García
Puerto de origen (16 bits). Especifica el puerto del modulo TCP de origen.
Puerto de destino (16 bits). Especifica el puerto del modulo TCP de destino.
er octeto
ado), el
P indica que este campo se activa
ue
componen la cabecera TCP. El campo Opciones se rellena con ceros para formar
rvado para usos futuros.
dica que el campo número de acuse de recibo es
significativo.
te los datos a la aplicación.
o ncia de la conexión. Este bit se
nexión.
Ventan l número de octetos que el destinatario del segmento
puede aceptar comenzar por el octeto especificado en el campo de acuse de recibo.
campos de datos. No incluye el relleno utilizado para que un segmento contenga
dentifica el número de secuencia del octeto que sigue a
los datos urgentes. El puntero urgente es un desplazamiento positivo desde el
eden cumplir varias funciones: final de la lista
de opciones, tamaño máximo del segmento, datos opcionales del tamaño máximo
ctetos con valor cero que se añaden a la cabecera para
redondear su longitud a 32 bits.
Número de secuencia (32 bits). Especifica la posición secuencial del prim
de datos del segmento. Cuando el segmento abre una conexión (bit SYN activ
número de secuencia es el número de secuencia inicial (ISN) y el primer octeto del
campo de datos tiene como número ISN+1.
Número de acuse de recibo (32 bits). Especifica el siguiente número de secuencia
que espera el emisor del segmento. TC
estableciendo el bit ACK, lo cual sucede siempre que se establece una conexión.
Tamaño de la cabecera (4 bits). Especifica el número de palabras de 32 bits q
una palabra completa de 32 bits si es necesario.
Reservado (6 bits). Debe tener el valor cero. Rese
Bits de control (6 bits). Son 6:
o ACK. Si esta a 1, in
o URG. Si esta a 0 indica que debe ignorarse. Si esta a 1 indica que los datos
son urgentes.
o PSH. Inicia una función {push}. Indica si TCP debe entregar
inmediatamen
o RST. Indica un error, también se usa para abortar una sesión.
SYN. Sincroniza los contadores de secue
activara (1) cuando un segmento solicita la apertura de una co
o FIN. Final de la transmisión y cierre de la conexión. Se pone a 1 durante la
terminación correcta.
a (16 bits). Especifica e
Suma de verificación (16 bits). Una suma de verificación basada en la cabecera y los
un número par de octetos. La suma de verificación también se basa en una
pseudocabecera de 96 bits.
Puntero urgente (16 bits). I
número de secuencia del segmento.
Opciones (variable). Las opciones pu
de segmento, etc,etc.
Relleno (variable). O
Redes y comunicaciones de datos. TCP/UDP
6
Luis Conde García
Una pseudocabecera TCP de 12 octetos incluye la dirección de origen y destino, el
pro
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
tocolo y la longitud del segmento. Esta información se envía con el segmento a IP para
proteger a TCP de los segmentos erróneamente encaminados. El valor de campo de
longitud incluye la cabecera y los datos TCP, pero no tiene en cuenta la pseudocabecera.
3 4 5 6 7 8 9 0 1
Dirección de origen
Dirección de destino
Cero Longitud TCP Protocolo
La opción de tamaño máximo de segmento (MSS- maximum segment size) se usa
ara in
El tamaño del mayor datagrama que se puede recibir – 40
Dicho de otra manera, el MSS informa del mayor tamaño de carga útil de datos del
cepto
MSS anunciado + 40 – (tamaño de las cabeceras de IP y TCP)
Normalmente, los extremos intercambian sus correspondientes valores de MSS
nto c
El MSS impone una restricción límite en el tamaño máximo que TCP puede enviar,
1.3.1 O
ciones de tamaño máximo de se
g
mento
p dicar el tamaño del mayor trozo de datos que se puede recibir (y reensamblar) de un
flujo de datos. El tamaño máximo de segmento del sistema se define como:
re r cuando las cabeceras de IP y de TCP son de 20 bytes. Si existe cualquier número
de opciones de cabecera, hay que restar su tamo. Es decir, para calcular el tamaño de los
datos que se pueden empaquetar en un segmento, TCP necesita calcular:
ju on el mensaje inicial {SYN} en el establecimiento de una conexión. Si el sistema no
indica su tamo de segmento, se supone un valor de MSS por defecto de 536 bytes y como
máximo 65.535 bytes.
el receptor no puede manejar nada que sea mayor. Pero el TCP emisor podría enviar
segmentos menores debido al tamaño del MTV de la ruta de conexión.
Redes y comunicaciones de datos. TCP/UDP
7
Luis Conde García
1.3.2. La cabecera en la solicitud de una conexión
El primer segmento que se envía para iniciar una conexión tiene la bandera {SYN} a
y la
El campo {número de secuencia} (sequence number) contiene un número inicial de
cuenc
única opción que se ha definido actualmente en TCP es el tamaño máximo de
segmen
En una respuesta de aceptación de conexión, las dos banderas {SYN} y {ACK} están
1. El
Se puede rechazar una solicitud de conexión poniendo en la respuesta la bandera
Durante el establecimiento de la conexión, la norma de TCP indica que cada
1 bandera {ACK} a 0. El segmento {SYN} inicial es el único segmento que tiene el
campo {ACK} a 0. Los cortafuegos lo utilizan para controlar las solicitudes entrantes de
sesiones TCP.
se ia. El campo {Ventana } (Window) contiene el tamaño inicial de la ventana de
recepción.
La
to que podría recibir TCP. El tamaño máximo de este es de 32 bits y, normalmente,
se incluye en la solicitud de conexión, en el campo {opciones} (si no se indica el MSS, el valor
por defecto es de 536). El tamaño de la cabecera {SYN} de TCP que contiene la opción MSS
es de 24 bytes.
1.3.3. La cabecera en la res
p
uesta de conexión
a número inicial de secuencia del que responde se encuentra en el campo {número de
secuencia} y el de la ventana de recepción está en el campo {Ventana}. El tamaño máximo
del segmento que desea recibir quien responde se incluye, normalmente, en la respuesta de
la conexión, en el campo {opciones}. Puede ser de tamaño diferente de quien inicia la
conexión, no tienen porque ser iguales.
{RST} a 1.
1.3.4. Elección del número inicial de secuencia
extremo de la conexión debe elegir un {número inicial de secuencia} a partir de un reloj
interno de 32 bits. ¿Por qué?. Imagina lo que ocurre cuando un sistema deja de funcionar.
Suponga que un usuario ha abierto la conexión justo antes de que dejase de funcionar y ya
ha enviado una pequeña cantidad de datos. Tras recuperarse, el sistema no recuerda nada
sobre lo que estaba haciendo antes de dejar de funcionar, lo que incluye las conexiones
establecidas y los números de puertos asignados. Los usuarios han de volver a comenzar
las conexiones de nuevo. Los números de puertos empiezan a asignarse de forma que el
primero que lo pide, es el primero a quien se le da, y algunos de dichos puertos podría que
estuviesen usándolos otras conexiones hacia tan solo unos segundos. Durante ese intervalo,
un sistema lejano de una de las conexiones podría no haberse dado cuenta que el otro
extremo había dejado de funcionar y había vuelto hacerlo, podría crearse una gran
Redes y comunicaciones de datos. TCP/UDP
8
Luis Conde García
confusión si datos antiguos que tardan en llegar a la red se entremezclasen con datos de
una nueva conexión. Haciendo que los nuevos empiecen con cierto valor de reloj, se impide
que se cree este problema. Los datos antiguos, probablemente, estarán numerados con
valores fuera del nuevo intervalo de {número de secuencia}
1.3.5. Uso
g
eneral de los cam
p
os
Para preparar la transmisión de una cabecera de TCP se incluye el número de
Se rellena el campo {número de confirmación} con el número del siguiente octeto
El campo {ventana} contiene el tamaño actual de la ventana de recepción, es decir:
Si la aplicación envía un {push} a TCP, se pone la bandera {push} a 1. El TCP
Si la bandera {urgent} está a 1, indica que hay datos urgentes pendientes y el
La bandera {reset} se pone a 1 para abortar una conexión. También se puede poner
La bandera {fin} se pone a 1 en los mensajes que sirven para cerrar una conexión.
La suma de control de IP solo se aplica a la cabecera de IP. La suma de control de
CP se
El tamaño de TCP se calcula sumando el tamaño de la cabecera de TCP más el
maño
secuencia del primer octeto en el campo {número de secuencia}.
que se espera del otro extremo y se pone el bit {ack} a 1.
el número de bytes, empezando con el {número de confirmación}, que se puede recibir. De
esta forma se consigue un control de flujo muy preciso. Se dice al otro extremo el estado
exacto de la ventana de recepción durante la sesión.
receptor se supone que reacciona ante la bandera {push} entregando los datos a su
aplicación lo más rápido que la aplicación esta dispuesta a recibirlos.
apuntador {urgente} apunta al último octeto de datos urgentes.
en respuesta a un segmento que no tiene sentido en la conexión actual que maneja TCP.
1.3.6. Suma de control
T aplica sobre el segmento completo así como a una pseudocabecera que se construye
con información extraída de la cabecera de IP.
ta de los datos. La suma TCP es obligatoria, no opcional como en UDP. En un
segmento entrante se calcula la suma de control de la cabecera TCP. Si los valores no
coinciden, el segmento se descarta.
Redes y comunicaciones de datos. TCP/UDP
9
Luis Conde García
ntes de poder comunicarse, cada parte llama a una subrutina que crea un bloque
de mem
Durante el establecimiento de la conexión se intercambian importantes elementos
Del espacio disponible en su búfer para recibir datos.
mento.
atos de salida.
La transferencia de datos comienza después de terminar el establecimiento en tres
asos.
CLIENTE
SERVIDOR
1.4. ESTABLECIMIENTO DE UNA CONEXIÓN
A
oria para almacenar los parámetros de TCP y de IP durante la conexión, como las
direcciones de los conectores (sockets), los números actuales de secuencia, el valor inicial
de IP para el tiempo de vida y otros. Cuando un cliente desea acceder al servidor lanza una
solicitud de conexión mediante la dirección de IP y el puerto del servidor. El procedimiento
de conexión se denomina un acuerdo de tres pasos: SYN, SYN y ACK.
de información. Cada parte notifica a la otra:
La cantidad máxima de datos que puede llevar un seg
El número inicial de secuencia que se usara para numerar los d
1.5. TRANSFERENCIA DE DATOS
p
TCP
TCP
Flujo de datos y sus ACK
n el ejemplo anterior se muestra un intercambio directo de datos. Para que la
numeración resulte sencilla, se usan mensajes de 1000 bytes.
DA OS 2001, ACK 4001 T
DATOS 3001, ACK 4001
DATOS 4001
,
ACK 4001
DATOS 1001, ACK 3001
DATOS 3001,ACK 2001
SIN DATOS,ACK 5001
.
E
Redes y comunicaciones de datos. TCP/UDP
10
Luis Conde García
eras de los segmentos de TCP llevan un campo ACK que identifica el
úmero de secuencia del siguiente byte que se espera del otro extremo. El primer segmento
El TCP que recibe los datos se encarga del flujo de los datos de entrada. El receptor
datos desea aceptar y el emisor debe actuar dentro de estos límites. Durante
el estab
hasta que lo recoge la
plicación asociada a ese puerto de TCP.
o
1 K 2K 3K 4 K
Todas las cabec
n
que envía el cliente contiene los bytes del 1001 al 2000. Su campo ACK anuncia que el
número de secuencia del siguiente byte que espera del servidor es 3001. El servidor
responde con un segmento que contiene 1000 bytes de datos que empiezan en el 3001. El
campo ACK de la cabecera de TCP indica que se han recibido correctamente los bytes 1001
a 2000, por lo que el número de secuencia que se espera del siguiente byte del cliente es
2001. A continuación, el cliente envía segmentos que empiezan en los bytes 2001, 3001 y
4001. Hay que tener en cuenta que el cliente no tiene que esperar a que llegue el ACK de
cada segmento. Se pueden enviar datos al otro extremo siempre que disponga de espacio
no utilizado en el búfer. De este modo el servidor ahorra ancho de banda si se usa un único
ACK para indicar que todos los segmentos se recibieron correctamente.
decide cuantos
lecimiento de la conexión, cada parte asigna espacio para los búfer de recepción
para esa conexión y lo comunica, {este es el número de bytes que pueden enviarme}. Este
número suele ser múltiplo entero del tamaño máximo del segmento.
El flujo de datos llega al búfer de recepción y permanece ahí
a
Siguiente byte esperad
1.6. CONTROL DE FLUJO
V t e reen ana d ce
p
ción
Búfer de recepción de 4 K
1 K 2 K 3 K 4 K
1K 4 K
Ventana de rece
p
ción
2K 3 K
Ventana
de
recepción
1K 2 K 3 K
K 4
La a
Ventana de rece
p
ción
plicación recog los datos e
Redes y comunicaciones de datos. TCP/UDP
11
Luis Conde García
La ventana de recepción se extiende desde el último byte que se ha confirmado
asta el final del búfer. En el ejemplo anterior, todo el búfer esta libre, por lo que hay una
ventana
La ventana de recepción es cualquier espacio del búfer de recepción que no esta
cupado. Los datos permanecen en el búfer de recepción hasta que la aplicación a la que
ceptor contienen una actualización del estado de la ventana de
ecepción. El flujo de datos desde el emisor se regula de acuerdo con estas actualizaciones
e la ve
r parte del tiempo, el búfer de recepción que se establece durante el
stablecimiento de la conexión se mantiene durante la misma, aunque este puede crecer o
El transmisor de los datos controla dos cosas; cuantos datos se han enviado y ya se
an asentido y el tamaño actual de la ventana de recepción del otro lado. El espacio de
año inicial de la ventana de recepción se
btienen durante la fase de establecimiento de la conexión.
h
de recepción de 4 K. Llega 1 K de datos y la ventana de recepción se reduce a 3 K.
Llegan dos segmentos mas de 1K, con lo que la ventana se reduce a 1 K. Finalmente, la
aplicación absorbe los 3 K de datos del búfer, con lo que el espacio libre para los datos
aumenta (se puede ver como una ventana se desplaza hacia la derecha. En una sesión real el
tamaño de la ventana de recepción varía según las necesidades de la aplicación
o
van dirigidos los recoge.
Los {ACK} del re
r
d ntana.
La mayo
e
reducir, siempre que el receptor no {se vuelva atrás} de lo que ha concedido al emisor.
1.6.1. Ventana de rece
p
ción
1.6.2. Ventana de envío
h
envío activo va desde el primer octeto sin asentir hasta la parte derecha de la ventana de
recepción actual. La parte de la ventana de recepción de este espacio indica cuantos datos
adicionales se pueden enviar hacia el otro lado.
El número de secuencia inicial y el tam
o
Redes y comunicaciones de datos. TCP/UDP
12
Luis Conde García
1 K 2 K 3 K 4 K
1 K 2 K 3 K 4 K
Ventana de rece
p
ción
K 2 K 3 K 4 K
Datos Ventana de rece
p
ción
sin
confirmar
1
Ventana
de
recepción
1 K 2 K 3 K K
4
n el ejemplo anterior:
1. El emisor comienza con una ventana de envío de 4 K.
2. El emisor transmite 1 K y mantiene una copia de dichos datos hasta que llegue el
os.
mbién actualiza la ventana del receptor a 4 K.
ero hay que destacar algunas características:
El emisor no tiene que esperar un {ACK} para cada segmento de datos transmitidos.
La única limitación para la transmisión es el tamaño de la ventana de recepción.
r a
E
asentamiento, ya que puede ser necesario retransmitirl
3. Llega un {ACK} para los primeros 1 K y se envían otros 2 K de datos y mantiene
una copia de estos.
4. Finalmente, llega un {ACK} que indica que todos los bytes transmitidos se han
recibido. El {ACK} ta
P
Imaginemos que para el emisor tiene que retransmitir datos que se enviaron
utilizando segmentos muy pequeños (ej. 80 bytes). Los datos se pueden volve
empaquetar de una manera más eficiente, por ejemplo en un único segmento.
Ventana de rece
p
ción
Datos sin confirmar
Redes y comunicaciones de datos. TCP/UDP
13
Luis Conde García
Si existe un emisor activo y un receptor perezoso se puede llegar a tener una
entana de recepción de 0 bytes. Es lo que se llama {ventana cerrada}. Cuando se abre un
eco s
¿Qué ocurre con una conexión en la que ninguna de las partes tiene datos que
nviar durante un largo periodo de tiempo? Durante el periodo en que está libre, la red
v
hu e envía un {ACK} que actualiza el tamaño de la ventana. Pero, ¿qué ocurriría si se
pierde el {ACK}?, pues que ambos extremos podrían esperar indefinidamente. Para evitar
que ocurra esta situación, el emisor envía unos temporizadores persistentes cuando la
ventana de recepción se cierra. Cuando el temporizador expira, se envía un segmento
llamado {sonda de ventana} al otro extremo. En algunas implementaciones la sonda
incluye datos. La sonda hace que el otro extremo envíe de vuelta un {ACK} con el estado
actual de la ventana. Si la ventana continúa a cero, se duplica el valor del temporizador
persistente. Este proceso se repite hasta que el valor del temporizador alcanza un máximo
de 60 segundos. TCP continuara enviando sondas indefinidamente cada 60 segundos, o
hasta que la ventana se abra o un usuario interrumpa el proceso o el temporizador de la
aplicación expire.
1.7. MANTENIMIENTO DE UNA SESIÓN
1.7.1. Sonda de ventanas
1.7.2. Mantenimiento de la sesión
e
puede dejar de funcionar o se pueden cortar los cables y volverse a conectar. Basta que la
red red este en funcionamiento cuando las dos partes vuelvan a intercambiar datos, la
sesión no se pierde. Claro, el problema es que cualquier conexión ocupa bastante memoria
en una computadora, por eso muchas implementaciones de TCP envían mensajes
{mantener viva (keep-alive)} para comprobar si la conexión esta ociosa. TCP envía este
mensaje periódicamente para comprobar que aún existe la conexión. Este mensaje
devuelve una respuesta {ACK}. El uso de mensajes es opcional y si el sistema dispone de él,
una aplicación puede desactivarlo para sus propias conexiones (el tiempo de plazo
sugerido por defecto es de dos horas). Además, las aplicaciones pueden enviar sus propios
temporizadores de la capa de aplicación en niveles que tengan sentido para la misma y que
la aplicación puede abortar las sesiones ociosas.
Redes y comunicaciones de datos. TCP/UDP
14
Luis Conde García
La terminación normal de una conexn se lleva a cabo mediante un proceso en tres
asos, parecido al del establecimiento. Cualquiera de las partes puede lanzar el proceso de
A. {He terminado. No tengo mas datos que enviar}
B. {Ok} o {Pero yo tengo algunos datos…..}
1. La aplicación servidora indica a TCP que termina la conexión.
2. El TCP servidor envía un Segmento final (final Segment) {FIN}, informando a la
4. el servidor quiere terminar.
onde con un {ACK}
que la conexión se ha terminado.
También se puede dar el caso de que aparezca un fallo de red y haga una terminación
brupta. Cualquiera de las partes puede invocar una terminación abrupta. Esta puede
realizarse si una aplicación quiere abortar una conexión o si TCP ha detectado un problema
p
terminación.
B. {Yo también he terminado}
A. {Ok}
1.8. TERMINACIÓN DE UNA SESIÓN
APLICACIÓN
CLIENTE
1. El usuario
abandona
TCP
APLICACIÓN
SERVIDOR
Cierre de
conex
TCP
n
1. FIN SEQ #4001
ACK #8001
2. SEQ #8001
ACK # 4002
APLICACIÓN
CLIENTE
Cierre de
conexión
4. SEQ #4002
ACK #8002
3. FIN SEQ #8001
ACK #4002
TCP
APLICACIÓN
SERVIDOR
Cierre de la
conexión
TCP
otra parte que no va a enviar más datos.
3. El TCP cliente envía un ACK del segmento {FIN}
El TCP cliente notifica a su aplicación que
5. La aplicación cliente indica a TCP que termine.
6. El TCP cliente envía un mensaje {FIN}
7. El TCP servidor recibe el {FIN} del cliente y resp
8. El TCP servidor notifica a su aplicación
a
Redes y comunicaciones de datos. TCP/UDP
15
Luis Conde García
serio en la comunicación que no se puede resolver. Para solicitar una terminación
abrupta se envía uno o mas {reset} al otro extremo. El {reset} se indica mediante una
bandera de la cabecera de TCP.
El sistema del otro extremo puede quedar fuera de servicio o el camino hasta el otro
xtremo puede cortarse o perderse debido a una pasarela o un enlace. ¿Cómo sabe TCP que
o debe retransmitir los datos eternamente?. Existen varios mecanismos.
rvicio y notifica a
aplicación que existe un problema. TCP procede a retransmitir hasta que se alcanza un
ntaciones, TCP seguirá intentando llegar al
estino hasta que fallen los plazos, después de todo, puede que el problema se solucione.
ire. Normalmente la
cción es cortar la conexión.
TCP es un protocolo orientado a conexión y confiable. Por eso usa diversas técnicas
ara proveer la entrega confiable de datos. Estas técnicas permiten a TCP recobrarse de
rrores como paquetes perdidos, duplicados, retardados, diferentes velocidades de
una confirmación positiva con retransmisión para
lograr la entrega de datos confiable. De este modo, el receptor envía mensajes de
control de confirmación {ACK} al emisor para verificar la recepción exitosa de la
1.8.1. Fin de
p
lazo
e
n
Tras llegar a un primer umbral en el número de retransmisiones, TCP avisa a IP que
compruebe si el problema es un encaminador que ha quedado fuera de se
la
segundo umbral, después se corta la conexión.
También puede llegar un mensaje ICMP indicando que no se podía alcanzar el
destino por alguna razón. En algunas impleme
d
Después hace llegar a la aplicación el estado de {destino inalcanzable}.
Una aplicación también puede fijar su propio límite en el tiempo de entrega de los
datos, junto con la acción que hay que tomar cuando el plazo exp
a
1.9. CONTROL DE ERRORES
p
e
transmisión entre nodos y congestión.
Paquetes perdidos. TCP usa
información. A su vez, el emisor inicializa un {timer} al transmitir la información. Si
el {timer} expira antes que la confirmación llegue, el emisor debe retransmitir la
información inicializando un nuevo timer.
Paquetes duplicados. Si el receptor recibe un paquete duplicado no lo toma en
cuenta y procede a su descarte, ya que éste habrá sido tomado y marcado como
recibido.
Redes y comunicaciones de datos. TCP/UDP
16
Luis Conde García
Retardo de paquetes. Si un paquete no es recibido y el siguiente si, el receptor no
mueve la ventana deslizante hasta que el segmento faltante sea recibido. De esta
manera el receptor al no recibir el {ACK} reenvía el paquete perdido o retrasado.
a
da. Para la decisión de eno de datos, el emisor toma en cuenta el tamaño de
Cad o de datos,
ego TCP se encarga de separar esta información en segmentos, cada uno de los cuales
ene a lo más el tamaño de un paquete IP. El flujo dado por la aplicación es numerado por
la c
ara garantizar la
llegada de los paquetes. Este mecanismo es un mecanismo de doble filo ya que una
retr ns
misor para detectar el nivel de
ongestión y si éste está sobre un cierto nivel de umbral considerado el máximo aceptable,
retra
ctan al rendimiento. Los básicos son los recursos como
memoria y el ancho de banda de la red.
isión implica un gran número de datagramas
escartados. Al descartar se desencadenan retransmisiones, con lo que se reduce el ancho
ndo sin interrupción. Resulta especialmente importante en las redes con
randes retardos, donde pasa mucho tiempo entre el envío y recepción de datos y la
Diferentes velocidades de transmisión. Al establecer la conexión TCP, tanto el
emisor como el receptor indican cual es su capacidad de almacenamiento
intermedio para acordar cual será la velocidad a la cual la transmisión se llevará
cabo.
Congestión. TCP implementa una política en la cual mantiene una ventana para
medir la congestión, cada vez que un temporizador expira, ésta ventana es
reduci
esta ventana para crear el tamaño de la ventana deslizante de datos.
a aplicación entrega arbitrariamente toda la información como un fluj
lu
ti
antidad de bytes transferidos y cada uno de estos segmentos contiene un número de
secuencia de los bytes de información. Así, el receptor envía un segmento con el número de
secuencia de la información confirmada, no de los segmentos. Los {ACK} son acumulativos,
de esta manera un {ACK} puede ser la confirmación de varios segmentos.
Una de las causas por las que se pueden perder paquetes es el trafico excesivo. Pero
algunos protocolos como TCP utilizan la retransmisión como mecanismo p
a misión excesiva puede contribuir en la congestión.
TCP interpreta la perdida de un paquete como un indicador de congestión. El
mecanismo de control de TCP es usado por el nodo e
c
la nsmisión de paquetes es reducida. El mecanismo utilizado consiste en que un host
envía un paquete, y si una confirmación llega sin perdida, el emisor envía dos paquetes y
comienza a aumentar la ventana en potencia de dos. Cuando TCP envía un número de
paquetes igual a la mitad del tamaño de una ventana, la tasa de incremento disminuye
hasta recibir las confirmaciones de los paquetes enviados.
1.10. RENDIMIENTO
Hay muchos factores que afe
la
El ancho de banda y los retardos de la red subyacente imponen límites al
rendimiento. Una baja calidad de transm
d
de banda efectivo.
Un receptor que dispone de un gran búfer de entrada permite que el emisor
continúe transmitie
g
Redes y comunicaciones de datos. TCP/UDP
17
Luis Conde García
ac ación de la ventana. Para conseguir un flujo continuado de datos desde el emisor al
receptor, el destino necesita una ventana de recepción que sea al menos del tamaño de:
Ancho de banda X retardo
Ejemplo, si se pueden enviar 10.000 bytes por segundo y el {ACK} tarda 2 segun
tualiz
dos
n llegar, el receptor debe disponer de unfer de al menos 20.000 bytes para mantener un
flujo continuo de datos. Con un b dar 10.000 bytes, el rendimiento
dad y realizar rápidamente {cambios de contexto}, es decir, dejar de
acer una cosa y pasar a hacer otra. Un host puede estar dando servicio a muchos usuarios
cales
na transmisión de datos.
necesarios y con temporizadores que liberen
cuando no se este realizando ningún trabajo útil, también se mejorara el
Aplicación
Enviar y recibir datos eficientemente.
e
úfer que sólo puede guar
se reduce a la mitad.
Otro factor que afecta al rendimiento es la capacidad del host para reaccionar a
eventos de alta priori
h
lo interactivos, procesos de fondo y docenas de conexiones de comunicaciones. Una
implementación que integra TCP/IP con el núcleo del sistema operativo puede reducir
significativamente el sobrecoste del cambio de contexto. Se necesitan recursos suficientes
de CPU para llevar a cabo rápidamente los pasos necesarios para el procesamiento de una
cabecera de TCP.
Una CPU que no puede calcular rápidamente los valores de la suma de control
puede ralentizar u
El software también influye en el rendimiento, si se escriben programas que no
realicen pequeños envíos y recepciones in
recursos de red
rendimiento.
Factores de rendimiento de TCP.
Admin istema istrador de s
Ajuste de los parámetros.
Fabricante
Softwar forme. e de TCP/IP eficiente y con
Sistema operativo y Hardware
Disponibilid
ad de memoria, potencia de CPU, cambios de contexto.
Red
Ancho de banda, retraso, calidad y capacidad.
Redes y comunicaciones de datos. TCP/UDP
18
Luis Conde García
El {arranque lento} previene que una sesión incorpore grandes cantidades de trafico
una red que puede que ya este congestionada. Imagínese una empresa con 500 empleados
ue llegan a las 8:00 a.m. y empiezan todos a validarse en la red al mismo tiempo. La idea
nta en un segmento la ventana de congestión,
ientras sea menor que la {ventana de recepción}. Si la red no está sobrecargada, la
entana
e dos segmentos. Si llegan {ACK} para dos segmentos,
ventana se incrementa a cuatro segmentos. Si estos también se confirman correctamente,
venta
En las primeras implementaciones de TCP/IP se observo que ocurría con bastante
ecuencia un fenómeno al que se llamo {síndrome de la ventana tonta (SWS)}. Ejemplo:
2. La aplicación receptora lee atentamente byte a byte de datos del búfer de recepción.
3. Se llena el búfer
P envía un {ACK} que dice {tengo sitio
paqueta un byte y lo transmite.
K}, repitiéndose el proceso.
a
q
del {arranque lento} es que una nueva conexión empiece despacio, aumentando su tasa de
transferencia gradualmente según las condiciones de la red. Durante el establecimiento de
la conexión, el otro extremo indica su ventana de recepción. Se calcula el tamaño de una
segunda {ventana de congestión} con el propósito de moderar la transmisión de acuerdo
con las condiciones de la red. El emisor está limitado por la ventana de congestión en lugar
de por la (mayor) ventana de recepción.
La ventana de congestión empieza con un segmento. Por cada segmento del que
recibe un {ACK} correctamente, aume
m
v de congestión alcanza pronto el tamaño de la ventana de recepción. Durante el
estado normal de la transmisión, el tamaño de la ventana de congestión es idéntico al
tamaño de la ventana de recepción.
Hay que tener en cuenta que el arranque lento no es realmente lento. Tras el primer
{ACK}, la ventana de congestión es d
la
la na va creciendo exponencialmente.
1.10.1. Arran
q
ue lento
1.10.2. Síndrome de la ventana tonta
fr
1. Una aplicación envía datos rápidamente.
4. La aplicación receptora lee un byte, y TC
para un byte de datos}.
5. El TCP emisor em
6. El TCP receptor envía un {ACK} que dice {gracias ya lo tengo y no me queda más
sitio}.
7. La aplicación receptora lee un byte y envía un {AC
Redes y comunicaciones de datos. TCP/UDP
19
Luis Conde García
La lenta aplicación receptora ya tiene un montón de datos esperando y darse prisa en
sertar bytes en la parte derecha de la ventana no resulta útil, sino que añade un tráfico
inn
tiene por que ser tan extrema para generar problemas. Se puede
producir con un emisor rápido, una aplicación que recibe lentamente y lee trozos de datos
e tam
in
ecesario en la red.
Esta situación no
d año máximo de segmento y búfer de recepción casi lleno. Ejemplo:
Este búfer podría producir un {síndrome de venta
La solución es sencilla. Cuando la ventana se reduce a menos de un determinado
maño, TCP empieza a mentir. TCP no debe decir al otro extremo que existe espacio
dicion
Mínimo (1/2 tamaño del búfer de recepción, tamaño máximo del segmento)
TCP empieza a mentir cuando el tamaño de la ventana es menor que dicha
antidad y dice la verdad cuando el tamaño de la ventana es al menos dicha cantidad.
ión
es
El retraso de los {ACK} es otro de los mecanismos que puede mejorar el
endimiento. Al reducir el número de {ACK} enviados, se ahorra ancho de banda que se
Pueda confirmar varios segmentos con un único mensaje {ACK}.
Ventana
de
r
na tonta}.
ta
a al en la ventana cuando la aplicación receptora realiza una pequeña lectura. En
lugar de ello, TCP debe mantener los recursos extra en secreto hasta que el tamaño objetivo
de espacio de búfer quede libre. El tamaño recomendado es de un segmento, excepto en el
caso en que en el búfer completo sólo quepa un segmento, en cuyo caso sirve medio
segmento. El tamaño objetivo con el que TCP vuelve a decir la verdad es:
c
Tenga en cuenta que no ocurre nada malo por mantener los envíos, ya que la aplicac
receptora no ha recogido la mayor parte de los datos que están esperando. La solución
sencilla, supongamos que el búfer de recepción puede almacenar varios segmentos. El
emisor rápido llenara el búfer de recepción y se indicara al emisor que no queda sitio
disponible hasta que quede libre, suficiente espacio para recibir un segmento completo.
ece
p
ción
1.10.3. Retraso de los ACK
r
puede utilizar para otro tráfico. Si el otro extremo espera un poco antes de enviar un {ACK},
existe la posibilidad de que:
Redes y comunicaciones de datos. TCP/UDP
20
Luis Conde García
La aplicación del otro extremo puede recoger datos para enviar dentro del plazo
ra del mensaje de
Par , por ejemplo cuando se realiza una
ansferencia de archivos, debería enviarse un {ACK} al menos por cada segmento. Muchas
imp
Tras el envío de un segmento, TCP arranca un temporizador y espera un {ACK}. Si
l {ACK} no llega en el plazo establecido, TCP retransmite el segmento. ¿Cuál es ese plazo
TCP ha demostrado ser muy flexible, funcionando en redes que transportan cientos
millones de bits por segundo. El protocolo ha conseguido buenos resultados en LANS
está afinado para que responda en condiciones poco normales como las
ongestiones. Sin embargo, tiene algunas características que limitan la tasa de TCP usando
cnolo
s
istemas y se quieren enviar los datos de la forma más eficiente posible. Imaginemos:
El tamaño máximo del segmento es de 4 KB.
La ventana de recepción es de 4 KB.
del temporizador, en cuyo caso el {ACK} puede ir en la cabece
salida y no haría falta un mensaje separado.
a evitar el retraso de segmentos completos
tr
lementaciones usan un plazo de 200 milisegundos. Hay que recordar que retrasar los
{ACK} no ralentiza la transmisión. Si llegan pequeños segmentos habrá mucho sitio en el
búfer y el transmisor puede seguir enviando aunque las retransmisiones se ralenticen. Si
llegan segmentos completos, cada segundo segmento activará inmediatamente un {ACK}.
e
de espera? Si el plazo de retransmisión es demasiado corto, el emisor abarrotara la red con
segmentos innecesarios y cargara al receptor con duplicados. Pero si los plazos son
demasiado largos se pierde la oportunidad de recuperarse rápidamente cuando realmente
se pierde un segmento y se reduce el rendimiento. ¿Cómo se elige el plazo ideal? Porque
un valor que funciona bien en una Red de área local (LAN) de alta velocidad podría
resultar desastroso en una conexión de larga distancia con muchos saltos, por eso un plazo
fijo no puede ser la solución. Por eso existen algoritmos como los de Jacobson, Karn y
Partridge que permiten que TCP se adapte a las condiciones cambiantes y así poder elegir
el buen plazo de retransmisión.
1.10.4. Plazo de retransmisión
1.10.5. Barreras al rendimiento
o
Ethernet, Token-Ring o en la Interfaz de datos distribuidos por fibra (FDDI), así como en
enlaces con poco ancho de banda y en enlaces con grandes retardos, como en los enlaces
por satélite.
TCP
c
te gías que ofrecen un ancho de banda de cientos o miles de megabytes por segundo.
Supongamos que se está realizando una transferencia de archivos entre do
s
Redes y comunicaciones de datos. TCP/UDP
21
Luis Conde García
Hay suficiente ancho de banda para enviar 2 segmentos por segundo.
tos en cuanto llegan.
e, pues en cuanto se termina la asignación de
entana, llega un {ACK} que permite enviar otro segmento:
ENVIO SEGMENTO 1.
ENVIO SEGMENTO 2.
Han pasado dos segundos:
SE RECIBE EL {ACK} DEL SEGMENTO 1, SE PUEDE ENVIAR EL SEGMENTO 5
SE RECIBE EL {ACK} DEL SEGMENTO 2, SE PUEDE ENVIAR EL SEGMENTO 6
an pasado otros dos segundos:
SE RECIBE EL {ACK} DEL SEGMENTO 5, SE PUEDE ENVIAR EL SEGMENTO 9
…………………………………….
Si la ventana de recepción hubiese sido de tan solo 2 KB, el emisor hubiese estado
rzado a esperar un segundo de cada dos antes de poder enviar más datos. De hecho, para
Ventana= ancho de banda X tiempo de ida y vuelta
Aunque el ejemplo era exagerado, demuestra que una ventana pequeña puede
ocasionar problemas en los enlaces de satélites con largo retardos. Otro ejemplo es lo que
curre
P es
La aplicación receptora recoge los da
Los {ACK} llegan tras dos segundos.
El emisor podrá enviar datos rápidament
v
ENVIO SEGMENTO 3.
ENVIO SEGMENTO 4.
SE RECIBE EL {ACK} DEL SEGMENTO 3, SE PUEDE ENVIAR EL SEGMENTO 7
SE RECIBE EL {ACK} DEL SEGMENTO 4, SE PUEDE ENVIAR EL SEGMENTO 8
H
fo
mantener un flujo continuo, la ventana de recepción ha de tener un tamaño de al menos:
o con conexiones con un gran ancho de banda. Si el ancho de banda y la tasa de de
transmisión son de 10 millones de bits por segundo, pero el tiempo de ida y vuelta es de
100 milisegundos (1/10 segundos), la ventana de recepción para mantener un flujo
continuo ha de mantener al menos 1.000.000 bits, es decir 125.000 bytes. Pero el mayor
numero que se puede escribir en el campo ventana de recepción de la cabecera de TC
de 65.536 bytes.
1.11. ESTADOS TCP
Redes y comunicaciones de datos. TCP/UDP
22
Luis Conde García
Una conexión de TCP pasa por cierto numero de estados. Primero se establece la
onexión mediante un intercambio de mensajes, después se transmiten los datos y después
cierr
c
se a la conexión mediante un intercambio de mensajes. Cada paso en el progreso de
una conexión se corresponde con un estado de la conexión. El software de TCP en cada
extremo de una conexión mantiene un registro del estado de su lado en todo momento.
Estado del servidor Evento Descripción
CLOSED Estado ficticio anterior a una conexión.
Apertura pasiva por la
aplicac idora
ión serv
LIS ión de
n cliente.
TEN
E
u
l servidor espera una solicitud de conex
El TCP servidor recibe
un {SYN}, envía
{SYN/ACK}
El servidor ha recibido un {SYN} y ha enviado
un {SYN/ACK}. Espera un {ACK}.
SYN-RECEIVED
El TCP servidor recibe el
{ACK}
ESTAB SHED
e ha recibido el {ACK} y la conexión está
LI
S
abierta.
Tran do del servidor
siciones de esta
Estado del servidor Evento Descripción
CLOSED Estado ficticio anterior a una conexión.
El clie una
ión. iente
nte solicita
El TCP clconex
envía un SYN.
SYN-SEN cliente ha enviado un {SYN} al servidor. El TCP
El TCP servidor recibe
}, envíaun {SYN/ACK
El cliente ha recibido un {SYN/ACK} del
{ACK}
servidor y ha enviado de vuelta un {ACK}.
ESTABLISHED
Puede empezar la transferencia de datos.
Tran do del cliente.
siciones de esta
Redes y comunicaciones de datos. TCP/UDP
23
Luis Conde García
Estado del servidor Evento Descripción
ESTABLISHED
La aplicación local
solicita
cerrar. TCP envía
un {FIN/ACK}.
FIN-WAIT-1
Quien cierra espera la respuesta del otro
extremo. Hay que recordar que en este punto
todavía pueden llegar datos del otro extremo.
TCP recibe {ACK} un
FIN-WAIT-2
Quien cierra ha recibido un {ACK} del otro
xtremo, pero no un {FIN}. Espera un {FIN} e
aceptando mientras tanto los datos que le
llegan.
TCP recibe un
{FIN/ACK}. Envía un
{ACK}.
TIME-WAIT
se mantiene en un limbo para
permitir que lleguen datos duplicados o {FIN}
La conexión
duplicados que puedan existir en la red. El
periodo de espera es el doble del tiempo
máximo de vida estimado de un segmento.
CLOSED
Se elimina toda la información sobre la
conexión.
Transic stado de quien cierra.
iones de e
Estado del servidor Evento Descripción
ESTABLISHED TCP recibe un
{FIN/ACK}.
CLOSE-WAIT-1 Llega un {FIN}
TCP envía un {ACK}
FIN-WAIT-2
TCP espera a qu
ierre. La aplicación puede
e su aplicación indique que
, opcionalmente, c
enviar más datos.
La aplicación local indica
el cierre.
TCP envía un
{FIN/ACK}.
LAST-ACK TCP está esperando el ultimo {ACK}
TC K} P recibe el {AC
CLOSED
Se elimina toda la información sobre la
onexión. c
Transic stado del extremo cerrado.
iones de e
Redes y comunicaciones de datos. TCP/UDP
24
Luis Conde García
Se puede utilizar el comando netstat –an para examinar el estado actual de las
onexiones. Esta herramienta proporciona información estadistica de las conexiones
ación de cada conexión:
er la conexión.
Local Address. El nombre o dirección IP de la computadora local y el numero de
a la
etstat tiene la siguiente sintaxis:
etstat [-a] [-e] [-n] [-o] [-s] [-p proto] [-r] [intervalo]
c
TCP/IP y de los protocolos activos.
Netstat proporciona la siguiente inform
Proto. El prototipo de transporte utilizado para establec
puerto utilizado por esa conexión.
Foreign Address. La dirección externa y el numero o nombre del puerto asociado
conexión.
State. Muestra el estado de la conexión, solo de TCP
n
n
Sintaxis Descrpción
-a
Muestra todas las conexiones y puertos de escucha. (Normalmente, el extremo
servidor de las conexiones no se
muestra).
-e Muestra estadísticas Ethernet. Se puede combinar con la opción -s.
-n meros de puertos y direcciones en formato numérico. Muestra nú
-o Muestra la Id. de proceso asociado con cada conexión.
-p proto
puede ser TCP,
sticas por
Muestra conexiones del protocolo especificado por proto; que
a mostrar estadíUDP, TCPv6 o UDPv6. Si se usa con la opción -s par
protocolo, proto puede ser TCP, UDP, TCPv6 o UDPv6.
-r Muestra el contenido de la tabla de rutas.
-s
Muestra estadísticas por protocolo. De forma predeterm
P y UDPv; se pu
inada, se muestran para
ede utilizar la opción -IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UD
p para especificar un subconjunto de los valores predeterminados.
intervalo
Vuelve a mostrar las estadísticas seleccionadas, haciendo pausas en el intervalo
de segundos especificado entre cada muestra. Presione Ctrl+C para detener la
actualización de estadísticas. Si se omite, netstat imprimirá la información de
configuración una vez.
Netstat sin argumentos proporciona el estado basico de las conexiones.
etst
tivas
l Dirección remota Estado
baym-cs186.msgr.hotmail.com:1863 ESTABLISHED
IT
C:\n at
Conexiones ac
Proto Dirección loca
CP cia:3012 T
TCP cia:3032 194.224.100.71:http CLOSE_WA
TCP cia:3048 a217-75-98-16.deploy.akamaitechnologies.com:http CLOSE_WAIT
Redes y comunicaciones de datos. TCP/UDP
25
Luis Conde García
Con la opción –s muestra estadisticas para los protocolos IP,, ICMP, TCP y UDP.
:\netstat -s
IPv4
= 5963
rrores de encabezado recibidos = 0
95
68
s = 0
= 0
Recibidos Enviados
ensajes 8 3
Errores
didas
221
asivos abiertos = 0
8
78
04
0
in puerto = 2
C
Estadísticas de
Paquetes recibidos
E
Errores de dirección recibidos = 6
Datagramas reenviados = 0
Protocolos desconocidos recibidos = 0
Paquetes recibidos descartados = 23
Paquetes recibidos procesados = 35
Solicitudes de salida = 3771
Descartes de ruta = 0
Paquetes de salida descartados = 0
Paquetes de salida sin ruta = 0
Reensambles requeridos = 0
Reensambles correctos = 0
Reensambles erróneos = 0
Datagramas correctamente fragmentado
Datagramas mal fragmentados
Fragmentos creados = 0
Estadísticas ICMPv4
M
0 0
Destino inaccesible 7 2
Tiempo agotado 0 0
Problemas de parámetros 0 0
Paquetes de control de flujo 0 0
Redirecciones 0 0
Echos 0 1
Respuestas de eco 1 0
Fechas 0 0
Respuestas de fecha 0 0
Máscaras de direcciones 0 0
Máscaras de direcciones respon 0 0
Estadísticas de TCP para IPv4
Activos abiertos =
P
Intentos de conexión erróneos =
Conexiones restablecidas =
Conexiones actuales = 5
Segmentos recibidos = 2288
Segmentos enviados = 24
Segmentos retransmitidos = 10
Estadísticas UDP para IPv4
Datagramas recibidos = 127
S
Errores de recepción = 16
Redes y comunicaciones de datos. TCP/UDP
26
Luis Conde García
Datagramas enviados = 1353
Con la opción –an muestra las direcciones y el estado de todas las conexiones asi
omo su
:\netstat -an
as
cal Dirección remota Estado
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
LISHED
_WAIT
c s puertos.
C
Conexiones activ
Proto Dirección lo
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3012 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3023 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3024 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3032 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3040 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3048 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3056 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3057 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3067 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3201 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3220 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3227 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3228 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3229 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3231 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3236 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3237 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5000 0.0.0.0:0 LISTENING
TCP 127.0.0.1:3001 0.0.0.0:0 LISTENING
TCP 127.0.0.1:3002 0.0.0.0:0 LISTENING
TCP 127.0.0.1:3003 0.0.0.0:0 LISTENING
TCP 213.102.64.17:3012 207.46.4.54:1863 ESTAB
TCP 213.102.64.17:3032 194.224.100.71:80 CLOSE
TCP 213.102.64.17:3048 217.75.98.16:80 ESTABLISHED
TCP 213.102.64.17:3187 216.12.215.207:80 TIME_WAIT
TCP 213.102.64.17:3201 217.75.98.7:80 ESTABLISHED
TCP 213.102.64.17:3220 130.94.72.189:80 ESTABLISHED
TCP 213.102.64.17:3227 217.75.98.7:80 ESTABLISHED
TCP 213.102.64.17:3228 62.37.226.86:80 ESTABLISHED
TCP 213.102.64.17:3229 62.37.226.86:80 ESTABLISHED
TCP 213.102.64.17:3231 161.58.186.225:80 ESTABLISHED
TCP 213.102.64.17:3236 62.37.236.78:80 ESTABLISHED
TCP 213.102.64.17:3237 62.37.236.78:80 ESTABLISHED
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:1025 *:*
UDP 0.0.0.0:3010 *:*
UDP 0.0.0.0:3022 *:*
UDP 0.0.0.0:3031 *:*
UDP 0.0.0.0:3064 *:*
Redes y comunicaciones de datos. TCP/UDP
27
Luis Conde García
UDP 0.0.0.0:3065 *:*
UDP 127.0.0.1:123 *:*
UDP 127.0.0.1:1900 *:*
rotocolo de datagrama de usuario (UDP).
UDP es un protocolo de transporte de nivel 4 (OSI) no orientado a conexión. UDP
es un prot
te
i o para realizar
consulta
Comunicación con UDP.
UDP 127.0.0.1:2234 *:*
Capitulo
2
P
ocolo de datagrama que no garantiza la entrega de los datos. Si una aplicación
envía una petición en un datagrama de UDP y no llega una respuesta en un tiempo
razonable, es responsabilidad de la aplicación el retransmitir la petición. UDP simplemen
envía el datagrama y no se preocupa de si llega o no. Al no garantizar la entrega, hace que
sea un protocolo mucho más rápido y ligero que TCP ofreciendo un transporte alternativo
a aquellos procesos que no requieren una entrega fiable.
Muchas aplicaciones usan UDP para enviarse mensajes entre s
s rápidas a bases de datos o servidores DNS (Domain Name System). UDP es una
pieza perfecta para construir funciones de monitor, depuración, gestión y prueba.
2. INTRODUCCIÓN
CLIENTE
ERVIDOR
¿Cuál es la dirección
IP para….
Res
p
uesta
S
Redes y comunicaciones de datos. TCP/UDP
28
Luis Conde García
Aunque UDP es menos fiable que TCP en algunas ocasiones es más recomendable que
TCP ya que
Los mensajes entre host son esporádicos. SNMP (Simple Network Management
e
tensa, se
je
ajo al
El interfaz que esta entre UDP y el proceso local, se llama puerta. Para que una
plicación
1. Un usuario invoca un programa cliente, como por ejemplo nslookup
a comunicación
Los puertos se identifican mediante un número decimal que va desde el 0 hasta el
65.535. Los fabricantes que implementan UDP disponen de una gran libertad para
al
ofrece ventajas en determinadas situaciones:
Protocol) vuelve a ser un buen ejemplo. Sus mensajes se envían a intervalos
irregulares. La carga de trabajo necesaria para abrir y cerrar la conexión TCP de
cada mensaje retrasaría su transmisión y penalizaría el rendimiento.
Mensajes que no requieren acuse de recibo. UDP contribuye a reducir el tráfico d
la red. Los avisos de SNMP pertenecen a esta categoría. En una red ex
genera una gran cantidad de avisos SNMP cuando los dispositivos SNMP
transmiten sus actualizaciones de estado. Sin embargo, la pérdida de un mensa
SNMP no suele ser crítica y la red se libera de una importante carga de trab
utilizar UDP para SNMP.
La fiabilidad se implementa al nivel del proceso. El sistema de archivos de red
(NFS) es un buen ejemplo de proceso que implementa su propia función de
fiabilidad y se ejecuta sobre UDP para mejorar el rendimiento de la red.
Lo pueden usar aplicaciones que necesitan enviar mensajes de difusión o
multidifusión, por ejemplo un cliente de BOOTP.
a
2.1. PUERTOS DE APLICACIÓN
pueda acceder a la red y pueda enviar datos a través de ella lo debe hacer a
través de un puerto.
2. El proceso cliente ejecuta una rutina del sistema que dice: {Quiero un
de UDP. Dame un puerto.}
3. La rutina del sistema le asigna un identificador de 16 bits llamado {numero de
puerto} que este libre.
asignar números de puertos a los procesos, aunque la Autoridad de Números
Asignados de Internet (IANA) ha reservado un rango de puertos que va desde el 0
1.023 para servicios estándar, (Well-Known) como DNS, SNMP, o Netbios.
Redes y comunicaciones de datos. TCP/UDP
29
Luis Conde García
Puerto Aplicación Descripción
7 Eco Eco del datagrama de usua l emisor. rio de vuelta a
9 D iscard Descartar el datagrama de usuario.
13 DayTime el usuario. Indica la hora de forma sencilla para
17 Quote Devuelve una {cita del día}.
19 C hargen Intercambiar flujos de caracteres
53 DNS Servidor de nombres de dominio.
67 B la información de configuración. ootps Puerto del servidor para descargar
68 Bootpc Puerto del cliente para recibir recibir información de configuración.
69 TFTP Puerto del Protocolo trivial de transferencia de archivos.
161 SNMP Usado para recibir las peticiones de gestión de red.
162 SN p . MP-tra Usado para recibir los informes de problemas de red
Lista al U
Algunos de estos servicios proporcionan bloques para probar, depurar y medir,
omo e .
e
e
TP
e y
tware
Los puertos TCP y UDP son independientes unos de otros. Un proceso puede
ión
r
A la combinación de una dirección de IP y de puerto para una comunicación se le
ama {
do de gunos puertos DP públicos.
c l servicio {eco} en el puerto 7 donde devuelve cualquier datagrama que se le envía
Otro puerto como el 9 (Discard) tira los datagramas que recibe. El puerto 19 es un
generador de caracteres donde responde a cualquier mensaje con un datagrama qu
contiene entre 0 y 512 bytes. El número se elige aleatoriamente. El servicio cita del día qu
escucha por el puerto 17, responde a cualquier datagrama enviando de vuelta un mensaje
con alguna frase histórica o de sabiduría popular al cerrar la sesión o ejecutar el comando
fortune. El puerto 13 (DayTime) responde a cualquier datagrama con un mensaje que
contiene la fecha y hora actual en formato ASCII legible. El servidor y el cliente de BOO
se usan para inicializar dispositivos sin configuración (terminales tontos). Una estación de
trabajo puede descubrir su dirección de IP, su Mascara de red, la situación de su
encaminador por defecto, la dirección de servidores importantes y hasta el nombr
ubicación de un archivo de descarga de software desde el servidor de arranque. El sof
de la estación de trabajo se descarga mediante el protocolo trivial de transferencia de
archivos (TFTP; UDP 69).
enviar mensajes por el puerto 1700 de UDP a la vez que otro está manteniendo una ses
en el puerto 1700 de TCP. Algunos servicios necesitan acceder tanto a TCP como a UDP po
eso el IANA intenta asignar el mismo número de puerto a los servicios que necesitan UDP
como TCP, como por ejemplo DNS, que escucha por el puerto 53 de TCP y UDP.
ll dirección de conector} o {socket}. Un socket ofrece toda la información que necesita un
cliente o un servidor para identificar a su otro extremo.
Redes y comunicaciones de datos. TCP/UDP
30
Luis Conde García
2.2. CABECERA UDP
0 1 2 3
0 1 2 9 0 1 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
Puer d e u t n to e orig n P er o de desti o
Tamaño Suma de control
Cabecera de UDP
Una cabecera UDP se compone de dos palabras de 32 bits y tiene los siguientes
Puerto de origen (16 bits). Este campo es opcional y especifica el puerto de origen
uyendo la cabecera y
os de los
a de control de UDP es validar el {contenido}
a
1 2 3
0 1 2 9 0 1
.
campos:
cuando es necesario permitir al receptor del datagrama enviar una respuesta.
Puerto de destino (16 bits). El puerto del host IP de destino.
Longitud (16 bits). La longitud del datagrama en octetos incl
los datos. El valor mínimo es 8 para permitir el uso de una cabecera. Por
consiguiente la longitud máxima de un datagrama UDP es de 65.535 octet
que 65.527 pueden dedicarse a datos.
Suma de control. El objetivo de la sum
de un mensaje de UDP. La suma de control de UDP se calcula sobre la combinación
de una pseudocabecera construida especialmente con cierta información de IP., la
cabecera de UDP y los datos del mensaje. El uso de la suma de control de UDP en l
comunicación en particular es opcional. Si no se usa, el campo vale 0. Si se ha
calculado una suma de control y su valor llega a valer 0, se representa con un
campo de unos.
0
3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
Direcci d oón e rigen
Dirección de destino
Cero Longitud de UDP Protocolo
Formato de la pseudocabecera de UDP.
Redes y comunicaciones de datos. TCP/UDP
31
Luis Conde García
2.3. DESBORDAMIENTO DE UDP
Cuando una aplicación adquiere un puerto de UDP, el software de red reservara
o.
Si se bombardea el servicio con mas datagramas de los que puede manejar, ese
jemplo:
netstat -a
…………….
incomplete headers
s
La clave de la capa de transporte es que permite a los desarrolladores de una
El gran interes de TCP radica en su capacida para aislar los procesos de la capa
ajes,
e
Por parte de UDP, es un protocolo más despreocupado en la realización de su
st,
algunos búfer para contener una cola de los datagramas de usuario que llegan a ese puert
Un servicio de UDP no tiene ninguna forma de predecir o controlar cuántos datagramas se
enviaran en un momento dado.
exceso simplemente se descarta.
E
>
0
0 bad data length fields
0 bad checksums
17 sockets overflow
2.4. DIFERENCIAS ENTRE TCP Y UDP
aplicación optar por la fiabilidad (TCP) o por la eficacia (UDP).
superior con respecto a la red. Los procesos no necesitan conocer el tamaño de los mens
ya que TCP se encarga de su fragmentación y reensamblaje. Además, los procesos no se
preocupan por la fiabilidad de la red, ya que TCP garantiza por completo la integridad d
los mensajes que transporta.
trabajo. A diferencia de TCP, UDP no necesita establecer circuitos virtuales entre los ho
esto permite una comunicación mas agil y eficiente, por eso UDP admite mensajes de
difusión y multidifusión.
Redes y comunicaciones de datos. TCP/UDP
32
Luis Conde García
TCP UDP
Fiable No fiable.
Orientado a conexión do a conexión. No orienta
Circuito virtual Datagramas.
Elevado trafico de control trol reducido. Trafico de con
Segmentación de mensajes Sin segmentación ni reensamblaje de mensajes.
Segmentos de mensajes secuenciales No secuenciales.
Tabla comparativa entre TCP y UDP.
Redes y comunicaciones de datos. TCP/UDP
33

Hazle saber al autor que aprecias su trabajo

Tu opinión vale, comenta aquíOculta los comentarios

Comentarios

comentarios

Compártelo con tu mundo

Cita esta página
Conde García Luis. (2006, Febrero 2). Protocolo de control de transmisión TCP. Recuperado de https://www.gestiopolis.com/protocolo-de-control-de-transmision-tcp/
Conde García, Luis. "Protocolo de control de transmisión TCP". GestioPolis. 2 Febrero 2006. Web. <https://www.gestiopolis.com/protocolo-de-control-de-transmision-tcp/>.
Conde García, Luis. "Protocolo de control de transmisión TCP". GestioPolis. Febrero 2, 2006. Consultado el 11 de Agosto de 2017. https://www.gestiopolis.com/protocolo-de-control-de-transmision-tcp/.
Conde García, Luis. Protocolo de control de transmisión TCP [en línea]. <https://www.gestiopolis.com/protocolo-de-control-de-transmision-tcp/> [Citado el 11 de Agosto de 2017].
Copiar
Imagen del encabezado cortesía de kiui en Flickr