实验协议设计与开发工具?

8
有没有开源、高级工具可以通过GUI简化和简化实验性网络协议(TCP/UDP)的开发?基本上,像动态状态机编辑器一样的东西,它允许您定义“数据包”,“消息”,“状态”,“验证器”,“处理程序”等。最好,这样的工具应该足够全面,以处理协议的所有相关方面(即客户端和服务器),因此高级协议描述可以序列化到XML/RDF文件中,然后可以用于动态创建应用程序代码来实现协议(例如,使用Python)。
2个回答

3
放弃GUI,转向协议规范语言的世界。这些工具大多接受某个协议的描述,试图证明其不会出错,并生成实现和测试。以下是一些入门工具,但还有许多其他工具:

2
你可能会喜欢 Zed Shaw 关于 Ragel 状态图的文章。http://www.zedshaw.com/essays/ragel_state_charts.html - Martin Carpenter

1

如果你最终的目标是使用Python,为什么不从一开始就用Python自己的测试工具呢?

状态机在代码中构建起来并不难,而且它们比GUI中的图片更容易阅读和验证,特别是当它们变得复杂时。

对我来说,你最好使用嵌入式DSL而不是基于GUI的设计工具。

编辑:如果像你在评论中所说的那样,你只是拿Python作为一个例子,我建议你采用timday的答案。如果你实际上不担心嵌入Python,那就按照他的建议使用现有的DSL。


感谢您的回复,Python只是作为一个例子来说明我希望能够运行代码生成器来针对协议规范(通过XML或RDF提供)生成存根,以自动实现大部分协议冗余代码部分。 - none
对我来说,你最好使用嵌入式DSL而不是基于GUI的设计工具。好的,那么有没有专门用于编写网络协议的DSL呢? 此外,大多数协议设计过程仍然主要涉及定义状态和相应的操作。 - none

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接