PDF de programación - El protocolo TCP - Práctica 3

Imágen de pdf El protocolo TCP - Práctica 3

El protocolo TCP - Práctica 3gráfica de visualizaciones

Publicado el 14 de Mayo del 2021
304 visualizaciones desde el 14 de Mayo del 2021
1,8 MB
15 paginas
Creado hace 23a (05/04/2001)
Redes de Computadores Ingenieria Informática.

Redes de computadores

Práctica 3

EEElll ppprrroootttooocccooolllooo TTTCCCPPP

1

Redes de Computadores

Ingeniería Informática.

El protocolo TCP

Introducción a TCP

TCP es un protocolo de nivel de transporte completo que proporciona un servicio de transferencia fiable
de datos y un método para trasladar datos encapsulados con TCP a un protocolo de nivel de aplicación.
TCP tiene las siguientes características.

• Orientado a conexión. Antes de transferir los datos, dos procesos de nivel de aplicación deben
negociar formalmente una conexión TCP utilizando el proceso de establecimiento de conexión
adecuado. Las conexiones de TCP se cierran formalmente empleando el proceso de desconexión
TCP.

• Full Duplex. Para cada extremo de una conexión TCP, la conexión consta de dos enlaces lógicos,
uno de salida y otro de entrada. Con la tecnología apropiada en el nivel de red los datos pueden fluir
simultáneamente en ambos sentidos. La cabecera TCP contiene tanto el número de secuencia de los
datos de salida como el reconocimiento de los datos de entrada.

• Fiable. Los datos que se envían por una conexión TCP se numeran en secuencia y se espera un
reconocimiento positivo por parte del receptor. Si no se recibe este reconocimiento, el segmento se
retransmite. En el receptor, los segmentos duplicados se descartan y los segmentos que llegan fuera
de secuencia se colocan en su posición dentro de la secuencia. Todo segmento transmitido va
protegido frente a errores mediante un código detector (CRC), que verifica la integridad de la
información recibida.

• Flujo de bytes. Para TCP los datos que se envían por los enlaces lógicos de entrada y salida se
consideran un flujo continuo de bytes. El número de secuencia y de reconocimiento que se envían en
cada cabecera TCP definen puntos concretos de este flujo de bytes. TCP no tiene en consideración
otras divisiones dentro del flujo de datos, siendo el protocolo de aplicación el que establezca las
divisiones lógicas adecuadas (por ejemplo, fin de registro ó de campo en bases de datos, fin de orden,
etc.)

• Control de flujo en ambos extremos. Para evitar la transmisión de excesivos datos simultáneos, que
podría causar problemas de congestión en los routers, TCP implementa un control de flujo en el
emisor que regula la cantidad de datos que se envían. Para evitar que el emisor transmita datos que el
receptor no es capaz de almacenar, TCP también implementa control de flujo en el receptor,
indicando cuánto espacio se encuentra disponible en los buffers del receptor.

• Segmentación de datos de aplicación. TCP segmentará los datos obtenidos del proceso de
aplicación para que se ajusten al tamaño de los paquetes IP. Ambos extremos TCP pueden negociar
el tamaño máximo de segmento, existiendo además la posibilidad de ejecutar un algoritmo de
descubrimiento del tamaño máximo en la ruta (PMTU).

• Transmisión uno a uno. Las conexiones TCP son un circuito lógico punto a punto entre dos

procesos de nivel de aplicación. TCP no proporciona servicios de difusión.

TCP emplea el mecanismo de los puertos para el acceso a diferentes destinos dentro de un Host. Al igual
que UDP, la utilización de los puertos permite que un cliente seleccione el servidor correspondiente a la
aplicación deseada dentro del computador destino.

Fases de TCP

Para garantizar que no se pierde ningún bloque de datos, una sesión TCP consta de tres fases:
- Establecimiento de conexión: Durante esta fase los hosts origen y destino determinan unos
parámetros necesarios para el intercambio de datos, como son el número inicial de secuencia, los
tamaños de buffer necesarios, etc., creando un marco para el intercambio fiable de información

- Transferencia de datos: La información viaja en ambos sentidos fraccionada en segmentos de
datos. En esta fase entran en juego los mecanismos de detección y corrección de errores, control de flujo
y control de la congestión.
- Cierre de conexión: Tras el intercambio de información, y a propuesta de uno de los extremos, se
intenta una desconexión negociada, donde no queden datos sin entregar por ninguna de las dos partes.

2

Redes de Computadores

Ingeniería Informática.

El flujo de datos es tratado como una secuencia de bytes (stream), siendo responsabilidad del protocolo la
decisión de cómo dividir (o agrupar) las unidades de datos de la aplicación a la hora de transferirlos.

Encapsulado de TCP

Al igual que en el caso de UDP e ICMP, los segmentos TCP viajan dentro de tramas IP

Campo Protocolo

TCP = 0x06

Segmento TCP

Cabecera IP

Campo de datos

Tipo de protocolo

IP = 0x0800

Direcciones MAC

Dir. Destino

Dir. Origen

0x800

Campo de datos (MTU = 1500)

