JASPER (Java Моделирование протоколов для образования и научных исследований)

Описание

Этот средство моделирования протокола обеспечивает:

  • возможность в интерактивном режиме и графически моделирование
  • большого разнообразия коммуникационных протоколов
  • предопределенные моделирования различных известных протоколов:
    • ABP (чередующий разрядный протокол)
    • ABRA (протокол абракадабры)
    • BOOTP (протокол начальной загрузки)
    • HTTP (протокол передачи гипертекста)
    • IP (протокол Интернета)
    • SMTP (простой протокол передачи почты)
    • SWP (Протокол раздвижного окна, расположение на 3 и 5 столбцов)
    • TCP (протокол управления передачей)
    • TFTP (тривиальный протокол передачи файлов)
    • UDP (протокол пользовательских дейтаграмм)
  • платформа для создания новых моделирований протокола

Дополнительные моделирования были созданы в рамках контракта с Pearson Education for Data and Computer Communications Уильяма Столлингсом. Они не доступны в общественном распределении Джаспер, но доступны через веб-сайт Pearson (на основе подписки).

Вы можете сразу опробовать онлайн-моделирования, чтобы получить чувство для того, что делает симулятор. Ваш веб-браузер должен быть настроен для запуска Java 1.5 апплеты и (в идеале) JavaScript.

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

Установка

Обратите внимание на то, что онлайновый и предварительно созданный код был скомпилирован, используя JDK 1.5. Это будет также компилировать и работать, использование JDK 1.6.

Средство моделирования обеспечено как архив Zip. Средство моделирования распаковывает в директорию (папку) под названием Jasper-N, N в соответствии с номером версии. Вы можете переименовать это Jasper для простоты. Дистрибутив содержит:

build.bat, clean.bat
В MS DOS пакетных скриптов для управления код
build.xml
Ant построить файл для управления кодом
docs
Основная документация
html
каталог для веб-страниц и архива JAR средства моделирования
source
каталоги для Java кода (протокол, симулятор, поддержка)

Моделирование как апплет

Средство моделирования может использоваться на загруженных файлах, указывая на веб-браузер на…/jasper/html (или возможно …/jasper/html/index.html). Это предполагает, что Вы переименовали папку распределения как jasper. Это переведет основную страницу в рабочее состояние с общими инструкциями и списком протоколов, которые могут быть моделированы. Ваш веб-браузер должен быть сконфигурирован, чтобы выполнить апплеты Java 1.5 и (в идеале) JavaScript. Альтернативно, используйте средство просмотра апплета на файлах (хотя JavaScript, чтобы установить параметры протокола не будет работать).

Большинство моделирований находится в формате на три столбца: два объекта протокола (отправитель/получатель или A/B) и средство связи (ссылка или сеть). Несколько моделирований добавляют отправку и прием пользователей (приложения) во внешних столбцах. Этот формат полезен для показа этого, что видит пользователь; обычно это – только часть того, что происходит в протоколе.

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

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

Если Вы делаете ошибку, или просто хотите отследить в обратном порядке на моделировании, то нажмите Undo. Вы можете отменить столько же шагов как вам угодно прямо до начала моделирования. Щелчок по Redo выполнит снова последний отмененный шаг. Clear перезапустит моделирование с текущими параметрами протокола. Если Вы щелкнете по Run, то средство моделирования будет работать автоматически, делая случайный выбор для Вас. Если Вы не уверены, чтобы экспериментировать, это – простой способ наблюдения протокола в действии. В то время как это происходит, Кнопка Run изменяется на STOP. Щелкните по Stop, чтобы возвратить средство моделирования контролю за работой пользователей. Вы можете продолжать в этой точке, как будто Вы сделали весь автоматический выбор сами.

Кнопки Print, Load и Save отключены, так как моделирования работают как апплеты. Если Вы желаете печатная копия моделирования, располагаете полосу прокрутки в область моделирования в интересном моменте и распечатываете целую веб-страницу.

Некоторые моделирования связали параметры протокола. Чтобы изменить значения по умолчанию, которые показаны, введите новые значения и нажмите Change Values. В некоторых случаях это вынудит моделирование перезапуститься. Следующее – снимок экрана моделирования TCP, показывая параметры протокола и основные средства управления моделированием.

Моделирование в качестве приложения

