Seleccionar página

tcp_segmentEste protocolo esta en la capa de transporte, por lo tanto muchos programas dentro de una red de ordenadores pueden utilizarlo para comunicarse entre si mediante el envió de un flujo de datos. Es en esta parte de la comunicación donde se asegura que los paquetes llegue sin errores y ordenados a la capa de aplicación. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma maquina. Es lo que conocemos como puerto.La información se fracciona en datagramas de tamaño mas manejable para que luego sean enviados a través del protocolo TCP como partes independientes, de manera segura. Para conseguir esto el TCP añade a cada datagrama una cabecera.

.

Esta cabecera contiene una serie de campos obligatorios que se utilizaran para asegurar en el destino que la info. llego correctamente y para reconstruir la información original de manera ordenada, además podemos incluir de manera adicional hasta 132 bits. Este tamaño debe de ser múltiplo de 32 bits a si que hay que rellenarlo de ceros para completar el tamaño requerido.

Campos de los datagramas TCP:

  1. Puerto de origen: 16 bits. Hace falta asignar un puerto a cada ordenador para distinguirlos.
  2. Puerto destino: 16 bits: lo mismo que en el origen. Se suelen usar puertos estándar por ejemplo el 21 para el ftp o el 23 para el Telnet.
  3. Numero de secuencia: 32 bits: indica el numero del primer byte de datos del segmento TCP. Con esto se organizan los paquetes en el destino y se eliminan los duplicados.
  4. Numero de confirmación: 32 bits: si el flag ACK esta activo este campo contiene el valor del siguiente numero de secuencia que el sistema espera recibir. Siempre tendrá un valor cuando la conexión se haya establecido.
  5. Flags: 6 bits: determina el funcionamiento de la conexión TCP. Tipos:
    • URG: flag de urgencia. Indica que el campo urgent pointer tiene info. significativa.
    • ACK: reconoce una recepción correcta de datos indicando al campo de número de confirmación que es significativo.
    • PSH: función push que indica al receptor que ha de pasar los datos a la capa de aplicación rápidamente.
    • RST: indica reinicio de la conexión.
    • SYN: indica que se trata de un paquete que se utiliza al inicio de sesión para sincronizar los números de secuencia.
    • Fin: indica que no existen más datos y se comienza la negociación del fin de la conexión.
  6. Ventana: 16 bits: especifica el numero de bytes de datos que pueden ser recibidos empezando por el indicado en le campo numero de confirmación.
  7. Checksum: 16 bits: se utiliza para la integridad de la transmisión.
  8. Urgent pointer: 16 bits: indica el desplazamiento en el que se encuentran los datos urgentes con el propósito de que el receptor pueda acceder directamente. Solo es valido cuando el flag URG viene marcado.
  9. Options: campo opcional. Permite que una aplicación negocie durante la configuración de la conexión características como el tamaño máximo de segmento.
  10. Padding: tiene la misión de conseguir que la cabecera tenga un tamaño múltiplo de 32 bits añadiendo ceros necesarios para conseguirlo.
  11. Datos: en este campo es donde se almacenan los datos del envió.