Инструменты для экспериментального дизайна и разработки протокола?
Существуют ли какие-либо инструменты высокого уровня с открытым исходным кодом, которые облегчили бы и упростили разработку экспериментальных сетевых протоколов (TCP/UDP) с использованием графического интерфейса?
По сути, что-то вроде редактора динамического конечного автомата, который позволит вам определять "пакеты", "сообщения", "состояния", "валидаторы", "обработчики" и т. Д.
Предпочтительно, чтобы такой инструмент был достаточно всеобъемлющим, чтобы иметь дело со всеми соответствующими аспектами протокола (т. Е. Клиент и сервер), чтобы описание протокола высокого уровня можно было сериализовать в файл XML/RDF, где его можно было бы использовать для динамического создания код приложения для реализации протокола (т.е. в Python).
2 ответа
Откажитесь от GUI для текстового редактора и войдите в мир языков спецификации протокола. Большинство из этих инструментов принимают описание какого-либо протокола, пытаются доказать, что он не нарушен, и генерируют реализацию и тесты. Вот несколько, чтобы вы начали, но есть еще много:
Если вы все-таки собираетесь стремиться к цели на python, кто бы не бросил свой собственный испытательный стенд (на python) с самого начала?
Конечные автоматы не так сложно встроить в код, и их гораздо проще однозначно прочитать и проверить, чем картинки в графическом интерфейсе, особенно когда они становятся сложными.
Мне кажется, вы бы лучше работали со встроенным DSL, чем с дизайнером на основе графического интерфейса.
Изменить: Если, как вы сказали в комментариях, вы просто выбросили Python в качестве примера, я бы посоветовал вам пойти с ответом Timday. Если вы на самом деле не беспокоитесь о встраивании в python, используйте уже существующий DSL, как он предлагает.