Запуск моделирования протокола как приложение предоставляет доступ к Print, Load и Save кнопок.

Print создает печатный экземпляр целого сценария моделирования. Обратите внимание на то, что отдельные страницы не могут быть отобраны для печати. Ширина распечатки определена шириной окна на экране. Константы winWidth и winHeight в ProtocolSimulator определяют начальный размер окна. Постоянный maxHeight в TimeSequenceDiagram определяет вертикальный размер печатных страниц. Текущие размеры подходят для листа А4. Если необходимо, измените их в американском письме.

Load загружает файл сценария моделирования (именем, заканчивающимся в .scn); это должно быть для того же протокола, как Вы в настоящее время моделируете. Это заменяет текущий сценарий моделирования (если таковые имеются). Save сохраняет текущее моделирование как файл сценария (с именем, заканчивающимся в .scn). Если Вы предприимчивы, Вы можете создать и отредактировать свои собственные сценарии, используя текстовый редактор.

Когда средство моделирования выполнено как приложение, обязательное имя протокола следует за основным классом средства моделирования. Параметры протокола могут тогда быть даны при необходимости; у протоколов есть значения по умолчанию для них. Предположите, что средство моделирования было создано и должно быть запущено с верхнего уровня Jasper. Следующее выполнит TCP в режиме клиент-сервер с размерами окна сообщения кроме значения по умолчанию:

java -cp html/ProtocolSimulator.jar simulator.ProtocolSimulator TCP/cs windowSizeA=500 windowSizeB=300

Разработка

Полный источник средства моделирования обеспечен. (У большинства файлов, вероятно, будет Unix End-Of-Line.) Код должен предпочтительно быть восстановлен, используя Ant build.xml компоновочный файл. ant -p распечатает справочную информацию о целях сборки. средство моделирования ant восстановит ProtocolSimulator.jar в каталоге HTML. ant clean удалит все скомпилированные файлы класса и файлы резервных копий, но сохранение файла JAR. ant spotless удалит даже это.

Если у вас нет Ant, но используете MS DOS / Windows, вы можете вместо этого использовать командные файлы build.bat и clean.bat. Они выполняют основные задачи по созданию файла симулятора JAR и приведение в порядок сборки файлов.

Изменить существующее моделирование протокола или написать новое будет нужно знание структуры моделирования. См. статью An Interactive Visual Protocol Simulator для деталей этого и расширенного примера того, как развивать моделирование. Как только структура понята, простое моделирование может быть развито через день; сложные протоколы могли занять неделю или два, чтобы развиваться.

Предположим, что Вы хотите разработать новое моделирование протокола EXP (‘Протокол В качестве примера’). Вы должны были бы записать EXP.java, чтобы инстанцировать различных объектов в протоколе. Для простого протокола Вы тогда записали бы EXPSender.java и EXPReceiver.java, чтобы определить поведение отправки или получения объекта протокола. Более сложные протоколы могли включить определение отдельные объекты, чтобы обработать интерфейс службы и объект протокола. Она также может быть необходимо определить форматы сообщений протокола и вариации на основной среде, чтобы соответствовать этим.

Имейте в виду, что большая часть работы развития была проведена студентами, поэтому уровень комментариев в коде несколько ограничена в местах. Моделирование ABP является самым простым из протоколов и является хорошим местом для начала. Моделирование TFTP является лучшим прокомментирован и лучше всего объяснено протоколов. Он иллюстрирует почти все ключевые моменты в развитии моделирования.

Лицензия

Эта программа является свободным программным обеспечением. Вы можете распространять и / или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation – либо версии 2 лицензии, либо (по вашему выбору) любой более поздней версии.

Эта программа распределена в надежде, что это будет полезно, но без любой гарантии даже без подразумеваемой гарантии высокого спроса или пригодности для определенной цели. Дополнительную информацию см. в GNU General Public License.

Вы можете перераспределить это программное обеспечение, если Вы сохраняете файл README. Отчеты об ошибках должны быть отправлены Ken Turner, который также ценил бы получение любых исправлений или кода для новых протоколов.

Благодарность

Иэн А. Робин взяла на себя большую часть развития проекта магистра под руководством Кена Тернера. Пол Джонсон и Кеннет А. Уайт способствовало развитию некоторых моделей для проектов своего учителя.

