我正在研究路由协议。目前,我正在执行用Python编写的新协议的模拟。下一步是构建一个真正的原型,它可以真正运行在基于Linux的操作系统之上(作为路由守护进程,比如ospfd)。
哪种编程环境/语言适合快速构建路由协议的原型?有人有构建分布式协议原型的经验吗?
我希望尽可能多地关注高级协议逻辑,而不是低级机器相关指令。我愿意学习新的语言(如Erlang或Haskell),以防它们能更好地适应这样的任务。或者,我读过Python中提供的扭曲框架(它可能允许重用一些代码),但我不清楚这是否仅在我编写基于客户端/服务器的协议的情况下对我有帮助。
有没有人知道(分布式)协议实现的优雅教程或示例实现?
发布于 2011-03-29 05:21:25
如果您主要对协议如何与自身交互感兴趣,而不想考虑实现细节,比如数据包是什么样子,那么您可能对Erlang很感兴趣。通过(真实或虚构的)网络发送任意消息是该语言的一个基本特性。因此,如果你真的只想在信息层面上工作,它有很好的支持。
我对Erlang的想法是让你得到一些对生产更不有用的东西,但可能比Scapy花的时间要少得多。
由于节点可以是具有IP地址的主机,而消息可以包含几乎任何内容,因此使用Erlang模拟协议将非常简单。如果你感兴趣,This将帮助你开始学习这门语言。
发布于 2011-03-29 05:02:51
Scapy将是一个很好的工具。你可以在高层次上创建数据包,它对添加协议有很好的支持。您可能不想将其用作生产实现,但它将成为一个很好的原型平台。
它是用Python编写的,这是值得的。
发布于 2011-03-29 21:40:31
Erlang非常适合于没有具体实现的逻辑原型,以及实现协议的真实实现。
你不需要任何其他的框架,只需要Erlang和OTP就足够了。
即使您必须向下工作到数据包级,Erlang也会帮助您处理其二进制模式,即gread,用于处理协议数据包。
即使你想要高性能,你也可以把最需要时间的东西转移到Erlang中被称为“端口”的东西中,用C或其他低级语言实现它。
https://stackoverflow.com/questions/5465010
复制相似问题