Среда для быстрой разработки прототипа протокола маршрутизации - PullRequest
2 голосов
/ 29 марта 2011

Я занимаюсь исследованием протоколов маршрутизации. В настоящее время я выполняю симуляции написанного на Python нового протокола. Следующим шагом будет создание реального прототипа, который действительно может работать поверх операционной системы на основе Linux (как демон маршрутизации, такой как ospfd).

Какая среда / язык программирования подходит для быстрого создания прототипа протокола маршрутизации? Кто-нибудь имеет опыт создания прототипов распределенных протоколов?

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

Кто-нибудь знает об элегантном руководстве или примере реализации (распределенного) протокола реализации?

Ответы [ 3 ]

3 голосов
/ 29 марта 2011

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

То, что я имею в виду с Эрлангом, даст вам что-то еще менее полезное для производства, но, вероятно, за значительно меньшее время, чемScapy.

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

1 голос
/ 29 марта 2011

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

Вам не нужны никакие другие фреймворки, только Erlang и OTP, который поставляется сэтого достаточно.

Даже если вам придется работать до уровня пакетов, Erlang поможет вам с его двоичными шаблонами, которые удобны для работы с пакетами протокола.

Даже если вы хотите высокую производительность, вы можетепереместите наиболее критичные ко времени вещи в так называемые «порты» в Erlang, реализуя их на C или другом языке низкого уровня.

1 голос
/ 29 марта 2011

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

Это написано на Python, для чего это стоит.

...