Установить 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.

Другие вопросы по тегам