Cabecera de la trama Ethernet (DIX)

Encapsulado de un segmento TCP en un datagrama.

Formato de segmentos TCP

A pesar de que el formato de un segmento TCP se explicará con detalle más adelante, para la realización
de la presente práctica resulta necesario conocer los siguientes campos de la cabecera:

0 4 10 16 24 31
Puerto TCP origen Puerto TCP destino

a
r
e
c
e
b
a
c

Número de secuencia

Número de reconocimiento

longc reservado código ventana
checksum

puntero a datos urgentes

opciones (Ej.: MSS) relleno

DATOS

Formato de un segmento TCP.

Los campos Puerto TCP origen y Puerto TCP destino identifican, junto a las direcciones origen y
destino del paquete IP, la conexión a la que pertenece el segmento.

El campo Número de secuencia (Sequence number) indica el orden, dentro de la transmisión, del primer
byte de datos contenido en el segmento. Junto al tamaño total del paquete IP, que permite conocer cuántos
bytes de datos se reciben, es posible determinar cuál será el número de secuencia del siguiente segmento.

El campo Número de reconocimiento (Acknowledgement number) indica cuál es el byte que el emisor
del segmento espera recibir como número de secuencia. Esto implica que todos los bytes transmitidos en
segmentos anteriores han llegado de forma satisfactoria. Sólo es significativo cuando el bit ACK del
campo Código está a 1

El campo Longc, o longitud de la cabecera, indica cuántas palabras de 32 bits (4 bytes) componen la
cabecera TCP. Como se comentará más adelante, en esta cabecera TCP pueden existir campos de tamaño

3

Redes de Computadores

Ingeniería Informática.

variable. El tamaño mínimo del campo es 5 (la cabecera ocupa 5 x 4=20 bytes) y el máximo será de 15
(15 x 4 = 60 bytes). Tras el mismo existen unos bits reservados, que por omisión deben estar a cero.

El campo código consta de seis bits, teniendo cada uno de ellos un significado independiente del resto.

Bit
URG
ACK
PSH
RST
SYN
FIN

Significado si está a uno
El puntero a datos urgentes es válido
El campo de reconocimiento es válido
Este segmento solicita un PUSH
Reiniciar la conexión
Establecimiento de conexión
El emisor llegó al final de su secuencia de datos

El campo ventana (Window) indica cuál es el tamaño de la ventana de recepción del emisor del
segmento, es decir, el espacio en memoria disponible en el receptor. Este campo limita la ventana de
transmisión del receptor del segmento, limitando el número de bytes que puede transmitir sin recibir
reconocimientos.

El campo checksum contiene un código detector de errores similar al ya comentado en UDP.

El campo puntero a datos urgentes permite, junto al bit URG, la transmisión de datos urgentes no
sujetos al control de flujo.

Finalmente, pueden existir una o varias opciones, que permiten gestionar aspectos como el tamaño
máximo de segmento, los reconocimientos selectivos, etc.

La siguiente tabla muestra las opciones más comunes, así como un breve resumen de su significado.

Utilización
Completa al final hasta múltiplos de 32
bits
Alinea opciones a palabras de 32 bits
Negociación del tamaño máximo de
segmento
Permite
transmisión.
Activar reconocimiento selectivo

la ventana de

aumentar

Permite reconocimientos explícitos para
bloques de datos no consecutivos.

Permite etiquetar los segmentos con
tiempos locales para mejorar el cálculo
del RTT

Código Opción
0x00

Fin de lista de opciones

0x01
0x02

0x03

No operación
Tamaño máximo
segmento
Escala de ventana TCP

de

Parámetros
Longitud (1 byte) = n
n-2 bytes a 0x00
1 Byte
Longitud (1 byte) = 4
Tamaño máximo (2 bytes)
Longitud (1 byte) = 3
Desplazamiento (1 byte)

0x04

Reconocimiento selectivo Longitud (1 byte) = 2

0x05

SACK

0x08

Marcas de tiempo

Longitud (1 byte)
Izquierda Bloque 1 (4 bytes)
Derecha Bloque 1 (4 bytes)
Izquierda Bloque 2 (4 bytes)
Derecha Bloque 2 (4 bytes)
...
Longitud (1 byte) = 10
Valor TS (4 bytes)
Respuesta de eco TS (4 bytes)

4

Redes de Computadores

Ingeniería de Informática.

Ejercicio 1

En este ejercicio vamos a identificar los diferentes campos de una traza TCP. Para ello monitorizaremos
una transferencia completa de una página Web.

Los pasos a seguir son los siguientes:

Paso 1: Pon en marcha un cliente WEB: Abre el cliente y espera a que la página inicial cargue
totalmente. Este hecho se indica por la detención del icono del cliente.

Paso 2: Establece la captura: Para ello, emplearemos el programa TCPMON.
El mecanismo sería el siguiente:
• Ejecución del programa TCPMON (Menú Inicio Programas Analizador TCP TCPMon).
• Comienzo de la
  • Links de descarga
http://lwp-l.com/pdf19189

Comentarios de: El protocolo TCP - Práctica 3 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad