【问题标题】:Scapy set tcp flow window bigger then 65535Scapy 设置 tcp 流窗口大于 65535
【发布时间】:2016-05-09 18:18:49
【问题描述】:
使用 scapy 时,如何设置流量控制窗口大于 65535 的 tcp 数据包?
我知道用 scapy 写作:
packet1[TCP].window=65535
将窗口设置为 65535;但是如果需要将窗口大小设置为大于 65535,则应该以不同的方式设置,因为在 tcp 标头中,窗口字段只有两个字节,所以它不能大于 65535,所以应该在另一个中完成方式。我知道这应该是可能的。
谢谢。
【问题讨论】:
标签:
tcp
scapy
flow-control
【解决方案1】:
排序答案是:您不能将 field TCP.window 设置为大于 65535 的值,因为它是用两个字节编码的:
>>> ls(TCP)
[...]
window : ShortField = (8192)
[...]
但 TCP 窗口可以高于 65535,使用“窗口比例”选项。窗口值是window 字段的值乘以 2 的窗口比例值的幂。
在 Scapy 中:
>>> IP()/TCP(window=65535, options=[('WScale', 10)])
值为65535 * 2 ** 10, 67107840。