如何在使用 Python 构建 TCP SYN 数据包时设置 TCP 选项时间戳?

0 投票
1 回答
3923 浏览
提问于 2025-04-16 12:19

我需要发送一个带有时间戳值的TCP SYN数据包。因为TCP选项需要以32位的格式来打包,有没有人能简单告诉我怎么在32位的数据包中设置这个值,并给个例子?

提前谢谢你们!

1 个回答

1

你可以很轻松地用Scapy来做到这一点。当你定义TCP层的时候,只需要使用

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

这里的TSval就是你的时间戳值。如果你想把生成的包转换成二进制格式,可以对它调用str()

在以后的数据包中,你可以把0替换成合适的时间戳回显,具体可以参考RFC 1323

撰写回答