моделировать разные ПК с разными IP-адресами в среде Linux - PullRequest
1 голос
/ 23 сентября 2011

Я новичок в среде Linux и любая помощь / обратная связь будет принята с благодарностью.Я на самом деле пытаюсь разработать программу клиент-сервер (MULTICAST), поэтому я хотел бы проверить, как один клиент отправляет информацию на разные серверы (отношение один ко многим).таким образом, я хотел бы смоделировать другую сторону сервера в Linux с разными IP-адресами на одном компьютере.

Ответы [ 5 ]

1 голос
/ 23 сентября 2011

Вы пробовали использовать другие порты вместо этого? Я не пробовал сам, но, возможно, это поможет вам в середине.

0 голосов
/ 05 марта 2012

Вы можете создать несколько IP для одной машины с помощью псевдонима IP. Как уже упоминалось выше. Но для создания нескольких Серверов на одном ПК вам потребуется отдельный порт для каждого сервера, если вы хотите смоделировать поведение всех серверов в сети.

Я имею в виду, что для одного порта многоадресный трафик всегда идет к этому, и какой-то процесс на ПК будет получать пакет и должен обслуживать все серверы на ПК. Это означает, что у вас есть только один пакет, и все серверы получают локальные манипуляции. .

Но на самом деле симуляция состояла бы в том, что у вас есть несколько серверов на 1 ПК, и все получают многоадресный трафик из сети, а не из локального процесса.

мое решение: Вы сохраняете номер для сервера == номер порта на ПК. Клиент отправляет многоадресный трафик через все порты одновременно, и все серверы на стороне ПК будут получать многоадресные пакеты от соответствующего порта из сети.

Пожалуйста, поправьте меня, если я не так понимаю.

0 голосов
/ 23 сентября 2011

Используйте одно из следующих действий, если у вас недостаточно оборудования:

  1. Многоадресный цикл, в котором стек IP перенаправляет исходящие пакеты на локальные получатели.
  2. Виртуальные машины.

Помните, что семантика опции сокета для # 1 меняется в зависимости от операционной системы; для # 2 только некоторые виртуальные машины поддерживают многоадресную рассылку, подробности см. у поставщика.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms739161(v=vs.85).aspx

В конечном итоге вы должны тестировать на разных машинах из-за определенных артефактов того, как хосты управляют группами многоадресной рассылки. Например, вы можете создать членство только для отправки, которое будет блокировать все остальные приложения на хосте. Также учтите, что Интернет, в нижнем регистре «I», представит дополнительные артефакты, касающиеся задержек и пропусков присоединения к группе и распространения, о которых может потребоваться ваше приложение.

0 голосов
/ 23 сентября 2011

Похоже, вы хотите проверить свой код с разными IP-адресами. Вы можете создавать псевдонимы IP на вашем интерфейсе и имитировать несколько IP на одном компьютере.

например если eth0 - активный интерфейс с IP, например, 192.168.5.11, вы можете назначить другой IP для eth0: 0 (псевдоним eth0), как показано ниже.

ifconfig eth0: 0 192.168.5.12 netmask255.255.255.0 up

ifconfig eth0: 1 192.168.5.13 netmask255.255.255.0 up

запустите ваш сервер на одном из IP и распределите клиентов по всем вашим псевдонимам

0 голосов
/ 23 сентября 2011

Если вы действительно многоадресная рассылка, вам не нужно беспокоиться о физических IP-адресах конкретного хоста, все, что вам нужно сделать, это убедиться, что все программы (клиенты и серверы) используют одинаковые адреса групп многоадресной рассылки.,Тогда они все должны видеть трафик друг друга автоматически.

Ничто не мешает вам запускать несколько клиентов на одном компьютере, на котором также работает сервер, в данном случае.

...