在python中设置tcp MSS

在python中设置tcp MSS,python,networking,raw-sockets,dpkt,Python,Networking,Raw Sockets,Dpkt,我正在努力做到以下几点: (1) 接收网络包, (2) 将tcp mss(最大段大小)更改为其他值, (3) 把包裹寄出去 我正在使用python、iptables和dpkt来实现这一点,但我无法更改tcp头中的MSS(在dpkt中,如何更改pkt.tcp.opts中的MSS) 有人能帮我更改TCP头中的MSS吗 谢谢 buf=pkt.tcp.opts buf = pkt.tcp.opts buf2 = "" while buf: o = ord(buf[0]) if o

我正在努力做到以下几点:

(1) 接收网络包, (2) 将tcp mss(最大段大小)更改为其他值, (3) 把包裹寄出去

我正在使用python、iptables和dpkt来实现这一点,但我无法更改tcp头中的MSS(在dpkt中,如何更改pkt.tcp.opts中的MSS)

有人能帮我更改TCP头中的MSS吗

谢谢

buf=pkt.tcp.opts
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
buf2=“” 而buf: o=ord(buf[0]) 如果o>tcp.tcp\u OPT\u NOP: l=ord(buf[1]) d=buf[2:l] 如果o==tcp.tcp\u OPT\u MSS: mss=结构解包(“>H”,d)[0] mss2= d2=结构包(“>H”,mss2) buf=buf[0:2]+d2+buf[l:] buf2+=buf[0:l] buf=buf[l:] 其他: buf2+=buf[0] d、 buf='',buf[1:] pkt.tcp.opts=buf2