Установить TCP-соединение между хостами
Если моему назначенному контроллеру удалось пропинговать между двумя хостами, возможно ли установить TCP-соединение между ними через Mininet? я сделал mininet>h0 ping h4
успешно, но ping - это просто пакеты ICMP, а не TCP!!
Спасибо
2 ответа
Если пинг был в порядке, вы можете попробовать iperf, который будет тестировать пропускную способность по TCP (читайте здесь https://github.com/mininet/mininet/wiki/Bufferbloat) Вы также можете попробовать установить простой http-сервер на mininet на каком-либо хосте, который будет работать поверх TCP.
mininet> h1 python -m SimpleHTTPServer 80 &
mininet> h2 wget -O - h1
Оба вышеперечисленных должны работать и дать вам соединения TCP
Сначала вы должны проверить правило, которое разрешает связь между хостами, с помощью следующей команды (представьте, что переключатель - это s1):
mininet> ovs-ofctl dump-flows s1
и проверьте поле протокола IP, которое совпадает с записями потока. Для TCP значение должно быть 6, 17 в случае UDP и 1 для ICMP. Вы можете проверить все номера протоколов здесь: http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
Это невозможно в некоторых случаях, когда задержка ссылки очень велика. Тогда пакет SYN не получит ACK в течение тайм-аута TCP. например, попробуйте с линейной топологией в mininet с 3 хостами и задержкой соединения 3000 мс (-link=tc,delay=3000ms). В этом случае ваш ping будет работать, но не tcp iperf.