сетевой симулятор - PullRequest
       19

сетевой симулятор

15 голосов
/ 24 февраля 2010

Мне нужно создать эмулятор устройства, который может общаться по реальному IP-адресу

Мне нужно создать как можно больше экземпляров для устройства. С одним IP и MAC-адресом для каждого экземпляра эмулятора

Может ли кто-нибудь подсказать мне, как этого можно достичь?

Ответы [ 9 ]

24 голосов
/ 02 марта 2010

Пять или шесть лет назад я застрял в написании слоя сетевой эмуляции для игры для PS2. Мне сказали, что все классическое поведение интернет-соединения должно быть отображено; характеристики реалистичных потерь, переупорядочение пакетов, задержка, потеря пакетов, вызванная спешкой. По сути, мне сказали внедрить интернет через пару недель.

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

Boom. Интернет-симуляция со всеми шипами менее чем за 8 часов.

UPDATE:

Учитывая успех ответа, я некоторое время назад переопределял сервис эха игры. Казалось, что github может быть лучшим местом для его хранения, поэтому вот оно : если это работает для вас, отлично! Если нет, дайте мне знать. Я ожидаю, что его текущее состояние будет в лучшем случае шатким.

1 голос
/ 07 марта 2010

Вы можете попробовать использовать петлевые адаптеры. Используя это вы можете установить любой IP или Mac адрес. Прекрасно работает для эмуляции различных сетевых подключений.

1 голос
/ 06 марта 2010

Простая идея: User-Mode Linux (UML) , порт ядра Linux в пользовательском пространстве. Это позволяет нескольким виртуальным системам Linux (известным как гости) работать как приложение в обычной системе Linux (известной как хост).

Это очень легко, в процессоре и памяти. Например, я использую более 10 UML одновременно на «не слишком последнем» ПК, используя Netkit , сетевой симулятор на основе UML. UML легок, потому что это нативное приложение, не тяжелая виртуализация (vmware, virtualbox, qemu) и па-виртуализация (xen).

Поскольку сетевые интерфейсы реализованы для возможности подключения к другим UML-машинам (используя uml_switch), вы можете иметь любой MAC-адрес, который вам нужен. Если вам необходимо подключить эти UML-машины к вашей системе или внешним хостам, вы можете создавать виртуальные устройства с помощью TUN / TAP.

PS: Если вы работаете в Windows, вы можете попробовать CoLinix , порт ядра Linux для M $ OS, я не знаю, имеет ли он те же характеристики, что и UML.

1 голос
/ 04 марта 2010

Добавление диапазона виртуальных IP-адресов в Windows

См. 21 февраля 2006 г., 13:18 после ответа gil.elessar

.

Для справки:

Команды Netsh для IP-интерфейса

Команды Netsh

Команды в контексте IP-интерфейса Netsh можно использовать для настройки протокола TCP / IP (включая адреса, шлюзы по умолчанию, DNS-серверы и WINS-серверы) и для отображения конфигурации и статистической информации.

1 голос
0 голосов
/ 19 сентября 2012

Cisco pakcet tracer позволяет эмулировать сетевой трафик с помощью графического интерфейса. Я удивлен, что никто не упомянул это (это ограничено устройствами cisco, но стандарт одинаков для всех устройств, поэтому он будет изучать команды для вашего конкретного устройства).

Попробуйте выполнить поиск в Google, потому что в обычных условиях он доступен только студентам ccna, но я сохранил копию, потому что мой учитель позволил мне.

Или вы можете найти кого-то, кто разместил копию из своего класса где-то в Интернете.

0 голосов
/ 02 марта 2010

Я предлагаю вам не начинать изобретать велосипед. Для этой конкретной проблемы существуют как аппаратные, так и программные решения. Они также очень хорошо подходят для тестирования нагрузки (и пропускной способности) сети.

Недостатком является то, что такие устройства довольно дороги.

0 голосов
/ 01 марта 2010

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

0 голосов
/ 01 марта 2010

вам нужно детально изучить слой связи данных в части кодирования - тогда вы сможете понять, как он получает MAC-адрес и связь ч / б mac и ip

...