在Minin中识别wget的ACK数据包

2024-06-16 09:40:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在mininet中,我可以在我的自定义POX控制器c0中的服务器h1和主机h4之间建立TCP连接,如下所示:

h1.cmd('python -m SimpleHTTPServer 80 &')
thread.start_new_thread(tcp_thread, h4)

def tcp_thread(src):
    for i in range(10):
        src.cmd('wget -O - 10.0.0.1')
        time.sleep(5) 

h4从服务器请求HTTP页面并根据TCP标准保持对服务器的正常确认。在这里,我希望能够强制h4使用它们之间的另一条路径发送ACK包。我在转发或创建路径方面没有问题,但在h4发送数据包之前,如何捕获或提取Ack包,这样我就可以按自己的意愿转发它们了。在

谢谢。在


Tags: 路径src服务器cmd控制器h1threadstart
1条回答
网友
1楼 · 发布于 2024-06-16 09:40:08

如果您有一个PacketIn函数,您可以添加一些代码行来捕获ACK标志

packet = event.parsed
tcp_found = packet.find('tcp')
if tcp_found:
  if tcp_found.ACK:
    print "ACK found"
    # do your things

ACK标志是POX wiki中所述的tcp属性

TCP (tcp) Attributes: ...... FIN (bool) - True when FIN flag set ACK (bool) - True when ACK flag set ......

为了获得这些属性,我们使用find方法将包的tcp部分分配给一个变量,然后使用点(.)ex访问这些属性

^{pr2}$

相关问题 更多 >