如果我指定的控制器成功地在两台主机之间执行 ping 操作,是否可以通过 Mininet 在它们之间建立 TCP 连接?我成功地mininet>h0 ping h4
,但ping只是ICMP数据包而不是TCP!
谢谢
如果ping正常,您可以尝试iperf,它将通过TCP测试带宽(阅读此处 https://github.com/mininet/mininet/wiki/Bufferbloat#part-3-streaming-video---sketch-the-tcp-cwnd-and-buffer-occupancy)您也可以尝试在某个主机上的mininet上设置一个简单的http服务器,该服务器将站在TCP上。
mininet> h1 python -m SimpleHTTPServer 80 &
mininet> h2 wget -O - h1
以上两种方法都应该有效并为您提供TCP连接
您应该首先使用以下命令检查启用主机之间通信的规则(假设交换机是 s1):
mininet> ovs-ofctl dump-flows s1
并检查与流条目匹配的 IP 协议字段。对于 TCP,该值应为 6,对于 UDP 的值应为 17,对于 ICMP,值应为 1。您可以在此处查看所有协议编号:http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
链路延迟非常高,这是不可能的。然后,SYN 数据包将不会在 TCP 超时内获得 ACK。 例如,尝试在具有 3 个主机的 mininet 中使用线性拓扑,链路延迟为 3000ms(--link=tc,delay=3000ms)。在这种情况下,您的ping将起作用,但不能使用tcp iperf。