2013-05-11 3 views
7

Каков наилучший способ моделирования сети на Java?Имитировать сетевой трафик p2p на одном компьютере

Я нахожусь на ранних стадиях сетевого проекта с одноранговым узлом и для определения некоторых требуемых характеристик клиентов, которым я хотел бы одновременно смоделировать 100+ экземпляров на моем ПК.

В идеале я хотел бы создать «симуляторную» версию сокетов с их собственными входами и выходными потоками. В конце концов, я собираюсь использовать эти потоки для передачи данных, а не просто перемещать данные между java-объектами, поэтому то, что я хочу имитировать, - это латентность, потеря данных и другие ошибки, которые могут возникнуть в реальной сети.

В идеале эти методы моделирования будут очень близки к фактическим стандартам потока java.net.*, поэтому мне не нужно будет переписывать большую часть перезаписи, чтобы перейти от моделирования к фактическому клиенту.

Может ли кто-нибудь указать мне правильное направление?

+0

Не добавляйте палочки. на вопросы, это шум. –

ответ

3

Вы можете использовать Akka для создания миллионов Актеров на одной машине, а затем организовать связь между ними, подобную «реальной» сети.

Вот пример проект: https://github.com/adelbertc/scalanet

+0

Что случилось? Вы читали документацию? Я не вижу электронных писем в списке рассылки, не бойтесь просить о помощи, чтобы отклеиться. Большинство пользователей Akka используют его на Java, поэтому я уверен, что это не bs. Документация: http://doc.akka.io/docs/akka/2.1.2/ –

+0

Извините, я изо всех сил пытаюсь понять ваш комментарий. Действительно, я опубликовал вопрос о списке рассылки некоторое время назад, получил ответ и более или менее удовлетворен этим. Теперь, когда я выполняю async IO, я регулярно читаю akka docs, но поскольку актеры в некотором смысле являются сдвигом парадигмы, я должен читать главы более одного раза, чтобы получить полное понимание))) Также я использую Akka с scala , – vitalii

+0

Извините, комментарий закончился не на той вкладке. –

0

Для целей моделирования вы можете захотеть проверить Omnet++, I'ts отлично подходит для большого масштабируемого моделирования со встроенным в данном анализе/инструментах статистики. Письмо похоже на C++, см. Учебники, это довольно прямолинейно.

Пример 6 хостов сети (Взято из Omnet ++ учебник)

1

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

Вам нужны интерфейсы для под лежачей коммуникационной рамки.

Все, что вам нужно глумиться/заменить реальную реализацию с фиктивной один раз вы закодировали против interfaces.This фиктивная реализация может ввести функции, такие как задержки, фиктивные данные и т.д.

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

+0

Хотя это первая мысль, которая приходит мне на ум, в этом вопросе говорится, что он хочет имитировать латентность и потерю данных. Это будет нетривиально, если между ними нет реальной сети. – flup

+1

И как только вы сконструировали его достаточно хорошо, чтобы иметь возможность помещать в него макетную сеть, вам нужно на самом деле издеваться над сетью - и, таким образом, в значительной степени реализовать инструмент, как он просит. – kutschkem

+1

Задержки и данные loos эквивалентно помещению потока для сна и удалению некоторых данных из базовой структуры данных. Если вы имитируете/издеваетесь, вы можете протестировать свою реализацию с очень тонкой настройкой (то есть с высокой степенью настройки), но если вы зависите от реальной сети для моделирования, я не уверен, что вы можете сделать то же самое. – Rohitdev

 Смежные вопросы

  • Нет связанных вопросов^_^