¿Cómo derivar los campos de la opción TSVal y TSecr TCP usando python?

Estoy tratando de desarrollar una pequeña prueba de concepto para un proyecto de redes Python, pero me he encontrado con un obstáculo. ¿Alguien podría explicar cómo podría derivar los valores TSVal y TSecr del sistema operativo en Python? Estoy usando Scapy para ver si puedo conectarme a un progtwig de servidor Python simple como cliente. La siguiente statement es donde estoy un poco atascado.

TCP(flags='S', options=[('Timestamp', (TSval, TSecr))]) 

Entonces, si alguien pudiera recomendar un algoritmo o una biblioteca de Python para calcular el TSval y el TSecr, ¡sería muy apreciado!

¡Gracias por adelantado!

Creo que ambos valores deben ser calculados por usted mismo y asignarlos al paquete.

Existe la posibilidad de que scapy asigne estos valores automáticamente. Puedes intentarlo. Pero si no, tienes que calcularlo por ti mismo de acuerdo con el RFC.

TSV es el campo de Timestamp Value . Se usa junto con el número de secuencia para identificar de forma única los segmentos (ya que los números de secuencia pueden ajustarse).

TSER es el campo Timestamp Echo Reply . Esto se utiliza en los mensajes ACK. Contiene una copia del último valor TSV recibido. Puede utilizarse para la estimación del tiempo de ida y vuelta (RTT = hora actual – TSER).

Los campos se describen formalmente en RFC 1323 (Extensiones TCP para alto rendimiento):

Opción de marcas de tiempo TCP (TSopt):

  Kind: 8 Length: 10 bytes +-------+-------+---------------------+---------------------+ |Kind=8 | 10 | TS Value (TSval) |TS Echo Reply (TSecr)| +-------+-------+---------------------+---------------------+ 1 1 4 4 The Timestamps option carries two four-byte timestamp fields. The Timestamp Value field (TSval) contains the current value of the timestamp clock of the TCP sending the option. The Timestamp Echo Reply field (TSecr) is only valid if the ACK bit is set in the TCP header; if it is valid, it echos a times- tamp value that was sent by the remote TCP in the TSval field of a Timestamps option. When TSecr is not valid, its value must be zero. The TSecr value will generally be from the most recent Timestamp option that was received; however, there are exceptions that are explained below.