最近,我对RFC 6733定义的DIAMETER协议产生了兴趣。由于我正在学习Python,我认为看看我是否可以使用任何DIAMETER Python库可能会很有趣。我确实找到one,但它似乎已不再维护。所以我得到了一个非常雄心勃勃的想法,试图建立一个,至少是骨架的东西,可以扩展到更丰富的DIAMETER信令功能。
由于我曾经遇到扭曲矩阵,我试图查看它的文档,看看是否支持所有类型的传输,可以支持DIAMETER协议,但除了TCP,UDP(以及TLS) ,我发现没有提到休息,即 - SCTP / IP - SCTP / UDP - DTLS / SCTP
所以想知道是否有其他库可以使用,或者我是否应该手动滚动它?延伸扭曲,在这一步已超出我的范围。
答案 0 :(得分:2)
我不知道这个仍然受支持(2014年12月更新) http://sourceforge.net/projects/pyprotosim/
它有半径,直径,dhcp,ldap,EAP计算
您尚未选择最简单的协议。很多提供商都有自己的AVP,有时他们甚至使用标准数字。
您也可以编写自己的lib来解析DIAMETER,这并不难,您只需要时间(很多)和良好的文档(或专家)。 如果我在工作期间没有开发出那个,我可以分享它,但我不能。
答案 1 :(得分:1)
如果您打算自己动手,可以使用IFileDescriptor
(及相关)界面使用Twisted执行此操作。创建一个SCTP套接字,在IFileDescriptor
周围包裹一个fileno
,然后实现IReadDescriptor.doRead
来调用sctp_sendmsg
和IWriteDescriptor.doWrite
来调用sctp_recvmsg
。现在你有一个SCTP传输。您可以将其实现为在适合协议的任何SCTP协议接口上调用方法。不幸的是,我对SCTP的了解还不足以说出协议接口应该有哪些方法。