История

  • Версия 1.0: Частная внутренняя версия, Иэн Робин, 1 сентября 1999
  • Версия 1.1: Частная внутренняя версия, Кен Тернер, 22 декабря 2000
  • Версия 1.2: Частная внутренняя версия, Кен Тернер, 5 марта 2001
  • Версия 1.3: Первый публичный релиз, Кен Тернер 6 июня 2001
  • Версия 1.4: Общее обновление, Кен Тернер, 9 марта 2006 года:
    • HTML файлы обновлены для XHTML-совместимыми.
    • Источник обновлен для JDK 1.5, и Swing-графика используется. Обратите внимание, что JDK 1.5 или более поздней версии теперь требуется повторно компиляции исходного кода или для запуска кода.
    • Структура каталогов верхнего уровня пересмотрен, чтобы иметь источник, строить и документы каталогов.
    • Makefile заменен Ant компоновочный файл. Только строить и чистые пакетные файлы сохраняются. [Благодаря д-р П. Дж Б. Кинг, университета Heriot-Watt, за вклад в это.]
    • Пустые строки игнорируются в файлах сценария.
    • ABP и SWP3 среда управления в настоящее время предлагается с помощью параметра (delivery/loss, delivery only, automatic). Это было бы возможно при использовании принципе с другими протоколами, но имеет смысл только в некоторых случаях. [Благодаря д-р П. Дж Б. Кинг, университета Heriot-Watt, за вклад в это.]
    • Сообщения протокола SMTP были немного переименованы для согласованности с RFC.
    • Протокол TCP размер окна по умолчанию восстанавливается при перезагрузке. Благодарности теперь направлен на получение данных, а не при получении окна становится полным. Некоторые сложные изменения, вызванные этим. Ожидающие доставки данных сейчас отправил пользователю Closed. Откройте во время Closed приводит к закрытым, когда он полностью закрыт, а не сразу. Теперь дублируйте SYN плюс ACK отменяет любые повторные передачи, в то время как установлено.,
  • Версия 1.5: Расширения для новых протоколов, Кен Тернер, 11 февраля 2011г.
    • Основная новая работа была добавление новых моделирования (CSMA/CD, Multicast, Multiplexing, Protocol Stack, TCP Slow Start). Поскольку эта работа была проведена по контракту Pearson Education, не в открытом доступе. Однако другие усовершенствования в этой версии публично доступен.
    • Больше комментариев, особенно по java, были добавлены к большому числу файлов (которые также были переформатированы).
    • Более тщательную проверку значения были добавлены JavaScript в HTML-файлы. Кроме того, HTML-файлы были пересмотрены и в измененном виде.
    • Класс TimeSequenceDiagram был изменен. Вертикальное пространство сейчас поставить перед протокольным мероприятием, а также перед комментарием (даже если это не первый). Ход событий протокол было добавлено, чтобы справиться с ситуацией, что штрихпунктирная линия пересекает несколько столбцов. Соответствующий класс TraverseTransmission был добавлен.
    • Средний класс был расширен с двумя методами IsEmpty: один, чтобы проверить, если среда полностью разряжен сообщений, и один, чтобы проверить, если носитель пуст сообщений от конкретного источника.
    • Все классы протокола TCP были расширены для поддержки медленного старта вариант (по протоколу TCP/СС). Кроме того, некоторые проблемы с TCP были исправлены (неясных ситуаций, в которых протокол не восстановилась при попытке закрыть). Состояние TIME_WAIT в настоящее время используется, чтобы справиться с этими ситуациями, в том числе более резкое завершение, когда FIN получен в нестандартных ситуациях.
    • Протокол теперь может реализовать методы getRandNumbers и setRandomNumbers (по умолчанию они ничего не делают полезного). Если эти методы реализуются, список случайных чисел, добавляется к заголовку сценарий, когда сценарий сохраняется и восстанавливается, когда сценарий загружается. Это для таких протоколов, как CSMA, которые генерируют свои собственные случайные числа (в отличие от media, которые делают так, как в предыдущих версиях). Строка заголовка теперь в таком формате, как “Jasper CSMA 0.3,0.01,0.891”. Если никакие случайные числа не присутствуют следующие типа протокола (как в случае с предыдущими файлами сценария), то никаких действий не предпринимается.

Источник: http://www.cs.stir.ac.uk/~kjt/software/comms/jasper.html

Leave a Reply