我正在尝试执行以下操作:
(1) 接收网络数据包,(2) 将 tcp mss (max. segment size) 更改为不同的值,(3) 将数据包发送出去。
我正在使用 python、iptables 和 dpkt 来执行此操作,但我无法更改 tcp 标头中的 MSS(在 dpkt 中,如何更改 pkt.tcp.opts 中的 mss)?
有人可以帮我更改 TCP 标头中的 MSS 吗?
谢谢!
我正在尝试执行以下操作:
(1) 接收网络数据包,(2) 将 tcp mss (max. segment size) 更改为不同的值,(3) 将数据包发送出去。
我正在使用 python、iptables 和 dpkt 来执行此操作,但我无法更改 tcp 标头中的 MSS(在 dpkt 中,如何更改 pkt.tcp.opts 中的 mss)?
有人可以帮我更改 TCP 标头中的 MSS 吗?
谢谢!
buf = pkt.tcp.opts
buf2 = ""
while buf:
o = ord(buf[0])
if o > tcp.TCP_OPT_NOP:
l = ord(buf[1])
d = buf[2:l]
if o == tcp.TCP_OPT_MSS:
mss = struct.unpack(">H", d)[0]
mss2 = <newmss>
d2 = struct.pack(">H", mss2)
buf = buf[0:2] + d2 + buf[l:]
buf2 += buf[0:l]
buf = buf[l:]
else:
buf2 += buf[0]
d, buf = '', buf[1:]
pkt.tcp.opts = buf2