martes, 9 de noviembre de 2010

Transmission Control Protocol (TCP)




Transmission Control Protocol

TCP es el protocolo mayor usado para la
comunicación de datos en Internet el 95 % de los paquetes que viajan por Internet viajan en el protocolo TCP.

TCP es uno de los protocolos fundamentales en Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras pueden usar TCP para crear conexiones entre ellos a través de las cuales puede enviarse un flujo de datos.

El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto.
TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP, SSH y FTP.


El formato de los datos en TCP

Un segmento TCP está formado de la siguiente manera:

URG ACK PSH RST SYN FIN

012345678910111213141516171819202122232425262728293031
Puerto de origenPuerto de destino
Número de secuencia
Número de acuse de recibo
Margen de datos
Reservado
Ventana
Suma de control
Puntero urgente
OpcionesRelleno
Datos

Significado de los diferentes campos:

Puerto de origen (16 bits): Puerto relacionado con la aplicación en curso en la máquina origen
Puerto de destino (16 bits): Puerto relacionado con la aplicación en curso en la máquina destino
Número de secuencia (32 bits): Cuando el indicador SYN está fijado en 0, el número de secuencia es el de la primera palabra del segmento actual.
Cuando SYN está fijado en 1, el número de se
cuencia es igual al número de secuencia inicial utilizado para sincronizar los números de secuencia (ISN).
Número de acuse de recibo (32 bits): El número de acuse de recibo, también llamado número de descargo se relaciona con el número (secuencia) del último segmento esperado y no el número del último segmento recibido.
Margen de datos (4 bits): Esto permite ubicar el inicio de los datos en el paquete. Aquí, el margen es fundamental porque el campo opción es de tamaño variable.
Reservado (6 bits): Un campo que actualmente no está en uso pero se proporciona para el uso futuro.
Indicadores (6x1 bit): Los indicadores representan información adicional:
URG: Si este indicador está fijado en 1, el paquete se debe procesar en forma urgente.
ACK: Si este indicador está fijado en 1, el paquete es un acuse de recibo.
PSH (PUSH): Si este indicador está fijado en
1, el paquete opera de acuerdo con el método PUSH.
RST: Si este indicador está fijado en 1, se restablece la conexión.
SYN: El indicador SYN de TCP indica un pedido para establecer una conexión.
FIN: Si este indicador está fijado en 1, se interrumpe la conexión.
Ventana (16 bits): Campo que permite saber la cantidad de bytes que el receptor desea recibir sin acuse de recibo.
Suma de control (CRC): La suma de control se realiza tomando la suma del campo de datos del encabezado para poder verificar la integridad del encabezado.
Puntero urgente (16 bits): Indica el número de secuencia después del cual la información se torna urgente.
Opciones (tamaño variable): Diversas opciones
Relleno: Espacio restante después de que las opciones se rellenan con ceros para tener una longitud que sea múltiplo de 32 bits.

En la siguiente imagen me llamo la atención por que es una comparación del modelo OSI y el protocolo TCP/IP durante sus diferentes capas.


Para mayor información



Saludos...

1 comentario: