2015-04-20 37 views
3

最近我对RFC 6733定义的DIAMETER协议感兴趣。自从我学习Python以来,我认为看看我是否可以使用任何DIAMETER Python库可能很有趣。我确实发现了one,但它似乎不再被维护。所以我得到了一个非常雄心勃勃的想法,试图建立一个至少是骨架的东西,可以扩展到具有更丰富的DIAMETER信号功能。由于我之前也遇到了扭曲矩阵,我试图检查它的文档以查看是否支持DIAMETER协议可以支持的所有类型的传输,但除了TCP,UDP(还有TLS ),我din't找到休息一提,即 - SCTP/IP - SCTP/UDP - DTLS/SCTP是否有任何提取IP传输的python库 - TCP,UDP,SCTP,TLS等?

所以不知道是否有可用于任何其他库,或者我应该期待必须手卷这个?延伸扭曲,在这一步超越了我。

回答

1

如果您打算推出自己的产品,可以使用IFileDescriptor(及相关)接口进行Twisted。制作一个SCTP套接字,在其周围围绕一个IFileDescriptor返回它的fileno,然后执行IReadDescriptor.doRead以调用sctp_sendmsgIWriteDescriptor.doWrite来调用sctp_recvmsg。现在你有一个SCTP传输。您可以实现它来调用适用于该协议的任何SCTP协议接口的方法。不幸的是,我不太了解SCTP说明协议接口应该有什么方法。

+0

谢谢@Glyph。尽管我最初担心它是一条陡峭的学习曲线 - 但如果这是做这件事的理想方式之一,我可能会沿着这条路走下去,但我慢慢地向Twisted倾斜。 – icarus74

+1

Twisted的学习曲线并不是那么陡峭。问题在于,分散注意力很容易,并且在尝试弄清楚时开始实施IMAP服务器后端。只要专注于你的应用程序需要的Twisted层,而不是试图学习整个事情,你应该没问题。 – Glyph

2

我不知道这个人是仍然支持(最后更新于2014年12月) http://sourceforge.net/projects/pyprotosim/

它半径,直径,DHCP,LDAP,EAP计算

您没有选择最简单的协议。很多供应商都有自己的AVP,有时他们甚至使用他们的标准数字。你也可以编写自己的lib来解析DIAMETER,这并不难,你只需要时间(很多)和良好的文档(或专家)。 如果我的工作在我的工作中没有完成,我可以分享它,但是我做不到。

+0

也许它不会回答你的问题。 我开发了一些协议解析器,因为我找不到合适的库,我认为如果你足够了解python,你可以做同样的工作。 – Morb

+0

Thanks @Morb。我知道DIAMETER了一下。将检查pyprotosim,因为它听起来很有希望,并接近我希望作为第一步(但显然,一个非常雄心勃勃的第一步)实现。 – icarus74