如果我指定的控制器在两台主机之间 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 个主机且链接延迟为 3000 毫秒(--link=tc,delay=3000 毫秒)的 mininet 中使用线性拓扑。在这种情况下,您的 ping 将起作用,但 tcp iperf 不起作用。