我正在研究路由协议。目前我执行用Python编写的新协议模拟。下一步是构建一个真正的原型,它可以真正运行在基于Linux的操作系统之上(作为路由守护进程,如ospfd)。
什么是一个非常适合的编程环境/语言来快速构建路由协议的原型?有建立分布式协议原型经验的人吗?
我希望尽可能多地关注高级协议逻辑,而不是低级别的机器相关指令。我愿意学习新语言(如Erlang或Haskell),以防它们更适合这样的任务。或者,我已经阅读了Python中可用的扭曲框架(可能允许重用一些代码),但我不清楚这是否只有在我编写基于客户端/服务器的协议时才能帮助我。
有没有人知道(分布式)协议实现的优雅教程或示例实现?
答案 0 :(得分:3)
如果您主要对协议如何与自身进行交互感兴趣,并且不想考虑像数据包一样的实现细节,那么您可能会对Erlang好运。在(真实或虚构)网络上发送任意消息是该语言的基本特征。所以,如果你真的只想在信息层面工作,那就得到了很好的支持。
我对Erlang的想法会让你对生产有所帮助,但可能比Scapy少得多。
由于节点可以是具有IP地址的主机,并且消息可以包含几乎任何内容,因此使用Erlang模拟协议将非常简单。如果您有兴趣,This会让您开始学习该语言。
答案 1 :(得分:1)
Scapy将是一个很好的工具。您可以在高级别创建数据包,并且可以很好地支持添加协议。您不希望将其用作生产实现,但它会成为一个很好的原型设计平台。
它是用Python编写的,这是值得的。
答案 2 :(得分:1)
Erlang非常适合于没有具体实现的逻辑原型以及实现协议的真实支持实现。
你不需要任何其他框架,只需要它附带的Erlang和OTP即可。
即使你必须处理数据包级别,Erlang也可以帮助你处理使用协议数据包的二进制模式。
即使你想要高性能,你也可以把最关键的东西转移到Erlang中称为“Ports”的东西,用C或其他低级语言实现它。